2012-10-18 66 views
1

我是相當新的振動和使用matalb fft.I給了一組數據(1D數組)的長度15000(不知道這是否相關),我想弄清楚是否有任何波埋在此數據。我被指示可能使用matlab fft。這是正確的方式嗎?我期望看到什麼?我真的不確定如何解釋我會得到的結果。 請讓我知道你們都在想什麼。 謝謝,如果需要更多細節,我會提供給他們。 例子:給定一組數據,用fft提取可能的頻率,如何?

% Df=[array is given to me and it is of size 15000]; 
% t=[time used for the above array, and if it is of the same size, also provided to me] 


N_0= length(t); 

fs_0=length(Dfxz); 

Y_0=fft(Dfxz,N_0); 

k_0=-N_0/2:N_0/2-1; 

%Find the phase angle 
p_0 = (angle(Y_0)); 
R_0 = norm(Y_0); 

ff_0 = (0:length(Y_0)-1)'/length(Y_0)*100; % Frequency vector 
FT_power1_0 = abs(Y_0); 

plot(k_0*fs_0/N_0,fftshift(abs(Y_0))) 

我只看到在頻率= 0 1偷看,但我相信,有非零頻率,我究竟做錯了什麼? 謝謝! PS:我不確定如何選擇採樣頻率?任何提示請(請記住,我不知道原來的頻率)

+2

請告訴我們你試過了什麼? – Vikram

+1

您可以使用FFT來計算離散傅里葉變換,但不知道更多關於數據的信息(特別是採樣頻率),這與物理意義上的頻率沒有任何關係。 – Tobold

+1

如果您不知道數據的採樣頻率,您將無法得到「埋藏在信號中的正弦波的頻率是多少」的有意義的答案。如果您的信號在您的觀察時間內表現出振盪行爲,您只能定性地說出(通過查看週期圖中是否有峯)。如果您在解釋結果時遇到問題,我會建議發佈到http://dsp.stackexchange.com/,因爲這與編程無關。順便說一句:採樣頻率是在't'的時間點給你的... – Tobold

回答

4

試試我的版本。它看起來像你有你需要的所有信息來找到數據中的頻率峯值,如果它們存在的話。如果你所看到的只是零頻率下的一個大峯值,那麼你可能會有一個巨大的直流偏移量,將所有其他數據淹沒。我已經在我的代碼中提供了補救措施。 。

x = randn(15000,1); %//This is the data you were given - I'll use noise for demonstration - replace x with your Df data 

%//If youre getting a massive peak at zero that dwarfs everything else, you 
%//probably have a large DC offset. Easily removed in the time domain using 
%//the following .. 
x = x-mean(x); 

tAxis = linspace(3/15000,3,15000); %//You said you have this too - I'll make up something for demonstration - make sure you replace this with your t data 
dt = diff(tAxis(1:2)); %//sample period from time axis 
fs = 1/dt;%//sample rate from sample period 

NFFT = numel(x); %//number of fft bins - change if you like 
Y = abs(fft(x, NFFT)).^2; %power spectrum 

%//Calculate frequency axis 
df = fs/NFFT; 
fAxis = 0:df:(fs-df); 

%//Plot it all 
figure; plot(fAxis(1:NFFT/2), Y(1:NFFT/2)) 
xlabel('Frequency in Hz') 
ylabel('Power') 

如果確實如此,您可以通過檢查another FFT answer on stackoverflow進一步深入。

+0

謝謝我會試一試:) –

+0

@AmaniLama你知不知道你接受答案的要點:)? – dreamcrash