Mengapa pemodelan berlebihan filter AR NLMS adaptif memperbaiki lonjakan tajam?

10

Saya baru saja mensimulasikan model orde kedua auto-regresif yang dipicu oleh white noise dan memperkirakan parameter dengan filter pesanan rata-rata-kuadrat rata-rata pesanan 1-4.

Sebagai filter orde pertama memodelkan sistem, tentu saja perkiraannya aneh. Filter orde kedua menemukan perkiraan yang baik, meskipun memiliki beberapa lompatan yang tajam. Ini diharapkan dari sifat filter NLMS.

Yang membingungkan saya adalah filter urutan ketiga dan keempat. Mereka tampaknya menghilangkan lompatan yang tajam, seperti yang terlihat pada gambar di bawah ini. Saya tidak bisa melihat apa yang akan mereka tambahkan, karena filter orde kedua sudah cukup untuk memodelkan sistem. Parameter redundan berkisar sekitar .0

Bisakah seseorang menjelaskan fenomena ini untuk saya, secara kualitatif? Apa yang menyebabkannya, dan apakah itu diinginkan?

Saya menggunakan ukuran langkah , sampel, dan model AR mana berwarna putih noise dengan varian 1.μ=0.01104x(t)=e(t)0.9x(t1)0.2x(t2)e(t)

masukkan deskripsi gambar di sini

Kode MATLAB, untuk referensi:

% 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 )' );
Andreas
sumber
2
Saya tidak begitu mengerti apa yang Anda rencanakan di sana. Jenis filter apa yang Anda simulasi dengan NLMS? - Jelas, semakin banyak parameter yang Anda miliki, semakin baik Anda dapat masuk ke filter sewenang-wenang; bahkan jika parameter "mengarahkan sekitar 0" itu tidak berarti mereka tidak melakukan apa pun.
leftaroundabout
@ kiri: Saya mensimulasikan model AR (2) dengan parameter konstan, yang berarti bahwa NLMS (2) harus dapat menggambarkan sistem sepenuhnya. Jelas parameter tambahan melakukan sesuatu, karena mereka berhasil mengurangi lonjakan, tapi saya bertanya-tanya mengapa - sistemnya terlalu dimodelkan, yang biasanya hanya berarti bahwa interval kepercayaan untuk parameter yang diperkirakan meningkat.
Andreas
@ kiri: Maaf, saya melewatkan kalimat pertama Anda. Saya merencanakan nilai estimasi parameter AR dari filter NLMS adaptif dari waktu ke waktu. Yaitu dari perkiraan model untukanx(t)=e(t)a1x(t1)a2x(t2)...anx(tn)n{1,2,3,4}
Andreas
Bukankah NLMS model MA saat Anda mencoba memperkirakan model AR?
Memming
1
@Memming: NLMS mencoba membalikkan model AR, jadi model MA adalah hal yang benar untuk dilakukan di sini.
Peter K.

Jawaban:

2

Apa yang tampaknya terjadi adalah, saat Anda memulai pemodelan berlebihan, sinyal kesalahan menjadi semakin putih.

Saya memodifikasi kode Anda untuk mengembalikan sinyal kesalahan (bagian dari residueistilah).

Plot ini menunjukkan koefisien nol-lag dari xcorrkesalahan untuk urutan = 2 (biru), 3 (merah), dan 4 (hijau). Seperti yang Anda lihat, istilah lag dekat-ke-tapi-bukan-nol semakin besar.

Jika kita melihat FFT (spektrum) dari xcorrkesalahan, maka kita melihat bahwa istilah frekuensi yang lebih rendah (yang menyebabkan drift besar) semakin kecil (kesalahan mengandung frekuensi yang lebih tinggi).

Jadi sepertinya efek over-modelling dalam hal ini adalah untuk filter kesalahan tinggi, yang (untuk contoh ini) bermanfaat.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

function [th,err]=ar_nlms(y,order,mu)
eps = 0.000000001;
N=length(y);
th=zeros(order,N); // estimated parameters
err = zeros(1,N);
for t=order+1:N
    phi = -y( t-1:-1:t-order, : );
    err(t) = y(t)-phi'*th(:,t-1);
    residue = phi*( err(t) );
    th(:,t) = th(:,t-1) + (mu/(phi'*phi+eps)) * residue;
    size(residue)
end
Peter K.
sumber