Дискретное преобразование Фурье

В предыдущем разделе было сказано, что при выполнении условия теоремы Котельникова отсчёты дискретного сигнала хранят всю информацию об исходном непрерывном сигнале, а значит и о его спектре. Поэтому спектр сигнала может быть найден и по его дискретным отсчётам, что даёт широкие возможности для анализа сигналов в цифровой обработке. Ранее было показано, что спектр периодического сигнала дискретный, то есть сигнал может быть разложен по определённым гармоникам. Дискретный сигнал имеет периодический спектр. Дискретный периодический сигнал будет иметь дискретный периодический спектр. Дискретный сигнал представляется в виде последовательности значений сигнала в фиксированные моменты времени . У периодического дискретного сигнала значения периодически повторяются через определённое количество отсчётов , то есть для любого выполняется . Обычно дискретное преобразование Фурье сигнала, заданного отсчётами в виде вектора из элементов, вычисляется по формуле:

(33)

Обратное преобразование Фурье по формуле:

(34)

Сравнивая (33) с (4) получаем, что комплексная амплитуда гармоники с номером есть и соответствует частоте или, что тоже самое , где частота квантования в герцах: , – период квантования, период считается равным длительности записанного фрагмента сигнала.

В MATLAB дискретное преобразование Фурье выполняется с помощью команды fft (Fast Fourier Transform), которая производит вычисления по специальному алгоритму быстрого преобразования. Синтаксис команды:

y = fft(x)

y = fft(x, n)

y = fft(x, n, dim)

x – вектор с отсчётами сигнала;

y – вектор с результатом преобразования ;

n – необязательный параметр, определяющий количество отсчётов сигнала, используемое для выполнения преобразования. В этом случае вектор y будет состоять из n элементов;

dim – необязательный параметр, определяющий номер размерности, по которой выполняется преобразование. Используется, когда в переменной x содержится несколько сигналов, каждый в столбце или строке, на что указывает переменная dim.

Аналогичный интерфейс имеет команда, с помощью которой выполняется обратное преобразование:

x = ifft(y)

x = ifft(y, n)

x = ifft(н, n, dim)

Команда fft возвращает массив, в котором амплитуды гармоник соответствуют частотам гармоник в диапазоне , а не в , более привычным для восприятия. Вообще, если все значения вектора x вещественны, что характерно для любой измеряемой физической величины, то, как было показано выше (9), значение имеют только гармоники в диапазоне частот , а комплексные амплитуды из второй половины диапазона частот являются комплексно сопряжёнными с этими. Для того чтобы переставить местами вторую и первую половину элементов вектора используется команда fftshift.

Один из вариантов определить, каким частотам будут соответствовать гармоники после применения команды fftshift, воспользоваться формулой:

f = (ceil(N/2)-N:ceil(N/2)-1)*fs/N;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: