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

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

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

Оцените спектр мощности Используя спектр Анализатор

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

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

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

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

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

БлокИзменения параметраЦель блока
Sine Wave 1
  • Frequency к 5 000

  • Sample time к 1/44100

  • Samples per frame к 1 024

Сигнал синусоиды с частотой на уровне 5 000 Гц

Sine Wave 2
  • Frequency к 10 000

  • Phase offset (rad) к 10

  • Sample time к 1/44100

  • Samples per frame к 1 024

Сигнал синусоиды с частотой на уровне 10 000 Гц

Random Source
  • Source type к Gaussian

  • Variance к 1e-4

  • Sample time к 1/44100

  • Samples per frame к 1 024

Блок 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, чтобы просмотреть спектр мощности синусоидального сигнала. Существует два тона на частотах 5 000 Гц и 10 000 Гц, которые соответствуют этим двум частотам во входе.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Преобразуйте Мощность в ваттах в dBW и dBm

Степень в dBW дают:

PdBW=10log10(powerinwatt/1watt)

Степень в dBm дают:

PdBm=10log10(powerinwatt/1milliwatt)

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

PWatts=A2/2PWatts=1/2

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

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

Здесь, степень равняется 26.9897 dBm. Чтобы подтвердить это значение с пиковым средством поиска, нажмите Tools> Measurements> Peak Finder.

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

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

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

Преобразуйте Мощность в ваттах в 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.

Преобразуйте Мощность в dBm к RMS в Vrms

Степень в dBm дают:

PdBm=10log10(powerinwatt/1milliwatt)

Напряжением в RMS дают:

Vrms=10PdBm/20103

От предыдущего примера PdBm равняется 26.9897 dBm. 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. В окне Style выберите Plot type как Stairs.

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

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

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

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

Преобразуйте x- ось, чтобы представлять частоту

По умолчанию блок Array Plot отображает данные о PS на графике относительно количества отсчетов на систему координат. Число точек на оси X равняется длине входного кадра. Спектр анализатор отображает данные о PS на графике относительно частоты. Для одностороннего спектра частота варьируется по области значений [0 Фс/2]. Для двухстороннего спектра частота варьируется по области значений [-Fs/2 Фс/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.

Живая обработка

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

Похожие темы