Спектр степени (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 |
| Синусоидный сигнал с частотой 5000 Гц |
| Sine Wave 2 |
| Синусоидный сигнал с частотой 10000 Гц |
| Random Source |
| Random Source блок генерирует сигнал случайного шума со свойствами, заданными в диалоговом окне блока |
| Add | List of signs с +++. | Add блок добавляет случайный шум к входному сигналу |
| Spectrum Analyzer | Щелкните значок Spectrum Settings.
Щелкните значок Configuration Properties | 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 определяется:
Степень dBm определяется:
Для сигнала синусоиды с амплитудой 1 В, степень одностороннего спектра в Watts определяется:
В этом примере эта степень равна 0,5 Вт. Соответствующая степень в дБм задается:
Здесь степень равняется 26,9897 дБм. Чтобы подтвердить это значение с помощью peak finder, нажмите Tools > Measurements > Peak Finder.
Для сигнала белого шума спектр плоский для всех частот. Спектральный анализатор в этом примере показывает односторонний спектр в области значений [0 Fs/2]. Для сигнала белого шума с отклонением 1e-4 степень на единичную полосу пропускания (Punitbandwidth) равна 1e-4. Общая степень белого шума в ваттах во всей частотной области значений определяется:
Количество интервалов частоты является отношением общей полосы пропускания к RBW. Для одностороннего спектра общая полоса пропускания составляет половину частоты дискретизации. RBW в этом примере составляет 21,53 Гц. При этих значениях общая степень белого шума в ваттах составляет 0,1024 Вт. В дБм степени белого шума может быть вычислена с помощью 10 * log10 (0,1024/10 ^ -3), что равняется 20,103 дБм.
Если вы задаете спектральные модули dBFS и установите полную шкалу (FullScaleSource) к Auto, степень в dBFS вычисляется как:
где:
Pwatts - степень в ваттах
Для двойных и плавающих сигналов Full_Scale является максимальным значением входного сигнала.
Для сигналов с фиксированной точкой или целого числа Full_Scale является максимальным значением, которое может быть представлено.
Если вы задаете ручную полную шкалу (установите FullScaleSource на Property), степень в dBFS определяется:
Где FS - полный масштабный коэффициент, заданный в FullScale свойство.
Для сигнала синусоиды с амплитудой 1 В, степень одностороннего спектра в Watts определяется:
В этом примере эта степень равна 0,5 Вт, и максимальный входной сигнал для синусоиды равен 1 В. Соответствующая степень в dBFS задается:
Здесь степень равна -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
Степень dBm определяется:
Напряжение в СРК определяется:
Из предыдущего примера PdBm равен 26,9897 дБм. Vrms вычисляется как
что равняется 0,7071.
Чтобы подтвердить это значение:
Измените Type на RMS.
Откройте пик поиска, нажав Tools > Measurements > Peak Finder.
В качестве альтернативы можно вычислить спектр степени сигнала с помощью блока 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 |
| Вычисляет спектр степени входного сигнала с помощью подхода банка фильтров. |
| Array Plot | Нажмите View и
| Отображает данные спектра степени. |
Спектр, отображаемый в блоке 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.