FFT Convolution on Wav File

4 次查看(过去 30 天)
Matthew Tindall
Matthew Tindall 2016-12-5
Seem to get a Vercat error on line 10 saying there is a problem with 'X = fft( [x ; zeros(length(brirL),1) ]); ' however i just can't see it and have been trying for a while now. Here is the code, Thanks in advanced, regards Matt
close all clear all
[x Fs]=audioread('drums.wav'); brir = audioread('HRIR_C.wav'); brirL = brir(:,1); brirR = brir(:,2);
L = length(x) + length(brirL) -1 ; % Output data length X = fft( [x ; zeros(length(brirL),1) ]); HL = fft( [ brirL ; zeros(length(x) ,1) ] ); HR = fft( [ brirR ; zeros(length(x) ,1 ) ] );
outL = zeros(L,1); % output buffer outR = zeros(L,1);
outL = ifft(X .* HL); % multiplication of fft results & ifft outR = ifft(X .* HR);
mainOut = [outL outR];
sound(mainOut,Fs)

回答(1 个)

Massimo Zanetti
Massimo Zanetti 2016-12-5
Is your audio file x (loaded with [x Fs]=audioread('drums.wav'); ) stereo? Because in this case the line
X = fft( [x ; zeros(length(brirL),1) ]);
will of course throw an error, because you cannot vertcat a 2-column matrix with a one-column matrix...
  2 个评论
Matthew Tindall
Matthew Tindall 2016-12-5
The file is mono I believe
Massimo Zanetti
Massimo Zanetti 2016-12-5
Do you believe? Let's try a more deterministic check, what's the output of size(x)?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Filter Analysis 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by