1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo đề tài ứng dụng fourier vào khử nhiễu âm thanh

21 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 427,85 KB

Nội dung

Giới thiệu khái quát về phép biến đổi Fourier hữu hạn- Biến đổi Fourier là một trong những kỹ thuật được sử dụng rộng rãi nhất trong toán học ứng dụng, chẳng hạn như trong lĩnh vực xử lý

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA ֍֍֍ BÁO CÁO ĐỀ TÀI: ỨNG DỤNG FOURIER VÀO KHỬ NHIỄU ÂM THANH STT HỌ VÀ TÊN MSSV Nguyễn Huỳnh Thái Bảo 2210238 Lê Thanh Tuyển 2213836 Đỗ Thị Thùy Vân 2213921 Trần Đại Việt 2213951 Lê Văn Quang Vinh 2213965 Lâm Trường Vủ 2213988 Lưu Thanh Bảo 2210221 Trương Quốc Bình 2210337 Lớp L05 – Nhóm 10 GVHD: Th.s Nguyễn Hữu Hiệp Thành phố Hồ Chí Minh, tháng năm 2022 Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa Mục Lục I MỤC ĐÍCH II.NỘI DUNG Cơ sở lý thuyết 2.1 Định nghĩa ánh xạ tuyến tính .4 2.2 Nhân ảnh ánh xạ tuyến tính .4 2.3 Biểu diễn ma trận ánh xạ tuyến tính 2.4 Biến đổi Fourier hữu hạn .5 Ứng dụng biến đổi Fourier hữu hạn để khử nhiễu âm Matlab .7 3.1 Ví dụ 3.2 Ví dụ 3.3 Ví dụ .11 Kết luận 14 Tài liệu tham khảo 15 Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa I MỤC ĐÍCH Ứng dụng phép biến đổi Fourier hữu hạn vào khử nhiễu âm thông qua cơng cụ Matlab, qua biết cách xử lí âm thành thục, cải thiện kỹ làm việc nhóm cách sử dụng cơng cụ Matlab để diễn tả toán cách cụ thể, ngắn gọn, súc tích dễ hiểu Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa II NỘI DUNG Giới thiệu khái quát phép biến đổi Fourier hữu hạn - Biến đổi Fourier kỹ thuật sử dụng rộng rãi toán học ứng dụng, chẳng hạn lĩnh vực xử lý tín hiệu nén liệu, biến đổi Fourier dựa ý tưởng hàm có tính chất phù hợp biểu diễn tổ hợp tuyến tính hàm lượng giác Công việc ban đầu biến đổi Fourier việc sử dụng hàm lượng giác giải tích bắt nguồn từ cơng trình nhà tốn học Leonhard Euler (1707-1783), Alexis-Claude Clairaut (1713-1765) Joseph Louis Lagrange (1736-1813) - Euler người đưa công thức cho hệ số chuỗi Fourier Dựa nghiên cứu Euler, Clairaut công bố công thức cho phép biến đổi Fourier rời rạc (DFT) vào năm 1754 biết Năm 1805, Carl Friendrich Gauss (1777-1855) công bố công thức cho DFT - Năm 1822, Joseph Fourier (1768-1830) đưa cơng trình dòng nhiệt cung cấp tảng cho phép biến đổi Fourier nguồn gốc tên gọi Năm 1965, James Cooley John Tukey, phát minh thuật toán biến đổi Fourier nhanh (FFT), thuật toán cho phép loạt ứng dụng số thời đại kỹ thuật số đời Các ứng dụng bao gồm nén liệu JPEG, phân tích cấu trúc tinh thể, giải phương trình vi phân phần, xử lí tín hiệu nhiễu, Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa Cơ sở lý thuyết 2.1 Định nghĩa ánh xạ tuyến tính Cho X, Y hai tập hợp khác rỗng tùy ý Ánh xạ f X Y quy tắc tương ứng phần tử x  X phần tử y Y Hay f : X  Y ánh xạ, x  X , ! y Y, y  f (x) 2.2 Nhân ảnh ánh xạ tuyến tính Cho ánh xạ tuyến tính f : X  Y Nhân (Ker) f định nghĩa là: Kerf  x  X | f (x)  0 Ảnh (Im) f định nghĩa là: Imf  y Y | x  X , y  f (x) * Ghi chú: Kerf nghiệm phương trình f Imf tập ảnh f (trong hàm số gọi tập giá trị) Tính chất: Cho ánh xạ tuyến tính f : X  Y + Nhân (Ker) f không gian X + Ảnh (Im) f không gian Y + dim(Kerf )  dim(Imf )  dim(X ) 2.3 Biểu diễn ma trận ánh xạ tuyến tính * Định nghĩa: Cho V không gian vector n chiều, W không gian vector m chiều, E  e1, e2 , , en sở V, F   f1, f2 , , fm sở W f :V W xác định x  f (x) ánh xạ tuyến tính Vì x V f (x) W nên theo tính chất khơng gian vector x ln biểu thị tuyến tính qua sở E V f (x) biểu thị qua sở F W Giả sử: x  x1e1  x2e2   xnen f (x)  y1 f1  y2 f2   ym fm Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa [ ]x1 [ ]y1 Ta có : [ x ]E= ¿ … [f (x )]F= ¿ … xn ym Nếu tồn ma trận A Mmn cho A [ x ]E=[f (x )]F với x V A gọi ma trận ánh xạ tuyến tính f sở E V F W 2.4 Biến đổi Fourier hữu hạn Trong toán học, phép biến đổi Fourier rời rạc (DFT), đơi cịn gọi biến đổi Fourier hữu hạn, biến đổi giải tích Fourier cho tín hiệu thời gian rời rạc Đầu vào biến đổi chuỗi hữu hạn số thực số phức, làm biến đổi công cụ lý tưởng để xử lý thơng tin máy tính Mục đích biến đổi Fourier tách tín hiệu dạng sóng thành tần số riêng lẻ tạo Cụ thể hơn, biến đổi Fourier tách hàm số thành tổng hàm sin cos, hàm có tần số khác Biến đổi Fourier xác định cho vecto x với n điểm lấy n−1 mẫu thống bởi: yk +1=∑ w jk x j+1 j =0 * Ứng dụng biến đổi Fourier hữu hạn khử nhiễu âm Phép biến đổi Y = Fn X gọi phép biến đổi fourier rời rạc vectơ X + Vectơ Y = Fn X có dạng Y = A +iB n −1 + Vectơ A chứa hệ số αt ∑ αt cos πt t =0 n n −1 + Vectơ B chứa hệ số βt ∑ βt sin πt t =0 n Như dùng phép biến đổi Fourier rời rạc, ta chuyển tín hiệu X miền thời gian thành tín hiệu miền tần số gồm tổng hàm cos πtn sin πtn Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa n−1 πt πt Giả sử tín hiệu gốc có dạng ∑ αt cos +βt sin + nhiễu t =0 n n Sau phân tích Fourier rời rạc Y = Fn.X , so sánh với hình vẽ trước sau phân tích, ta xác định tần số tín hiệu tần số nhiễu Lọc bỏ tín hiệu nhiễu ,chỉ giữ lại tín hiệu chính, sau phân tích Fourier ngược ta thu tín hiệu khử nhiễu Ứng dụng biến đổi Fourier hữu hạn để khử nhiễu âm Matlab Dưới số ví dụ sử dụng biến đổi Fourier hữu hạn khử nhiễu âm với Matlab: 3.1 Ví dụ 3.1.1 Code Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa 3.1.2 Giải thích Code - đọc tín hiệu âm đầu vào hàm audioread lưu trữ biến ‘y’ Tần số lấy mẫu tín hiệu lưu trữ biến ‘Fs’: [y, Fs] = audioread('1.wav') - Nghe âm gốc đưa vào biến ‘y’ tần số mẫu biến ‘Fs’ hàm sound: sound(y, Fs) - Sử dụng hàm ‘fft’ để biến đổi Fourier tín hiệu âm gốc lưu vào biến ‘Y’: Y = fft(y); Vẽ lại đồ thị tín hiệu âm gốc qua biến đổi Fourier màu đỏ: plot(abs(Y),'r'); - Giữ lại thay đổi đồ thị: hold on; - Sử dụng hàm pause để dừng chương trình giây lát để ta nghe khác biệt hai đoạn âm chưa lọc nhiễu lọc nhiễu: pause(5) - Tính giá trị tuyệt đối tín hiệu âm gốc sau qua biến đổi Fourier hàm ‘abs( )’ tìm giá trị lớn hàm ‘max( )’ sau lưu vào biến ‘M’ - Tạo ma trận ‘Ythresh’ để lưu giá trị tính theo cơng thức ‘(abs(Y)>thresh*M).*Y’ để giữ lại thành phần tần số lớn ngưỡng xác định Ythresh=(abs(Y)>thresh*M).*Y; - Sử dụng hàm ‘ifft’ để biến đổi Fourier ngược để chuyển đổi ma trận ‘Ythresh’ thành tín hiệu âm khử nhiễu lưu biến ‘ythresh’: ythresh=real(ifft(Ythresh)); Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa - Vẽ lại đồ thị tín hiệu âm qua lọc nhiễu lưu ‘Ythresh’ màu xanh để so sánh khác với đồ thị tín hiệu ban đầu sau nghe âm để so sánh với âm gốc chưa lọc nhiễu: plot(abs(Ythresh),'b'); sound(ythresh, Fs); 3.1.3 Kết Hình 1: Đồ thị chưa lọc nhiễu Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa Hình 2: Đồ thị lọc nhiễu Hình 3: Đồ thị chưa lọc nhiễu (màu đỏ) đồ thị lọc nhiễu (màu xanh) 10 Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa 3.2 Ví dụ 3.2.1 Code 11 Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa 3.2.2 Giải thích Code - audioread('1.wav'): Hàm sử dụng để đọc tín hiệu âm từ file 1.wav trả hai đối số tín hiệu âm x tần số lấy mẫu fs - fir1(30,Wn): Hàm sử dụng để thiết kế lọc FIR thông thấp với 30 mẫu tần số cắt fc tính dựa tần số lấy mẫu fs - filter(b,1,x): Hàm sử dụng để áp dụng lọc FIR b vào tín hiệu âm x, trả tín hiệu âm lọc y - audiowrite('2.wav', y, fs): Hàm sử dụng để xuất tín hiệu âm lọc y file có tên ten_file_sau_khi_loc.wav với tần số lấy mẫu fs - subplot(2,1,1): Hàm sử dụng để chia bố cục biểu đồ, tạo hình ảnh chứa hai đồ thị cửa sổ Đoạn code chọn vị trí đồ thị thứ - plot(x): Hàm sử dụng để vẽ biểu đồ tín hiệu âm ban đầu x - title('Tín hiệu âm ban đầu'): Hàm sử dụng để đặt tiêu đề cho đồ thị - sound(x, fs): Hàm sử dụng để phát tín hiệu âm ban đầu x thông qua loa máy tính với tần số lấy mẫu fs - pause(length(x)/fs): Hàm sử dụng để tạm dừng chương trình khoảng thời gian với độ dài tín hiệu âm ban đầu x chia cho tần số lấy mẫu fs - subplot(2,1,2): Hàm sử dụng để chia bố cục biểu đồ, tạo hình ảnh chứa hai đồ thị cửa sổ Đoạn code chọn vị trí đồ thị thứ hai - plot(y): Hàm sử dụng để vẽ biểu đồ tín hiệu âm lọc y - title('Tín hiệu âm lọc'): Hàm sử dụng để đặt tiêu đề cho đồ thị - sound(y, fs): Hàm sử dụng để phát tín hiệu âm lọc y thơng qua loa máy tính với tần số lấy mẫu fs 12 Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa - pause(length(y)/fs): Hàm sử dụng để tạm dừng chương trình khoảng thời gian với độ dài tín hiệu âm lọc y chia cho tần số lấy mẫu fs 3.2.3 Kết 13 Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa 3.3 Ví dụ 3.3.1 Code 14 Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa 3.3.2 Giải thích Code - audioread('noisy_audio.wav'): Hàm audioread sử dụng để đọc file âm có tên noisy_audio.wav, trả liệu âm tần số lấy mẫu tín hiệu - Fs = Fs/2;: Giảm tần số lấy mẫu xuống nửa - Y = fft(y);: thực phép biến đổi Fourier cho tín hiệu âm Kết phép biến đổi Fourier mảng phức gồm phần tử giá trị phức hệ số Fourier tương ứng với tần số tín hiệu âm - Pyy = Y.*conj(Y)/n;: tính tốn số phức đối phần tử mảng Y, sau nhân với để tính tốn mơ đun bình phương phần tử Cuối cùng, giá trị chia cho số mẫu n để tính tốn ước lượng mật độ lượng phổ tín hiệu - cutoff_idx = find(f > cutoff, 1);: tìm vị trí mảng tần số f mà giá trị phần tử lớn giá trị biến cutoff Vị trí lưu trữ biến cutoff_idx sử dụng để chuyển tất phần tử mảng Y có số lớn cutoff_idx thành - Y(cutoff_idx:end) = 0;: Tất phần tử mảng Y có số lớn cutoff_idx chuyển thành để loại bỏ tần số cao tần số cắt - y_filtered = real(ifft(Y));: thực phép biến đổi Fourier ngược để lấy lại tín hiệu âm lọc Kết phép biến đổi Fourier ngược mảng phức gồm phần tử giá trị phức tín hiệu âm Để lấy phần thực kết quả, hàm real sử dụng - subplot(2,2,1); plot(t,y);: tạo khu vực đồ thị chứa đồ thị Tham số hàm subplot số hàng lưới đồ thị, tham số thứ hai số cột lưới đồ thị tham số thứ ba vị trí đồ thị lưới đồ thị Sau đó, hàm plot sử dụng để vẽ đồ thị tín hiệu âm gốc với trục x thời gian t trục y giá trị tín hiệu âm y 15 Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa - subplot(2,2,2); plot(f(1:n/2),Pyy(1:n/2));: hàm subplot sử dụng để tạo đồ thị thứ hai khu vực đồ thị Hàm plot sử dụng để vẽ đồ thị phổ tín hiệu âm gốc với trục x tần số f trục y mật độ lượng phổ Pyy Ở đây, có nửa phần tử mảng Pyy sử dụng để vẽ đồ thị - subplot(2,2,3); plot(t,y_filtered);: Hàm subplot sử dụng để tạo đồ thị thứ ba khu vực đồ thị Hàm plot sử dụng để vẽ đồ thị tín hiệu âm lọc với trục x thời gian t trục y giá trị tín hiệu âm lọc y_filtered - Y_filtered = fft(y_filtered);: thực phép biến đổi Fourier cho tín hiệu âm lọc Kết phép biến đổi Fourier lưu trữ mảng Y_filtered - Pyy_filtered = Y_filtered.* conj(Y_filtered) / n;: Sau có kết phép biến đổi Fourier cho tín hiệu âm lọc, hàm conj sử dụng để tính tốn số phức liên hợp phần tử mảng Y_filtered, sau sử dụng tốn tử * để thực tính toán phần tử mảng Y_filtered mảng số phức liên hợp Y_filtered Kết cuối chia cho n để tính tốn mật độ lượng phổ tín hiệu âm lọc lưu trữ mảng Pyy_filtered - subplot(2,2,4); plot(f(n/2),Pyy_filtered(1:n/2));: Cuối cùng, hàm subplot sử dụng để tạo đồ thị thứ tư khu vực đồ thị Hàm plot sử dụng để vẽ đồ thị phổ tín hiệu âm lọc với trục x tần số f trục y mật độ lượng phổ Pyy_filtered Như đồ thị thứ hai, có nửa phần tử mảng Pyy_filtered sử dụng để vẽ đồ thị 16 Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa 3.3.3 Kết 17 Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa Biết cách lọc nhiễu file âm MATLAB ➔ Hiểu biết rõ ứng dụng môn học ➔ Trau dồi kỹ học tập làm việc nhóm hiệu ➔ Nâng cao tình đồn kết thành viên nhóm ➔ Có hứng thú mơn học Kết luận Với đề tài giao, nhóm lên kế hoạch làm việc phân chia công việc cụ thể cho thành viên, thành viên nhóm với tinh thần đầy trách nhiệm hoàn thành báo cáo Qua báo cáo nhóm củng cố kiến thức ánh xạ tuyến tính hiểu phép 18 Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa biến đổi Fourier ứng dụng vào khử nhiễu âm với cơng cụ hỗ trợ Matlab, qua củng cố kiến thức học kiến thức lập trình Matlab ➔ Biết cách lọc nhiễu file âm MATLAB ➔ Hiểu biết rõ ứng dụng môn học ➔ Trau dồi kỹ học tập làm việc nhóm hiệu ➔ Nâng cao tình đồn kết thành viên nhóm ➔ Có hứng thú mơn học 19 Đại học Quốc gia Thành phố Hồ Chí Minh – Trường đại học Bách Khoa 20

Ngày đăng: 05/03/2024, 09:47

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w