Je viens de simuler un modèle de second ordre auto-régressif alimenté par le bruit blanc et d'estimer les paramètres avec des filtres normalisés au carré le plus petit des ordres 1 à 4.
Comme le filtre de premier ordre sous-modèle le système, les estimations sont bien sûr étranges. Le filtre de second ordre trouve de bonnes estimations, bien qu'il comporte quelques sauts brusques. Cela est à prévoir de par la nature des filtres NLMS.
Ce qui m'embrouille, ce sont les filtres du troisième et du quatrième ordre. Ils semblent éliminer les sauts brusques, comme le montre la figure ci-dessous. Je ne vois pas ce qu'ils ajouteraient, car le filtre de second ordre est suffisant pour modéliser le système. Les paramètres redondants tournent autour de toute façon.
Quelqu'un pourrait-il expliquer ce phénomène pour moi, qualitativement? Qu'est-ce qui la cause et est-ce souhaitable?
J'ai utilisé une taille de pas , échantillons et le modèle AR où est blanc bruit avec variance 1.
Le code MATLAB, pour référence:
% ar_nlms.m
function th=ar_nlms(y,order,mu)
N=length(y);
th=zeros(order,N); % estimated parameters
for t=na+1:N
phi = -y( t-1:-1:t-na, : );
residue = phi*( y(t)-phi'*th(:,t-1) );
th(:,t) = th(:,t-1) + (mu/(phi'*phi+eps)) * residue;
end
% main.m
y = filter( [1], [1 0.9 0.2], randn(1,10000) )';
plot( ar_nlms( y, 2, 0.01 )' );
Réponses:
Ce qui semble se produire, c'est que lorsque vous commencez une modélisation excessive, le signal d'erreur devient de moins en moins blanc.
J'ai modifié votre code pour renvoyer le signal d'erreur (partie du
residue
terme).Ce graphique montre les coefficients de décalage hors zéro
xcorr
de l'erreur pour l'ordre = 2 (bleu), 3 (rouge) et 4 (vert). Comme vous pouvez le constater, les termes de décalage proches de zéro mais non nuls deviennent de plus en plus importants.Si nous regardons la FFT (spectre) de l'
xcorr
erreur, alors nous voyons que les termes de fréquence inférieure (qui provoquent les grandes dérives) deviennent plus petits (l'erreur contient plus de hautes fréquences).Il semble donc que l'effet de la sur-modélisation dans ce cas soit de filtrer passe-haut l'erreur, ce qui (pour cet exemple) est bénéfique.
la source