Kỹ thuật điện tử<br />
<br />
ỨNG DỤNG THUẬT TOÁN LỌC THÍCH NGHI BÌNH PHƯƠNG<br />
CỰC TIỀU ĐỆ QUY TRONG KHỬ TẠP TRẮNG<br />
Tạ Văn Khỏe*, Phan Trọng Hanh<br />
<br />
Tóm tắt: Bài báo trình bày về lọc thích nghi sử dụng thuật toán toán bình<br />
phương cực tiểu đệ quy (RLS) và ứng dụng của nó để khử tạp trắng. Đây là một<br />
phương pháp mới để thu được tín hiệu sạch thay thế cho phương pháp ước lượng<br />
tín hiệu. Bộ lọc thích nghi RLS tự động cập nhật hệ số lọc để thích ứng với các tính<br />
chất thay đổi ngẫu nhiên và không biết trước của tín hiệu. Các kết quả mô phỏng<br />
trên Matlab chứng tỏ bộ lọc được xây dựng có khả năng khử tạp trắng rất tốt.<br />
Từ khóa: Lọc thích nghi, Bình phương cực tiểu đệ quy, Tạp trắng.<br />
<br />
1. ĐẶT VẤN ĐỀ<br />
Trong xử lý tín hiệu số, đối tượng cần xử lý là tín hiệu ngẫu nhiên, không biết<br />
trước và lẫn tạp đặc biệt là tạp trắng. Do vậy nếu chỉ sử dụng các bộ lọc đáp ứng<br />
xung hữu hạn (FIR) hoặc vô hạn (IIR) có các hệ số lọc cố định thì không thể đạt<br />
được kết quả tối ưu. Khi đó giải pháp sử dụng các bộ lọc thích nghi để bám sự thay<br />
đổi của tín hiệu và tạp âm là bắt buộc. Các bộ lọc thích nghi sử dụng các tham số<br />
của bộ lọc ở thời điểm trước đó, tự động điều chỉnh các tham số của bộ lọc ở thời<br />
điểm hiện tại, để thích ứng với các tính chất thay đổi ngẫu nhiên và không biết<br />
trước của tín hiệu [4]. Như vậy bộ lọc thích nghi có ưu điểm hơn vì nó có khả năng<br />
bám và tự động điều chỉnh tham số lọc.<br />
Một số nghiên cứu điển hình gần đây và hạn chế: (1) nghiên cứu của Sayed. A.<br />
Hadei and M. lotfizad [3] tập trung phân tích các thuật toán thường sử dụng trong<br />
lọc thích nghi. Trong đó, tác giả sử dụng ưu điểm đơn giản trong tính toán và thiết<br />
kế của thuật toán bình phương trung bình cực tiểu chuẩn hóa (NLMS) để loại bỏ<br />
tạp âm. Tuy nhiên khi đó tốc độ hội tụ và cập nhật hệ số lọc chậm. (2) Nghiên cứu<br />
J. Gnitecki, Z. Moussavi [6] sử dụng lọc thích nghi RLS để loại bỏ những tiếng<br />
đập của tim khi phân tích âm thanh của phổi. Mạch lọc được thiết kế có bậc thấp,<br />
cấu trúc đơn giản tuy nhiên chỉ sử dụng với đối tượng lọc đơn giản. (3) Nghiên cứu<br />
của Tian Lan, and Jinlin Zhang [4] thực hiện lọc thích nghi trên bo mạch phần<br />
cứng FPGA sử dụng thuật toán LMS do đó đơn giản được cấu trúc phần cứng tuy<br />
nhiên tốc độ hội tụ chậm.<br />
Trên cơ sở nghiên cứu, phân tích ưu khuyết điểm của các thuật toán, các tác giả<br />
đã cải tiến phương pháp khử tạp trắng trong tín hiệu nhờ sử dụng lọc thích nghi<br />
RLS. Các kết quả mô phỏng trên Matlab chứng minh hiệu quả của nó so với các bộ<br />
lọc FIR và IIR.<br />
<br />
2. THUẬT TOÁN LỌC THÍCH NGHI BÌNH PHƯƠNG CỰCTIỀU ĐỆ QUY<br />
<br />
<br />
156 T. V. Khỏe, P.T. Hanh, “Ứng dụng thuật toán lọc thích nghi … khử tạp trắng.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
2.1. Tổng quan về xử lý tín hiệu thích nghi<br />
Để nâng cao chất lượng tín hiệu thu được, ở thiết bị thu cần phải tích hợp các<br />
khối xử lý để giảm ảnh hưởng của nhiễu và tạp âm, đồng thời bù trừ những thay<br />
đổi của kênh truyền. Các bộ lọc kinh điển được thiết kế sẽ hoạt động hiệu quả nếu<br />
phổ của tín hiệu có ích và nhiễu ổn định và phân bố ở những vùng riêng biệt trên<br />
miền tần số. Tuy nhiên phương pháp này yêu cầu phải biết trước các đặc trưng<br />
thống kê cơ bản của nhiễu (giả định nhiễu và tạp âm là những quá trình ngẫu nhiên<br />
dừng). Các bộ lọc này thực hiện xử lý để nhận được tín hiệu ra giống với tín hiệu<br />
mong muốn nhất như hình 1.<br />
Nhưng trong thực tế, nhiễu và tạp âm là những quá trình ngẫu nhiên không<br />
dừng. Vì vậy để phù hợp hơn với điều kiện thực tế người ta đã đề xuất phương<br />
pháp xử lý tín hiệu thích nghi. Mọi thuật toán xử lý tín hiệu thích nghi đều xuất<br />
phát từ một tập điều kiện ban đầu của môi trường truyền dẫn. Trong môi trường<br />
không dừng, không tồn tại một giải pháp tối ưu duy nhất cho quá trình xử lý tín<br />
hiệu thích nghi. Để đảm bảo đạt được tín hiệu thu tốt nhất thì các bộ lọc thích nghi<br />
phải thực hiện quá trình điều chỉnh trọng số bộ lọc dù không biết trước được các<br />
tính chất thống kê của tín hiệu vào. Sơ đồ khối của hệ thống xử lý tín hiệu thích<br />
nghi được thể hiện trên hình 2.<br />
<br />
<br />
<br />
<br />
Hình 1. Sơ đồ khối bộ lọc tuyến tính. Hình 2. Sơ đồ khối bộ lọc thích nghi.<br />
<br />
Hoạt động của thuật toán xử lý tín hiệu thích nghi gồm hai quá trình chính:<br />
- Quá trình lọc: quá trình này thực hiện lấy tín hiệu ra từ tín hiệu đầu vào.<br />
- Quá trình thích nghi: mục đích của quá trình này là điều chỉnh tham số của<br />
hệ thống theo sự thay đổi của tín hiệu vào và của môi trường truyền dẫn. Quá trình<br />
thích nghi điều chỉnh tham số của bộ lọc theo tín hiệu sai lệch giữa đầu ra bộ lọc<br />
với tín hiệu mong muốn.<br />
2.2. Thuật toán bình phương cực tiểu đệ quy<br />
Sơ đồ khối thực hiện lọc thích nghi sử dụng thuật toán RLS như hình 3. Đầu ra<br />
y(n) được so sánh với tín hiệu mong muốn d(n) để hình thành sai số e(n). Trong đó<br />
y(n) được xác định bằng tích chập giữa tín hiệu vào x(n) và các hệ số lọc w(k), lỗi<br />
lọc là hiệu của tín hiệu mong muốn và tín hiệu thu được sau khi thực hiện lọc như<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san Viện Điện tử, 10 - 2015 157<br />
Kỹ thuật điện tử<br />
<br />
công thức 1.<br />
N 1<br />
y(n) wk x(n k); e n d n y n (1)<br />
k 0<br />
<br />
<br />
Z 1 Z 1 Z 1<br />
<br />
<br />
<br />
<br />
W0 W1 Wk W N 1<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Hình 3. Sơ đồ lọc thích nghi sử dụng thuật toán RLS.<br />
<br />
Thuật toán RLS định nghĩa hàm tổn thất J là tổng của các bình phương lỗi e(n):<br />
N 1<br />
2 (2)<br />
J e(n)<br />
n 0<br />
Quá trình thích nghi theo thuật toán RLS sẽ khiến cho J giảm dần qua các bước<br />
lặp và tiến tới Jmin. Để hiểu bản chất của thuật toán RLS, ta viết các phương trình ở<br />
dạng ma trận:<br />
y XT w , e = d - XT w (3)<br />
Hàm định giá J phụ thuộc vào vector trọng số của bộ lọc và cần đạt đến giá trị<br />
cực tiểu: J(w ) = eT e min . Thay thế biểu thức của e vào hàm J(w) ta có:<br />
J(w ) (dTd w T Xd dT XT w w T XXT w ) min (4)<br />
Để xác định cực tiểu của J(w), thực hiện lấy gradient của nó và cho bằng 0. Từ<br />
đây ta nhận được vector trọng số của mạch lọc cần xây dựng như công thức (5).<br />
w = (XXT )-1 Xd (5)<br />
Về nguyên tắc, chúng ta có thể xác định w theo công thức (5), tuy nhiên khi đó<br />
khối lượng tính toán rất lớn, chủ yếu là do phép lấy nghịch đảo ma trận. Với mục<br />
đích giảm khối lượng tính toán, ta xem xét phương pháp tính toán đệ quy cho (5).<br />
Giả sử (5) được tính toán theo nhiều bước, khi đó véc tơ hệ số lọc w tại bước lặp<br />
thứ k được viết như sau:<br />
w (k ) = (X (k ) X T (k ) ) -1 X (k ) d (k ) (6)<br />
Khi chuyển qua bước k+1, X(k) được bổ sung thêm 1 cột X(k+1), còn d(k)<br />
được bổ sung thêm phần tử d(k+1).<br />
<br />
<br />
<br />
<br />
158 T. V. Khỏe, P.T. Hanh, “Ứng dụng thuật toán lọc thích nghi … khử tạp trắng.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
<br />
Từ (6) đặt P(k) ( X(k) XT (k))1 , ta nhận thấy P(k) chính là nghịch đảo của<br />
ma trận tương quan của tín hiệu. Biến đổi ma trận và tính toán ta được P(k+1) như<br />
công thức (7).<br />
P(k)x(k 1)xT (k 1)P(k) (7)<br />
P(k 1) P(k) <br />
(1 xT (k 1)P(k)x(k 1))<br />
Véc tơ trọng số lọc ở bước thứ k+1 nhận được như sau:<br />
w (k 1) = P (k 1) X(k 1)d(k 1)<br />
P(k)x(k 1)xT (k 1) P(k) (8)<br />
P (k) X(k)d(k) x(k 1)d(k 1) <br />
1 x T<br />
(k 1) P (k) x (k 1) <br />
<br />
Tiếp tục biến đổi và thực hiện nhóm thừa số chung ta được:<br />
P(k)x(k 1)<br />
w(k 1) = w(k) (d(k 1) xT (k 1)w(k)) (9)<br />
T<br />
1 x (k 1)P(k)x(k 1)<br />
Nhận thấy tích x T (k 1) w (k) chính là kết quả xử lý mới, tức là y(k+1). Như<br />
vậy, biểu thức d(k 1) xT (k 1)w(k) chính là thành phần lỗi e(k+1) do đó:<br />
P (k)x(k 1)<br />
w (k 1) = w (k) e(k 1) w (k) K (k 1)e(k 1) (10)<br />
T<br />
1 x (k 1) P(k) x(k 1)<br />
P(k)x(k 1)<br />
Trong đó: K (k 1) gọi là hệ số khuếch đại<br />
1 xT (k 1)P (k) x(k 1)<br />
Như vậy, khi sử dụng thuật toán RLS, mỗi bước lặp bao gồm các thao tác:<br />
1. Khi có sự xuất hiện của véc tơ mẫu mới x(k), thực hiện chọn lọc tín hiệu<br />
này với các hệ số lọc cũ w(k-1) và hình thành lỗi e(k):<br />
y(k) xT (k)w (k 1), e k d k y k .<br />
2. Tính toán vector cột các hệ số khuếch đại:<br />
P (k 1) x (k )<br />
K (k ) <br />
T<br />
1 x (k ) P (k 1) x (k )<br />
3. Tính toán P(k):<br />
P (k 1) x (k) x T (k) P (k 1)<br />
P (k) P (k 1) <br />
(1 x T (k) P (k 1) x (k))<br />
4. Thực hiện cập nhật vector trọng số lọc:<br />
w (k) = w (k 1) K (k)e(k)<br />
<br />
3. KẾT QUẢ MÔ PHỎNG QUÁ TRÌNH KHỬ TẠP TRẮNG<br />
3.1. Mô phỏng quá trình khử tạp trắng trong tín hiệu sine trên Simulink<br />
Bộ lọc thích nghi sử dụng thuật toán RLS được sử dụng để loại bỏ tạp trắng ra<br />
khỏi tín hiệu hình sine được mô phỏng trên Simulink như sơ đồ hình 4. Tín hiệu<br />
tham chiếu và tín hiệu mong muốn được đưa tới các cổng tương ứng để tự động<br />
cập nhật hệ số lọc trong khối lọc RLS. Tạp trắng phân bố Gause và các mẫu của tín<br />
hiệu hình sine được tạo ra từ bộ tạo tạp và bộ tạo tín hiệu dạng sine.<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san Viện Điện tử, 10 - 2015 159<br />
Kỹ thuật điện tử<br />
<br />
DSP<br />
Input Signal<br />
Input Signal<br />
Signal + Noise<br />
Sine Wave<br />
Results<br />
Error Signal<br />
Input Output<br />
white Noise FDATool<br />
Filter<br />
Desired<br />
RLS Error Taps<br />
Adapt<br />
Noise Filter<br />
To<br />
Reset Wts<br />
Frame<br />
0 User<br />
RLS Filter<br />
1<br />
Enable<br />
<br />
0 FFT<br />
Info Freq<br />
1<br />
Reset Response<br />
Info<br />
<br />
Hình 4. Sơ đồ quá trình khử tạp trắng trên Simulink sử dụng thuật toán RLS.<br />
<br />
<br />
<br />
<br />
Hình 5. Hệ số lọc và đặc tính tần khi số của bộ lọc RLS.<br />
<br />
<br />
<br />
<br />
a. Số mẫu cho thích nghi ít. b. Số mẫu cho thích nghi đủ lớn.<br />
Hình 6. Tín hiệu sau bộ lọc khi số mẫu thích nghi khác nhau.<br />
Kết quả khi chạy mô phỏng quá trình khử tạp trắng trong tín hiệu hình sine trên<br />
môi trường Simulink khi số mẫu thích nghi ít và đủ lớn như thể hiện trên hình 6.<br />
<br />
<br />
160 T. V. Khỏe, P.T. Hanh, “Ứng dụng thuật toán lọc thích nghi … khử tạp trắng.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
Chúng ta có thể dễ dàng nhận thấy rằng khi số mẫu chưa đủ để bộ lọc xử lý, cập<br />
nhật hệ số lọc thì các hệ số lọc và đặc tính tần số chưa ổn định do đó tín hiệu đầu<br />
ra chưa giống với tín hiệu gốc (vẫn còn tạp âm). Tuy nhiên khi xử lý với số mẫu đủ<br />
lớn các hệ số lọc và đặc tính tần rất ổn định. Tín hiệu ra sau lọc giống với tín hiệu<br />
gốc và tạp trắng đã bị loại bỏ.<br />
3.2. Mô phỏng quá trình khử tạp trắng trong tín hiệu âm thanh<br />
<br />
<br />
<br />
<br />
<br />
<br />
Hình 7. Sơ đồ quá trình khử tạp trắng sử dụng thuật toán RLS.<br />
Sơ đồ khối quá trình lọc thích nghi sử dụng thuật toán RLS để loại bỏ tạp trắng<br />
trong nguồn âm thanh như hình 7. Dạng tín hiệu âm thanh và phổ của nó trước và<br />
sau khử tạp trắng với bộ lọc thích nghi RLS có bậc mạch lọc 32 khi thực hiện mô<br />
phỏng trên Matlab cho kết quả như hình 8.<br />
Tin hieu goc Pho am thanh goc<br />
1 300<br />
<br />
0 200<br />
<br />
100<br />
-1<br />
0 1 2 3 4 5 6 7 0<br />
4 0 500 1000 1500 2000 2500<br />
x 10<br />
Tin hieu+ tap trang Pho am am thanh + tap trang<br />
1 300<br />
200<br />
0<br />
100<br />
-1<br />
0 1 2 3 4 5 6 7 0<br />
4 0 500 1000 1500 2000 2500<br />
x 10<br />
Loi = Tin hieu sau loc Pho loi loc = pho am thanh sau loc<br />
1 300<br />
<br />
0 200<br />
<br />
100<br />
-1<br />
0 1 2 3 4 5 6 7 0<br />
Loc thich nghi su dung thuat toan RLS 4 0 500 1000 1500 2000 2500<br />
x 10<br />
Pho khi Loc thich nghi su dung thuat toan RLS<br />
<br />
<br />
a. Dạng tín hiệu âm thanh. b. Phổ tín hiệu âm thanh.<br />
Hình 8. Tín hiệu âm thanh khi qua bộ lọc thích nghi RLS.<br />
Từ kết quả chúng ta nhận thấy đoạn âm thanh khi bị tác động bởi tạp trắng mà<br />
thực hiện lọc thích nghi với thuật toán RLS tín hiệu sau lọc cho có chất lượng như<br />
tín hiệu gốc. Bằng mắt thường và bằng tai người thì không thể phân biết được tín<br />
hiệu trước và sau lọc.<br />
3.3. Đánh giá thuật toán RLS<br />
Để đánh giá và so sánh hiệu quả các thuật toán thích nghi trong khử nhiễu<br />
chúng ta sử dụng các tham số tốc độ hội tụ và độ tăng tỷ lệ tín trên tạp (SNRI). Tốc<br />
độ hội tụ là số mẫu cần dùng để tín hiệu sau lọc tiệm cần tới tới hiệu gốc. Độ tăng<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san Viện Điện tử, 10 - 2015 161<br />
Kỹ thuật điện tử<br />
<br />
tỷ lệ tín trên tạp là hiệu tỷ lệ tín trên tạp của tín hiệu sau lọc và tín hiệu trước lọc.<br />
Nghiên cứu trong [3] chứng minh rằng tốc độ hội tụ của thuật toán RLS nhanh hơn<br />
rất nhiều so với các thuật toán kinh điển LMS, NLMS. Không những thế tốc độ<br />
của nó vẫn lớn hơn các thuật toán mới được giới thiệu (FAP và FEDS). Tính toán<br />
SNRI của các thuật toán và so sánh như bảng 1 ta thấy chất lượng của thuật toán<br />
RLS trong khử nhiễu tạp trắng là tối ưu nhất. Tuy nhiên thuật toán RLS gồm nhiều<br />
phép toán phức tạp do đó yêu cầu tốc độ tính toán cao.<br />
Bảng 1. Tính toán SNRI của các thuật toán.<br />
Thuật toán LMS NLMS FA P FEDS RLS<br />
SNRI (db) 13.5905 16.8679 24.9078 22.2623 29.7355<br />
<br />
4. KẾT LUẬN<br />
<br />
Bài báo nghiên cứu về thuật toán RLS, trên cơ sở đó xây dựng phương pháp<br />
mới để khử tạp trắng là sử dụng bộ lọc thích nghi RLS. Ngoài ra, bộ lọc này có<br />
nhiều ứng dụng trong xử lý tín hiệu truyền thông nhằm nâng cao chất lượng quá<br />
trình truyền tin. Quá trình mô phỏng trên môi trường Matlab chứng minh tạp trắng<br />
trong tín hiệu khi qua bộ lọc có khả năng bị khử hoàn toàn và tín hiệu sau lọc cho<br />
chất lượng như tín hiệu sạch.<br />
<br />
TÀI LIỆU THAM KHẢO<br />
[1]. Hoàng Mạnh Hà “Các phương pháp thích nghi trong lọc nhiễu tín hiệu điện<br />
tim” Luận án tiến sĩ chuyên ngành Đảm bảo toán học cho máy tính, năm 2011.<br />
[2]. Komal R. Borisagar and Dr. G.R.Kulkarni “Simulation and Comparative<br />
Analysis of LMS and RLS Algorithms Using Real Time Speech Input Signal”<br />
Global Journal of Researches in Engineering, Vol.10 Issue 5 (Ver 1.0),<br />
October 2010, pp 45-49.<br />
[3]. Sayed. A. Hadei, Student Member IEEE and M. lotfizad, “A Family of<br />
Adaptive Filter Algorithms in Noise Cancellation for Speech Enhancement”<br />
International Journal of Computer and Electrical Engineering, Vol. 2, No. 2,<br />
April 2010, pp 1793-8163.<br />
[4]. Tian Lan, and Jinlin Zhang, “FPGA Implementation of an Adaptive Noise<br />
Canceller”, IEEE, International Symposiums on Information Processing,<br />
ISBN 978-0-7695-3151-9, 2008, pp 553-558.<br />
[5]. Kumar Shashi Kant, Amit Prakash, “Noise Cancellation by Linear Adaptive<br />
Filter based on efficient RLS Lattice Algorithm” International Journal of<br />
Scientific & Engineering Research, Volume 4, ISSN 2229-5518, May-2013,<br />
pp 821-825.<br />
<br />
<br />
162 T. V. Khỏe, P.T. Hanh, “Ứng dụng thuật toán lọc thích nghi … khử tạp trắng.”<br />
Nghiên cứu khoa học công nghệ<br />
<br />
[6]. J. Gnitecki, Z. Moussavi, H. Pasterkamp “Recursive Least Squares Adaptive<br />
Noise Cancellation Filtering for Heart Sound Reduction in Lung Sounds<br />
Recordings” Engineering in Medicine and Biology Society, 2003. Proceedings<br />
of the 25th Annual International Conference of the IEEE, Vol.3, pp 2416 –<br />
2419.<br />
<br />
ABSTRACT<br />
<br />
APPLICATIONS OF RECURSIVE LEAST SQUARES ALGORITHM<br />
FOR WHITE NOISE CANCELLATION<br />
<br />
This paper presents the adaptive filter using the Recursive Least Squares<br />
(RLS) algorithm and its application to design white noise cancellation. It is<br />
an alternative method of estimating signals corrupted by additive noise to<br />
obtain only the original signal. The RLS adaptive filter uses the reference<br />
signal on the input port and the desired signal on the desired port to<br />
automatically match the filter response in the Noise Filter Block. The RLS<br />
adaptive filter with Matlab is simulated and the results prove its performance<br />
is very good.<br />
<br />
Keywords: Adaptive filters, Recursive least squares algorithm, White noise.<br />
<br />
<br />
<br />
Nhận bài ngày 21 tháng 07 năm 2015<br />
Hoàn thiện ngày 10 tháng 08 năm 2015<br />
Chấp nhận đăng ngày 07 tháng 09 năm 2015<br />
<br />
<br />
<br />
Địa chỉ: Khoa Vô tuyến điện tử, Học viện Kỹ thuật quân sự .<br />
*<br />
Email : tavankhoe@gmail.com;<br />
<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san Viện Điện tử, 10 - 2015 163<br />