Matlab中转换与滤波器的速度

时间:2018-12-18 14:28:08

标签: matlab time octave

我通过运行以下脚本来比较Matlab函数convfilter的运行时间:

function speed()
% not needed
%a = 0
%wake up CPU
%for j =1:100
%    a= a+1; %matlab does not allow a+=1
%end


N = [100 1000 1000 5000]*15;

speedc = [];
speedf = [];

for n = N
    a = rand(1,n);
    b = rand(1,n+10);
    tic
    conv(a,b);
    speedc = [speedc toc];

    tic
    filter(a,1,b);
    speedf = [speedf toc];

end

disp(speedf./speedc)

通过输出我得到:

0.32581   0.50001   0.50084   0.50077

我们看到,filter函数的速度几乎是conv函数的两倍。为什么会这样?

编辑: “唤醒CPU”部分使用八度特定语法。我更改了它,使其可以在matlab中运行。我们在没有第一个循环的情况下运行了Matlab中的Windows 7计算机。该版本对我来说是未知的。

0 个答案:

没有答案