Оцените спектр степени в Simulink

Спектр степени (PS) сигнала временной области является распределением степеней, содержащихся в сигнале по частоте, на основе конечного набора данных. Представление сигнала в частотном диапазоне часто легче анализировать, чем представление во временной области. Многие приложения обработки сигналов, такие как подавление шума и система идентификации, основаны на частотно-специфических модификациях сигналов. Цель спектральной оценки степени состоит в том, чтобы оценить спектр степени сигнала из последовательности временных выборок. В зависимости от того, что известно о сигнале, методы оценки могут включать параметрические или непараметрические подходы и могут быть основаны на анализе во временной или частотной областях. Для примера общий параметрический метод включает подбор кривой наблюдений к авторегрессивной модели. Общим непараметрическим методом является периодограмма. Спектр степени оценивается с использованием методов преобразования Фурье, таких как метод Уэлча и метод банка фильтров. Для сигналов с относительно малой длиной подход группы фильтров производит спектральную оценку с более высоким разрешением, более точным шумовым полом и более точными, чем метод Уэлча, peaks с низкими или без спектральных утечек. Эти преимущества заключаются в увеличении расчетов и замедлении отслеживания. Для получения дополнительной информации об этих методах см. «Спектральный анализ». Можно также использовать другие методы, такие как метод максимальной энтропии.

В Simulink®можно выполнить спектральный анализ динамического сигнала в реальном времени с помощью блока Spectrum Analyzer. Вы можете просмотреть спектральные данные в анализаторе спектра. Чтобы получить последние спектральные данные для дальнейшей обработки, создайте SpectrumAnalyzerConfiguration и запустите getSpectrumData функция на этом объекте. Также можно использовать блок Spectrum Estimator из dspspect3 библиотека для вычисления спектра степени и Array Plot блок для просмотра спектра.

Оцените Степень спектр с помощью анализатора спектра

Вы можете просмотреть спектр степени (PS) сигнала, используя блок Spectrum Analyzer. PS вычисляется в реальном времени и изменяется с входным сигналом, и с изменениями в свойствах блока Spectrum Analyzer. Можно изменить динамику входного сигнала и увидеть, какой эффект эти изменения оказывают на спектр сигнала в реальном времени.

Модель ex_psd_sa подает сигнал шумной синусоиды на блок Spectrum Analyzer. Сигнал синусоиды представляет собой сумму двух синусоидов: один на частоте 5000 Гц и другой на частоте 10000 Гц. Шум на входе Гауссов с нулем среднего и стандартным отклонением 0,01.

Откройте и осмотрите модель

Чтобы открыть модель, введите ex_psd_sa в MATLAB® командная строка.

Вот настройки блоков в модели.

БлокИзменения параметровНазначение блока
Sine Wave 1
  • Frequency до 5000

  • Sample time на 1/44100

  • Samples per frame - 1024

Синусоидный сигнал с частотой 5000 Гц

Sine Wave 2
  • Frequency до 10000

  • Phase offset (rad) 10

  • Sample time на 1/44100

  • Samples per frame - 1024

Синусоидный сигнал с частотой 10000 Гц

Random Source
  • Source type с Gaussian

  • Variance с 1e-4

  • Sample time на 1/44100

  • Samples per frame - 1024

Random Source блок генерирует сигнал случайного шума со свойствами, заданными в диалоговом окне блока
AddList of signs с +++.Add блок добавляет случайный шум к входному сигналу
Spectrum Analyzer

Щелкните значок Spectrum Settings. Справа появится панель.

  • На панели Main options, в разделе Type, выберите Power. В группе Method выберите Filter bank.

  • На панели Trace options снимите флажок Two-sided spectrum. Это показывает только действительную половину спектра.

  • При необходимости установите флажки Max-hold trace и Min-hold trace.

Щелкните значок Configuration Properties и установите Y-limits (Minimum) следующим образом -100 и Y-limits (Maximum) как 40.

Spectrum Analyzer блок показывает плотность спектральной степени сигнала

Играйте в модель. Откройте блок Spectrum Analyzer, чтобы просмотреть степень спектр сигнала синусоиды. Существует два тона на частотах 5000 Гц и 10000 Гц, которые соответствуют двум частотам на входе.

RBW, пропускная способность разрешения является минимальной полосой частот, которая может быть разрешена анализатором спектра. По умолчанию RBW (Hz) задано значение Auto. В Auto mode, RBW - отношение диапазона частот к 1024. В двустороннем спектре это значение Fs/1024, в то время как в одностороннем спектре это (Fs/2 )/1024. Спектральный анализатор в ex_psd_sa сконфигурировано для отображения одностороннего спектра. Следовательно, RBW составляет (44100/2 )/1024 или 21,53 Гц.

Используя это значение RBW, количество выборок входов, используемых для вычисления одного спектрального обновления, задается Nsamples = Fs/RBW, что составляет 44100/21.53 или 2048.

RBW, рассчитанный в этом режиме, дает хорошее частотное разрешение.

Чтобы различать две частоты на отображении, расстояние между двумя частотами должно быть по крайней мере RBW. В этом примере расстояние между двумя пиками составляет 5000 Гц, что больше, чем RBW. Следовательно, вы видите peaks отчетливо. Измените частоту второй синусоиды с 10000 Гц до 5015 Гц. Различие между двумя частотами меньше, чем RBW.

При масштабировании можно увидеть, что peaks не различимы.

Чтобы увеличить частотное разрешение, уменьшите RBW до 1 Гц и запустите симуляцию.

При масштабировании два пика, которые разнесены на 15 Гц, теперь различимы

Когда вы увеличиваете разрешение частоты, разрешение по времени уменьшается. Чтобы поддерживать хороший баланс между разрешением частоты и временным разрешением, измените RBW (Hz) на Auto.

Изменение входного сигнала

Когда вы изменяете динамику входного сигнала во время симуляции, спектр степени сигнала также изменяется в реальном времени. Пока симуляция выполняется, измените Frequency блока Sine Wave 1 на 8000 и нажмите Apply. Второй тон в выходе спектрального анализатора смещается к 8000 Гц, и вы можете увидеть изменение в реальном времени.

Изменение настроек анализатора спектра

Когда вы меняете настройки в блоке Spectrum Analyzer, эффект можно увидеть на спектральных данных в реальном времени.

Когда модель будет бежать в Trace панели опций Spectrum Analyzer блок, изменитесь Scale на Log. Теперь PS отображается по шкале журнала.

Для получения дополнительной информации о том, как настройки Spectrum Analyzer влияют на данные спектра степени, смотрите раздел 'Алгоритмы' блока Spectrum Analyzer страницы с описанием.

Преобразуйте степень между модулями

Спектральный анализатор предоставляет три модулей для определения спектральной плотности степени: Watts/Hz, dBm/Hz, и dBW/Hz. Соответствующие модули степени Watts, dBm, и dBW. Для электротехнических приложений, вы также можете просмотреть RMS вашего сигнала в Vrms или dBV. Тип спектра по умолчанию Power in dBm.

Преобразуйте степень в ваттах в дБВ и дБм

Степень dBW определяется:

PdBW=10log10(powerinwatt/1watt)

Степень dBm определяется:

PdBm=10log10(powerinwatt/1milliwatt)

Для сигнала синусоиды с амплитудой 1 В, степень одностороннего спектра в Watts определяется:

PWatts=A2/2PWatts=1/2

В этом примере эта степень равна 0,5 Вт. Соответствующая степень в дБм задается:

PdBm=10log10(powerinwatt/1milliwatt)PdBm=10log10(0.5/103)

Здесь степень равняется 26,9897 дБм. Чтобы подтвердить это значение с помощью peak finder, нажмите Tools > Measurements > Peak Finder.

Для сигнала белого шума спектр плоский для всех частот. Спектральный анализатор в этом примере показывает односторонний спектр в области значений [0 Fs/2]. Для сигнала белого шума с отклонением 1e-4 степень на единичную полосу пропускания (Punitbandwidth) равна 1e-4. Общая степень белого шума в ваттах во всей частотной области значений определяется:

Pwhitenoise=Punitbandwidth*numberoffrequencybins,Pwhitenoise=(104)*(Fs/2RBW),Pwhitenoise=(104)*(2205021.53)

Количество интервалов частоты является отношением общей полосы пропускания к RBW. Для одностороннего спектра общая полоса пропускания составляет половину частоты дискретизации. RBW в этом примере составляет 21,53 Гц. При этих значениях общая степень белого шума в ваттах составляет 0,1024 Вт. В дБм степени белого шума может быть вычислена с помощью 10 * log10 (0,1024/10 ^ -3), что равняется 20,103 дБм.

Преобразуйте степень в ваттах в dBFS

Если вы задаете спектральные модули dBFS и установите полную шкалу (FullScaleSource) к Auto, степень в dBFS вычисляется как:

PdBFS=20log10(Pwatts/Full_Scale)

где:

  • Pwatts - степень в ваттах

  • Для двойных и плавающих сигналов Full_Scale является максимальным значением входного сигнала.

  • Для сигналов с фиксированной точкой или целого числа Full_Scale является максимальным значением, которое может быть представлено.

Если вы задаете ручную полную шкалу (установите FullScaleSource на Property), степень в dBFS определяется:

PFS=20log10(Pwatts/FS)

Где FS - полный масштабный коэффициент, заданный в FullScale свойство.

Для сигнала синусоиды с амплитудой 1 В, степень одностороннего спектра в Watts определяется:

PWatts=A2/2PWatts=1/2

В этом примере эта степень равна 0,5 Вт, и максимальный входной сигнал для синусоиды равен 1 В. Соответствующая степень в dBFS задается:

PFS=20log10(1/2/1)

Здесь степень равна -3.0103. Чтобы подтвердить это значение в анализаторе спектра, запустите следующие команды:

Fs = 1000;  % Sampling frequency
sinef = dsp.SineWave('SampleRate',Fs,'SamplesPerFrame',100);
scope = dsp.SpectrumAnalyzer('SampleRate',Fs,...
   'SpectrumUnits','dBFS','PlotAsTwoSidedSpectrum',false)
%%
for ii = 1:100000
xsine = sinef();
scope(xsine)
end
Затем щелкните Tools > Measurements > Peak Finder.

Преобразуйте степень в дБм в RMS в Vrms

Степень dBm определяется:

PdBm=10log10(powerinwatt/1milliwatt)

Напряжение в СРК определяется:

Vrms=10PdBm/20103

Из предыдущего примера PdBm равен 26,9897 дБм. Vrms вычисляется как

Vrms=1026.9897/200.001

что равняется 0,7071.

Чтобы подтвердить это значение:

  1. Измените Type на RMS.

  2. Откройте пик поиска, нажав Tools > Measurements > Peak Finder.

Оценка спектра степени с использованием блока Spectrum Estimator

В качестве альтернативы можно вычислить спектр степени сигнала с помощью блока Spectrum Estimator в dspspect3 библиотека. Можно получить выход оценки спектра и сохранить данные для дальнейшей обработки.

Замените Spectrum Analyzer блок в ex_psd_sa с блоком Spectrum Estimator, за которым следует блок Array Plot. Чтобы просмотреть модель, введите ex_psd_estimatorblock в командной строке MATLAB. В сложение, для доступа к данным спектральной оценки в MATLAB, соедините блок To Workspace (Simulink) с выходом блока Spectrum Estimator. Вот изменения в настройках блока Spectrum Estimator и блока Array Plot.

БлокИзменения параметровНазначение блока
Spectrum Estimator

  • Frequency resolution method с Number of frequency bands.

  • Frequency range с One-sided.

Вычисляет спектр степени входного сигнала с помощью подхода банка фильтров.
Array Plot

Нажмите View и

  • выберите Style. В окне «Стиль» выберите Plot type следующим образом Stairs.

  • выберите Configuration Properties. В окне Свойства, на вкладке Main, установите Sample increment как 44.1/1024. На вкладке Display измените X-label на Frequency (kHz), Y-label к Power (dBm). Для получения дополнительной информации смотрите раздел 'Convert x-ось для представления частоты '. В сложение установите Y-limits (Minimum) равным -100 и Y-limits (Maximum) к 40.

Отображает данные спектра степени.

Спектр, отображаемый в блоке Array Plot, похож на спектр, наблюдаемый в блоке Spectrum Analyzer в ex_psd_sa.

Подход банка фильтров создает peaks, которые имеют очень минимальные спектральные утечки.

Преобразование x-ось для представления частоты

По умолчанию блок Array Plot строит графики данных PS относительно количества выборок на систему координат. Значение числа точек на оси X равняется длине входного кадра. Спектральный анализатор строит графики данных PS относительно частоты. Для одностороннего спектра частота изменяется в области значений [0 Fs/2]. Для двустороннего спектра частота изменяется в области значений [-Fs/2 Fs/2]. Для преобразования x-ось графика массива от основанного на выборке до основанного на частоте, выполните следующее:

  • Щелкните значок Configuration Properties. На Main вкладке установите Sample increment значение Fs/FrameLength.

  • Для одностороннего спектра установите X-offset равным 0.

  • Для двустороннего спектра установите X-offset равным -Fs/2.

В этом примере спектр является односторонним, и, следовательно, Sample increment и X-offset установлены на 44100/1024 и 0, соответственно. Чтобы задать частоту в kHz, установите Sample increment равным 44.1/1024.

Live Обработка

Выход блока Spectrum Estimator содержит спектральные данные и доступен для дальнейшей обработки. Данные могут быть обработаны в реальном времени или могут быть сохранены в рабочей области с помощью блока To Workspace. Этот пример записывает спектральные данные в переменную рабочей области Estimate.

Похожие темы