2014-02-25 26 views
-1

試圖對隨機但離散的時域信號做傅里葉變換,以便我可以查看主頻率等,但我很難正確繪製它。如何顯示簡單的FFT?

我的手機上的振動傳感器應用程序收集到的數據也可以在FT內進行(我認爲這相當準確),所以我一直在比較FT從應用程序到FT MATLAB。這些線的形狀相似,但是MATLAB中的線是鏡像的,可能會拉伸,並且縮放完全關閉。

有誰知道有關如何正確顯示FFT的指南或教程?

這是我的代碼,到目前爲止,xls文件只是一列加速度。什麼東西看起來特別錯誤?

任何幫助將是偉大的!

clc 
clear 

T = 5.57;           % Sampling time (s) 
L = 512;           % Length of signal (No. samples taken) 
Fs = L/T;           % Sampling frequency (Hz) 
a = xlsread ('Randomshake19.02.xlsx', 'X-Time'); % X-plane accelerations (m/s^2) 
t = linspace (0, T, L);        % Time vector 
NFFT = 2^nextpow2(L);        % Number of points used to form FFT. Next power of 2 from length of y 
X = linspace (1, Fs, L); 

Y = fft(a, NFFT); 

subplot (1, 2, 1)         % Time domain plot 
plot (t, a)           
xlabel('Time (s)') 
ylabel('Magnitude of Acceleration (m/s^2)') 

subplot (1, 2, 2)         % Frequency domain plot 
plot (X,abs(Y)) 
xlabel('Frequency (Hz)') 
ylabel('Magnitude of Acceleration (m/s^2)') 
+0

請添加您獲得的圖像(或圖像的鏈接)和所需的輸出。 –

+0

查看fftshift()命令,它將正確地重新排序傅里葉變換。然後可以縮放頻率軸,使其從-Fs/2運行到Fs/2。 – ewz

+0

爲什麼不按照'fft'文檔中提供的示例進行操作? – bdecaf

回答