Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
1,88 MB
Nội dung
Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN NGÀNH KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HỐ BÀI TẬP NHĨM XỬ LÝ TÍN HIỆU SỐ & DSP BIẾN ĐỐI WAVELET - ỨNG DỤNG CHO XỬ LÝ ÂM THANH Giảng viên hướng dẫn: TS Nguyễn Thị Kim Trúc Lớp học phần: 20N36 Nhóm: 04 Thành viên: Nguyễn Tuấn Kiệt – 20TDHCLC4 Lê Ngọc Thành – 20TDHLCL4 Nguyễn Phúc Nguyên – 20TDHCLC4 Trần Văn Vinh – 20TDHCLC4 Đà nẵng, Năm 2023 GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm MỤC LỤC Phần: Giới thiệu chung đề tài Phần: Cơ sở lý thuyết 2.1 Phép biến đổi wavelet liên tục 2.1.1 Giới thiệu 2.1.2 Phép biến đổi wavelet thuận 2.1.3 Phép biến đổi wavelet nghịch 2.2 PHÉP BIẾN ĐỔI WAVELET RỜI RẠC 2.2.1 2.3 Giới thiệu Các chức biến đổi Wavelet ứng dụng xử lý âm 2.3.1 Nén âm 2.3.2 Trích xuất đặc trưng 10 2.3.3 Giảm nhiễu 10 2.3.4 Phân tích tần số đa cấp 10 2.3.5 Chuẩn hoá cân âm 10 2.3.6 Nén dạng sóng 10 ỨNG DỤNG VÀ MÔ PHỎNG TRÊN MATLAB 11 Phần: 3.1 Qui trình xử lý nhiễu âm 11 3.1.1 Lọc giai đoạn: Xấp xỉ chi tiết 11 3.1.2 Phân rã đa cấp 11 3.1.3 Tái tạo Wavelet 12 3.2 Mô khử nhiễu Wavelet sử dụng MATLAB 14 3.3 Mô khử nhiễu âm phân rã đa cấp Matlab 18 3.3.1 Sử dụng tín hiệu có sẵn Matlab để mô 18 3.3.2 Thực phân tách wavelet đa cấp 19 3.3.3 Xác định ngưỡng phù hợp xây dựng lại tín hiệu 21 Tài liệu tham khảo 24 GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm MỤC LỤC HÌNH ẢNH 2-1 Các hàm wavelet mẹ phổ biến 2-2 Mơ hình phân giải đa tầng 3-1 Các lọc thông cao thấp xử lý âm dùng biến đổi wavelet 11 3-2 Tổng hợp tín hiệu 12 3-3 Phân rã tổng hợp tín hiệu 13 3-4 Ví dụ phân rã tín hiệu với sóng sin 14 3-5 Kết mô matlab 18 3-6 Kết mô lọc wavelet tầng 19 3-7 Kết tín hiệu nhiễu tầng tín hiệu sau lọc 21 3-8 Tín hiệu đầu vào kết sau xử lý wavelet đa tầng 23 GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm PHẦN: GIỚI THIỆU CHUNG VỀ ĐỀ TÀI Dựa việc tiếng ồn yếu tố hạn chế khả truyền liệu viễn thơng ảnh hưởng đến độ xác kết hệ thống đo lường tín hiệu Mơ hình hóa loại bỏ tiếng ồn trung tâm quan điểm lý thuyết thực tế ngành truyền thông xử lý tín hiệu Một vấn đề quan trọng khác giảm tiếng ồn vấn đề lớn ứng dụng như: truyền thông di động di động, nhận dạng giọng nói, xử lý hình ảnh, xử lý tín hiệu y tế, radar, sonar, ứng dụng khác nơi tín hiệu mong muốn tách tiếng ồn khỏi âm cần thiết Việc sử dụng lọc sóng lĩnh vực làm nhiễu tín hiệu âm mới, việc sử dụng kỹ thuật phát triển vòng 20 năm qua Trong tập này, tìm hiểu cách giảm tiếng ồn tín hiệu âm cách sử dụng biến đổi Wavelet Sử dụng công cụ MATLAB GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 4 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm PHẦN: 2.1 CƠ SỞ LÝ THUYẾT Phép biến đổi wavelet liên tục 2.1.1 Giới thiệu Trong xử lý tín hiệu, phép biến đổi Fourier (FT, Fourier Transform) cơng cụ tốn học quan trọng cầu nối cho việc biểu diễn tín hiệu miền không gian miền tần số; việc biểu diễn tín hiệu miền tần số đơi có lợi việc biểu diễn miền khơng gian Hình biểu diễn tín hiệu theo thời gian, hình biểu diễn phép biến đổi fourier tín hiệu miền tần số Tuy nhiên, phép biến đổi Fourier cung cấp thơng tin có tính tồn cục thích hợp cho tín hiệu tuần hồn, khơng chứa đột biến thay đổi không dự báo Trong hình, phổ f(t) cho thấy thành phần tần số cấu thành tín hiệu khơng cho biết tần số xuất đâu Để khắc phục khuyết điểm này, Gabor, D., áp dụng phép biến đổi Fourier cửa sổ (WFT, Windowed Fourier Transform) cho đoạn nhỏ tín hiệu (cửa sổ); phép biến đổi cho thấy mối liên hệ không gian tần số bị khống chế nguyên lý bất định Heisengber cho thành phần tần số cao tần số thấp tín hiệu (Kaiser, G., 1994) Phép biến đổi wavelet bước để khắc phục hạn chế GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm Năm 1975, Morlet, J., phát triển phương pháp đa phân giải (multiresolution); đó, ơng ta sử dụng xung dao động, hiểu “wavelet” (dịch theo từ gốc sóng nhỏ) cho thay đổi kích thước so sánh với tín hiệu đoạn riêng biệt Kỹ thuật bắt đầu với sóng nhỏ (wavelet) chứa dao động tần số thấp, sóng nhỏ so sánh với tín hiệu phân tích để có tranh tồn cục tín hiệu độ phân giải thơ Sau sóng nhỏ nén lại để nâng cao dần tần số dao động Quá trình gọi làm thay đổi tỉ lệ (scale) phân tích; thực tiếp bước so sánh, tín hiệu nghiên cứu chi tiết độ phân giải cao hơn, giúp phát thành phần biến thiên nhanh cịn ẩn bên tín hiệu 2.1.2 Phép biến đổi wavelet thuận Biến đổi wavelet thuận phân tích tín hiệu thành thành phần tần số khác mức độ có độ phân giải khác Cụ thể, phép biến đổi wavelet thuận thường sử dụng hàm sóng (wavelet) để thực việc Quá trình biến đổi bắt đầu việc chia đoạn tín hiệu thành khối chồng lên Sau đó, hàm sóng áp dụng cho khối con, tạo thành phần tần số biên giới khác Quá trình tạo biểu diễn tín hiệu mức độ có độ phân giải khác nhau, giúp phân tích chi tiết cấu trúc tín hiệu Gọi f(x) tín hiệu vào, phép biến đổi wavelet liên tục f(x) sử dụng hàm wavelet biểu diễn bởi: W(s, b) = √s +∞ ∫ f(x) Ψ ∗ ( −∞ x−b )dx s Trong đó: - W(s,b) hệ số biến đổi wavelet liên tục f(x), với s nghịch đảo tần số b dịch chuyển đặc trưng vị trí - f(x) tín hiệu cần phải biến đổi - Ψ ∗ (x) hàm phức liên hợp wavelet Ψ (x) Trong Ψ (x) hàm Wavelet gốc, cịn gọi hàm mẹ (mother wavelet) Nó hàm sở mà hàm Wavelet khác tạo thông qua thay đổi tỉ lệ dịch chuyển Phương trình cho thấy, phép biến đổi wavelet ánh xạ chuyển từ hàm biến f(x) thành hàm W(s, b) phụ thuộc hai biến số biến tỉ lệ s biến dịch chuyển b Hệ số chuẩn hóa √𝑠 (1.1) đảm bảo cho chuẩn hóa sóng wavelet với tỉ lệ phân tích s khác GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm Phép biến đổi wavelet có tính linh động cao so với phép biến đổi Fourier (sử dụng hàm mũ) khơng thiết phải sử dụng hàm wavelet cố định, mà lựa chọn hàm wavelet khác họ hàm wavelet cho thích hợp với tốn (hình dạng hàm wavelet phù hợp với tín hiỆu cần phân tích) để kết phân tích tốt Hiện nay, người ta xây dựng khoảng vài chục họ hàm wavelet khác nhằm áp dụng cho nhiều mục đích phân tích đa dạng Hình 2.1 đồ thị ba hàm wavelet hàm wavelet Harr, hàm wavelet Daubechies hàm wavelet Morlet 2-1 Các hàm wavelet mẹ phổ biến 2.1.3 Phép biến đổi wavelet nghịch Biến đổi wavelet nghịch q trình tái tạo tín hiệu gốc từ biến đổi wavelet thuận Tín hiệu gốc phân rã thành thành phần tần số khác nhau, sau sử dụng hệ số wavelet nghịch lọc để tích hợp tái tạo lại tín hiệu Q trình đảo ngược q trình biến đổi wavelet thuận giúp trì chất lượng thơng tin Phép biến đổi wavelet nghịch có dạng: +∞ +∞ 𝑥−𝑏 𝑓(𝑥) = ∫ 𝑑𝑏 ∫ W(s, b)Ψ ( )𝑑𝑠 𝑐𝑔 −∞ 𝑠 −∞ 𝑠 Trong đó: - W(s, b) giá trị phép biến đổi wavelet thuận, tính tốn trước - f(x) tín hiệu gốc cần tái tạo từ biểu diễn wavelet - Ψ hàm Wavelet gốc, gọi hàm mẹ (mother wavelet) Nó hàm sở mà hàm Wavelet khác tạo thông qua thay đổi tỉ lệ dịch chuyển cg hệ số chuẩn hóa để điều chỉnh quy mơ tín hiệu tái tạo Nó thường chọn cho tổng hệ số chuẩn hóa - Cơng thức cho phép khơi phục lại tín nguyên thủy từ hệ số biến đổi wavelet phép tính tích phân với ds qua tất tỉ lệ s, sau thực tiếp tích phân với db qua tất vị trí b hàm sóng wavelet giá trị phép biến đổi wavelet thuận để chuẩn hóa theo tỉ lệ s, hệ số cg sử dụng để điều chỉnh quy mơ tín hiệu s tái tạo GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm 2.2 PHÉP BIẾN ĐỔI WAVELET RỜI RẠC 2.2.1 Giới thiệu Cơ sở phép biến đổi wavelet rời rạc (DWT, Discrete Wavelet Transform) có từ năm 1976 Croiser, Esteban Galand đưa kỹ thuật biến đổi tín hiệu thời gian rời rạc; đến cuối năm 1976, Crochiere, Weber Flanagan dùng phép biến đổi wavelet rời rạc để mã hóa tiếng nói, kỹ thuật tương tự kỹ thuật Croiser có tên mã hoá băng (subband coding) Năm 1983, Burt, P J Adelson, E.H., phát triển phương pháp mã hố băng đặt tên mã hóa hình tháp (pyramidal coding) Năm 1989, Mallat, S., đưa kỹ thuật phân tích đa phân giải (multiresolution analysis) sở mã hóa hình tháp đề xuất họ hàm wavelet trực giao để áp dụng xử lý tín hiệu số Ngồi ra, cịn có nhiều nhóm nghiên cứu khác sử dụng phép biến đổi wavelet rời rạc lĩnh vực khác viễn thông, điện tử, y học… Ý tưởng phân tích đa phân giải sử dụng kỹ thuật lọc số trình phân tích Trong đó, tín hiệu phân tích thành hai thành phần: thành phần xấp xỉ A (Approximation) ‘tương ứng với thành phần tần số thấp’ thành phần chi tiết D (Detail) ‘tương ứng với thành phần tần số cao’, thông qua hai lọc thơng thấp thơng cao mơ tả hình 1.10 Trong đó, lọc thơng cao sử dụng hàm wavelet ψ(x) lọc thông thấp sử dụng hàm tỉ lệ (scaling function) Φ(x) Các phép lọc tiến hành với nhiều tầng (level) khác để khối lượng tính tốn khơng tăng, qua lọc, tín hiệu lấy mẫu xuống Ứng với tầng, tín hiệu có độ phân giải khác Do đó, phép biến đổi wavelet rời rạc gọi phân tích đa phân giải (MRA, multiresolution analysis) GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm 2-2 Mơ hình phân giải đa tầng Tại tầng lọc, biểu thức phép lọc cho công thức: 𝑌ℎ𝑖𝑔ℎ [𝑘]=∑𝑛 𝑥[𝑛]𝑔[2𝑘 − 𝑛] 𝑌𝑙𝑜𝑤 [𝑘]=∑𝑛 𝑥 [𝑛]ℎ[2𝑘 − 𝑛] Trong đó: 𝑌ℎ𝑖𝑔ℎ [𝑘 ]: thành phần tần số cao 𝑌𝑙𝑜𝑤 [𝑘 ]: thành phần tần số thấp x[n]: tín hiệu âm g[n]: lọc băng tần cao h[n]: lọc băng tần thấp 2.3 Các chức biến đổi Wavelet ứng dụng xử lý âm 2.3.1 Nén âm Biến đổi wavelet giúp giảm kích thước tệp âm mà trì thơng tin quan trọng Điều hữu ích việc lưu trữ truyền tải âm qua mạng GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm 2.3.2 Trích xuất đặc trưng Biến đổi wavelet sử dụng để trích xuất đặc trưng quan trọng từ tín hiệu âm thanh, giúp việc nhận diện giọng nói, nhận dạng âm thanh, hay phân loại tín hiệu âm 2.3.3 Giảm nhiễu Biến đổi wavelet sử dụng để giảm nhiễu tín hiệu âm Điều cải thiện chất lượng âm làm cho tín hiệu trở nên rõ ràng 2.3.4 Phân tích tần số đa cấp Biến đổi wavelet cho phép phân tích tần số nhiều mức độ, giúp nhìn nhận biến đổi tần số âm theo thời gian Điều hữu ích việc phân tích âm có tần số biến đổi theo thời gian, trường hợp nhạc 2.3.5 Chuẩn hoá cân âm Biến đổi wavelet sử dụng để chuẩn hóa cân tín hiệu âm thanh, giúp đồng chất lượng âm ứng dụng khác 2.3.6 Nén dạng sóng Biến đổi wavelet cịn sử dụng nén dạng sóng, nơi tín hiệu âm chia thành thành phần sóng sau biểu diễn dạng hệ số wavelet Điều tạo điều kiện thuận lợi cho việc nén giảm kích thước liệu GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 10 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm PHẦN: 3.1 ỨNG DỤNG VÀ MƠ PHỎNG TRÊN MATLAB Qui trình xử lý nhiễu âm 3.1.1 Lọc giai đoạn: Xấp xỉ chi tiết Đối với tín hiệu âm thanh, tín hiệu tần số thấp phần quan trọng Hãy xem xét giọng nói người Nếu thành phần tần số cao bị loại bỏ, giọng nói khác biệt, từ nghe thấy nhận diện rõ ràng Tuy nhiên, loại bỏ đủ nhiều thành phần tần số thấp, tín hiệu âm kết khơng rõ ràng Trong phân tích sóng âm thanh, xấp xỉ thành phần tần số thấp, chi tiết thành phần tần số cao Hình cho thấy bước cho phân rã tín hiệu 3-1 Các lọc thơng cao thấp xử lý âm dùng biến đổi wavelet 3.1.2 Phân rã đa cấp Q trình phân rã lặp lại, với thành phần xấp xỉ phân rã lần lượt, để tín hiệu chia thành nhiều thành phần độ phân giải thấp Điều gọi phân rã Wavelet, thể hình GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 11 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm 3.1.3 Tái tạo Wavelet Biến đổi Wavelet biến rời rạc sử dụng để phân tích phân rã tín hiệu hình ảnh quy trình gọi phân rã phân tích Ngược lại, q trình tái tạo tổng hợp trình lắp ráp thành phần lại thành tín hiệu ban đầu mà khơng thơng tin Trong q trình này, mong muốn thiết lập lại từ đầu tín hiệu nó, tức trở lại tín hiệu ban đầu từ đầu Phương pháp tuân theo quy luật hướng ngược lại, tức từ hệ số tùy thuộc vào số cấp độ xem xét dải tần số cao (H’) thấp (L’) cần phải thu từ tín hiệu tái tạo S, thể hình Quy trình tốn học ảnh hưởng đến tổng hợp gọi biến đổi Wavelet rời rạc nghịch đảo (IDWT) Để tổng hợp tín hiệu cách sử dụng phần mềm Wavelet Toolbox, xây dựng lại từ hệ số wavelet 3-2 Tổng hợp tín hiệu Q trình tái tạo(IDTW) sử dụng hệ số xấp xỉ chi tiết từ mức độ biến đổi Wavelet để tái tạo lại tín hiệu gốc + Thành phần xấp xỉ từ mức độ tần số thấp biến đổi sóng vơ cực thường chứa thông tin biến động chậm, cấu trúc tổng quát tín hiệu +Thành phần chi tiết từ mức độ tần số cao chứa thông tin biến động nhanh, chi tiết thành phần nhiễu Khi tín hiệu âm qua lọc thông thấp lọc thông cao, điều tạo trình gọi "bộ lọc băng thông" Bộ lọc thông băng thông sử dụng xử lý GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 12 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm tín hiệu âm để tách giữ lại thành phần tần số cụ thể âm thanh, đồng thời loại bỏ thành phần không mong muốn.(Kết "dải tần số" "băng thơng" tín hiệu giữ lại, thành phần nằm khoảng tần số bị loại bỏ) Sau phân tích lại cần phải tái tạo Wavelet để: + Khơi Phục Tín Hiệu Gốc + Giảm Nhiễu Nén Dữ Liệu + Giúp tiết kiệm thời gian liệu trình => Kết thu trình tái tạo tín hiệu mới, tái tạo từ thành phần xấp xỉ chi tiết chọn Tín hiệu thường giữ lại thơng tin tín hiệu gốc giảm nhiễu Từ ta có sơ đồ tổng hợp tín hiệu Wavelet: 3-3 Phân rã tổng hợp tín hiệu GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 13 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm 3-4 Ví dụ phân rã tín hiệu với sóng sin 3.2 Mơ khử nhiễu Wavelet sử dụng MATLAB Chúng ta mô tả phương pháp đơn giản để thực biến đổi Wavelet cho tín hiệu cụ thể Bạn phải chọn hàm Wavelet , gọi mẹ Wavelet , xác định giá trị tỉ lệ sóng biến tín hiệu cách sử dụng lệnh wname Trong ví dụ này, sử dụng Wavelet coif5 cấp 10 Bước Chọn Wavelet cấp độ phân rã: wname = 'coif5'; lev = 10; Trong hầu hết tín hiệu, thành phần có tần số thấp mang lại hầu hết thơng tin cho tín hiệu, thành phần có tần số cao đảm nhận trách nhiệm tích hợp đặc điểm cụ thể Để thực phân rã này, ta sử dụng lệnh wpdec, chịu trách nhiệm tạo mà trường hợp tín hiệu cần phân rã "y", cấp độ phân rã lev = 10 loại Wavelet sử dụng coiflet Cây lưu trữ biến tree Bước Thực phân rã tín hiệu: GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 14 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm tree = wpdec(y, lev, wname); Bước Tạo hệ số phân rã: Chúng ta tạo hệ số phân rã tín hiệu cách sử dụng lệnh wpcoef, cần sử dụng biến thông tin số nút có hiệu suất tốt tạo ra, trường hợp hai det1 = wpcoef(tree, 2); Bước Xác định ngưỡng nhiễu: Chúng ta xác định ngưỡng nhiễu cách sử dụng lệnh wpbmpen, trả ngưỡng toàn cục THR cho trình giảm nhiễu THR đạt thơng qua quy tắc lựa chọn hệ số Wavelet thông qua việc sử dụng phương pháp phạt cung cấp Birge-Massart T (trong trường hợp tree) Wavelet tương ứng với phân rã Wavelet tín hiệu hình ảnh cần giảm nhiễu SIGMA độ lệch chuẩn nhiễu trắng Gaussian có trung bình khơng mơ hình giảm nhiễu alpha tham số điều chỉnh cho thuật ngữ phạt, phải số thực lớn Sự thưa thớt biểu diễn sóng biến tín hiệu hình ảnh giảm với alpha Thông thường, alpha = sigma = median(abs(det1)) / 0.6745; alpha = 2; thr = wpbmpen(tree, sigma, alpha); Bước Thực trình giảm nhiễu nén tín hiệu: Chúng ta sử dụng lệnh wpdencmp để thực q trình giảm nhiễu nén tín hiệu sử dụng Wavelet Các ý tưởng thủ tục cho trình giảm nhiễu nén cách sử dụng phân rã sóng biến giống với sử dụng khung Wavelet Wpdencmp (TREE, SORH, CRIT, PAR, KEEPAPP) có đối số đầu ra, sử dụng tùy chọn giống trên, thu trực tiếp từ phân rã Wavelet đầu vào TREE tín hiệu cần giảm nhiễu nén SORH ('s' 'h') đại diện cho việc làm mềm làm cứng ngưỡng Phương pháp phân rã tốt thực cách sử dụng tiêu chí entropy xác định chuỗi CRIT tham số PAR Tham số ngưỡng PAR Ngoài ra, CRIT = 'nobest', khơng có tối ưu hóa thực hiện, phân rã ngưỡng Nếu KEEPAPP = 1, hệ số xấp xỉ ngưỡng Ngược lại, chúng GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 15 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm keepapp = 1; xd = wpdencmp(tree, 's', 'nobest', thr, keepapp); Các tham số wname (tên Wavelet ), lev (cấp độ phân rã), sigma (độ lệch chuẩn), alpha (tham số điều chỉnh), keepapp (giữ lại hệ số xấp xỉ) sử dụng để định cấu hình q trình giảm nhiễu Có thể điều chỉnh giá trị để phù hợp với tín hiệu cụ thể Code matlab: % lọc tệp âm từ đĩa [y, fs] = audioread('D:\Downloads\MixueIcecreamTeaThemeSong-VA-8820973.mp3'); % chuyển đổi ma trận thành vector cách lấy giá trị cột y = y(:,1); % Chọn cột (hoặc hàng) ma trận % Tạo tín hiệu nhiễu noise_level = 0.2; % hiệu chỉnh mật độ nhiễu noise = noise_level * randn(size(y)); % Thêm tín hiệu nhiễu vào tín hiệu gốc y_noisy = y + noise; % chọn hàm wavelet cấp độ wavelet wname = 'coif5'; lev = 10; GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 16 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm % Thực phân rã wavelet cho tín hiệu gốc tín hiệu nhiễu tree_original = wpdec(y, lev, wname); tree_noisy = wpdec(y_noisy, lev, wname); % Lấy hệ số phân rã wavelet cho tín hiệu nhiễu detl_noisy = wpcoef(tree_noisy, 2); % Xác xác định ngưỡng nhiễu cho tín hiệu nhiễu sigma_noisy = median(abs(detl_noisy)) / 0.6745; alpha_noisy =2; thr_noisy = wpbmpen(tree_noisy, sigma_noisy, alpha_noisy); % Thực q trình giảm nhiễu cho tín hiệu keepapp = 1; xd_noisy =wpdencmp(tree_noisy, 's', 'nobest', thr_noisy, keepapp); % Hiển thị tín hiệu gốc, tín hiệu nhiễu tín hiệu giảm nhiễu figure; subplot(3,1,1); plot(y); title('Tin hieu goc'); subplot(3,1,2); plot(y_noisy) ; GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 17 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm title('Tin hieu goc + Nhieu'); subplot(3,1,3); plot(xd_noisy); title('Tin hieu giam nhieu'); Kết hiển thị : 3-5 Kết mô matlab 3.3 Mô khử nhiễu âm phân rã đa cấp Matlab 3.3.1 Sử dụng tín hiệu có sẵn Matlab để mơ Dùng lệnh load('noisybump.mat’) để tải liệu từ tập tin có sẵn Matlab clc; close all; clear all; % Tải tệp noisybump.mat GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 18 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm load('noisybump.mat'); Sau sử dụng biến liệu tập tin để mô vẽ đồ thị tín hiệu âm ban đầu tín hiệu sau có nhiễu % Vẽ đồ thị mơ tín hiệu ban đầu subplot(2, 1, 1); plot(f0); grid on; title('Tín hiệu ban đầu'); axis tight; % Vẽ đồ thị mơ tín hiệu có nhiễu subplot(2, 1, 2); plot(f); title('Tín hiệu có nhiễu'); axis tight; grid on; % Thêm tiêu đề chung cho hai đồ thị sgtitle('Biểu đồ cho Tín hiệu ban đầu Tín hiệu có nhiễu'); 3-6 Kết mơ lọc wavelet tầng 3.3.2 Thực phân tách wavelet đa cấp Nhận tín hiệu nhiễu sau dùng hàm “wavedec” để thực biến đổi tín hiệu cấp độ % Phân tách tín hiệu cách sử dụng Biến đổi Wavelet rời rạc GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 19 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm dwtmode('per','nodisplay'); wname = 'sym6'; level = 5; [C, L] = wavedec(f,level,wname); Sau sử dụng biến bước để vẽ đồ thị chi tiết cho cấp độ function plotDetCoefHelper(f,C,L); function plotDetCoefHelper(f,C,L) D = detcoef(C,L,'cells'); % % [cD1, cD2, cD3, cD4, cD5] = detcoef(C,L,[1,2,3,4,5]); figure; set(gcf,'Position', [402 139 1378 923]); subplot(6,1,1) plot(f); axis tight; grid on; title('Original Signal'); subplot(6,1,2) h = stem(dyadup(D{1})); h.ShowBaseLine = 'off'; h.Marker = '.'; h.MarkerSize = 2; axis tight; grid on; title('Level Details'); subplot(6,1,3) h = stem(dyadup(dyadup(D{2}))); h.ShowBaseLine = 'off'; h.Marker = '.'; h.MarkerSize = 2; axis tight; grid on;title('Level Details'); subplot(6,1,4); h = stem(dyadup(dyadup(dyadup(D{3})))); h.ShowBaseLine = 'off'; h.Marker = '.'; h.MarkerSize = 2; axis tight; grid on; title('Level Details'); subplot(6,1,5); h = stem(dyadup(dyadup(dyadup(dyadup(D{4}))))); GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 20 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm h.ShowBaseLine = 'off'; h.Marker = '.'; h.MarkerSize = 2; axis tight; grid on;title('Level Details'); subplot(6,1,6); h = stem(dyadup(dyadup(dyadup(dyadup(dyadup(D{5})))))); h.ShowBaseLine = 'off'; h.Marker = '.'; h.MarkerSize = 2; axis tight; grid on;title('Level Details'); end 3-7 Kết tín hiệu nhiễu tầng tín hiệu sau lọc 3.3.3 Xác định ngưỡng phù hợp xây dựng lại tín hiệu Mục tiêu giữ lại thay đổi rõ ràng loai bỏ nhiễu Một số cách để làm điều chia tỉ lệ tín hiệu theo ngưỡng Đặt ngưỡng có hai loại là: a) Ngưỡng mềm (Soft Thresholding) Hệ số có độ lớn nhỏ ngưỡng đặt thành GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 21 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm Hệ số có độ lớn lớn ngưỡng thu nhỏ cách trừ giá trị ngưỡng khỏi giá trị hệ số b) Ngưỡng cứng (Hard Thresholding) Hệ số có độ lớn nhỏ ngưỡng đặt thành Hệ số có độ lớn lớn ngưỡng giữ nguyên Ta thấy mức ngưỡng cứng tạo tính khơng liên tục, phóng đại những biến đổi nhỏ giá trị biến đổi, nơi mà có độ lớn gần với mức ngưỡng T Nếu giá trị nhỏ T thiết lập giá trị 0, giá trị lớn T giữ lại Do mức ngưỡng cứng khơng phù hợp cho việc loại bỏ đa số nhiễu GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 22 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm Trong Matlab ta dùng lệnh “wden” để tín tốn áp dụng ngưỡng mềm để khử nhiễu tín hiệu Sau vẽ đồ thị sau khử nhiễu % Khử nhiễu tín hiệu fd = wden(f,'rigrsure','s','sln',level,wname); figure; subplot(2,1,1); plot(f); axis tight; grid on; title('Tín có nhiễu'); subplot(2,1,2); plot(fd); axis tight; grid on; title(sprintf('Khử nhiễu tín hiệu SNR: %0.2f dB',-20*log10(norm(abs(f0fd))/norm(f0)))); 3-8 Tín hiệu đầu vào kết sau xử lý wavelet đa tầng GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 23 Biến đổi wavelet - Ứng dụng cho xử lý tín hiệu âm TÀI LIỆU THAM KHẢO [1] Khoa Công Nghệ Thông Tin, Trường Đại học Sư Phạm Kỹ Thuật Vĩnh Long- Khoa Công Nghệ Thông Tin, Trường Đại học Cần Thơ, “Phân loại nhạc theo thể loại dùng phép biến đổi wavelet rời rạc.” [2] Đinh Thị Thùy Dương, “Ứng dụng biến đổi wavelet cho mục đích nâng cao chất lượng phân loại liệu dạng chuỗi thời gian.” GvHD: TS.Nguyễn Thị Kim Trúc Nhóm : 24