Найти в Дзене
Инженер. Фотографъ.

MATLAB - ЦОС \ Практическое введение в частотный анализ

Оглавление

В этом примере показано, как выполнять и интерпретировать базовый анализ сигналов в частотной области. В примере обсуждаются преимущества использования представлений сигнала в частотной и временной областях и иллюстрируются основные концепции с использованием моделируемых и реальных данных. Этот пример отвечает на основные вопросы, такие как:

  • Что означают величина и фаза в быстром преобразовании Фурье (FFT)?
  • Является ли мой сигнал периодическим?
  • Как мне измерить мощность?
  • Есть ли один или более сигналов в этом диапазоне?

Анализ в частотной области является чрезвычайно важным инструментом в приложениях обработки сигналов. Анализ частотной области широко используется в таких областях, как связь, геология, дистанционное зондирование и обработка изображений. В то время как анализ во временной области показывает, как сигнал изменяется с течением времени, анализ в частотной области показывает, как энергия сигнала распределяется по диапазону частот. Представление в частотной области также включает информацию о сдвиге фазы, который должен быть применен к каждой частотной составляющей, чтобы восстановить исходный временной сигнал с использованием комбинации всех отдельных частотных составляющих.

Сигнал может быть преобразован между временной и частотной областями с помощью пары математических операторов, называемых преобразованием. Примером может служить преобразование Фурье, которое разлагает функцию на сумму (потенциально бесконечного) числа составляющих частоты синусоидальной волны. "Спектр" частотных составляющих - это представление сигнала в частотной области. Обратное преобразование Фурье преобразует функцию частотной области обратно во временную функцию. Функции fft и ifft в MATLAB позволяют вычислять Дискретное преобразование Фурье (DFT) сигнала и обратное этому преобразованию соответственно.

Информация о величине и фазе БПФ

Представление сигнала в частотной области содержит информацию о величине и фазе сигнала на каждой частоте. Вот почему результат вычисления FFT является сложным. Комплексное число X имеет действительную часть Xr и мнимую часть Xi, так что X = Xr + i * Xi. Величина X вычисляется как (sqrt(Xr**2+Xi**2)), а фаза X вычисляется как (Xi/Xr). Вы можете использовать функции MATLAB abs и angle соответственно для получения величины и фазы любого комплексного числа.

Используйте звуковой пример, чтобы получить некоторое представление о том, какую информацию несут величина и фаза сигнала. Для этого загрузите аудиофайл, содержащий 15 секунд музыки для акустической гитары. Частота дискретизации аудиосигнала составляет 44,1 кГц.

Используйте БПФ для наблюдения за частотным содержанием сигнала.

-2

Выходной сигнал БПФ представляет собой комплексный вектор, содержащий информацию о частотном содержании сигнала. Величина говорит вам о силе частотных составляющих по отношению к другим компонентам. Фаза показывает вам, как все частотные компоненты выстраиваются во времени.

Постройте график амплитудной и фазовой составляющих частотного спектра сигнала. Амплитуда удобно отображается в логарифмическом масштабе (дБ). Фаза развертывается с помощью функции unwrap, так что мы можем видеть непрерывную функцию частоты.

-3
-4

Вы можете применить обратное преобразование Фурье к вектору частотной области Y, чтобы восстановить временной сигнал. Флаг 'symmetric' сообщает ifft, что вы имеете дело с сигналом реального времени, поэтому он обнуляет небольшие мнимые компоненты, которые появляются при обратном преобразовании из-за числовых неточностей в вычислениях. Обратите внимание, что исходный временной сигнал y и восстановленный сигнал y1 практически одинаковы (норма их разности составляет порядка 1e-14). Очень небольшая разница между ними также обусловлена упомянутыми выше числовыми неточностями. Воспроизведите и прослушайте преобразованный сигнал y1.

-5

ans =

3.9466e-14

-6

Чтобы увидеть эффекты изменения амплитудной характеристики сигнала, удалите частотные составляющие выше 1 кГц непосредственно с выхода БПФ (сделав величины равными нулю) и послушайте, как это влияет на звучание аудиофайла. Удаление высокочастотных составляющих сигнала называется фильтрацией нижних частот.

-7
-8

Верните отфильтрованный сигнал обратно во временную область, используя ifft.

-9

Воспроизведите сигнал. Вы все еще можете слышать мелодию, но она звучит так, как если бы вы закрыли уши (при этом вы фильтруете высокочастотные звуки). Несмотря на то, что гитары воспроизводят ноты в диапазоне от 400 до 1 кГц, когда вы играете ноту на струне, струна также вибрирует с частотой, кратной базовой. Эти высокочастотные компоненты, называемые гармониками, придают гитаре особый тон. Когда вы удаляете их, звук кажется "непрозрачным".

-10

Фаза сигнала содержит важную информацию о том, когда во времени появляются ноты песни. Чтобы проиллюстрировать важность фазы в аудиосигнале, полностью удалите информацию о фазе, взяв величину каждой частотной составляющей. Обратите внимание, что, делая это, вы сохраняете амплитудную характеристику неизменной.

-11
-12

Верните сигнал во временную область и воспроизведите аудио. Вы вообще не можете распознать оригинальный звук. Амплитудная характеристика такая же, но на этот раз частотные составляющие удалены не были, а порядок нот полностью исчез. Теперь сигнал состоит из группы синусоид, все они выровнены по времени, равному нулю. Как правило, фазовые искажения, вызванные фильтрацией, могут повредить сигнал до такой степени, что сделают его неузнаваемым.

-13

Определение периодичности сигналов

Представление сигнала в частотной области позволяет вам наблюдать несколько характеристик сигнала, которые либо нелегко увидеть, либо вообще не видны, когда вы смотрите на сигнал во временной области. Например, анализ в частотной области становится полезным, когда вы ищете циклическое поведение сигнала.

Анализ циклического изменения температуры в офисном здании

Рассмотрим набор измерений температуры в офисном здании в зимний сезон. Измерения проводились каждые 30 минут в течение примерно 16,5 недель. Посмотрите на данные временной области с масштабированием временной оси до недель. Может ли быть какое-либо периодическое поведение в этих данных?

-14
-15

Практически невозможно определить, наблюдается ли какое-либо циклическое изменение температуры в офисе, посмотрев на сигнал во временной области. Однако циклическое поведение температуры становится очевидным, если мы посмотрим на ее представление в частотной области.

Получите представление сигнала в частотной области. Если вы нанесете величину выходного сигнала БПФ с помощью частотной оси, масштабированной до циклов в неделю, вы увидите, что существуют две спектральные линии, которые явно больше, чем любая другая частотная составляющая. Одна спектральная линия проходит с частотой 1 цикл в неделю, другая - с частотой 7 циклов в неделю. Это имеет смысл, учитывая, что данные поступают из здания с регулируемой температурой по 7-дневному календарю. Первая спектральная линия указывает на то, что температура в здании соответствует еженедельному циклу с более низкими температурами по выходным и более высокими температурами в течение недели. Вторая строка указывает на то, что существует также суточный цикл с более низкими температурами ночью и более высокими температурами днем.

-16
-17

Измерение мощности

Функция periodogram вычисляет БПФ сигнала и нормализует выходной сигнал для получения спектральной плотности мощности, PSD, или спектра мощности, по которому вы можете измерить мощность. PSD описывает, как мощность временного сигнала распределяется с частотой, она имеет единицы измерения Ватт / Гц. Вы вычисляете спектр мощности путем интегрирования каждой точки PSD по частотному интервалу, в котором эта точка определена (т.е. По полосе пропускания PSD). Единицами измерения спектра мощности являются ватты. Вы можете считывать значения мощности непосредственно из спектра мощности без необходимости интегрирования по интервалу. Обратите внимание, что PSD и спектр мощности являются реальными, поэтому они не содержат никакой информации о фазе.

Измерение гармоник на выходе нелинейного усилителя мощности

Загрузите данные, измеренные на выходе усилителя мощности, который имеет искажения третьего порядка вида v_out = v_in + 0,75*(v_in**2) + 0,5*(v_in**3), где v_out - выходное напряжение и v_in - входное напряжение. Данные были получены с частотой дискретизации 3,6 кГц. Входной сигнал состоит из синусоиды частотой 60 Гц с амплитудой единицы. Из-за характера нелинейных искажений следует ожидать, что выходной сигнал усилителя будет содержать постоянную составляющую 60 Гц, а также вторую и третью гармоники на частотах 120 и 180 Гц.

Загрузите 3600 выборок выходного сигнала усилителя, вычислите спектр мощности и отобразите результат в логарифмической шкале (децибелы-ватты или дБВт).

-18
-19

График спектра мощности показывает три из четырех ожидаемых пиков при постоянном токе, 60 и 120 Гц. Он также показывает еще несколько ложных пиков, которые, должно быть, вызваны шумом в сигнале. Обратите внимание, что гармоника частотой 180 Гц полностью скрыта в шуме.

Измерьте мощность видимых ожидаемых пиков:

-20

power_at_DC_dBW =

-7.8873


peakFreqs_Hz =

60
120


peakPowers_dBW =

-0.3175
-10.2547

Улучшение измерений мощности зашумленных сигналов

Как видно на графике выше, периодограмма показывает несколько частотных пиков, которые не связаны с интересующим сигналом. Спектр выглядит очень шумным. Причина этого в том, что вы проанализировали только одну короткую реализацию зашумленного сигнала. Повторение эксперимента несколько раз и усреднение позволили бы устранить паразитные спектральные пики и получить более точные измерения мощности. Вы можете добиться такого усреднения с помощью функции pwelch. Эта функция возьмет большой вектор данных, разобьет его на более мелкие сегменты заданной длины, вычислит столько периодограмм, сколько имеется сегментов, и усреднит их. По мере увеличения количества доступных сегментов функция pwelch будет обеспечивать более плавный спектр мощности (меньшую дисперсию) со значениями мощности, более близкими к ожидаемым.

Загрузите более крупное наблюдение, состоящее из 500e3 точек на выходе усилителя. Оставьте количество точек, используемых для выполнения БПФ, равным 3600, чтобы floor*(500e3 / 3600) = 138 БПФ были усреднены для получения спектра мощности.

-21
-22

Как видно на графике, pwelch эффективно удаляет все паразитные частотные пики, вызванные шумом. Спектральная составляющая на частоте 180 Гц, которая была скрыта под шумом, теперь видна. Усреднение устраняет дисперсию из спектра, и это эффективно обеспечивает более точные измерения мощности.

Измерение общей средней мощности и мощности в диапазоне частот

Измерение общей средней мощности сигнала во временной области - простая и распространенная задача. Для выходного сигнала усилителя, y, общая средняя мощность вычисляется во временной области как:

-23

pwr =

8.1697

В частотной области общая средняя мощность вычисляется как сумма мощности всех частотных составляющих сигнала. Значение pwr1 состоит из суммы всех частотных составляющих, доступных в спектре мощности сигнала. Это значение согласуется со значением pwr, вычисленным выше с использованием сигнала во временной области:

-24

pwr1 =

8.1698

Но что, если бы вы захотели измерить общую мощность, доступную в диапазоне частот? Вы можете использовать функцию bandpower для вычисления мощности в любом желаемом диапазоне частот. Вы можете передать сигнал во временной области непосредственно в качестве входных данных для этой функции, чтобы получить мощность в указанном диапазоне. В этом случае функция будет оценивать спектр мощности методом periodogram.

Вычислите мощность в диапазоне от 50 Гц до 70 Гц. Результат будет включать мощность 60 Гц плюс мощность шума в интересующем диапазоне:

-25

pwr_band_dBW =

0.0341

Если вы хотите управлять вычислением спектра мощности, используемого для измерения мощности в диапазоне, вы можете передать PSD-вектор в функцию bandpower. Например, вы можете использовать функцию pwelch, как вы делали раньше, для вычисления PSD и обеспечения усреднения шумовых эффектов:

-26

pwr_band_dBW1 =

0.0798

Нахождение спектральных составляющих

Сигнал может состоять из одной или нескольких частотных составляющих. Возможность наблюдения всех спектральных составляющих зависит от частотного разрешения вашего анализа. Частотное разрешение или полоса пропускания спектра мощности определяется как R=Fs/N, где N - продолжительность наблюдения сигнала. Будут разрешены только спектральные компоненты, разделенные частотой, превышающей частотное разрешение.

Анализ системы контроля сейсмической вибрации здания

Системы управления активным приводом массы (AMD) используются для снижения вибрации в здании при землетрясении. Активный привод массы установлен на верхнем этаже здания, и, основываясь на измерениях перемещения и ускорения этажей здания, система управления посылает сигналы приводу, чтобы масса перемещалась для уменьшения возмущений грунта. Измерения ускорения были зарегистрированы на первом этаже трехэтажного испытательного сооружения в условиях землетрясения. Измерения проводились без активной системы управления приводом массы (состояние разомкнутого контура) и с активной системой управления (состояние замкнутого контура).

Загрузите данные об ускорении и вычислите спектр мощности для ускорения первого этажа. Длина векторов данных равна 10e3, а частота дискретизации равна 1 кГц. Используйте pwelch с сегментами длиной 64 точки данных, чтобы получить среднее значение floor (10e3 / 64) = 156 FFT и полосу пропускания Fs / 64 = 15,625 Гц. Как было показано ранее, усреднение снижает шумовые эффекты и обеспечивает более точные измерения мощности. Используйте 512 точек БПФ. Использование NFFT > N эффективно интерполирует частотные точки, отображая более подробный график спектра (это достигается добавлением NFFT-N нулей в конце временного сигнала и использованием NFFT-point FFT вектора с добавлением нуля).

Спектры мощности ускорения с разомкнутым контуром и замкнутым контуром показывают, что когда система управления активна, спектр мощности ускорения уменьшается от 4 до 11 дБ. Максимальное затухание происходит примерно на частоте 23,44 кГц. Снижение на 11 дБ означает, что мощность вибрации снижается в 12,6 раза. Общая мощность снижена с 0,1670 до 0,059 Вт, то есть в 2,83 раза.

-27
-28

Вы анализируете данные о вибрации и знаете, что вибрации имеют циклический характер. Тогда как получается, что графики спектра, показанные выше, не содержат каких-либо резких спектральных линий, типичных для циклического поведения? Может быть, вам не хватает этих линий, потому что они не разрешимы с разрешением, полученным при длине сегмента в 64 точки? Увеличьте частотное разрешение, чтобы увидеть, есть ли спектральные линии, которые раньше были неразрешимы. Сделайте это, увеличив длину сегмента данных, используемого в функции pwelch, до 512 точек. Это дает новое разрешение Fs/ 512 = 1,9531 Гц. В этом случае количество средних значений БПФ уменьшается до floor(10e3/512) = 19. Очевидно, что при использовании pwelch существует компромисс между количеством средних значений и разрешением по частоте. Оставьте количество точек БПФ равным 512.

-29
-30

Обратите внимание, что увеличение частотного разрешения позволяет вам наблюдать три пика в спектре разомкнутого контура и два в спектре замкнутого контура. Эти пики раньше были неразрешимы. Расстояние между пиками в спектре с разомкнутым контуром составляет около 11 Гц, что меньше, чем частотное разрешение, полученное с сегментами длиной 64, но больше, чем разрешение, полученное с сегментами длиной 512. Теперь видно циклическое поведение вибраций. Основная частота вибрации составляет 5,86 Гц, и равномерно расположенные частотные пики предполагают, что они гармонично связаны. Хотя уже было замечено, что система управления снижает общую мощность колебаний, спектры с более высоким разрешением показывают, что еще одним эффектом системы управления является уменьшение гармонической составляющей на частоте 17,58 Гц. Таким образом, система управления не только снижает вибрацию, но и приближает ее к синусоиде.

Важно отметить, что частотное разрешение определяется количеством точек сигнала, а не количеством точек БПФ. Увеличение количества точек БПФ интерполирует частотные данные, чтобы дать вам более подробную информацию о спектре, но это не улучшает разрешение.

Выводы

В этом примере вы узнали, как выполнять анализ сигнала в частотной области с использованием функций fft, ifft, periodogram, pwelch и bandpower. Вы поняли сложную природу БПФ и какова информация, содержащаяся в величине и фазе частотного спектра. Вы увидели преимущества использования данных частотной области при анализе периодичности сигнала. Вы узнали, как вычислить общую мощность зашумленного сигнала в определенной полосе частот. Вы поняли, как увеличение частотного разрешения спектра позволяет наблюдать близко расположенные частотные составляющие, и узнали о компромиссе между частотным разрешением и спектральным усреднением.