FFT ovaerlap save/overlap add linear convolution, help!!

1 view (last 30 days)
I need to apply linear convolution between two signals:
the one is a speech noisy signal(407792x2 double)
the other is a impulse response(20x1 complex double) of digital filter.
how can i apply this?
i tried this one but I'm getting an error
if true
L_1=7;
x_1=noisy_signal;
h_1=helem;
M_1=length(h_1);
lx=length(x_1);
r=rem(lx,L_1);
x1_1=[x_1 zeros(1,L_1-r)]
nr=(length(x1_1))/L_1
h1=[h_1 zeros(1,L_1-1)];
for k=1:nr
Ma(k,:)=x1_1(((k-1)*L_1+1):k*L_1)
if k==1
Ma1(k,:)=[zeros(1,M_1-1) Ma(k,:)]
else
Ma1(k,:)=[Ma(k-1,(L_1-M_1+2):L_1) Ma(k,:)]
end
Ma2(k,:)=ifft(fft(Ma1(k,:)).*fft(h1))
end
Ma3=Ma2(:,M_1:(L_1+M_1-1));
y_11=Ma3';
y_2=y_11(:)';
end

Answers (0)

Community Treasure Hunt

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

Start Hunting!