view src/ext/kissfft/test/tailscrap.m @ 174:5ed6e970541b

Remote location for this subrepo is unresponsive, include sources in this repo instead
author Chris Cannam <c.cannam@qmul.ac.uk>
date Fri, 17 Jul 2015 15:48:01 +0100
parents
children
line wrap: on
line source
function maxabsdiff=tailscrap()
% test code for circular convolution with the scrapped portion 
% at the tail of the buffer, rather than the front
%
% The idea is to rotate the zero-padded h (impulse response) buffer
% to the left nh-1 samples, rotating the junk samples as well.
% This could be very handy in avoiding buffer copies during fast filtering.
nh=10;
nfft=256;

h=rand(1,nh);
x=rand(1,nfft);

hpad=[ h(nh) zeros(1,nfft-nh) h(1:nh-1) ]; 

% baseline comparison
y1 = filter(h,1,x);
y1_notrans = y1(nh:nfft);

% fast convolution
y2 = ifft( fft(hpad) .* fft(x) );
y2_notrans=y2(1:nfft-nh+1);

maxabsdiff = max(abs(y2_notrans - y1_notrans))

end