FFT в MATLAB: алгоритмы и примеры использования
FFT (Fast Fourier Transform) в MATLAB является функцией, которая применяет алгоритм быстрого преобразования Фурье (Fast Fourier Transform) к заданному набору данных. Функция FFT используется для анализа частотного спектра сигнала, то есть разложения сигнала на гармонические компоненты разных частот.
Пример использования функции FFT в MATLAB:
Допустим, у нас есть вектор значений сигнала x, который состоит из 1000 отсчетов. Мы хотим проанализировать его частотный спектр с помощью FFT:
matlab
% Создание вектора значений сигнала
Fs = 1000; % Частота дискретизации, Гц
T = 1/Fs; % Интервал дискретизации, сек
L = 1000; % Длина сигнала
t = (0:L-1)*T; % Вектор времени
% Создание сигнала, состоящего из двух гармонических компонент с разной частотой
S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
% Добавление шума к сигналу
X = S + 2*randn(size(t));
% Вычисление FFT сигнала
Y = fft(X);
% Вычисление одностороннего спектра амплитуды
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
% Создание вектора частот
f = Fs*(0:(L/2))/L;
% Построение графика спектра амплитуды
plot(f,P1)
title('Односторонний спектр амплитуды')
xlabel('Частота (Гц)')
ylabel('|P1(f)|')
В этом примере мы сначала создаем вектор времени t на основе параметров дискретизации и длины сигнала. Затем мы создаем сигнал S, состоящий из двух гармонических компонент с частотами 50 Гц и 120 Гц. Мы добавляем шум к сигналу с помощью функции randn. Затем мы вычисляем FFT сигнала с помощью функции fft. Далее мы вычисляем односторонний спектр амплитуды с помощью функций abs и отсекаем половину спектра. Затем мы создаем вектор частот f на основе дискретизации и длины сигнала. Наконец, мы строим график спектра амплитуды с помощью функции plot.
Таким образом, функция FFT в MATLAB позволяет анализировать частотный спектр сигнала и может быть использована для решения различных задач, связанных с сигналами и обработкой сигналов.