Объект EngeeDSP.spectrumAnalyzer отображает частотный спектр сигналов во временной области.
Спектроанализатор представляет частотный спектр в виде спектра или спектрограммы.
Объект выполняет расчет спектра, используя метод банка фильтров и метод усредненных модифицированных периодограмм Уэлча. Подробнее см. в разделе Алгоритмы.
Спектроанализатор может отображать спектр мощности сигнала в трех единицах: Вт, дБм и дБВт. Подробнее о преобразовании мощности между этими тремя единицами см. в разделе Перевод мощности из одной единицы измерения в другую.
Чтобы создать объект спектроанализатора, выполните следующие действия:
Создайте объект EngeeDSP.spectrumAnalyzer и установите его свойства.
Вызовите объект с аргументами, как если бы это была функция.
Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.
Синтаксис
Создание
scope = EngeeDSP.spectrumAnalyzer(name = value) — создает системный объект EngeeDSP.spectrumAnalyzer с указанным свойством Name, установленным на указанное значение Value.
Вы можете указать дополнительные аргументы в виде пары имя-значение в любом порядке (Name1=Value1,…,NameN=ValueN).
Использование
scope(signal) — отображает частотный спектр входного сигнала signal во временной области в анализаторе спектра.
scope(signal)
scope(signal1,signal2,…,signalN) — отображает частотный спектр нескольких входных сигналов signal1,signal2,…,signalN во временной области в анализаторе спектра. Каждый сигнал интерпретируется как отдельный канал.
scope(signal1,signal2,signal3)
Аргументы
Входные аргументы
signal — входной сигнал
скаляр | вектор | матрица
Details
Входной сигнал или сигналы для визуализации, заданные как скаляр, вектор или матрица.
Количество каналов в каждом сигнале может быть разным, но размер кадра каждого сигнала должен быть одинаковым.
Пределы оси задаются в виде кортежа из вещественных чисел. Значение по умолчанию (-80, 20).
#CenterFrequency —
центральная частота для расчета спектра
Вещественное число
Details
Центр частотного диапазона, в котором вычисляется и строится спектр, задается как вещественный скаляр в Гц. Общий диапазон частот, определяемый Span и этим свойством, должен находиться в пределах частотного интервала Найквиста.
Зависимости
Чтобы использовать это свойство, укажите FrequencySpan = "span-and-center-frequency".
#TimeSpanSource —
источник временного интервала спектрограммы
Строка
Details
Источник временного интервала спектрограммы. Возможные значения:
"auto" — спектрограмма отображает 100 линий спектрограммы в любой момент времени.
"property" — спектрограмма использует длительность в секундах, указанную в свойстве TimeSpan.
Указанный временной интервал должен быть как минимум в два раза больше длительности количества отсчетов, необходимых для обновления спектра.
#FrequencySpan —
режим частотного диапазона
Строка
#FrequencyScale —
масштаб для отображения частоты
Строка
Details
Масштаб для отображения частоты. Возможные значения:
"linear" (по умолчанию) — использовать линейную шкалу для отображения частот по оси ;
"log" — использовать логарифмическую шкалу для отображения частот по оси .
Этому свойству нельзя присвоить значение "log", если значение PlotAsTwoSidedSpectrum = true.
#FrequencyResolutionMethod —
метод частотного разрешения спектроанализатора
Строка
Details
Метод частотного разрешения спектроанализатора. Возможные значения:
"rbw" (по умолчанию) — свойства RBWSource и RBW управляют частотным разрешением (в Гц) анализатора;
"num-frequency-bands" — свойства FFTLengthSource и FFTLength управляют частотным разрешением. Это значение можно установить только при Method = "filter-bank";
"window-length" — свойство WindowLength управляет частотным разрешением. Это значение можно установить только при Method = "welch".
"spectrum" (по умолчанию) — отображение частотного спектра сигналов;
"spectrogram" — отображение спектрограммы сигналов. Спектрограмма отображает изменение частотного состава сигнала во времени. Каждая линия спектрограммы представляет собой одну периодограмму;
"spectrum-and-spectrogram"— одновременное отображение спектра и спектрограммы.
true (по умолчанию) — вычислить и построить двухсторонний спектр. Если входной сигнал комплексный, необходимо установить это свойство в значение true;
false — вычислить и построить односторонний спектр. Если это свойство имеет значение false, входной сигнал должен иметь вещественное значение.
Если это свойство имеет значение false, то спектроанализатор использует наложение спектров. Значения по оси в два раза превышают амплитуду, которая была бы, если бы это свойство имело значение true, за исключением 0 и частоты Найквиста. Односторонняя спектральная плотность мощности (СПМ) содержит полную мощность сигнала в диапазоне частот от постоянного тока до половины частоты Найквиста.
#OverlapPercent —
процент перекрытия отсчетов между предыдущим и следующим сегментом данных
Вещественное число
Details
Процент перекрытия между предыдущим и текущим буферизованными сегментами данных, указанный как скаляр в диапазоне [0,100). Перекрытие создает сегмент окна, который объект использует для вычисления спектра.
Зависимости
Чтобы использовать это свойство, укажите Method = "welch".
Временной интервал отображения спектрограммы в секундах, заданный как положительный скаляр. Необходимо установить временной интервал как минимум вдвое больше продолжительности количества отсчетов, необходимых для обновления спектра.
Зависимости
Чтобы использовать это свойство, укажите ViewType = "spectrogram" или ViewType = "spectrum-and-spectrogram" и TimeSpanSource = "property".
Полоса разрешения (resolution bandwidth, RBW) в Гц, заданная как положительный скаляр. Укажите значение, чтобы обеспечить наличие как минимум двух интервалов RBW в указанном частотном диапазоне. Отношение общего диапазона к RBW удовлетворяет этому условию:
Значение должно быть меньше, чем половина частотного диапазона, заданного через параметр FrequencySpan.
RBW управляет спектральным разрешением отображаемого сигнала. Значение RBW определяет интервал между частотами, которые можно различить. Меньшее значение обеспечивает более высокое спектральное разрешение и снижает уровень шума. То есть спектроанализатор может различать частоты, расположенные ближе друг к другу. Однако это приводит к увеличению времени развертки.
#AveragingMethod —
метод усреднения спектра
Строка
Details
Метод усреднения спектра. Возможные значения:
"vbw" — метод видеополосы. Объект использует фильтр нижних частот для сглаживания кривой и снижения шума. Используйте свойства VBWSource и VBW для указания значения видеополосы.
"exponential" — взвешенное среднее значение отсчетов. Объект вычисляет среднее значение по отсчетам, взвешенным по экспоненциально убывающему коэффициенту забывания. Используйте свойство ForgettingFactor для указания взвешенного коэффициента забывания.
"power-density" — спектральная плотность мощности. Спектральная плотность мощности — это квадрат амплитуды спектра, нормализованный к полосе пропускания 1 Гц;
"rms" — среднеквадратичное значение. Используйте эту опцию для просмотра частоты сигналов напряжения или тока.
При присвоении нового значения, меняется значение SpectrumUnits:
при "power" на "dBm";
при "power-density" на "dBm/Hz";
при "rms" на "Vrms".
#StopFrequency —
конечная частота для расчета спектра
Вещественное число
Details
Конечная частота в частотном интервале, в котором спектроанализатор вычисляет и строит спектр, задается как вещественный скаляр в Гц. Общий диапазон, определяемый этим свойством и свойством StartFrequency, должен находиться в пределах частотного интервала Найквиста.
Зависимости
Чтобы использовать это свойство, укажите FrequencySpan = "start-and-stop-frequencies".
#SampleRate —
частота дискретизации входного сигнала
Вещественное число
Details
Частота дискретизации входного сигнала в Гц, заданная как положительный скаляр.
#Span —
диапазон частот, в котором рассчитывается спектр
Вещественное число
Details
Диапазон частот, в котором спектроанализатор вычисляет и строит спектр, задается как положительный скаляр в Гц. Общий диапазон частот, определяемый CenterFrequency и этим свойством, должен находиться в пределах частотного интервала Найквиста.
Зависимости
Чтобы использовать это свойство, укажите FrequencySpan = "span-and-center-frequency".
#TimeResolutionSource —
источник временного разрешения каждой линии спектрограммы
Строка
Details
Источник временного разрешения каждой линии спектрограммы. Возможные значения:
"auto" (по умолчанию);
"property".
Если для параметров RBWSource и TimeResolutionSource задано значение "auto", то RBW устанавливается таким образом, чтобы в одном частотном диапазоне содержалось 1024 интервала RBW. Временное разрешение устанавливается равным 1/RBW.
Если для RBWSource задано значение "auto", а для TimeResolutionSource — значение "property", то основным элементом управления становится временное разрешение, а RBW устанавливается равным 1/TimeResolution Гц.
Если для RBWSource задано значение "property", а для TimeResolutionSource — значение "auto", то основным элементом управления становится RBW, а временное разрешение устанавливается равным 1/RBW с.
Если для RBWSource и TimeResolutionSource задано значение "property", то заданное значение временного разрешения должно быть равно или превышать минимально достижимое временное разрешение, определяемое отношением 1/RBW. Несколько расчетов спектра объединяются в одну линию спектрограммы для получения необходимого временного разрешения.
Зависимости
Чтобы использовать это свойство, укажите ViewType = "spectrogram" или ViewType = "spectrum-and-spectrogram".
#ReferenceLoad —
опорная нагрузка для вычисления уровней мощности
Вещественное число
Details
Нагрузка, которую спектроанализатор использует в качестве опорной для вычисления уровней мощности, указывается как положительный скаляр в Ом.
"filter-bank" (по умолчанию) — использование банка фильтров для расчета спектра мощности. По сравнению с методом Уэлча, этот метод имеет более низкий уровень шума, лучшее разрешение по частоте, меньшее растекание спектра и требует меньшего количества отсчетов для обновления. Подробнее см. Расчет спектра — банк фильтров.
"welch" — использование метода усредненных модифицированных периодограмм Уэлча. Подробнее см. Расчет спектра — метод Уэлча.
Длина окна в отсчетах, которую объект использует для расчета спектра, заданная как целое число больше 2. Это свойство управляет разрешением по частоте.
#TimeResolution —
временное разрешение каждой линии спектрограммы
Вещественное число
Details
Временное разрешение каждой линии спектрограммы в секундах, заданное как положительный скаляр.
Зависимости
Чтобы использовать это свойство, укажите ViewType = "spectrogram" или ViewType = "spectrum-and-spectrogram" и TimeResolutionSource = "property".
#StartFrequency —
начальная частота для расчета спектра
Вещественное число
Details
Начальная частота в частотном интервале, в котором спектроанализатор вычисляет и строит спектр, задается как вещественный скаляр в Гц. Общий диапазон, определяемый этим свойством и StopFrequency, должен находиться в пределах частотного интервала Найквиста.
Зависимости
Чтобы использовать это свойство, укажите FrequencySpan = "start-and-stop-frequencies".
#SidelobeAttenuation —
затухание боковых лепестков
Вещественное число
Details
Затухание боковых лепестков окна в децибелах (дБ), указывается как положительная скалярная величина, большая или равная 45.
Зависимости
Чтобы использовать это свойство, укажите Window = "chebyshev" или Window = "kaiser".
#Window —
оконная функция, применяющаяся к накопленным данным
Строка
Details
Оконная функция, применяющаяся к накопленным данным. Возможные значения:
Перевод мощности из одной единицы измерения в другую
Details
В анализаторе спектра предусмотрены три единицы измерения спектральной плотности мощности: Вт/Гц, дБм/Гц и дБВт/Гц.
Соответствующие единицы измерения мощности — Вт, дБм и дБВт.
В электротехнических приложениях также можно просматривать среднеквадратичное значение сигнала в В (среднеквадратичное значение), дБмкВ или дБВ. Тип спектра по умолчанию — мощность в дБм.
Перевод мощности из Вт в дБВт и дБм
Мощность в дБВт определяется по формуле:
Мощность в дБм определяется по формуле:
Для синусоидального сигнала амплитудой 1 В мощность одностороннего спектра в Вт определяется по формуле:
Соответствующая мощность в дБм рассчитывается по формуле:
Для сигнала белого шума спектр плоский для всех частот.
Рассмотрим сигнал белого шума с дисперсией 1e-4.
Таким образом, мощность на единицу полосы пропускания () равна 1e-4.
Для одностороннего спектра в диапазоне общая мощность белого шума в Вт определяется по формуле:
где
— это частота дискретизации входного сигнала;
— это отношение общей полосы пропускания к разрешению по полосе пропускания ().
Для одностороннего спектра общая полоса пропускания составляет половину частоты дискретизации.
Рассмотрим частоту дискретизации 44100 Гц и разрешение по полосе пропускания 21.53 Гц.
При этих значениях общая мощность белого шума в Вт составляет 0.1024 Вт.
Мощность белого шума в дБм можно рассчитать по формуле:
Перевод мощности из Вт в дБ полной шкалы
Если вы установите спектральные единицы в dBFS и полную шкалу (FullScaleSource) в режим "auto", то мощность в dBFS будет вычисляться следующим образом:
где
— мощность в Вт;
для сигналов с двойной точностью и плавающей точкой — это максимальное значение входного сигнала;
для сигналов с фиксированной точкой или целых чисел — это максимальное значение, которое может быть представлено.
Если вы установите полную шкалу (FullScaleSource) в режим "property", то мощность в dBFS будет вычисляться следующим образом:
Для синусоидального сигнала амплитудой 1 В мощность одностороннего спектра в Вт определяется по формуле:
Соответствующая мощность в дБ полной шкалы рассчитывается по формуле:
Перевод мощности из дБм в среднеквадратичное значение в В
Мощность в дБм определяется по формуле:
Напряжение (среднеквадратичное значение) вычисляется по формуле:
В предыдущем примере равен 26.9897 дБм.
Значение рассчитывается как:
Алгоритмы
Расчет спектра — банк фильтров
Details
Если для Method установить значение "filter-bank", то спектроанализатор будет использовать банк фильтров для расчета спектра мощности.
Банк фильтров разделяет широкополосный входной сигнал с частотой дискретизации на несколько узкополосных сигналов с частотой дискретизации .
Переменная представляет собой количество частотных полос в банке фильтров.
В анализаторе спектра равно количеству точек данных, необходимых для достижения заданного значения полосы разрешения (RBW) или 1024, в зависимости от того, какое значение больше.
После того как спектроанализатор разделяет широкополосный входной сигнал на несколько узких полос, он вычисляет мощность в каждой узкой полосе частот, используя следующее уравнение:
где каждое значение представляет собой расчет мощности в узкой полосе частот, а — длина узкополосного сигнала для .
Значения мощности во всех узких полосах частот (обозначаемых ) образуют вектор :
Спектроанализатор усредняет текущий вектор с предыдущими векторами , используя один из методов скользящего усреднения: по видеополосе или экспоненциальное взвешивание.
Результат операции усреднения формирует вектор расчета спектра.
Подробнее о методах усреднения см. в разделе Метод усреднения.
Спектроанализатор использует значение RBW (Гц) или количество частотных полос для определения длины входного кадра.
"auto" — спектроанализатор определяет подходящую полосу разрешения, чтобы обеспечить наличие 1024 интервалов разрешения по полосе пропускания в заданном диапазоне частот.
В этом случае спектроанализатор рассчитывает RBW по формуле:
"property" — спектроанализатор рассчитывает количество отсчетов , используя формулу:
где
— частота дискретизации входного сигнала, заданная свойством SampleRate в Гц;
— указанное в RBW значение полосы разрешения, его должно быть таким, чтобы в указанном диапазоне частот находилось не менее двух интервалов RBW.
Отношение общего диапазона к RBW должно быть больше двух:
;
— диапазон, в котором спектроанализатор вычисляет и строит спектр.
Если указано FrequencyResolutionMethod = "num-frequency-bands", то результирующая ширина полосы разрешения будет равна:
Расчет спектра — метод Уэлча
Details
Если для Method установить значение "welch", то расчет спектра мощности представляет собой усредненные модифицированные периодограммы.
Алгоритм спектроанализатора состоит из следующих шагов:
Буферизует входные данные в сегменты данных, состоящие из точек.
Каждый сегмент данных разделяется на перекрывающихся сегментов данных, каждый длиной , перекрывающихся на точек.
Сегменты данных можно представить следующим образом:
Если , то перекрытие составляет 50%.
Если , то перекрытие составляет 0%.
Применяет окно к каждому из перекрывающихся сегментов данных во временной области.
Если в качестве метода разрешения FrequencyResolutionMethod выбрано значение "window-length", то можно указать длину окна данных с помощью свойства WindowLength.
Если в качестве метода разрешения FrequencyResolutionMethod выбрано значение "rbw", то алгоритм определяет длину окна данных, используя следующее уравнение: .
Затем он разбивает входной сигнал на несколько сегментов данных, обработанных с помощью окна.
Большинство оконных функций оказывают большее влияние на данные в центре сегмента, чем на данные на краях, что приводит к потере информации.
Чтобы уменьшить эту потерю, отдельные сегменты данных обычно перекрываются во времени.
Для каждого сегмента, обработанного с помощью окна, вычисляется периодограмма путем вычисления дискретного преобразования Фурье.
Затем вычисляется квадрат модуля результата и делится на :
где — коэффициент нормализации для мощности в оконной функции и определяется как:
Спектроанализатор вычисляет и строит спектр мощности, спектральную плотность мощности и среднеквадратичное значение, используя модифицированный метод расчета периодограммы.
Чтобы определить расчет спектра мощности для метода Уэлча, спектроанализатор усредняет результаты периодограмм для последних сегментов данных.
Усреднение уменьшает дисперсию по сравнению с исходным -точечным сегментом данных.
Подробнее о методах усреднения см. в разделе Метод усреднения.
Спектроанализатор вычисляет спектральную плотность мощности, используя:
Спектр мощности является произведением спектральной плотности мощности и полосы разрешения:
Спектроанализатор отображает мощность в виде спектрограммы в режиме "spectrogram".
Каждая линия спектрограммы представляет собой периодограмму.
Временное разрешение каждой линии составляет , что является минимально достижимым разрешением.
Для достижения необходимого разрешения может потребоваться объединение нескольких периодограмм.
Затем с помощью интерполяции вычисляются нецелые значения .
На экране спектрограммы время прокручивается сверху вниз, поэтому самые последние данные отображаются в верхней части экрана.
Смещение показывает время, при котором находился центр самой последней линии спектрограммы.
Спектроанализатор использует определенное количество отсчетов для расчета спектра.
Это значение напрямую связано с полосой разрешения () с помощью следующего уравнения:
Если в качестве метода разрешения FrequencyResolutionMethod выбрано значение "rbw", то длина окна определяется по формуле:
Если в качестве метода разрешения FrequencyResolutionMethod выбрано значение "window-length" алгоритм использует значение длины окна, указанное в свойстве WindowLength.
Процент перекрытия (Op)
Details
Процент перекрытия — это значение, указанное в свойстве OverlapPercent.
При увеличении процента перекрытия анализатору спектра требуется меньше новых входных отсчетов для вычисления нового спектрального обновления.
0%
100
50%
50
80%
20
Нормализованная эффективная ширина полосы шума (NENBW)
Details
Нормированная эффективная шумовая полоса (Normalized Effective Noise Bandwidth, ) — это параметр окна, измеряющий шумовые характеристики окна.
Значение определяется с использованием длины окна и его коэффициентов и задается следующим уравнением:
где обозначает вектор коэффициентов окна, а — длина окна.
Подробнее о том, как алгоритм определяет длину окна, см. раздел Расчет спектра — метод Уэлча.
Наименьшее значение имеет прямоугольное окно, равное 1.
Все остальные окна имеют большее значение .
Например, окно Ханна имеет значение приблизительно 1.5.
Полоса разрешения (RBW)
Details
Полоса разрешения управляет спектральным разрешением отображаемого сигнала. Значение определяет интервал между частотами, которые может разрешить спектроанализатор. Меньшее значение обеспечивает более высокое спектральное разрешение и снижает уровень шума, то есть спектроанализатор может разрешать частоты, расположенные ближе друг к другу. Однако это приводит к увеличению времени развертки.
Полоса разрешения может быть задана с помощью свойства RBW в Гц.
"auto" — спектроанализатор определяет подходящую полосу разрешения, чтобы обеспечить наличие 1024 интервалов разрешения по полосе пропускания в заданном диапазоне частот.
В этом случае спектроанализатор рассчитывает RBW по формуле:
"property" — спектроанализатор рассчитывает количество отсчетов , используя формулу:
где
— частота дискретизации входного сигнала, заданная свойством SampleRate в Гц;
— указанное в RBW значение полосы разрешения, его должно быть таким, чтобы в указанном диапазоне частот находилось не менее двух интервалов RBW.
Отношение общего диапазона к RBW должно быть больше двух:
;
— диапазон, в котором спектроанализатор вычисляет и строит спектр.
Если указано FrequencyResolutionMethod = "num-frequency-bands", то результирующая ширина полосы разрешения будет равна:
Частотный интервал Найквиста
Details
При построении двустороннего спектра, когда PlotAsTwoSidedSpectrum = true, частотный интервал Найквиста составляет в Гц.
Спектроанализатор вычисляет скользящее среднее значение одним из следующих методов:
Видеополоса — спектроанализатор использует фильтр нижних частот во временной области для сглаживания шума в сигнале. Фильтр видеополосы () сглаживает кривую и уменьшает шум, а спектроанализатор применяет этот фильтр к данным перед их отображением.
Видеополоса — это полоса пропускания фильтра нижних частот, которую спектроанализатор использует для усреднения или сглаживания шума в сигнале перед его отображением. Спектроанализатор вычисляет видеополосу по следующей формуле:
Видеополоса не влияет на уровень шума (шумовой порог), а лишь увеличивает отношение сигнал/шум и сглаживает кривую шума. При уменьшении значения отношение сигнал/шум улучшается.
Частота среза фильтра видеополосы определяется по формуле:
где
— частота дискретизации входного сигнала;
— количество точек БПФ.
Экспоненциальный — алгоритм скользящего среднего использует метод экспоненциального взвешивания для обновления весов и рекурсивного вычисления скользящего среднего для каждого поступающего вектора с использованием следующих рекурсивных уравнений:
где
— коэффициент забывания;
— весовой коэффициент, применяемый к текущему вектору ;