Объект EngeeDSP.spectrumAnalyzer отображает частотный спектр сигналов во временной области.
Спектроанализатор представляет частотный спектр в виде спектра или спектрограммы.
Объект выполняет расчет спектра, используя метод банка фильтров и метод усредненных модифицированных периодограмм Уэлча. Подробнее см. в разделе Алгоритмы.
Спектроанализатор может отображать спектр мощности сигнала в трех единицах: Вт, дБм и дБВт. Подробнее о преобразовании мощности между этими тремя единицами см. в разделе Перевод мощности из одной единицы измерения в другую.
Чтобы создать объект спектроанализатора, выполните следующие действия:
Создайте объект EngeeDSP.spectrumAnalyzer и установите его свойства.
Вызовите объект с аргументами, как если бы это была функция.
Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.
Синтаксис
Создание
scope = EngeeDSP.spectrumAnalyzer(name = value) — создает системный объект EngeeDSP.spectrumAnalyzer с заданными свойствами в виде пары Name=Value, где Name — имя свойства, а Value — соответствующее значение. Можно указать несколько пар «имя-значение», порядок пар не имеет значения. Неуказанные свойства сохраняют свои значения по умолчанию.
Использование
scope(signal) — отображает частотный спектр входного сигнала signal во временной области в анализаторе спектра.
scope(signal)
scope(signal1,signal2,…,signalN) — отображает частотный спектр нескольких входных сигналов signal1,signal2,…,signalN во временной области в анализаторе спектра. Каждый сигнал интерпретируется как отдельный канал.
scope(signal1,signal2,signal3)
Аргументы
Входные аргументы
signal — входной сигнал
скаляр | вектор | матрица
Details
Входной сигнал или сигналы для визуализации, заданные как скаляр, вектор или матрица.
Количество каналов в каждом сигнале может быть разным, но размер кадра каждого сигнала должен быть одинаковым.
Перевод мощности из одной единицы измерения в другую
Details
В анализаторе спектра предусмотрены три единицы измерения спектральной плотности мощности: Вт/Гц, дБм/Гц и дБВт/Гц.
Соответствующие единицы измерения мощности — Вт, дБм и дБВт.
В электротехнических приложениях также можно просматривать среднеквадратичное значение сигнала в В (среднеквадратичное значение), дБмкВ или дБВ. Тип спектра по умолчанию — мощность в дБм.
Перевод мощности из Вт в дБВт и дБм
Мощность в дБВт определяется по формуле:
Мощность в дБм определяется по формуле:
Для синусоидального сигнала амплитудой 1 В мощность одностороннего спектра в Вт определяется по формуле:
Соответствующая мощность в дБм рассчитывается по формуле:
Для сигнала белого шума спектр плоский для всех частот.
Рассмотрим сигнал белого шума с дисперсией 1e-4.
Таким образом, мощность на единицу полосы пропускания () равна 1e-4.
Для одностороннего спектра в диапазоне общая мощность белого шума в Вт определяется по формуле:
где
— это частота дискретизации входного сигнала;
— это отношение общей полосы пропускания к разрешению по полосе пропускания ().
Для одностороннего спектра общая полоса пропускания составляет половину частоты дискретизации.
Рассмотрим частоту дискретизации 44100 Гц и разрешение по полосе пропускания 21.53 Гц.
При этих значениях общая мощность белого шума в Вт составляет 0.1024 Вт.
Мощность белого шума в дБм можно рассчитать по формуле:
Перевод мощности из Вт в дБ полной шкалы
Если вы установите спектральные единицы в dBFS и полную шкалу ([Property:FullScaleSource]) в режим "auto", то мощность в dBFS будет вычисляться следующим образом:
где
— мощность в Вт;
для сигналов с двойной точностью и плавающей точкой — это максимальное значение входного сигнала;
для сигналов с фиксированной точкой или целых чисел — это максимальное значение, которое может быть представлено.
Если вы установите полную шкалу ([Property:FullScaleSource]) в режим "property", то мощность в dBFS будет вычисляться следующим образом:
Для синусоидального сигнала амплитудой 1 В мощность одностороннего спектра в Вт определяется по формуле:
Соответствующая мощность в дБ полной шкалы рассчитывается по формуле:
Перевод мощности из дБм в среднеквадратичное значение в В
Мощность в дБм определяется по формуле:
Напряжение (среднеквадратичное значение) вычисляется по формуле:
В предыдущем примере равен 26.9897 дБм.
Значение рассчитывается как:
Алгоритмы
Расчет спектра — банк фильтров
Details
Если для [Property:Method] установить значение "filter-bank", то спектроанализатор будет использовать банк фильтров для расчета спектра мощности.
Банк фильтров разделяет широкополосный входной сигнал с частотой дискретизации на несколько узкополосных сигналов с частотой дискретизации .
Переменная представляет собой количество частотных полос в банке фильтров.
В анализаторе спектра равно количеству точек данных, необходимых для достижения заданного значения полосы разрешения (RBW) или 1024, в зависимости от того, какое значение больше.
После того как спектроанализатор разделяет широкополосный входной сигнал на несколько узких полос, он вычисляет мощность в каждой узкой полосе частот, используя следующее уравнение:
где каждое значение представляет собой расчет мощности в узкой полосе частот, а — длина узкополосного сигнала для .
Значения мощности во всех узких полосах частот (обозначаемых ) образуют вектор :
Спектроанализатор усредняет текущий вектор с предыдущими векторами , используя один из методов скользящего усреднения: по видеополосе или экспоненциальное взвешивание.
Результат операции усреднения формирует вектор расчета спектра.
Подробнее о методах усреднения см. в разделе Метод усреднения.
Спектроанализатор использует значение RBW (Гц) или количество частотных полос для определения длины входного кадра.
"auto" — спектроанализатор определяет подходящую полосу разрешения, чтобы обеспечить наличие 1024 интервалов разрешения по полосе пропускания в заданном диапазоне частот.
В этом случае спектроанализатор рассчитывает RBW по формуле:
"property" — спектроанализатор рассчитывает количество отсчетов , используя формулу:
где
— частота дискретизации входного сигнала, заданная свойством [Property:SampleRate] в Гц;
— указанное в [Property:RBW] значение полосы разрешения, его должно быть таким, чтобы в указанном диапазоне частот находилось не менее двух интервалов RBW.
Отношение общего диапазона к RBW должно быть больше двух:
;
— диапазон, в котором спектроанализатор вычисляет и строит спектр.
Если для [Property:Method] установить значение "welch", то расчет спектра мощности представляет собой усредненные модифицированные периодограммы.
Алгоритм спектроанализатора состоит из следующих шагов:
Буферизует входные данные в сегменты данных, состоящие из точек.
Каждый сегмент данных разделяется на перекрывающихся сегментов данных, каждый длиной , перекрывающихся на точек.
Сегменты данных можно представить следующим образом:
Если , то перекрытие составляет 50%.
Если , то перекрытие составляет 0%.
Применяет окно к каждому из перекрывающихся сегментов данных во временной области.
Если в качестве метода разрешения [Property:FrequencyResolutionMethod] выбрано значение "rbw", то алгоритм определяет длину окна данных, используя следующее уравнение: .
Затем он разбивает входной сигнал на несколько сегментов данных, обработанных с помощью окна.
Большинство оконных функций оказывают большее влияние на данные в центре сегмента, чем на данные на краях, что приводит к потере информации.
Чтобы уменьшить эту потерю, отдельные сегменты данных обычно перекрываются во времени.
Для каждого сегмента, обработанного с помощью окна, вычисляется периодограмма путем вычисления дискретного преобразования Фурье.
Затем вычисляется квадрат модуля результата и делится на :
где — коэффициент нормализации для мощности в оконной функции и определяется как:
Спектроанализатор вычисляет и строит спектр мощности, спектральную плотность мощности и среднеквадратичное значение, используя модифицированный метод расчета периодограммы.
Чтобы определить расчет спектра мощности для метода Уэлча, спектроанализатор усредняет результаты периодограмм для последних сегментов данных.
Усреднение уменьшает дисперсию по сравнению с исходным -точечным сегментом данных.
Подробнее о методах усреднения см. в разделе Метод усреднения.
Спектроанализатор вычисляет спектральную плотность мощности, используя:
Спектр мощности является произведением спектральной плотности мощности и полосы разрешения:
Спектроанализатор отображает мощность в виде спектрограммы в режиме "spectrogram".
Каждая линия спектрограммы представляет собой периодограмму.
Временное разрешение каждой линии составляет , что является минимально достижимым разрешением.
Для достижения необходимого разрешения может потребоваться объединение нескольких периодограмм.
Затем с помощью интерполяции вычисляются нецелые значения .
На экране спектрограммы время прокручивается сверху вниз, поэтому самые последние данные отображаются в верхней части экрана.
Смещение показывает время, при котором находился центр самой последней линии спектрограммы.
Спектроанализатор использует определенное количество отсчетов для расчета спектра.
Это значение напрямую связано с полосой разрешения () с помощью следующего уравнения:
При увеличении процента перекрытия анализатору спектра требуется меньше новых входных отсчетов для вычисления нового спектрального обновления.
0%
100
50%
50
80%
20
Нормализованная эффективная ширина полосы шума (NENBW)
Details
Нормированная эффективная шумовая полоса (Normalized Effective Noise Bandwidth, ) — это параметр окна, измеряющий шумовые характеристики окна.
Значение определяется с использованием длины окна и его коэффициентов и задается следующим уравнением:
где обозначает вектор коэффициентов окна, а — длина окна.
Подробнее о том, как алгоритм определяет длину окна, см. раздел Расчет спектра — метод Уэлча.
Наименьшее значение имеет прямоугольное окно, равное 1.
Все остальные окна имеют большее значение .
Например, окно Ханна имеет значение приблизительно 1.5.
Полоса разрешения (RBW)
Details
Полоса разрешения управляет спектральным разрешением отображаемого сигнала. Значение определяет интервал между частотами, которые может разрешить спектроанализатор. Меньшее значение обеспечивает более высокое спектральное разрешение и снижает уровень шума, то есть спектроанализатор может разрешать частоты, расположенные ближе друг к другу. Однако это приводит к увеличению времени развертки.
Полоса разрешения может быть задана с помощью свойства [Property:RBW] в Гц.
"auto" — спектроанализатор определяет подходящую полосу разрешения, чтобы обеспечить наличие 1024 интервалов разрешения по полосе пропускания в заданном диапазоне частот.
В этом случае спектроанализатор рассчитывает RBW по формуле:
"property" — спектроанализатор рассчитывает количество отсчетов , используя формулу:
где
— частота дискретизации входного сигнала, заданная свойством [Property:SampleRate] в Гц;
— указанное в [Property:RBW] значение полосы разрешения, его должно быть таким, чтобы в указанном диапазоне частот находилось не менее двух интервалов RBW.
Отношение общего диапазона к RBW должно быть больше двух:
;
— диапазон, в котором спектроанализатор вычисляет и строит спектр.
Спектроанализатор вычисляет скользящее среднее значение одним из следующих методов:
Видеополоса — спектроанализатор использует фильтр нижних частот во временной области для сглаживания шума в сигнале. Фильтр видеополосы () сглаживает кривую и уменьшает шум, а спектроанализатор применяет этот фильтр к данным перед их отображением.
Видеополоса — это полоса пропускания фильтра нижних частот, которую спектроанализатор использует для усреднения или сглаживания шума в сигнале перед его отображением. Спектроанализатор вычисляет видеополосу по следующей формуле:
Видеополоса не влияет на уровень шума (шумовой порог), а лишь увеличивает отношение сигнал/шум и сглаживает кривую шума. При уменьшении значения отношение сигнал/шум улучшается.
Частота среза фильтра видеополосы определяется по формуле:
где
— частота дискретизации входного сигнала;
— количество точек БПФ.
Экспоненциальный — алгоритм скользящего среднего использует метод экспоненциального взвешивания для обновления весов и рекурсивного вычисления скользящего среднего для каждого поступающего вектора с использованием следующих рекурсивных уравнений:
где
— коэффициент забывания;
— весовой коэффициент, применяемый к текущему вектору ;