OK, vamos tentar obter o melhor:
para que o coeficiente de é . x[n-m]α(1-α)m
y[ n ]===α x [ n ] + ( 1 - α ) y[ n - 1 ]αx[n]+(1−α)αx[n−1]+(1−α)2y[n−2]αx[n]+(1−α)αx[n−1]+(1−α)2αx[n−2]+(1−α)3y[n−3]
x[n−m]α(1−α)m
A melhor aproximação do quadrado médio minimizará:
m>k-1
J(α)======∑k−1m=0(α(1−α)m−1k)2+∑∞m=kα2(1−α)2m∑k−1m=0(α2(1−α)2m−2kα(1−α)m+1k2)+α2(1−α)2k∑∞m=0(1−α)2mα21−(1−α)2k1−(1−α)2+2αk1−(1−α)k1−(1−α)+α2(1−α)2k1−(1−α)2+1kα21−(1−α)2+2k(1−(1−α)k)+1kα22α−α2+2k(1−(1−α)k)+1kα2−α+2k(1−(1−α)k)+1k
porque os coeficientes FIR são zero para .
m>k−1
O próximo passo é pegar derivadas e igualar a zero.
Olhando para um gráfico do derivado de e de 0 a 1, parece que o problema (como eu o configurei) está mal colocado, porque a melhor resposta é .K = 1000 α α = 0JK=1000αα=0
Eu acho que há um erro aqui. A maneira como deve estar de acordo com meus cálculos é:
J(α)===∑k−1m=0(α(1−α)m−1k)2+∑∞m=kα2(1−α)2m∑k−1m=0(α2(1−α)2m−2kα(1−α)m+1k2)+α2(1−α)2k∑∞m=0(1−α)2mα21−(1−α)2k1−(1−α)2−2αk1−(1−α)k1−(1−α)+1k+α2(1−α)2k1−(1−α)2
Simplificá-lo de acordo com o Mathematica produz:
J(α)=α2−α+2(1−α)k−1k
O uso do código a seguir no MATLAB produz algo equivalente, embora diferente:
syms a k;
expr1 = (a ^ 2) * ((1 - ((1 - a) ^ (2 * k))) / (1 - ((1 - a) ^ 2)));
expr2 = ((2 * a) / k) * ((1 - ((1 - a) ^ (k))) / (1 - (1 - a)));
expr3 = (1 / k);
expr4 = ((a ^ 2) * ((1 - a) ^ (2 * k))) / (1 - ((1 - a) ^ (2)));
simpExpr = simplify(expr1 - expr2 + expr3 + expr4);
J(α)=−2α−2−k−2(1−α)k+1k
De qualquer forma, essas funções têm um mínimo.
Então, vamos supor que realmente nos preocupamos apenas com a aproximação do suporte (comprimento) do filtro FIR. Nesse caso, o problema de otimização é justo:
J2(α)=∑m=0k−1(α(1−α)m−1k)2
A plotagem de para vários valores de versus resulta na data nas plotagens e na tabela abaixo.K αJ2(α)Kα
Para = 8. = 0,1533333
Para = 16. = 0,08
Para = 24. = 0,0533333
Para = 32. = 0,04
Para = 40. = 0,0333333
Para = 48. = 0,0266667
Para = 56. = 0,0233333
Para = 64. α m i n K α m i n K α m i n K α m i n K α m i n K α m i n K α m i n K α m i n K α m i nKαmin
Kαmin
Kαmin
Kαmin
Kαmin
Kαmin
Kαmin
Kαmin = 0,02
Para = 72. = 0,0166667 Kαmin
As linhas tracejadas vermelhas são e as linhas verdes são , o valor de que minimiza (escolhido em ).1/KαminαJ2(α)alpha=[0:.01:1]/3;