Time-shift after fft & filter?
古いコメントを表示
I tried to implement a simple LP filter on an audio file, but I'm slightly confused by the apparent shifting of the signal in the time domain. What have I overlooked / misunderstood? Thanks.
filename = 'Raw_Wav_20180425_000226.wav';
[y,fs] = audioread(filename);
subplot(1,2,1)
plot(t,y)
xlabel('Time (s)')
ylabel('Amplitude')
title('Raw')
fmax1 = 40; %end of pass band
fmax2 = 60; %end of transition band
nt = length(y);
t = [0:nt-1]/fs;
y = y-mean(y);
dF = fs/nt;
f = -fs/2:dF:fs/2-dF;
yft = fftshift(fft(y));
I = find(abs(f)>fmax2);
yft(I) = 0;
I = find( abs(f)>fmax1 & abs(f)<=fmax2 );
yft(I) = yft(I) .* hanning(length(I));
y = ifftshift(ifft(yft));
subplot(1,2,2)
plot(t,y)
xlabel('Time (s)')
ylabel('Amplitude')
title('Post-filter')
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Fourier Analysis and Filtering についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!