Thuật giải sử dụng biến đổi sóng nhỏ đã được mã hoá và thử nghiệm trên cơ sở dữ liệu của MIH/BIH với nhiễu nhân tạo sử dụng hàm tạo số ngẫu nhiêu với phân bố Gauss. Từ các kết quả thử nghiệm và phân tích, cho thấy giải thuật tìm tần số của nhiễu do chúng tôi đề xuất có những ưu điểm sau: Đối với bài toán lọc nhiễu cho tín hiệu điện tim:
- Nếu tần số của nhiễu nằm ngoài dải 0 0.1 rad s/ và 0.2 0.3 rad s/ thì thuật giải hầu chắc chắn tìm được tần số 0 của nhiễu nhờ việc thực hiện phép biến đổi Fourier và sóng nhỏ bằng các thuật toán biến đổi nhanh.
- Thuật giải sẽ đạt độ chính xác cao, phản ánh qua độ hẹp của băng tần với độ phân giải không gian tần số thành 255 đoạn trong khoảng từ
0
- Độ phức tạp của thuật giải phản ánh qua quan hệ logarit nhờ áp dụng các thuật toán biến đổi nhanh. Đề xuất tiền xử lý tập dữ liệu cho phép loại bỏ các đột biến giả trước khi thực hiện biến đổi Sóng nhỏ.
- Thuật giải đã sử dụng hiệu quả hai phép biến đổi Fourier và Sóng nhỏ, cho phép đơn giản hoá mô hình của bộ lọc do không cần dùng đầu vào tham chiếu (Reference Input) và bộ trễ 900 như trong mô hình bộ lọc triệt tần của B. Widrow.
- Có thể sử dụng lý thuyết xác suất để tiếp tục đơn giản hoá độ phức tạp tính toán khi xác định được phân bố của 0 trên trục tần số .
KẾT LUẬN
Trong chương này chúng tôi đã đề xuất mô hình lọc nhiễu từ nguồn cung cấp điện và giải thuật tìm tần số của nhiễu sử dụng kết hợp biến đổi Fourier với biến đổi sóng nhỏ. Đề xuất tiền xử lý tập dữ liệu thông qua làm trơn bằng bộ lọc thông thấp trước khi biến đổi sóng nhỏ đã làm cho thuật giải trở nên dễ thực hiện với độ chính xác cao. Chọn được thang s phù hợp cho phép biến đổi sóng nhỏ sao cho lựa chọn được chính xác thông tin cần quan tâm. Thuật giải đã được thử nghiệm trên Matlab và lời giải được so sánh với các kết quả mới nhất của thuật toán LMS với kích thước bước thay đổi đã cho thấy hiệu quả đáng kể của thuật giải.
KẾT LUẬN CHUNG
Luận án đã đóng góp vào hai vấn đề sau của phương pháp lọc thích nghi
Xây dựng cơ sở Toán học của bộ lọc thích nghi và phương pháp nâng cao hiệu năng cho thuật toán LMS dựa trên kích thước bước thay đổi
Điều chỉnh tần số trung tâm của bộ lọc thích nghi bằng biến đổi Fourier và biến đổi Sóng nhỏ
Các kết quả mới của luận án bao gồm
1. Xác định điều kiện cần và đủ của phương pháp lọc thích nghi sử dụng thuật toán LMS và xây dựng các phần mềm nhúng thực hiện phương pháp lọc nhiễu từ đường tải điện lên quá trình ghi điện tâm đồ và điện não đồ.
2. Đề xuất công thức thay đổi kích thước bước trong thuật toán LMS và tiến hành thực nghiệm để so sánh với các phương pháp của các tác giả trước đó.
3. Đề xuất mô hình lọc nhiễu từ nguồn cung cấp điện và thuật giải sử dụng phép biến đổi sóng nhỏ cho việc hiệu chỉnh tần số trung tâm của bộ lọc thích nghi.
DANH MỤC CÔNG TRÌNH ĐÃ CÔNG BỐ CÓ LIÊN QUAN ĐẾN LUẬN ÁN
1. Hoàng Mạnh Hà, (2005), Phần mềm nhúng trong lọc nhiễu điện tim, Tạp chí Khoa học Công nghệ, (Tập 43, số 3), trang 13-21.
2. Phạm Trần Nhu, Hoàng Mạnh Hà, (2008), Một đề xuất thay đổi kích thước bước thích nghi của thuật toán LMS cho bài toán lọc nhiễu trong thu nhận tín hiệu y sinh, Tạp chí bưu chính viễn thông và Công nghệ Thông tin (Số 19
chuyên san), trang 38-46.
3. Phạm Trần Nhu, Hoàng Mạnh Hà, (2009), An adaptive Notch Filter using LMS algorithm with variable step-sizes for EEG, Journal of Computer Science and Cybernetics, Vol 25, No. 2, p. 135-148.
4. Hoang Manh Ha, (2007), Variable Step size LMS Filter for ECG signals,
Proceeding of the second International Conference on the development of BioMedical Engineering in Vietnam, Ha noi University of Technology, p. 88-96. 5. Phạm Trần Nhu, Hoàng Mạnh Hà, (2007), Adaptive Noise Cancellation Implementaion with a Variable Step-Size LMS Algorithm, Proceeding of the Japan-
Vietnam WorkShop on SoftWare Engineering, p. 71-80.
6. Pham Tran Nhu, Hoang Manh Ha, (2008), Adjustment in central frequency of Adaptive Notch Filter base on Wavelet Transform in frequency Domain, Proceeding
of the Second International Conference on Communications and Electronics (HUT ICCE), Hoian, Vietnam, p. 590-593.
7. Phạm Trần Nhu, Hoàng Mạnh Hà (2006), Thiết kế bộ lọc thích nghi với câu trúc động cho xử lý tín hiệu điện tâm đồ, Kỷ yếu hội nghị Khoa học lần thứ 20, Đại học Bách khoa Hà nội, trang 103-107.
Tài liệu tham khảo
_____________________________________________________________ [1] Robert M. Gray and Lee D. Davisson, (2009), An Introduction to
Statistical Signal Processing, Cambridge University Press.
[2] T. Aboulnasr and K. Mayyas. (1997), Selective coefficient update of gradient-based adaptive algorithms, Proceedings of IEEE International
Conference on Acoustics, Speech and Signal Processing, vol. 3, pp. 1929–1932, Munich, Germany.
[3] M. Akay. (1994), Biomedical Signal Processing, Academic Press.
[4] L. Angrisani, P. Daponte and Massimo D. Apuzzo. (2001), “Wavelet network based detection and classification of transients” IEEE Trans. Power Delivery, vol. 50, no. 5, pp. 1425-1435.
[5] O. Bai, M. Nakamura, A. Ikeda, and H. Shibasaki. (2000), Nonlinear Markov Process Amplitude EEG Model for Nonlinear Coupling Interaction of Spontaneous EEG, IEEE Trans. on Biomedical Engineering, vol. 47, no. 9, pp. 1141–1146.
[6] John J. Benedetto. (1994), Wavelets: Mathematics and Applications, CRC Press.
[7] Vincent D. Blondel, Alexandre Megretski. (2004), Unsolved Problems in
Mathematical Systems and Control Theory, Princeton University press
princeton and Oxford.
[8] K. W. Chan, Y.T. Zhang. (2002), Noise Reduction of motion artifact from
Photoplethysmographic Recording using a Variable Step-Size LMS Filter, Proceeding of IEEE, Vol 2, p1343-1346.
[9] R. Punchalard and J. Koseeyaporn. (2009), Indirect frequency estimation based on second-order adaptive FIR notch filter, Elsevier, Signal Processing, volum 89, issue 7, Pages 1428-1435.
[10] Márcio Holsbach Costa, Leandro Ronchini Ximenes and José Carlos Moreira Bermudez. (2008), Statistical analysis of the LMS adaptive algorithm subjected to a symmetric dead-zone nonlinearity at the adaptive filter output, Elsevier North-Holland, Signal Processing, vol.
88, issue 6, Pages 1485-1495.
[11] Ingrid Daubechies. (1993), Wavelet Transform and Orthnormal Bases, Proceedings of Applied Mathematics, Vol 47, American Mathematical
Society, p1-p34.
[12] K. Dogancay and O. Tanrikulu. (2001), Adaptive filtering algorithms with selective partial updates, IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing, vol. 48, no. 8.
[13] J. C. Huhta and J. G. Webster, (1973), 60Hz interference in electrocardiography, IEEE Trans. BioMedical Engineering, vol. BME-
20, p91-101.
[14] S. Mallat. (1998), A Wavelet Tour of signal Processing, Academic Press, New York, UK.
[15] Song, S. G. and Innanen, K. A. (2002), Multiresolution Modeling and Wavefield Reconstruction in Attenuating Media, Geophysics, Vol. 67,
pp. 1192.
[16] Mallat, S.G. (1989), Theory for multiresolution signal decomposition: the wavelet representation. IEEE Transactions on PAMI. Vol. 11, pp.
674-693.
[17] Simon Haykin. (2001), Adaptive Filter Theory, Prentice Hall.
[18] Osman Kukrer and Aykut Hocanin. (2006), Frequency-response-shaped LMS adaptive filter, Elsevier, Signal Processing, volum 16, issue 6,
[19] S. M. Kuo, M. Tahernezhadi, and W. Hao. (1999), Convergence analysis of narrow-band active noise control system, IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing, vol. 46,
no. 2, pp. 220–223.
[20] Ju-Won Lee and Gun-Ki Lee. (2005), Design of an Adaptive Filter with a Dynamic Structure for ECG Signal Processing, International Journal of Control, Automation and Systems, vol. 3, no. 1, pp. 137-142.
[21] Cuiwei Li et al. (1995), Detection of ECG Characteristic Points Using Wavelet Transforms, IEEE Transactions on biomedical engineering,
Vol.42, no. 1, pp. 21-28.
[22] C.H. Lin and C.H. Wang. (2006), Adaptive wavelet networks for power quality detection and discrimination in a power system, IEEE Trans. Power Delivery, vol. 21, no. 3, pp. 1106-1113.
[23] Stephane Mallat, Wen Liang Hwang, (1992), Singularity detection and Processing with Wavelets, IEEE Transactions on information Theory,
vol 38, No 2.
[24] Yves Meyer, (1993), Wavelet and Operator, Proceedings of Applied
Mathematics, Vol 47, American Mathematical Society, p35-p58.
[25] M. Michalik, W. Rebizant, M. Lukowicz, S. J. Lee and S. H. Kang, (2006). High-impedance fault detection in distribution networks with use of wavelet-based algorithm, IEEE Trans. Power Delivery, vol. 21, no. 4, pp. 1793-1802.
[26] S. Mishra, C.N. Bhende and B.K. Panigrahi, (2008), Detection and classification of power quality disturbances using S transform and probabilistic neural network, IEEE Trans. Power Delivery, vol. 23, no. 1, pp. 280-287.
[27] P. A. Naylor, J. Cui, and M. Brookes, (2006), Adaptive algorithms for sparse echo cancellation, Signal Processing, vol. 86, no. 6, pp. 1182–
1192.
[28] Sudipta Nath, Arindam Dey and Abhijit Chakrabarti, (2009), Detection of Power Quality Disturbances using Wavelet Transform, Proceeding of
world academy of science, engineering and technology, Volume 37, ISSN 2070-3740.
[29] Daniel Olguín Olguín, Frantz Bouchereau, Sergio Martínez, (2005),
Adaptive Notch Filter for EEG Signals Based on the LMS Algorithm with Variable Step-Size Parameter, Proceedings of the Conference on
Information Sciences and Systems, The John Hopkins University, March 16-18.
[30] O. Poisson, P. Rioual and M. Meunier, (2000), Detection and measurement of power quality disturbances using wavelet transform,
IEEE Trans. Power Delivery, vol. 15, no. 3, pp. 1039-1044.
[31] John G. Proakis, Dimitris G. Manolakis, (1996), Digital signal Processing, Principle, algorithms and applications, Prenitce hall
international Inc.
[32] Ali H. Sayed, (2003), Fundamentals of Adaptive Filtering, John Wiely & Sons.
[33] Pedro Ramos, Roberto Torrubia, Ana Lopez, Ana Salinas, and Enrique Masgrau, (2007), Step Size Bound of the Sequential Partial Update LMS
Algorithm with Periodic Input Signals, EURASIP Journal on Audio,
Speech, and Music Processing, Volume 2007, Issue 1, ISSN:1687-4714. [34] S. Santoso, W. M. Grady, E. J. Powers, J. Lamoree and S. C. Bhatt,
fourier and wavelet transforms, IEEE Trans. Power Delivery, vol. 15, no.
1, pp. 247-254.
[35] Ali H. Sayed, (2003), Fundamentals of Adaptive Filtering, John Wiley & Son.
[36] B. Farhang-Boroujeny, (1998), Adaptive Filters Theory and Applications, John Wiley & Son.
[37] Omid Sayadi & Mohammad Bagher Shamsollahi, (2007), MultiAdaptive Bionic wavelet Transform: Application to ECG Denoising and Baseline Wandering Reduction, EURASIP Journal on Advances in Signal Processing, Volume 11.
[38] Jonathan Richard Shewchuk, (1994), An Introduction to the Conjugate Gradient Method Without the Agonizing Pain, School of Computer
Science Carnegie Mellon University. Pittsburgh, PA, USA.
[39] Koike S, (2002), A class of adaptive step-size control algorithm for adaptive filter, IEEE Trans, Signal Process, Vol 50, Issue 6, p1315-1326. [40] Koike S, (2005), Convergence Analysis of Adaptive Filters Using
Normalized Sign-Sign Algorithm, IEICE Trans on Fundamental of
Electronics, Communications and Computer Sciences, Volume E88-A , Issue 11, p3218-3224.
[41] Koike S, (2000), Stability conditions for adaptive algorithms with non- quadratic error criteria, Proceeding of EUSIPCO2000, Tampere,
Finland, pp. 131-134.
[42] F. T. S. Yu and Guowen Lu, Short-time Fourier transform and wavelet
transform with Fourier-domain processing, Applied Optics, Vol. 33,
Issue 23, pp. 5262-5270
[43] Jame S. Walker, (1999), A Primer on Wavelets and their Scientific Applications, Chapman & Hall/CRC.
[44] B. Widrow, Samuel D. Stearns, (1985), Adaptive Signal Processing,
Englewood Cliffs, Prentice-Hall.
[45] N. Wiener, (1949), Extrapolation and Smoothing of Stationary time series, with Engineering Aplications, Wiley.
[46] Phạm Thượng Hàn, Biến đổi wavelet và ứng dụng trong các thiết bị ghi sóng điện tim công nghệ mới, http://www.lrc.ctu.edu.vn/pdoc/15/1- BiendoWavelet.pdf.
[47] Trịnh Miêng, (1999), Biến đổi wavelet và ứng dụng trong các thiết bị ghi sóng điện tim công nghệ mới, Kỷ yếu Hội thảo toán quốc về Khoa học, Kỹ thuật đo lường, Hà nội.
Phụ lục
Mã chương trình thực nghiệm
Ngôn ngữ: Matlab
Chương trình so sánh, đánh giá thuật toán LMS kích thước bước cố định và thay đổi
clear all;close all; [ecg]=ecg_generator; L=length(ecg);sigma=0.15;ms=2; mu_002=0.05; mu_05=0.5; [Noise_sin,Noise_cos]=gnoise(sigma,L,ms); N=Noise_sin+normrnd(0,0.01,1,L); NOISY_ECG=ecg+N; [denoised_ecg_FS_002,dieukien_002]=LMS_fixed_stepsize(NOISY_ECG,Noise_s in,Noise_cos,mu_002); for k=0:(L/4-1) mse_mu_002(k+1)=((ecg(4*k+1)-denoised_ecg_FS_002(4*k+1))^2 + (ecg(4*k+2)-denoised_ecg_FS_002(4*k+2))^2 +(ecg(4*k+3)- denoised_ecg_FS_002(4*k+3))^2 +(ecg(4*k+4)- denoised_ecg_FS_002(4*k+4))^2)/4; end; [denoised_ecg_FS_05,dieukien_05]=LMS_fixed_stepsize(NOISY_ECG,Noise_sin, Noise_cos,mu_05); for k=0:(L/4-1) mse_mu_05(k+1)=((ecg(4*k+1)-denoised_ecg_FS_05(4*k+1))^2 + (ecg(4*k+2)- denoised_ecg_FS_05(4*k+2))^2 +(ecg(4*k+3)-denoised_ecg_FS_05(4*k+3))^2 +(ecg(4*k+4)-denoised_ecg_FS_05(4*k+4))^2)/4; end; [denoised_ecg_VS]=LMS_variable_stepsize(NOISY_ECG,Noise_sin,Noise_cos,ec g); for k=0:(L/4-1) mse_mu_vs(k+1)=((ecg(4*k+1)-denoised_ecg_VS(4*k+1))^2 + (ecg(4*k+2)- denoised_ecg_VS(4*k+2))^2 +(ecg(4*k+3)-denoised_ecg_VS(4*k+3))^2 +(ecg(4*k+4)-denoised_ecg_VS(4*k+4))^2)/4; end; nn = 4:4:L;
plot(nn,mse_mu_002,'b',nn,mse_mu_05,'r',nn,mse_mu_vs,'y');axis([0 2000 0
0.014]);ylabel('MSE');xlabel('i');title('Sai so trung binh binh phuong truong hop kich thuoc buoc thich nghi co dinh va thay doi');pause;
%subplot(2,3,4); %subplot(2,3,5); %subplot(2,3,6);
subplot(1,3,1);plot(nn,mse_mu_002,'b');title('Truong hop kich thuoc buoc thich nghi co dinh =0.05');ylabel('MSE');xlabel('t');
subplot(1,3,2);plot(nn,mse_mu_05,'r');title('Truong hop kich thuoc buoc thich nghi co dinh =0.5');ylabel('MSE');xlabel('t');
subplot(1,3,3);plot(nn,mse_mu_vs,'y');title('Truong hop kich thuoc buoc thich nghi thay doi');ylabel('MSE');xlabel('t');
pause;
plot(nn,mse_mu_002,'b');title('Sai so trung binh binh phuong truong hop kich thuoc buoc thich nghi co dinh =0.05');ylabel('MSE');xlabel('t');%axis([-50 1860 -0.01 0.57]);
pause;
plot(nn,mse_mu_05,'r');title('Sai so trung binh binh phuong truong hop kich thuoc buoc thich nghi co dinh =0.5');ylabel('MSE');xlabel('t');%axis([-50 1860 -0.01 0.57]);
pause;
plot(nn,mse_mu_vs,'y');title('Sai so trung binh binh phuong truong hop kich thuoc buoc thich nghi thay doi');ylabel('MSE');xlabel('t');%axis([-50 1860 -0.01 0.57]); pause;
% in ra tin hieu sau loc, truong hop KT buoc thich nghi co dinh = 0.05
subplot(3,1,1);plot(denoised_ecg_FS_002(1:L/4));title('Tin hieu dien tam do sau loc, truong hop kich thuoc buoc thich nghi co dinh =0.05');axis([1 L/4 -3 1]); subplot(3,1,2);plot(ecg(1:L/4));title('Tin hieu dien tam do sach');axis([1 L/4 -3 1]); subplot(3,1,3);plot(NOISY_ECG(1:L/4));title('Tin hieu dien tam do nhiem
nhieu');axis([1 L/4 -3 1]); pause;
subplot(3,1,1);plot(denoised_ecg_FS_002(L/4+1:L/2));title('Tin hieu dien tam do sau loc, truong hop kich thuoc buoc thich nghi co dinh =0.05 (Tiep theo)');axis([1 L/4 -3 1]);
subplot(3,1,2);plot(ecg(L/4+1:L/2));title('Tin hieu dien tam do sach');axis([1 L/4 -3 1]);
subplot(3,1,3);plot(NOISY_ECG(L/4+1:L/2));title('Tin hieu dien tam do nhiem nhieu');axis([1 L/4 -3 1]);pause;
subplot(3,1,1);plot(denoised_ecg_FS_002(L/2+1:0.75*L));title('Tin hieu dien tam do sau loc, truong hop kich thuoc buoc thich nghi co dinh =0.05 (Tiep
theo)');axis([1 L/4 -3 1]);
subplot(3,1,2);plot(ecg(L/2:0.75*L));title('Tin hieu dien tam do sach');axis([1 L/4 -3 1]);
subplot(3,1,3);plot(NOISY_ECG(L/2+1:0.75*L));title('Tin hieu dien tam do nhiem nhieu');axis([1 L/4 -3 1]);pause;
subplot(3,1,1);plot(denoised_ecg_FS_002(0.75*L+1:L));title('Tin hieu dien tam do sau loc, truong hop kich thuoc buoc thich nghi co dinh =0.05 (Tiep theo)');axis([1 L/4 -3 1]);
subplot(3,1,2);plot(ecg(0.75*L+1:L));title('Tin hieu dien tam do sach');axis([1 L/4 - 3 1]);
subplot(3,1,3);plot(NOISY_ECG(0.75*L+1:L));title('Tin hieu dien tam do nhiem nhieu');axis([1 L/4 -3 1]);pause;
% in ra tin hieu sau loc, truong hop KT buoc thich nghi co dinh = 0.5
subplot(3,1,1);plot(denoised_ecg_FS_05(1:L/4));title('Tin hieu dien tam do sau loc, truong hop kich thuoc buoc thich nghi co dinh =0.5');axis([1 L/4 -3 1]);
subplot(3,1,2);plot(ecg(1:L/4));title('Tin hieu dien tam do sach');axis([1 L/4 -3 1]); subplot(3,1,3);plot(NOISY_ECG(1:L/4));title('Tin hieu dien tam do nhiem
nhieu');axis([1 L/4 -3 1]); pause;
subplot(3,1,1);plot(denoised_ecg_FS_05(L/4+1:L/2));title('Tin hieu dien tam do sau loc, truong hop kich thuoc buoc thich nghi co dinh =0.5 (Tiep theo)');axis([1 L/4 -3 1]);
subplot(3,1,2);plot(ecg(L/4+1:L/2));title('Tin hieu dien tam do sach');axis([1 L/4 -3 1]);
subplot(3,1,3);plot(NOISY_ECG(L/4+1:L/2));title('Tin hieu dien tam do nhiem nhieu');axis([1 L/4 -3 1]);pause;
subplot(3,1,1);plot(denoised_ecg_FS_05(L/2+1:0.75*L));title('Tin hieu dien tam do sau loc, truong hop kich thuoc buoc thich nghi co dinh =0.5 (Tiep theo)');axis([1 L/4 -3 1]);
subplot(3,1,2);plot(ecg(L/2:0.75*L));title('Tin hieu dien tam do sach');axis([1 L/4 -3 1]);
subplot(3,1,3);plot(NOISY_ECG(L/2+1:0.75*L));title('Tin hieu dien tam do nhiem nhieu');axis([1 L/4 -3 1]);pause;
subplot(3,1,1);plot(denoised_ecg_FS_05(0.75*L+1:L));title('Tin hieu dien tam do sau loc, truong hop kich thuoc buoc thich nghi co dinh =0.5 (Tiep theo)');axis([1 L/4 -3 1]);
subplot(3,1,2);plot(ecg(0.75*L+1:L));title('Tin hieu dien tam do sach');axis([1 L/4 - 3 1]);
subplot(3,1,3);plot(NOISY_ECG(0.75*L+1:L));title('Tin hieu dien tam do nhiem nhieu');axis([1 L/4 -3 1]);pause;
% in ra tin hieu sau loc, truong hop KT buoc thich nghi thay doi
subplot(3,1,1);plot(denoised_ecg_VS(1:L/4));title('Tin hieu dien tam do sau loc, truong hop kich thuoc buoc thich nghi thay doi');axis([1 L/4 -3 1]);
subplot(3,1,2);plot(ecg(1:L/4));title('Tin hieu dien tam do sach');axis([1 L/4 -3 1]); subplot(3,1,3);plot(NOISY_ECG(1:L/4));title('Tin hieu dien tam do nhiem
nhieu');axis([1 L/4 -3 1]); pause;
subplot(3,1,1);plot(denoised_ecg_VS(L/4+1:L/2));title('Tin hieu dien tam do sau loc, truong hop kich thuoc buoc thich nghi thay doi');axis([1 L/4 -3 1]);
subplot(3,1,2);plot(ecg(L/4+1:L/2));title('Tin hieu dien tam do sach');axis([1 L/4 -3 1]);
subplot(3,1,3);plot(NOISY_ECG(L/4+1:L/2));title('Tin hieu dien tam do nhiem nhieu');axis([1 L/4 -3 1]);pause;
subplot(3,1,1);plot(denoised_ecg_VS(L/2+1:0.75*L));title('Tin hieu dien tam do sau loc, truong hop kich thuoc buoc thich nghi thay doi');axis([1 L/4 -3 1]);
subplot(3,1,2);plot(ecg(L/2:0.75*L));title('Tin hieu dien tam do sach');axis([1 L/4 -3 1]);
subplot(3,1,3);plot(NOISY_ECG(L/2+1:0.75*L));title('Tin hieu dien tam do nhiem nhieu');axis([1 L/4 -3 1]);pause;
subplot(3,1,1);plot(denoised_ecg_VS(0.75*L+1:L));title('Tin hieu dien tam do sau loc, truong hop kich thuoc buoc thich nghi thay doi');axis([1 L/4 -3 1]);
subplot(3,1,2);plot(ecg(0.75*L+1:L));title('Tin hieu dien tam do sach');axis([1 L/4 - 3 1]);
subplot(3,1,3);plot(NOISY_ECG(0.75*L+1:L));title('Tin hieu dien tam do nhiem nhieu');axis([1 L/4 -3 1]);pause; close all; plot(dieukien_002); pause; plot(dieukien_05); [denoised_ecg_VS_Daniel]=LMS_variable_stepsize_Daniel(NOISY_ECG,Noise_s in,Noise_cos,ecg); for k=0:(L/4-1) mse_mu_vs_Daniel(k+1)=((ecg(4*k+1)-denoised_ecg_VS_Daniel(4*k+1))^2 + (ecg(4*k+2)-denoised_ecg_VS_Daniel(4*k+2))^2 +(ecg(4*k+3)-
denoised_ecg_VS_Daniel(4*k+3))^2 +(ecg(4*k+4)- denoised_ecg_VS_Daniel(4*k+4))^2)/4; end; plot(mse_mu_vs_Daniel); pause; plot(nn,mse_mu_002,'b',nn,mse_mu_05,'r',nn,mse_mu_vs,'y',nn,mse_mu_vs_Danie l,'k');axis([-50 1860 -0.01 0.57]);title('Sai so trung binh binh phuong cua 4 truong hop');
ylabel('MSE');xlabel('t');
Hàm thực hiện bộ lọc bằng thuật toán LMS với kích thước bước
thích nghi cố định function [denoised_ecg,dieukien]=LMS_fixed_stepsize(NOISY_ECG,Noise_sin,Noise_cos, mu) w1=0;w2=0; l=length(NOISY_ECG); y(1)=0.15; for k=2:l y(k)=(Noise_sin(k)*w1+Noise_cos(k)*w2); denoised_ecg(k)=NOISY_ECG(k)-y(k); w1=w1+2*mu*Noise_sin(k)*denoised_ecg(k); w2=w2+2*mu*Noise_cos(k)*denoised_ecg(k); dieukien(k)=((NOISY_ECG(k)*(Noise_sin(k)-y(k)))+(NOISY_ECG(k- 1)*(Noise_sin(k-1)-y(k-1))))/2; end;
Hàm thực hiện bộ lọc bằng thuật toán LMS với kích thước bước thích nghi thay đổi theo đề xuất của chúng tôi
function [denoised_ecg,mu_dem]=LMS_variable_stepsize_14_4(NOISY_ECG,Noise_sin,N oise_cos,ecg) w1=0;w2=0;mu=2.9; l=length(NOISY_ECG); mu_dem=zeros(1,l); alpha=25.5; %alpha=2; for k=1:l denoised_ecg(k)=NOISY_ECG(k)-(Noise_sin(k)*w1+Noise_cos(k)*w2);
mu=alpha*abs(denoised_ecg(k)*Noise_sin(k)); w1=w1+mu*Noise_sin(k)*denoised_ecg(k); w2=w2+mu*Noise_cos(k)*denoised_ecg(k); mu_dem(k)=mu;
end;
Hàm thực hiện bộ lọc bằng thuật toán LMS với kích thước bước thích nghi thay đổi theo đề xuất của Daniel trong [29]
function [denoised_ecg]=LMS_variable_stepsize_daniel(NOISY_ECG,Noise_sin,Noise_cos ,ecg) w1=0;w2=0;mu=0.5; l=length(NOISY_ECG); for k=1:l denoised_ecg(k)=NOISY_ECG(k)-(Noise_sin(k)*w1+Noise_cos(k)*w2); mu=0.9*mu+0.9*denoised_ecg(k)^2; w1=w1+mu*Noise_sin(k)*denoised_ecg(k); w2=w2+mu*Noise_cos(k)*denoised_ecg(k); end;