Использование системы Matlab для задач спектрального оценивания

Рассмотрим пример создания зашумленного сигнала, содержащего две синусоидальные компоненты. В начале создания некоторого сигнала необходимо задать вектор времени t:

>> t = (0 : .01 : 2.55);

Эта команда задает изменение t от 0 до 2.55 с шагом 0.01, что соответствует частоте дискретизации 100 Гц ( Использование системы Matlab для задач спектрального оценивания - student2.ru ). Знак ; ( точка с запятой ) блокирует вывод вектора на экран. Если необходимо просмотреть столбец с элементами вектора t, этот знак нужно просто убрать.

Теперь зададим вектор функции y(t), которая представляет собой сумму синусоиды с амплитудой 10 и частотой 7 Гц с синусоидой, имеющей амплитуду 3 и частоту 3 Гц:

>> y = 10*sin( 2*pi*7*t ) + 3*sin( 2*pi*3*t );

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

>> randn(‘state’, sum(100*clock));

Получим шумовую компоненту со средним значением 1.5 и дисперсией 2, для этого используем команду:

>> yn = 1.5 + sqrt(2)*randn(size(t));

Наложим ее на «чистый» сигнал:

>> sig = y + yn;

Для просмотра полученных сигналов и оценивания спектра воспользуемся встроенной в систему Matlab утилитой sptool. Используем команду:

>> sptool

Откроется окно, состоящее из трех списков и управляющих кнопок. В настоящий момент нас интересует только первый и третий – Signals и Spectra. В первом отображаются загруженные в утилиту сигналы. По умолчанию в нем уже присутствуют три встроенных – mtlb, chirp и train.

Добавим в этот список два сгенерированных нами сигнала – y и sig. Для этого необходимо выбрать пункт Import в меню File. В появившемся окне необходимо выбрать нужный сигнал – y и нажать кнопку со стрелкой, дополнительно необходимо ввести частоту дискретизации – sampling frequency, в нашем случае – 100 Гц. Также в этом окне вводится имя нашего сигнала, по умолчанию используются имена sig1, sig2 и так далее. После нажатия кнопки “ОК” в первом списке утилиты появится новый сигнал – sig1. Просмотреть его можно, нажав кнопку View, находящуюся снизу списка Signals. Аналогично добавим сигнал sig. Возможен одновременный просмотр нескольких сигналов данных. Для этого удерживая нажатой клавишу ctrl, выбираем нужные с помощью мыши и нажимаем кнопку View. При просмотре сразу двух сигналов можно проследить изменения в зашумленных данных.

Для получения спектральной оценки необходимо выбрать нужный сигнал из списка Signals и нажать кнопку Create – откроется окно Spectrum Viewer. В нем задается тип спектральной оценки и ее параметры. В текущей работе мы рассмотрим периодограммный метод спектрального оценивания. В системе Matlab ему соответствует функция pwelch или метод Welch в окне Spectrum Viewer.

Параметры этой ценки:

– Nfft – число отсчетов в итоговой оценке спектра.

– Nwind – число отсчетов на сегмент данных – соответствует ранее введенному параметру D.

– Window – тип окна с помощью которого производится взвешивание отсчетов на каждом сегменте – w.

– Overlap – число перекрывающихся отсчетов между соседними сегментами – соответствует разности параметров D и S.

Расчет спектральной оценки осуществляется по нажатию кнопки Apply.

Аналогично выводу отсчетов сигналов данных возможен вывод нескольких спектральных оценок на одном графике. В меню Options утилиты можно выбрать тип масштаба по каждой из осей – линейный или логарифмический, а также диапазон выводимых частот [0, Fдиск/2],
[-Fдиск/2, Fдиск/2], [0, Fдиск].

Задание

1. Сформируйте два синусоидальных сигнала частотой 16 Гц с частотой дискретизации 250 Гц. Длина первого сигнала — 8 секунд (целое число периодов), второго — 7,65 секунды (нецелое число периодов). Импортируйте сигналы в утитилиту sptool и получите спектральные оценки этих сигналов с помощью преобразования Фурье (метод FFT).

Проанализируйте полученный результат.

2. Сформируйте двухкомпонентный сигнал длины 2,56 секунды со свойствами:

– частота дискретизации – 100 Гц;

– первая компонента: амплитуда – 1, частота – 40 Гц;

– вторая компонента: амплитуда – 2, частота – 55 Гц.

Получите спектральную оценку этого сигнала с помощью обычного преобразования Фурье (метод FFT).

Проанализируйте полученный результат.

3. Сформируйте четыре 256-точеченых окна: прямоугольное, треугольное, Ханна, Хемминга. Для этого используйте стандартные функции – rectwin(n), triang(n), hanning(n), hamming(n), где n – длина окна. Импортируйте полученные данные в утитилиту sptool и получите последовательно четыре спектральных оценки с помощью обычного преобразования Фурье (метод FFT). Совместите эти четыре оценки на одном графике и сравните их. Для удобства используйте различные цвета для каждой оценки.

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

Для одного из использовавшихся выше типов окон (по вашему выбору) сформируйте его 512-точечную реализацию. Получите аналогичную оценку спектра и сравните их.

4. Сформируйте три выборки двухкомпонентного сигнала длины 256, 512 и 1024 отсчета со следующими параметрами:

– частота дискретизации – 100 Гц;

– первая компонента: амплитуда – 10, частота – 15 Гц;

– вторая компонента: амплитуда – 2, частота – 35 Гц.

Получите спектральные оценки для каждого из сигналов, используя периодограмный метод (Welch), и совместите их на одном графике.

Добавьте к каждой реализации сигнала шумовую компоненту соответствующей длины со значением дисперсии 30. Получите оценку спектра.

Проанализируйте и объясните результаты оценки зашумленного сигнала. Сравните результаты при использовании различных окон (использовавшихся в п. 3 задания).

5. Сформируйте три реализации двухкомпонентного сигнала длины 256, 512 и 1024 отсчета с компонентами одинаковой мощности и разнесенными частотами на 0.2 Гц.

Получите спектральные оценки для каждого из сигналов, добившись разрешения частотных компонент, если это возможно. Объясните полученные результаты.

6. Проанализируйте вибрационные сигналы, полученные от исправного и неисправного вертолетов (Ispravn.txt, Neispravn.txt).

Для этого в меню File выберите пункт Import Data…. В окне Import выберите нужный файл и нажмите Open. В появившемся окне нажмите Next. В следующем окне нажмите Finish. В результате будет сформирован массив, имя которого будет совпадать с именем импортированного файла. Импортируйте полученные данные в утитилиту sptool и получите спектральные оценки с помощью преобразования Фурье (метод FFT). Частота дискретизации для каждого из сигналов равна 1953,125 Гц. Число отсчетов — 8192.

Обратите внимание на спектр данных сигналов при частотах 15 и 18 Гц.

Контрольные вопросы

1. Сформулируйте теорему отсчетов (Котельникова).

2. Напишите формулы прямого и обратного дискретного преобразования Фурье.

3. Что такое периодограмма?

4. Суть методов периодограммной оценки Даньелла, Бартлетта и Уэлча.

5. С какой целью применяются оконные (весовые) функции?

6. Каким образом можно избавиться от эффекта наложения (маскировки) при дискретизации реальных сигналов?

7. Как определяется разрешающая способность спектрального анализа на основе ДПФ?

Наши рекомендации