Рассмотрим пример создания зашумленного сигнала, содержащего две синусоидальные компоненты. В начале создания некоторого сигнала необходимо задать вектор времени t:
>> t = (0:.01: 2.55);
Эта команда задает изменение t от 0 до 2.55 с шагом 0.01, что соответствует частоте дискретизации 100 Гц (). Знак; (точка с запятой) блокирует вывод вектора на экран. Если необходимо просмотреть столбец с элементами вектора 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диск].