我正試圖從.wav文件中獲取信號特定部分的快速傅里葉變換。.WAV文件上的FFT
.wav文件是每0.6秒重複一次信號。
我想弄清楚如何得到重複10次,並比較以表明結果應該是相似的。
這是代碼,我現在:
Fs = 44100;
cj = sqrt(-1);
[test,fs]= wavread('3b healthy2.wav'); % File data name
dt = 1/Fs;
time = 45.6;
N = time/dt;
left=test(:,1);
right=test(:,2);
I = left;
Q = right;
t = 0:dt:(time-dt);
n = length(t);
f = -Fs/2:Fs/n:Fs/2-Fs/n;
s = I+cj.*Q;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Smooth the signal
ss = smooth(s,201);
sf = fftshift(fft(ss(1:N))); % taking fft
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(2)
plot(f,(abs(sf))./max(abs(sf)))
所以一旦我獨立的程序,我可以找出時間域,並從那裏我發現有一個重複是在45.2至45.8。
我運行這個程序後,我得到一個圖形,但是從我所看到的,它不包括重複一次,但所有的重複組合高達45.2
編輯
下面的圖是什麼信號看起來像是45秒。信號連續重複3分鐘。現在我需要的是45秒重複的FFT
我不完全理解你的問題。您是否問過如何截斷輸入信號,時間只有45s到46s?如果是這樣,那不應該太難做。 –
是的,但我需要特定時間的fft。我需要得到多個地方的ffthift(fft),然後比較它們。所以我想知道我的代碼在哪裏有錯誤,一旦我把我的時間設置爲45,就是結合了fft,而不是在45s給我fft。希望有道理 – fragkos