Этот пример показывает использование функции БПФ для спектрального анализа. Общее использование БПФ должно найти частотные составляющие сигнала проложенными под землей в шумном сигнале области времени.
Сначала создайте некоторые данные. Считайте данные выбранными на уровне 1 000 Гц. Запустите путем формирования оси времени для наших данных, выполнения от t=0 до t =. 25 на шагах 1 миллисекунды. Затем сформируйте сигнал, x, содержа синусоиды на уровне 50 Гц и 120 Гц.
t = 0:.001:.25; x = sin(2*pi*50*t) + sin(2*pi*120*t);
Добавьте некоторый случайный шум со стандартным отклонением 2, чтобы произвести сигнал с шумом y. Смотрите на этот сигнал с шумом y путем графического вывода его.
y = x + 2*randn(size(t));
plot(y(1:50))
title('Noisy time domain signal')
Безусловно, трудно идентифицировать частотные составляющие от рассмотрения этого сигнала; вот почему спектральный анализ так популярен.
При нахождении дискретного преобразования Фурье сигнала с шумом y легок; только возьмите быстрое преобразование Фурье (FFT).
Y = fft(y,251);
Вычислите степень спектральная плотность, измерение энергии на различных частотах, с помощью сопряженного комплексного числа (CONJ). Сформируйте ось частоты для первых 127 точек и используйте ее, чтобы построить результат. (Остаток от точек симметричен.)
Pyy = Y.*conj(Y)/251; f = 1000/251*(0:127); plot(f,Pyy(1:128)) title('Power spectral density') xlabel('Frequency (Hz)')
Увеличьте масштаб и постройте только до 200 Гц. Заметьте peaks на уровне 50 Гц и 120 Гц. Это частоты исходного сигнала.
plot(f(1:50),Pyy(1:50)) title('Power spectral density') xlabel('Frequency (Hz)')