taking fft of .wav file

16 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)

Categories

Find more on Audio Processing Algorithm Design in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!