Mô phỏng khử nhiễu bằng bộ lọc RLS trong Mathlab
I.Lí thuyết về bộ lọc thích nghi
II.Mô hình bộ lọc RLS
III. Thuật toán mô phỏng và kết quả mô phỏng
6 trang |
Chia sẻ: banmai | Lượt xem: 2945 | Lượt tải: 3
Bạn đang xem nội dung tài liệu Mô phỏng khử nhiễu bằng bộ lọc RLS trong Mathlab, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
LỌC NHIỄU BẰNG BỘ LỌC THÍCH NGHI RLS
Thiết kế này minh họa khả năng của bộ lọc RLS để trích xuất thông tin hữu ích từ một tín hiệu đã bị nhiễu. Các tín hiệu mang thông tin là một sóng sine mà bi làm hỏng bởi nhiễu gauss trắng ngẫu nhiên.
Hệ thống thích nghi dùng để lọc nhiễu giả định việc sử dụng hai micro. Một microphone lấy tín hiệu đầu vào cùng với nhiễu, trong khi một micro nhận được nhiễu là không tương quan với các tín hiệu mang thông tin, nhưng là tương quan với nhiễu của các microphone chính.
Lưu ý: demo này tương đương với các mô hình Simulink ® 'rlsdemo' cung cấp.
% Tham khảo: S. Haykin, "Adaptive Filter Theory", 3rd Edition, Prentice Hall,
NJ%, năm 1996.
Mô hình này minh họa khả năng thích ứng của RLS lọc để trích xuất thông tin hữu ích từ một tín hiệu ồn ào.
priv_drawrlsdemo trục off
Các tín hiệu mang thông tin là một làn sóng sine của 0,055 chu kỳ / mẫu.
signal = sin(2*pi*0.055*(0:1000-1)');
plot(0:199,signal(1:200));
grid;
axis([0 200 -2 2]);
title('thong tin tin hieu');
Tín hiệu nhiễu vào microphone thứ hai là đầu vào cho các RLS thích ứng lọc.
noise = randn (1000,1) * nvar; % nhieu trang ngau nhien
plot (0:999, noise);
title (' tin hieu nhieu ' );
grid;
axis ([0 1000 -4 4]);
Nhiễu làm sai lệch tín hiệu mang thông tin.Lọc tín hiệu nhiêu qua bộ lọc FIR
nfilt = fir1 (31,0.5); % 31 là bậc bộ lọc FIR
fnoise =filter (nfilt, 1, noise); % lọc nhiễu
Tín hiệu bị nhiễu
d = signal + fnoise;
plot (0:199, d (1:200));
grid;
axis ([0 200 -4 4]);
title( ‘ tin hieu vao bo loc thich nghi = tin hieu + nhieu ' );
Thiết lập và khởi tạo các thông số thích nghi RLS lọc và giá trị:
M = 32; % bậc bộ lọc
lam = 1; % hệ số trọng số
delta = 0.1; % đầu vào hiệp phương sai ước lượng ban đầu
w0 = zeros (M, 1); % trọng lượng ban đầu tập vector
P0 = (1/delta) * eye (M, M);
Zi =zeros (M-1, 1);
Chạy RLS thích ứng lọc cho 1000 lần lặp lại. chủ yếu cho thấy sự hội tụ của phản ứng lọc thích nghi với sự hưởng ứng của bộ lọc FIR.
Hadapt = adaptfilt.rls(M,lam,P0,w0,Zi);
Hadapt.PersistentMemory = true;
[y,e] = filter(Hadapt,noise,d);
H = abs(freqz(Hadapt,1,64));
H1 = abs(freqz(nfilt,1,64));
wf = linspace(0,1,64);
plot(wf,H,wf,H1);
xlabel('tan so (\times\pi rad/sample)');
ylabel('bien do');
legend('dap ung loc thich nghi dat duoc','Dap ung loc thich nghi yeu cau');
grid;
axis([0 1 0 2]);
Kết quả của việc lọc nhiễu.
plot(0:499,signal(1:500),0:499,e(1:500)); grid;
axis([0 500 -4 4]);
title('So sanh tin hieu goc va tin hieu bi nhieu');
legend('tin hieu goc', 'tin hieu da loc nhieu');
Nhận xét:
-Bộ lọc thích nghi rất tốt
- Tín hiệu sau khi lọc có dang gần giống như tín hiệu gốc.
Các file đính kèm theo tài liệu này:
- Mo phong loc nhi7877u bang bo loc RLS trong DSP.docx