Спектр степени (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 и установите Y-limits (Minimum) следующим образом | 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
.