Filter löschen
Filter löschen

FFT Convolution on Wav File

4 Ansichten (letzte 30 Tage)
Matthew Tindall
Matthew Tindall am 5 Dez. 2016
Kommentiert: Massimo Zanetti am 5 Dez. 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)

Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Audio I/O and Waveform Generation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by