2014-07-24 2 views
2

.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.8-45.2에 있음을 발견 프로그램을 분리하면. 나는이 프로그램을 실행 한 후

나는 그래프를 얻을 수 있지만 내가 볼 수있는, 그것은 하나의 반복하지만 45.2

편집 아래

까지 결합 된 모든 반복을 포함하지 않는에서의 그래프 무엇인지 신호는 45 초에 보입니다. 신호가 3 분 동안 계속 반복됩니다. 지금은 당신이 설정에 신호를 분석 할 수있는 창을 원하는 것 같습니다

signal

+0

질문을 이해하지 못했습니다. 45 초에서 46 초 사이의 시간 동안 만 입력 신호를 자르는 방법을 묻고 있습니까? 그렇다면 너무 어렵지 않습니다. –

+0

네,하지만 그 특별한 시간의 fft가 필요합니다. 나는 여러 장소에서 fftshift (fft)를 얻어서 비교할 필요가있다. 그래서 내 코드에 오류가있는 곳이 궁금해서 45 번에 fft를주는 대신 45 번으로 fft를 결합하면됩니다. 희망은 의미가 있습니다 – fragkos

답변

0

그 45초 반복의 FFT이 필요합니다.

그렇다면 시간 영역에서 벡터를 자르면됩니다.

left=test(:,1); 
right=test(:,2); 
time = 45; 
interval =1; // per second, for 0.1 second use interval = 0.1; 
w_range = time*Fs: (time+interval)*Fs-1; 
I = left(w_range) // truncate here 
Q = right(w_range) // and here 
n = interval * Fs; 
f = -Fs/2:Fs/n:Fs/2-Fs/n; 
// continue FFT analysis ... 

의미가 있습니까? 원하지 않는 경우 댓글을 남겨주세요.

+0

괜찮아 보이지만 코드에 어떻게 추가합니까? 45.1 초에 fft가 필요한 경우이 부분의 변수를 바꿀 필요가 있다는 것을 의미합니까? 고맙습니다. – fragkos

+0

나는 간격을 1로 설정해보고 좋은 그래프를 보여줍니다. 일단 45 간격을 변경하면이 오류가 발생합니다 : 색인 매트릭스 차원을 초과합니다. tryalfft2 오류 (줄 17) I = 왼쪽 (w_range); 여기서 잘라 버릴거야 – fragkos

+0

하, 나는'interval'의 값을 잊어 버렸다. 미안합니다. 코드가 업데이트되었습니다. 간격은 너비입니다. 유닛은 두 번째이므로 45는 시작 시간에서 45 초를 의미합니다. 인덱스가 행렬 차원을 초과하지 않도록해야합니다. Matlab에서 [배열 색인] (http://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html)에 대해 더 읽으십시오. –

관련 문제