MATLAB FFT черчение - PullRequest
       20

MATLAB FFT черчение

0 голосов
/ 03 ноября 2018

Как мне построить ось X графика FFT? У меня амплитуда вниз, но ось X доставляет мне неприятности. Кроме того, моя величина отражается. Как я мог бы предотвратить это?

1 Ответ

0 голосов
/ 03 ноября 2018

Точечный ДПФ N дискретного сигнала с частотой дискретизации fs дает частоты 0, 1/fs, ..., (N-1)/fs. Чтобы иметь нулевую частоту в центре графика, вы можете применить fftshift к результату DFT, а затем определить частоты как ( -N/2:N/2-1 )/N*fs для N четного или ( -(N-1)/2:(N-1)/2 )/N*fs для N странно (это использует периодичность ДПФ).

Пример

Сигнал, образованный двумя синусоидами разных частот и амплитуд.

N = 400;
fs = 1000; % Hz
fc1 = 120; % Hz
fc2 = 260; % Hz
y = sin(2*pi*fc1*(0:N-1)/fs) + .5*sin(2*pi*fc2*(0:N-1)/fs); % example signal
Y = fft(y);
if ~mod(N,2) % even
    f_axis = ( -N/2:N/2-1 )/N*fs;
else % odd
    f_axis = ( -(N-1)/2:(N-1)/2 )/N*fs;
end
plot(f_axis, fftshift(abs(Y)));
grid    

enter image description here

...