FFT Convolution on Wav File

4 ビュー (過去 30 日間)
Matthew Tindall
Matthew Tindall 2016 年 12 月 5 日
コメント済み: Massimo Zanetti 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 Center および File ExchangeFilter Analysis についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by