Tại sao việc mô hình hóa quá mức bộ lọc AR NLMS thích ứng lại khắc phục các đột biến sắc nét?


10

Tôi chỉ mô phỏng một mô hình bậc hai tự động hồi quy được tạo ra bởi nhiễu trắng và ước tính các tham số với các bộ lọc bình phương nhỏ nhất bình thường của các đơn đặt hàng 1-4.

Là bộ lọc thứ nhất theo mô hình hệ thống, tất nhiên các ước tính là lạ. Bộ lọc thứ hai tìm thấy các ước tính tốt, mặc dù nó có một vài bước nhảy sắc nét. Điều này được mong đợi từ bản chất của các bộ lọc NLMS.

Điều làm tôi bối rối là các bộ lọc thứ ba và thứ tư. Họ dường như loại bỏ các bước nhảy sắc nét, như được thấy trong hình dưới đây. Tôi không thể thấy những gì họ sẽ thêm, vì bộ lọc thứ hai là đủ để mô hình hóa hệ thống. Các tham số dự phòng di chuột xung quanh anyway.0

Ai đó có thể giải thích hiện tượng này cho tôi, một cách định tính? Điều gì gây ra nó, và nó là mong muốn?

Tôi đã sử dụng kích thước bước , mẫu và mô hình AR trong đó có màu trắng nhiễu với phương sai 1.10 4 x ( t ) = e ( t ) - 0,9 x ( t - 1 ) - 0,2 x ( t - 2 ) e ( t )μ=0.01104x(t)=e(t)0.9x(t1)0.2x(t2)e(t)

nhập mô tả hình ảnh ở đây

Mã MATLAB, để tham khảo:

% 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 )' );

2
Tôi không hiểu bạn đang âm mưu gì ở đó. Bạn đang mô phỏng loại bộ lọc nào với NLMS? - Rõ ràng, bạn càng có nhiều tham số, bạn càng có thể phù hợp với bộ lọc tùy ý; ngay cả khi các tham số "di chuột quanh 0" không có nghĩa là chúng không làm gì cả.
leftaroundabout

@left: Tôi đang mô phỏng mô hình AR (2) với các tham số không đổi, điều đó có nghĩa là NLMS (2) sẽ có thể mô tả hệ thống hoàn toàn. Rõ ràng các tham số bổ sung làm một cái gì đó, khi chúng quản lý để giảm các đột biến, nhưng tôi tự hỏi tại sao - hệ thống được mô hình hóa quá mức, điều này thường chỉ có nghĩa là khoảng tin cậy cho các tham số ước tính tăng lên.
Andreas

@left: Xin lỗi, tôi đã bỏ lỡ câu đầu tiên của bạn. Tôi đang vẽ các giá trị ước tính của các tham số AR của bộ lọc NLMS thích ứng theo thời gian. Tức là từ mô hình ước tính cho x ( t ) = e ( t ) - a 1 x ( t - 1 ) - a 2 x ( t - 2 ) - . . . - a n x ( t - n ) n { 1 , 2 , 3 , 4 }anx(t)=e(t)a1x(t1)a2x(t2)...anx(tn)n{1,2,3,4}
Andreas

Không phải NLMS là mô hình MA trong khi bạn đang cố gắng xấp xỉ mô hình AR?
Ghi nhớ

1
@Memming: NLMS đang cố gắng đảo ngược mô hình AR, vì vậy một mô hình MA là điều nên làm ở đây.
Peter K.

Câu trả lời:


2

Điều dường như đang xảy ra là, khi bạn bắt đầu mô hình hóa quá mức, tín hiệu lỗi sẽ ngày càng trắng hơn.

Tôi đã sửa đổi mã của bạn để trả về tín hiệu lỗi (một phần của residuethuật ngữ).

Biểu đồ này hiển thị các hệ số độ trễ không bằng 0 xcorrcủa lỗi cho thứ tự = 2 (màu xanh), 3 (màu đỏ) và 4 (màu xanh lá cây). Như bạn có thể thấy, các thuật ngữ độ trễ gần bằng nhưng không bằng 0 đang ngày càng lớn hơn.

Nếu chúng ta nhìn vào FFT (phổ) của xcorrlỗi, thì chúng ta sẽ thấy rằng các thuật ngữ tần số thấp hơn (gây ra các vết trôi lớn) đang ngày càng nhỏ hơn (lỗi chứa nhiều tần số cao hơn).

Vì vậy, có vẻ như tác dụng của việc mô hình hóa quá mức trong trường hợp này là bộ lọc thông cao lỗi, điều này (ví dụ này) có lợi.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.