《DSP using MATLAB》示例Example5.23

代码:
conv_time = zeros(1,150); fft_time = zeros(1, 150);
%
% Nmax = 2048; 
for L = 1:150
	tc = 0; tf = 0;
	N = 2*L-1; nu = ceil(log10(N)/log10(2)); N = 2^nu;
	for I = 1:100
		h = randn(1,L); x = rand(1,L);
		t0 = clock; y1 = conv(h,x); t1 = etime(clock,t0); tc = tc + t1;
		t0 = clock; y2 = ifft(fft(h,N) .* fft(x,N)); t2 = etime(clock,t0);
		tf = tf + t2;
	end
	%
	conv_time(L)=tc/100; fft_time(L)=tf/100;
end
n=1:150;  
figure('NumberTitle', 'off', 'Name', 'Exameple5.23 ')
set(gcf,'Color','white'); 
plot(n(25:150), conv_time(25:150), n(25:150), fft_time(25:150));
xlabel('sequence length N'); ylabel('Time in Sec.'); title('comparison of convolution times');
运行结果:
我的机子结果如下图:

书中的例子,运行结果如下图:

    牢记:
1、如果你决定做某事,那就动手去做;不要受任何人、任何事的干扰。2、这个世界并不完美,但依然值得我们去为之奋斗。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号