FFT Convolution on Wav File

4 visualizaciones (últimos 30 días)
Matthew Tindall
Matthew Tindall el 5 de Dic. de 2016
Comentada: Massimo Zanetti el 5 de Dic. de 2016
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)

Respuestas (1)

Massimo Zanetti
Massimo Zanetti el 5 de Dic. de 2016
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 comentarios
Matthew Tindall
Matthew Tindall el 5 de Dic. de 2016
The file is mono I believe
Massimo Zanetti
Massimo Zanetti el 5 de Dic. de 2016
Do you believe? Let's try a more deterministic check, what's the output of size(x)?

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by