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 + -
显示快捷键?