findnext.m

来自「IIR数字低通滤波器的直接设计(最小均方法)」· M 代码 · 共 46 行

M
46
字号
%Optimization Algorithm ?finding the next point

function [newpointa,newpointb, newstepa, newstepb, nerror] = findnext(pointa , pointb, stepa, stepb, cerror)
 
err1 = cerror;
fpointa = pointa;
fpointb = pointb;
fstepa = stepa;
fstepb = stepb;
 
tempstepa = zeros(1,6);
tempstepb = zeros(1,6);
for x = 0 : 4095
    xx = dec2bin(x,12);
    for y = 1 : 6
        if (xx(y) == '1')
            tempstepa(y) = stepa(y);
        else
            tempstepa(y) = 0;
        end
    end
    for y = 7 : 12
        if (xx(y) == '1')
            tempstepb(y-6) = stepb(y-6);
        else
            tempstepb(y-6) = 0;
        end
    end
    a = pointa + tempstepa;
    b = pointb + tempstepb;
    temperr = finderror(a,b);
    if (temperr <= err1)
        fpointa = a;
        fpointb = b;
        fstepa = tempstepa;
        fstepb = tempstepb;
        err1 = temperr;
    end
    
end
 
newpointa = fpointa;
newpointb = fpointb;
newstepa = fstepa;
newstepb = fstepb;
nerror = err1;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?