taking fft of .wav file

5 views (last 30 days)
Fragkos Maragkou
Fragkos Maragkou on 24 Jul 2014
Edited: Star Strider on 24 Jul 2014
I am trying to get the fft of a specific part of the signal coming from a .wav file.
the wav file is a repetition of the signal every 0.6 seconds. I am trying to figure out how to get the repetition 10 times and compare to show that the results should be similar.
this is the code i have for now
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)))
so once i separate program i can find out the time domain and from there i found that one repetition is at 45.2 to 45.8.
after i run this program i get a graph but form what i can see is not including one repetition but all repetition combined up to 45.2
any help will be much appreciated :) Thanks
  7 Comments
Star Strider
Star Strider on 24 Jul 2014
Can you upload an illustrative subset of it? A 30 MB file is probably more than most people will want to work with.
Fragkos Maragkou
Fragkos Maragkou on 24 Jul 2014
Edited: Star Strider on 24 Jul 2014
this is the file cut to 3.7mb therefore now 21 seconds instead of 3 mins. so the question becomes how to take the fft of a single reputation that is 0.6s at example 13.2-13.8? https://www.dropbox.com/s/haldu2k9j0f58ao/3b%20healthy2222.wav

Sign in to comment.

Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!