Накопление сигнала, полоса разрешения RBW

ЦОС, обработка видео и изображений в MATLAB\Simulink

Модератор: Admin

aldibale
Пользователь
Сообщения: 9
Зарегистрирован: Сб фев 16, 2019 4:52 pm

Накопление сигнала, полоса разрешения RBW

Сообщение aldibale » Вс фев 17, 2019 2:01 am

Доброй ночи!
Требуется смоделировать в Matlab ОФМ-2 сигнал с мощностью -160 дБВт (значение на выходе приёмной антенны, взятое из энергетического расчёта радиолинии), построить спектр этого сигнала и смеси его сигнала с шумом (примерное значение спектральной плотности шума приёмника -200 дБВт/Гц, оттуда же). Затем требуется реализовать когерентное и некогерентное накопление сигнала (для наблюдения "сглаживания" спектра от шумов), а также исследовать влияние полосы разрешения RBW (один из параметров анализатора спектра) на вид спектра сигнала.
1). Подскажите пожалуйста, правильно ли построены спектры и верно ли выполнено когерентное накопление сигнала?
2). При некогерентном накоплении не учитывается начальная фаза сигнала, поэтому требуется накапливать квадраты отсчётов смеси сигнал+шум. Надо показать разницу между двумя видами накопления (что некогерентное накопление менее эффективно по сравнению с когерентным). Помогите с кодом для реализации некогерентного накопления, пожалуйста.
3). Правильно ли я понимаю, что:
а). полоса разрешения (RBW) - это минимальное расстояние между двумя частотными отсчётами в спектре сигнала, и её можно просто определить как RBW = Fd/xx, где Fd - частота дискретизации, xx - количество линий Фурье, используемых для построения сигнала? Т.е. фактически для изменения RBW можно лишь менять xx, не изменяя Fd. Если я неправ, то поясните, пожалуйста, при какой RBW у меня построены спектры в программе, и как мжно менять её значение?
б). с увеличением полосы разрешения (RBW) спектр становится более изрезанным? Опять же, если нет, то подскажите, какие изменения должны наблюдаться в спектре сигнала при расширении этой полосы?

Прилагаю свой примитивный код:

clear;
clc;
% резервирование памяти
OFM = zeros(0,511);
% формируем М-последовательность
x = [1 1 1 1 1 1 1 0 0]; % начальная комбинация
M15 = x;
n = length(x); % длина начальной комбинации
N = 2^n - 1; % период М-последовательности
for i= n+1:N
M15(i) = xor(M15(i-4),M15(i-9)); % полином g(x) = 1 + x^5 + x^9;
end
M15 = 2*M15-1; % приводим к виду [-1, 1]

OFM(1) = 1;
for i=1:N
OFM(i+1) = OFM(i)*M15(i)*(-1); % ОФМ - модуляция
OFM(i) = OFM(i+1);
end

An = 1;
h = 0.001; % длительность сигнала (1 период)

T = h/N; % длительность одного чипа М-последовательности
f = 15*10^6; % частота несущей
Fd = 5*10^8; % частота дискретизации
t = 0:1/Fd:h-1/Fd; % отсчеты времени
xx = round(h/(1/Fd)); % количество линий спектра Фурье
ff = -Fd/2 : Fd/xx : (Fd/2-Fd/xx); % сетка частот
xx2 = 5*10^4;
ff2 = -Fd/2 : Fd/xx2 : (Fd/2-Fd/xx2);

RBW = Fd/xx; % полоса разрешения RBW
RBW2 = Fd/xx2;

SNR = 10; % отношение сигнал/шум [дБ]

Am = sqrt(2*10^(-20)*10^(SNR/10)); % амплитуда полезного сигнала

Sn = 10^(-10)*randn(1,length(t)); % шум

F = M15(fix(t./T)+1);
OFM2 = OFM(fix(t./T)+1); % временные значения ОФМ-последовательности

S3 = Am*exp(1j*(2*pi*f*t - (OFM2-1)*pi/2));
S33 = Am*sin(2*pi*f*t - (OFM2-1)*pi/2); % ОФМ-2 сигнал

Sad = S33 + Sn; % аддитивная смесь ОФМ-2 и шума
Sad2 = S33 + Sn;
Sad3 = S33 + Sn;

spSh = fft(Sn,xx);
spektrMSh = 10*log10(fftshift(spSh.*conj(spSh))/length(spSh)); % СПМ шума

spS33 = fft(S33,xx);
spSad = fft(Sad,xx);
spektrM33 = 10*log10(fftshift(spS33.*conj(spS33))/length(spS33)); % спектр сигнала ОФМ
spektrM3 = 10*log10(fftshift(spSad.*conj(spSad))/length(spSad)); % спектр смеси сигнал + шум

figure(1)
plot(ff,spektrM33,'k');
xlim([0*10^7 3*10^7]);
% ylim([-240 -160]);
title('Спектр сигнала ОФМ-2');
xlabel('f,Гц');
ylabel('FFT,дБ')
grid on

figure(2)
plot(ff,spektrM3,'b');
xlim([0*10^7 3*10^7]);
xlabel('f,Гц');
ylabel('FFT,дБ')
title('Спектр аддитивной смеси сигнал + шум');
grid on

% Когерентное накопление спектра

madd = 100; % число периодов накопления сигнала
for i = 1:madd
Sad = Sad + S33 + 10^(-10)*randn(1,length(t));
end
Sad = Sad./(madd + 1);
spektrM3_2 = 10*log10(fftshift(abs(fft(Sad,xx)).*abs(fft(Sad,xx)))./xx);

hold on
plot(ff,spektrM3_2,'r')
legend('без накопления','когерентное накопление (100 итераций)')
xlim([0*10^7 3*10^7]);
xlabel('f,Гц');
ylabel('FFT,дБ')
grid on


figure(3)
spS3_1 = fft(Sad2,xx);
spektrM3_1 = 10*log10(fftshift(spS3_1.*conj(spS3_1))/length(spS3_1));
spS3_2 = fft(Sad2,xx2);
spektrM3_12 = 10*log10(fftshift(spS3_2.*conj(spS3_2))/length(spS3_2));

hold on
plot(ff,spektrM3_1,'g',ff2,spektrM3_12,'m');
xlim([0*10^7 3*10^7]);
xlabel('f,Гц');
ylabel('FFT,дБ');
title('Спектры при различных RBW')
legend('RBW = 1 кГц', 'RBW = 10 кГц')
grid on

Буду благодарен за помощь.

sandy
Эксперт
Сообщения: 5499
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение sandy » Пн фев 18, 2019 12:27 am

1). Подскажите пожалуйста, правильно ли построены спектры

Это зависит от того, что имеется в виду под словом "спектр". Имеется в виду спектр детерминированного или случайного сигнала?
и верно ли выполнено когерентное накопление сигнала?

Я не понимаю, что имеется в виду под "требуется реализовать когерентное и некогерентное накопление сигнала (для наблюдения "сглаживания" спектра от шумов)". Особенно в "когерентном" варианте.
2). При некогерентном накоплении не учитывается начальная фаза сигнала, поэтому требуется накапливать квадраты отсчётов смеси сигнал+шум.

Может быть, здесь все-таки квадрат модуля спектра имеется в виду? Иначе вообще не понимаю, о чем речь.
а). полоса разрешения (RBW) - это минимальное расстояние между двумя частотными отсчётами в спектре сигнала, и её можно просто определить как RBW = Fd/xx, где Fd - частота дискретизации, xx - количество линий Фурье, используемых для построения сигнала?

Это зависит от того, что за спектроанализатор (какого типа) вам нужно смоделировать.
б). с увеличением полосы разрешения (RBW) спектр становится более изрезанным? Опять же, если нет, то подскажите, какие изменения должны наблюдаться в спектре сигнала при расширении этой полосы?

Нет, конечно. Уже из названия параметра следует, что при увеличении RBW расширяются частотные пики и сглаживаются мелкие детали спектра.
С уважением

Александр Сергиенко

aldibale
Пользователь
Сообщения: 9
Зарегистрирован: Сб фев 16, 2019 4:52 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение aldibale » Пн фев 18, 2019 1:04 am

Я имею в виду, правильно ли у меня построены для начала спектры ОФМ-2 сигнала и спектр смеси сигнала с шумом? Скорее всего, требуется построить их спектральную плотность мощности. Знаю, что вообще говоря "спектр" и "СПМ" не одно и то же, просто использую первый термин для краткости.
Насчёт сигналов - не понимаю, зачем знать, какие они. Или Вы имеете в виду под детерминированным ОФМ-2 сигнал, а под случайным его смесь с шумом?

Наверное не квадрат модуля спектра...
Есть же два вида накопления: когерентное (с учётом начальной фазы сигнала) и некогерентное (без её учёта). Я хотел узнать, правильно ли я реализовал когерентное накопление, беря отсчёты смеси сигнал+шум на одном периоде сигнала и суммируя их с отсчётами следующего периода и т.д.? (см. цикл в коде)
А в анализаторе спектра производится некогерентное накопление сигнала, т.к. ему неизвестна структура сигнала, т.е. он не знает фазу сигнала и может накапливать сигнал только некогерентно (т.е. не учитывая фазу). По словам преподавателя, для такого накопления нужно копить квадраты отсчётов смеси сигнал+шум, и, скорее всего, сигнал из-под шумов в этом случае не выйдет, т.к. отсчёты сигнала хоть и возводятся в квадрат, но также есть два других множителя, в т.ч. и квадрат отсчётов шума ( (s + n)^2 = s^2 + 2*s*n + n^2) )

Не знаю, какие бывают типы спектроанализаторов. Поясните, как считается RBW для какого-нибудь любого типа, если не трудно.

Я так понимаю, третий график у меня точно неверный. Можете на примере моего спектра построить (или сами с нуля код написать, если Вам не сложно), как должен выглядеть спектр при какой-нибудь узкой полосе RBW и при широкой?

Benjamin
Пользователь
Сообщения: 9
Зарегистрирован: Чт янв 17, 2019 5:54 am

Re: Накопление сигнала, полоса разрешения RBW

Сообщение Benjamin » Вт фев 19, 2019 9:19 am

Вы спрашиваете:
" полоса разрешения (RBW) - это минимальное расстояние между двумя частотными отсчётами в спектре сигнала, и её можно просто определить как RBW = Fd/xx, где Fd - частота дискретизации, xx - количество линий Фурье, используемых для построения сигнала?"

Вы правильно понимаете этот момент, только не надо говорить "полоса".
Например: F=0:Fs/N:Fs-Fs/N - это вектор частоты, соответствующий спектру fft(S)
Здесь Fs - частота дискретизации, N - длина вектора сигнала (число отсчетов в сигнале), Fs/N - частотное разрешение.
Т.е. для увеличения частотного разрешения следует увеличивать длину (N) сигнала. Если сигнал короткий, то можно добавить нули,
например, так S=[s zeros(1, n)], т.е. к исходному сигналу s добавляем нули и получаем удлиненный сигнал S.

aldibale
Пользователь
Сообщения: 9
Зарегистрирован: Сб фев 16, 2019 4:52 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение aldibale » Вт фев 19, 2019 8:19 pm

Почему это не полоса? Меня интересует, как задать в Matlabе именно RBW (resolution bandwidth) - один из параметров спектра, которые можно регулировать в анализаторе спектра при просмотре спектра сигнала на его дисплее. Возможно, просто дело в том, что частотное разрешение и RBW - это разные вещи. Если всё же речь об одном и том же, то вопрос: есть ли разница, добавлять к сигналу для увеличения частотного разрешения (т.е. уменьшения RBW) нули, или, например, следующие периоды этого же сигнала (у меня периодический сигнал с ФМ модуляцией, см. код) ? Или если не трогать длину сигнала, а уменьшать частоту дискретизации - это получается тоже равносильный вариант увеличения частотного разрешения?

sandy
Эксперт
Сообщения: 5499
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение sandy » Ср фев 20, 2019 12:29 am

Насчёт сигналов - не понимаю, зачем знать, какие они.

Потому что понятия "спектр детерминированного сигнала" и "спектр случайного сигнала" - это разные вещи.
Или Вы имеете в виду под детерминированным ОФМ-2 сигнал, а под случайным его смесь с шумом?

Нет, я имею в виду детерминированную и случайную трактовку сигнала. Вас интересует спектр детерминированного ОФМ-сигнала, модулированного данной конкретной последовательностью битов, или спектр случайного ОФМ-сигнала, модулировавнного псевдослучайной M-последовательностью?
Я имею в виду, правильно ли у меня построены для начала спектры ОФМ-2 сигнала и спектр смеси сигнала с шумом?

Если трактовать сигналы как детерминированные, то, наверное, да.
Скорее всего, требуется построить их спектральную плотность мощности.

То есть они вас интересуют все-таки как случайные сигналы? Тогда я рекомендовал бы взглянуть на функцию pwelch.
Я хотел узнать, правильно ли я реализовал когерентное накопление, беря отсчёты смеси сигнал+шум на одном периоде сигнала и суммируя их с отсчётами следующего периода и т.д.?

Если хотелось именно этого, то да.
А в анализаторе спектра производится некогерентное накопление сигнала

В анализаторе спектра не производится накопление исходного сигнала. Никакое - ни когерентное, ни некогерентное. А вот накопление спектра в определенном смысле производится.
и, скорее всего, сигнал из-под шумов в этом случае не выйдет

Что вы все-таки хотите сделать? Исходно вы писали, что "накопление" нужно "для наблюдения "сглаживания" спектра от шумов", а теперь появилось доставание сигнала из-под шума. Так вам с сигналом нужно что-то сделать или анализатор спектра смоделировать?
Не знаю, какие бывают типы спектроанализаторов.

Ну можно же, наверное, хотя бы википедию открыть?
Поясните, как считается RBW для какого-нибудь любого типа, если не трудно.

Функция pwelch, о которой я написал выше, в определенном смысле работает подобно спектроанализатору параллельного типа. В первом приближении для нее можно считать, что RBW = Fs/Nb, где Fs - частота дискретизации сигнала, Nb - длина блоков (в отсчетах), на которые разбивается сигнал при анализе (второй входной параметр функции pwelch).
Если сигнал короткий, то можно добавить нули,

Частотное разрешение от этого не изменится, так как исходных данных не станет больше.
С уважением



Александр Сергиенко

aldibale
Пользователь
Сообщения: 9
Зарегистрирован: Сб фев 16, 2019 4:52 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение aldibale » Ср фев 20, 2019 1:44 am

Спасибо, что откликаетесь, заходите на форум почаще, пожалуйста :)

С детеминированными/случайными сигналами так пока и не понял. Но это не первичный вопрос пока.

Не разобрался пока с цитированием, поэтому использую копипаст.
"Что вы все-таки хотите сделать? "
Я думал, это одно и то же: что доставание сигнала из-под шума как раз и эквивалентно в частотной области сглаживанию его спектра от шумовых составляющих. Поправьте пожалуйста, если я неправильно понимаю.

"Так вам с сигналом нужно что-то сделать или анализатор спектра смоделировать?"
Смоделировать анализатор спектра - в точку. Именно это мне и требуется сделать. Помогите)

Насчёт функции pwelch: вот такая реализация спектров может иметь место? https://vunivere.ru/work86137

"Частотное разрешение от этого не изменится, так как исходных данных не станет больше".
Я тоже так подумал. Я правильно понимаю, что надо добавлять следующие периоды сигнала для увеличения разрешения?

sandy
Эксперт
Сообщения: 5499
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение sandy » Чт фев 21, 2019 12:53 am

Я думал, это одно и то же: что доставание сигнала из-под шума как раз и эквивалентно в частотной области сглаживанию его спектра от шумовых составляющих. Поправьте пожалуйста, если я неправильно понимаю.

"Так вам с сигналом нужно что-то сделать или анализатор спектра смоделировать?"
Смоделировать анализатор спектра - в точку. Именно это мне и требуется сделать. Помогите)

Чтобы смоделировать анализатор спектра, вы должны представлять себе, как он работает. А также знать, какой именно спектроанализатор нужно построить. А то вдруг вам нужен классический анализатор последовательного обзора с генератором качающейся частоты.
Насчёт функции pwelch: вот такая реализация спектров может иметь место?

Ну там используется функция pwelch, про которую я вам писал. Что вы называете "реализацией"?
Я правильно понимаю, что надо добавлять следующие периоды сигнала для увеличения разрешения?

Для периодического сигнала это более или менее бессмысленно, так как один период уже содержит всю информацию о сигнале. Ну станет у вас спектр линейчатым вместо сплошного, и все.
С уважением



Александр Сергиенко

aldibale
Пользователь
Сообщения: 9
Зарегистрирован: Сб фев 16, 2019 4:52 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение aldibale » Чт фев 21, 2019 9:06 pm

Можете предложить хорошую литературу по анализаторам спектра? И какую-нибудь литературу касательно реализации этого или чего-нибудь близкого к этому в Матлабе, или может Вы сами что-то похожее моделировали (любой тип анализатора спектра). В вашей книге "Цифровая обработка сигналов" такого нет, вроде бы.

А как тогда увеличить разрешение при периодическом сигнале? Если новые периоды добавлять бессмысленно, и нули тоже.

sandy
Эксперт
Сообщения: 5499
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение sandy » Пт фев 22, 2019 8:57 pm

Можете предложить хорошую литературу по анализаторам спектра?

Вот, например, учебник нашей кафедры по измерениям, там про все есть. Еще подробнее про анализаторы - не знаю, сфера не моя.
А как тогда увеличить разрешение при периодическом сигнале? Если новые периоды добавлять бессмысленно, и нули тоже.

А что нового вы хотите увидеть при увеличении разрешения? Один период периодического сигнала уже содержит всю информацию о нем. При добавлении нулей вы получите более гладкую картинку, интерполированную на большее число частотных точек. При добавлении дополнительных периодов частотных точек тоже будет больше, но спектр станет линейчатым.
Последний раз редактировалось sandy Сб фев 23, 2019 10:00 pm, всего редактировалось 1 раз.
С уважением



Александр Сергиенко

aldibale
Пользователь
Сообщения: 9
Зарегистрирован: Сб фев 16, 2019 4:52 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение aldibale » Пт фев 22, 2019 10:37 pm

Извиняюсь, а где вот? Никакой ссылки не вижу (

sandy
Эксперт
Сообщения: 5499
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение sandy » Сб фев 23, 2019 10:01 pm

Поправил предыдущее сообщение, теперь ссылка есть.
С уважением



Александр Сергиенко

aldibale
Пользователь
Сообщения: 9
Зарегистрирован: Сб фев 16, 2019 4:52 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение aldibale » Вс фев 24, 2019 11:02 am

Спасибо большое. А касательно именно моделирования анализатора в Matlab есть что-нибудь?

sandy
Эксперт
Сообщения: 5499
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение sandy » Вс фев 24, 2019 6:01 pm

А касательно именно моделирования анализатора в Matlab есть что-нибудь?

Если речь идет о моделировании особенностей конкретного аппаратного устройства, то тема слишком узкая. Но в целом функция pwelch и блок анализатора спектра в Simulink работают так же, как анализатор спектра параллельного типа. Если нужна модель анализатора последовательного типа, то можете попробовать в сети поискать, может, где-нибудь и найдется что-то готовое. Но в такой модели ничего особо сложного нет, можно и самому сделать.
С уважением



Александр Сергиенко

aldibale
Пользователь
Сообщения: 9
Зарегистрирован: Сб фев 16, 2019 4:52 pm

Re: Накопление сигнала, полоса разрешения RBW

Сообщение aldibale » Вт фев 26, 2019 8:44 pm

Мой код хоть чуть-чуть похож на что-то близкое к реальности?
Если нет, то не могли бы Вы, пожалуйста, выделить время и всё-таки помочь смоделировать анализатор спектра, тем более, если ничего сложного нет?