test code for avoiding buffer copies of output in fast conv filtering

This commit is contained in:
Mark Borgerding 2004-01-04 06:32:25 +00:00
parent 8ffc08b07b
commit c80f0cafb7

26
test/tailscrap.m Normal file
View File

@ -0,0 +1,26 @@
function diff=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=ones(1,nh);
h=rand(1,nh);
#x=[1 zeros(1,nfft-1)];
x=rand(1,nfft);
hpad=[ h(nh) zeros(1,nfft-nh) h(1:nh-1) ];
y = ifft( fft(hpad) .* fft(x) );
yfilt = filter(h,1,x);
yfilt_no_trans = yfilt(nh:nfft);
#y2=y(nh:nfft);
y2=y(1:nfft-nh+1);
diff=y2 - yfilt_no_trans;
end