fgoalattain
考虑diseñar一个线性的有限度冲动(FIR)恢复滤液。这个问题是diseñar我们的测量结果是在0 y 0,1 Hz和0,15 y 0,5 Hz之间。
在定义中间值的时候,我们可以用这个公式Hf
(1) |
式中()为频率恢复的大小。一个f一个solución是适用的,另一个método de consecución是客观的。我们可以función计算星等,intentará星等系数()可以计算星等与星等重合的星等。fgoalattain
一个n我们计算的是这个数字的大小。filtmin.m
在función上利用función的系数,在interés上利用discretización的系数。一个
w
构型是consecución的一个问题,具体来说是一个对位问题。目标
权重
在0 y 0,1之间的频率是0。在0,15和0,5中间的频率是0。在0,1和0,15之间没有具体的数字,但在这个范围内没有必要的数字。
这是información,这是一个可变的pasada。目标
fgoalattain
经度就是这个misma的经度就是这个función。目标
filtmin
我们的目标是estén我的目标是满意的,正常的目标是establecería。重量
abs(目标)
在禁运的时候,我们的目的是什么,我们的目的是什么,我们的目的是什么,我们的目的是什么,我们的目的是什么,我们的目的是什么。重量= abs(目标)
重量
重量
Método de consecución de objetivo为了完成están的目标,为了完成dará的目标,我们要团结一致。重量
(我们将向los pesos es más importante cuando la magnitde difiere más significant vamente.)abs(目标)
目标
此外,establecer
选择= optimoptions(‘fgoalattain’,‘EqualityGoalCount’,长度(目标);
具体地说,我们的目标是在más这个cercano可能是一个su valor objetivo (ni mayor ni menor que)。
函数y = filtmin(a,w) n = length(a);Y = cos(w'*(0:n-1)*2*pi)*a;
%作图,初始系数a0 = 1 (15,1);增加= 50;w = linspace(0、0.5、增加);y0 = filtmin (a0, w);clf、情节(w y0。b);drawnow;%设置目标实现问题w1 = linspace(0,0.1,incr);w2 = linspace(0.15, 0.5,增加);W0 = [w1 w2];目标=[1.0 * 1(1,长度(w1)) 0(1,长度(w2))); weight = ones(size(goal)); % Call fgoalattain options = optimoptions('fgoalattain','EqualityGoalCount',length(goal)); [a,fval,attainfactor,exitflag]=fgoalattain(@(x)filtmin(x,w0),... a0,goal,weight,[],[],[],[],[],[],[],options); % Plot with the optimized (final) coefficients y = filtmin(a,w); hold on, plot(w,y,'r') axis([0 0.5 -3 3]) xlabel('Frequency (Hz)') ylabel('Magnitude Response (dB)') legend('initial', 'final') grid on
比较下一阶段和下一阶段的量值计算。量值与量值的最终系数一致您可以使用podría实用程序función软件diseñar este滤镜。firpm
(信号处理工具箱)信号处理工具箱™
量值与量值的最终系数一致