Phân tích phổ là một bài toán cần thiết và có ý nghĩa quan trọng trong cuộc sống hiện đại. Bài báo cáo này thực hiện biểu diễn spectrogram của tín hiệu các loại nhạc cụ và sự khác biệt về đặc trưng phổ giữa chúng. Các thử nghiệm với 4 file tín hiệu âm thanh của nhạc cụ khác nhau là sáo, guitar, piano, violin. Từ kết quả thực nghiệm cho ta thấy sự khác nhau về đặc trưng phổ của 2 loại spectrogram. Ngoài ra còn cho ta biết những yếu tố ảnh hưởng quan trọng đến quá trình phân tích phổ. Short Time Fourier Transform, Spectrogram, Fast Fourier Transform, STFT Bách khoa đà nẵng,
Báo cáo tập lớn mơn học Xử lý tín hiệu số, HK1 năm học 2019-2020 PHÂN TÍCH PHỔ CỦA TÍN HIỆU CÁC LOẠI NHẠC CỤ DÙNG SHORT TIME FOURIER TRANSFORM Name01, Name02, Name03, Name04 Nhóm 15, lớp HP: 102………… Điểm Bảng phân cơng nhiệm vụ Name01 (nhóm trưởng) Name02 Chữ ký SV Phân công nhiệm vụ đảm bảo tiến độ thành viên Tìm hiểu cài đặt thuật toán STFT Đọc tài liệu , viết báo cáo ứng dụng spectrogram kết thực nghiệm Đọc tài liệu, viết lý thuyết đặt vấn đề vấn đề cần giải quyết, narrow band wide band Làm slide Name03 Đọc tài liệu, viết lý thuyết tìm hiểu thuật tốn phương pháp biến đổi fourier thời gian ngắn Name04 Đọc tài liệu, viết lý thuyết spectrogram Tìm hiểu cài đặt thuật tốn STFT Lời cam đoan: Chúng tơi, gồm sinh viên có chữ ký trên, cam đoan báo cáo tự viết dựa tài liệu tham khảo ghi rõ phần VII Các số liệu thực nghiệm mã nguồn chương trình khơng dẫn nguồn tham khảo chúng tơi tự làm Nếu vi phạm xin chịu trách nhiệm tuân theo xử lý giáo viên hướng dẫn TĨM TẮT— Phân tích phổ tốn cần thiết có ý nghĩa quan trọng sống đại Bài báo cáo thực biểu diễn spectrogram tín hiệu loại nhạc cụ khác biệt đặc trưng phổ chúng Các thử nghiệm với file tín hiệu âm nhạc cụ khác sáo, guitar, piano, violin Từ kết thực nghiệm cho ta thấy khác đặc trưng phổ loại spectrogram Ngồi cịn cho ta biết yếu tố ảnh hưởng quan trọng đến q trình phân tích phổ Từ khóa— Short Time Fourier Transform, Spectrogram, Fast Fourier Transform, STFT Nhóm 15, lớp HP: 1022103.1910.17.12 Mục lục ĐẶT VẤN ĐỀ I LÝ THUYẾT VỀ PHÂN TÍCH PHỔ II 3 A Vấn đề cần giải B Biến đổi Fourier thời gian ngắn Cơ sở lý thuyết Sơ đồ thuật toán : Các tham số quan trọng thuật toán Vấn đề giải pháp khắc phục 4 Spectrogram Định nghĩa Wide – band and narrow-band Các ứng dụng spectrogram 5 C III MÃ CHƯƠNG TRÌNH CÀI ĐẶT CÁC THUẬT TOÁN IV KẾT QUẢ THỰC NGHIỆM A Kết định tính B Kết định lượng 10 V KẾT LUẬN 12 VI TÀI LIỆU THAM KHẢO 13 Name01, Name02, Name03, Name04 ĐẶT VẤN ĐỀ I Âm có vai trị quan trọng sống Cùng với phát triển khoa học kỹ thuật, nhu cầu phân tích xử lý âm người ngày tăng cao Phân tích phổ có vai trị quan trọng việc phân tích tín hiệu âm ứng dụng đời sống Trong ảnh phổ sử dụng rộng rãi lĩnh vực âm nhạc, sonar, radar xử lý tiếng nói, địa chấn lĩnh vực khác Các biểu đồ phổ âm sử dụng để xác định từ nói theo ngữ âm để phân tích tiếng kêu khác động vật.[3] Có nhiều phương pháp phân tích phổ tín hiệu báo cáo chúng giới thiệu phương pháp biến đổi Fourier thời gian ngắn (Short –Time Fourier Transform) Báo cáo có bố cục sau: Phần II trình bày sở lý thuyết biến đổi Fourier thời gian ngắn, spectrogram vấn đề liên quan ảnh hưởng đến phân tích phổ tín hiệu Phần III trình bày mã nguồn cài đặt tốn Phần IV trình bày kết thực nghiệm mô tả liệu dùng để đánh giá phân tích ảnh phổ, đưa đánh giá định tính định lượng, đưa khác biệt đặc trưng phổ Phần V trình bày kết luận, tóm lại kết đạt đề xuất hướng phát triển cải thiện tương lai II LÝ THUYẾT VỀ PHÂN TÍCH PHỔ Vấn đề cần giải A Ảnh phổ (spectrogram) ứng dụng nhiều lĩnh vực, đặc biệt âm nhạc xử lý tiếng nói Trong âm nhạc, việc phần tích phổ vô quan trọng công việc Vậy ảnh phổ (spectrogram) gì? Ảnh phổ (spectrogram) biểu diễn trực quan phổ tần số tín hiệu thay đổi theo thời gian Khi áp dụng cho tín hiệu âm thanh, biểu đồ phổ gọi sonagraph, voiceprints hay voicegrams Khi tín hiệu biểu diển đồ thị ba chiều, gọi waterfalls[3] Có nhiều phương pháp để tạo ảnh phổ Ở báo cáo giới thiệu phương pháp biến đổi Fourier thời gian ngắn (Short –Time Fourier Transform) Biến đổ Fourier thời gian ngắn dạng biến đổi Fourier dùng để xác định tần số pha tín hiệu sin phức tính khung cửa sổ tín hiệu có thay đổi thời gian[1] B Biến đổi Fourier thời gian ngắn Cơ sở lý thuyết ● Định nghĩa: Biến đổ Fourier thời gian ngắn dạng biến đổi Fourier dùng để xác định tần số pha tín hiệu sin phức tính khung cửa sổ tín hiệu có thay đổi thời gian[1] Là phân chia chuỗi thời gian thành khối chồng (overlaping blocks) có chiều dài áp dụng Fourier nhanh (FFT) cho khối cách Đầu tiên tín hiệu nhân với hàm cửa sổ w(t- τ) sau thực biến đổi Fourier, kết cho biến đổi hai chiều STFT(ω, τ) Trong miền thời gian liên tục: +∞ −𝑖ω𝑡 STFT(ω, τ)=X(ω, τ)= ∫ 𝑥(𝑡)𝑤(𝑡 − τ)𝑒 dt −∞ Trong đó: w(τ): hàm cửa sổ x(t): tín hiệu liên tục X(ω, τ): biến đổi Fourier x(t).w(t-τ) Trong miền thời gian rời rạc: ∞ −𝑗ω𝑛 STFT(m,ω)=X(m,ω)= ∑ 𝑥[𝑛]𝑤[𝑛 − 𝑚]𝑒 [2] 𝑛=−∞ Trong đó: ● w[n] : khung cửa sổ x[n] : tín hiệu rời rạc X(m, ω): biến đổi Fourier liệu tín hiệu với khung cửa sổ w[n] Tính chất: - STFT đo giống tín hiệu với phiên dịch biến điệu hàm cửa sổ w(t) Nhóm 15, lớp HP: 1022103.1910.17.12 - STFT có tính định vị thời gian – tần số Thao tác dịch biến điệu hàm cửa sổ khơng làm thay đổi kích thước hàm cửa sổ mà tịnh tiến theo trục thời gian – tần số STFT thể mối quan hệ thời gian tần số tín hiệu, cung cấp thơng tin thời gian tần số xuất kiện Độ phân giải theo thời gian phụ thuộc vào kích thước cửa sổ Sơ đồ thuật tốn : Hình Sơ đồ khối thuật toán STFT Các tham số quan trọng thuật toán - Loại hàm cửa sổ Độ dài hàm cửa sổ Số điểm tính FFT Độ chồng chéo cửa sổ Vấn đề giải pháp khắc phục a) Loại hàm cửa sổ Một vấn đề phát sinh phổ biến khó khăn việc lựa chọn hàm cửa sổ Có nhiều loại hàm cửa sổ như: hann, hamming, blackman, … Ở báo cáo nhóm sử dụng cửa sổ hann Tính hàm cửa sổ hann[5]: 𝐿 w[n] = w0( 𝑁 (n - 𝑁 )) = [1 − 𝑐𝑜𝑠( 2π𝑛 𝑁 2π𝑛 𝑁 )] = 𝑠𝑖𝑛 ( b) đó: N+1 chiều dài cửa sổ, N chẵn lẻ Độ dài hàm cửa sổ: c) Ở có loại spectrogram phổ băng rộng phổ băng hẹp Số điểm tính FFT: ) , 0≤n≤𝑁 Có thể nhiều giá trị nfft Nhưng cần phải chọn giá trị phù hợp để vừa tiết kiệm thời gian tính tốn vừa đem kết xác Ở nhóm chọn giá trị mặc định 256 d) Độ chồng chéo hàm cửa sổ Độ chồng chéo khung tính fft ảnh hưởng quan trọng đến độ rõ phổ Sự chênh lệch khung, hay gọi độ dịch cần chọn giá trị phù hợp mà giá trị phải nhỏ chiều dài cửa sổ Name01, Name02, Name03, Name04 C Spectrogram Định nghĩa Ảnh phổ (spectrogram) biểu diễn trực quan phổ tần số tín hiệu thay đổi theo thời gian Khi áp dụng cho tín hiệu âm thanh, biểu đồ phổ đơi gọi sonagraph, voiceprints hay voicegrams Khi tín hiệu biểu diển đồ thị ba chiều, gọi waterfalls[3] Ảnh phổ tạo ảnh phổ kế Một dải lọc thông dải, biến đổi Fourier biến đổi sóng (Trong trường hợp gọi scaleogram)[3] Thời gian hiển thị dọc theo trục x, tần số dọc theo trục y lượng lượng tín hiệu thời điểm tần số cho hiển thị dạng đồ nhiệt Hình Ví dụ minh họa ảnh phổ Wide – band and narrow-band ● Phổ băng rộng (Wide-band): - ● Một phổ tạo sơ đồ phân tích nhấn mạnh thay đổi theo thời gian tín hiệu: với tính tốn phổ ngắn hạn (khoảng 3ms) lọc phân tích độ thay đổi tần số cao (khoảng 300Hz).[4] - Phổ băng rộng có độ phân giải thời gian tốt, có nghĩa phát thay đổi tần số khoảng thời gian nhỏ Đối với phổ băng rộng, khoảng thời gian cho phổ nhỏ, wide-band tạo phân biệt tần số tốt Phổ băng hẹp (Narrow-band): - Một phổ tạo sơ đồ phân tích nhấn mạnh thay đổi tần số tín hiệu: với tính tốn phổ dài hạn (khoảng 20ms) lọc phân tích độ thay đổi tần số thấp (khoảng 45Hz).[4] Phổ băng hẹp có độ phân giải tần số tốt, có nghĩa phát khác biệt nhỏ tần số Đối với phổ băng hẹp , khoảng thời gian cho phổ phải lớn, để tạo khác biệt tần số.Narrow - band lời nói cho thấy cấu trúc hài hịa rung động âm dải ngang 6 Nhóm 15, lớp HP: 1022103.1910.17.12 Hình Ví dụ phân biệt wide-band narrow-band Các ứng dụng spectrogram - Spectrogram sử dụng rộng rãi lĩnh vực âm nhạc , sonar , radar xử lý tiếng nói , địa chấn lĩnh vực khác Các biểu đồ phổ âm sử dụng để xác định từ nói theo ngữ âm để phân tích tiếng kêu khác động vật [3] - Các quang phổ tương tự ban đầu áp dụng cho loạt lĩnh vực bao gồm nghiên cứu tiếng kêu chim (chẳng hạn tiếng kêu lớn), với nghiên cứu tiếp tục sử dụng thiết bị kỹ thuật số đại áp dụng cho tất âm động vật Việc sử dụng đại phổ kỹ thuật số đặc biệt hữu ích để nghiên cứu điều chế tần số (FM) việc gọi động vật[3] - Spectrogram hữu ích việc hỗ trợ khắc phục khiếm khuyết giọng nói việc luyện nói cho phần dân số bị khiếm thính - Các nghiên cứu ngữ âm tổng hợp giọng nói thường thuận tiện dễ dàng với việc sử dụng spectrogram - Bằng cách đảo ngược q trình tạo phổ, tạo tín hiệu có phổ hình ảnh tùy ý Kỹ thuật sử dụng để ẩn hình ảnh đoạn âm sử dụng số nghệ sĩ âm nhạc điện tử - Các spectrogram sử dụng để phân tích kết truyền tín hiệu thư nghiệm qua xử lý tín hiệu (ví dụ lọc) để kiểm tra hiệu suất - Các biểu đồ phổ sử dụng với mạng nơ-ron hồi quy (RNN) để nhận dạng giọng nói III MÃ CHƯƠNG TRÌNH CÀI ĐẶT CÁC THUẬT TOÁN %% Input Speech clear all; [data, fs] = audioread('D:\xu_ly_tin_hieu_so\cuoiki\code\TH\violin.wav'); %[data, fs] = audioread('D:\xu_ly_tin_hieu_so\cuoiki\code\TH\flute.wav'); %[data, fs] = audioread('D:\xu_ly_tin_hieu_so\cuoiki\code\TH\guitar.wav'); %[data, fs] = audioread('D:\xu_ly_tin_hieu_so\cuoiki\code\TH\piano.wav'); NFFT=256; %NFFT=round(log2(length(data))); %% TH vao subplot(3,1,1); t = [0 : 1/fs : length(data)/fs]; t = t(1:end - 1); plot(t,data,'Color','b'); title('Tin hieu vao','Color','r'); Name01, Name02, Name03, Name04 %% wide-band subplot(3,1,2); t_wide=0.003; L_wide=round(t_wide*fs); step_wide=round(L_wide/8); spectrogram0(data,L_wide,NFFT,step_wide,fs); title('Wide-band','Color','r'); %% narrow-band subplot(3,1,3); t_narrow=0.02; L_narrow=round(t_narrow*fs); step_narrow=round(L_narrow/8); spectrogram0(data,L_narrow,NFFT,step_narrow,fs); title('Narrow-band','Color','r'); %% function % Input % x : Tin hieu dau vao % L: Chieu dai khung cua so % NFFT: So diem tinh fft % step: dich cua cac khung cua so % Fs: Tan so % Output % Ma tran S bieu dien cac diem tan so tren cac hang, thoi gian tren cac cot function S = spectrogram0(x,L,NFFT,step,Fs) % S=spectrogram0(x,L,NFFT,step,Fs) N=length(x); K=fix((N-L+step)/step);%fix làm tron so nguyen gan nhat ve w=hann(L); % tra ve cua so hann doi xung diem L time=(1:L)';% ' chuyen vi hay so phuc lien hop N2=round(NFFT/2+1); S=zeros(K,N2);%matran0 co K hàng N2 cot for k=1:K xw=x(time).*w; X=fft(xw,NFFT);%fft tra ve DFT diem NFFT X1=X(1:N2)'; S(k,1:N2)=X1.*conj(X1);%conj tra ve so phuc lien hop cua no time=time+step; end S=fliplr(S)'; %tra ve cac cot lech theo huong nguoc lai %fliplr lat cac cot theo huong trai - phai S=S/max(max(S)); tk=(0:K-1)'*step/Fs; F=(0:NFFT/2)'*Fs/NFFT; imagesc(tk,flipud(F),20*log10(S)); %flipud lat cac hang theo huong xuong c = colorbar; c.Label.String = 'Power/frequency (dB/Hz)'; xlabel('Thoi gian (s)'); ylabel('Frequency (Hz)'); axis xy;%thiet lap gioi han truc end Nhóm 15, lớp HP: 1022103.1910.17.12 IV A KẾT QUẢ THỰC NGHIỆM Kết định tính Dữ liệu dùng để phân tích phổ file tín hiệu loại nhạc cụ khác sáo, guitar, piano, violin Hình Hình ảnh tín hiệu âm nhạc cụ đầu vào Hình Ảnh phổ tín hiệu nhạc cụ sáo Hình biểu diễn ảnh phổ tín hiệu nhạc cụ sáo trường hợp wide band narrow band Các thông số đầu vào là: hàm cửa sổ hann, độ dài hàm cửa sổ 0.003*fs với wide band 0.02*fs narrow-band, nfft = 256 độ dịch độ dài hàm cửa sổ chia ( tức % độ chồng khung liên tiếp 87.5%) Name01, Name02, Name03, Name04 Hình Ảnh phổ tín hiệu nhạc cụ guitar Hình biểu diễn ảnh phổ tín hiệu nhạc cụ guitar trường hợp wide band narrow band Các thông số đầu vào là: hàm cửa sổ hann, độ dài hàm cửa sổ 0.003*fs với wide band 0.02*fs narrow-band, nfft = 256 độ dịch độ dài hàm cửa sổ chia ( tức % độ chồng khung liên tiếp 87.5%) Hình Ảnh phổ tín hiệu nhạc cụ piano Hình biểu diễn ảnh phổ tín hiệu nhạc cụ tín hiệu pinao trường hợp wide band narrow band Các thông số đầu vào là: hàm cửa sổ hann, độ dài hàm cửa sổ 0.003*fs với wide band 0.02*fs narrow-band, nfft = 256 độ dịch độ dài hàm cửa sổ chia ( tức % độ chồng khung liên tiếp 87.5%) 10 Nhóm 15, lớp HP: 1022103.1910.17.12 Hình Ảnh phổ tín hiệu nhạc cụ violin Hình biểu diễn ảnh phổ tín hiệu nhạc cụ tín hiệu pinao trường hợp wide band narrow band Các thông số đầu vào là: hàm cửa sổ hann, độ dài hàm cửa sổ 0.003*fs với wide band 0.02*fs narrow-band, nfft = 256 độ dịch độ dài hàm cửa sổ chia ( tức % độ chồng khung liên tiếp 87.5%) ● B Nhận xét: - Từ hình 5, 6, , biểu diễn ảnh phổ tín hiệu loại nhạc cụ khác sáo, guitar, piano, violin, ta thấy ảnh phổ thể rõ tín hiệu nhạc cụ violin trường hợp wide-band narrow-band - Trong trường hợp wide-band: ảnh phổ có độ phân giải thời gian tốt, tức thể ảnh phổ rõ dọc theo trục thời gian bị mờ theo trục tần số Với tín hiệu nhạc cụ violin thể hiễn rõ đặc trưng phổ băng rộng - Trong trường hợp narrow-band: ảnh phổ có độ phân giải tần số tốt, tức thể ảnh phổ rõ dọc theo tần số không rõ theo trục tần thời gian Với tín hiệu nhạc cụ violin thể hiễn rõ đặc trưng phổ băng rộng - Tất ảnh phổ có miền tần số từ đến khoảng 20000HZ Kết định lượng Yếu tố ảnh hưởng đến biểu diễn ảnh phổ độ dài hàm cửa sổ Với độ dài hàm cửa sổ khác cho ta ảnh phổ có đặc trưng khác Name01, Name02, Name03, Name04 11 Hình Ảnh phổ tín hiệu violin trường hợp wide-band narrow-band Hình thể ảnh phổ trường hợp có độ dài hàm cửa sổ khác Trong trường hợp wide-band độ dài hàm cửa sổ 0.003*fs trường hợp narrow-band độ dài hàm cửa sổ 0.02*fs Việc chọn hàm cửa sổ đóng vai trị quan trọng việc phân tích phổ: Hình 10 Ảnh phổ tín hiệu nhạc cụ violin trường hợp hàm cửa sổ hann backman Hình 10 biểu diễn ảnh phổ tín hiệu nhạc cụ violin trường hợp dùng hàm cửa sổ khác hann backman, giá trị khác giống nhau: độ dài hàm cửa sổ 0.02*fs , nfft = 256 độ dịch độ dài hàm cửa sổ chia Với loại hàm cửa sổ khác cho đặc trưng phổ khác Yếu tố thứ ảnh hưởng đến biểu diễn ảnh phổ số điểm tính fft : 12 Nhóm 15, lớp HP: 1022103.1910.17.12 Hình 11 Ảnh phổ tín hiệu nhạc cụ violin với số điểm tính fft 256 16 Hình 11 biểu diễn ảnh phổ tín hiệu nhạc cụ violin với số điểm tính fft khác 256 16 thông số khác giống biểu diễn ảnh phổ: hàm cửa sổ hann, độ dài hàm cửa sổ 0.02*fs , độ dịch độ dài hàm cửa sổ chia Từ hình ta thấy có ảnh hưởng tới đặc trưng phổ Yếu tố cuối ảnh hưởng đến ảnh phổ độ dịch hàm cửa sổ, hay độ chồng chéo khung liên tiếp: Hình 12 Ảnh phổ tín hiệu nhạc cụ violin với độ dịch cửa sổ L L/8 Hình 12 biểu diễn ảnh phổ tín hiệu nhạc cụ violin với độ dịch khác độ dài hàm cửa sổ (% độ chồng chéo 0%) độ dài hàm cửa sổ chia (% độ chồng chéo 87,5%) Từ kết hình ảnh ta thấy độ dịch ( hay độ chồng chéo) có ảnh hưởng đến chất lượng hình ảnh phổ Với độ dịch lớn chất lượng mờ, độ dịch nhỏ ( độ chồng chéo lớn) chất lượng ảnh phổ rõ nét V KẾT LUẬN Bài báo cáo thực việc biểu diễn spectrogram với phương pháp biến đổi Fourier thời gian ngắn Các thử nghiệm với file tín hiệu loại nhạc cụ sáo, guitar, piano, violin sử dụng cho thấy khác đặc trưng phổ loại spectrogram wide band narrow band Đối với ảnh phổ dạng phổ băng hẹp cho thấy độ phân giải tần số tốt so với độ phân giải thời gian, cịn ảnh phổ dạng phổ băng rộng thể độ phân Name01, Name02, Name03, Name04 13 giải thời gian tốt độ phân giải tần số Kết thực nghiệm ảnh phổ file tín hiệu violin thể đặc trưng phổ rõ ràng nhất.Ngoài cho ta thấy yếu tố quan trọng ảnh hưởng đến đặc trưng phổ như: loại hàm, độ dài hàm cửa sổ, số điểm tính fft, độ dịch khung… Trong tương lai thử nghiệm với tham số ảnh hưởng đến đặc trưng phổ khác phù hợp kết ảnh phổ rõ ràng VI [1] [2] [3] [4] [5] Link: https://en.wikipedia.org/wiki/Short-time_Fourier_transform The Short-Time Fourier Transform - Dr Yi-Wen Liu Link: https://en.wikipedia.org/wiki/Spectrogram Link: https://www.phon.ucl.ac.uk/courses/spsci/acoustics/week1-10.pdf https://en.wikipedia.org/wiki/Hann_function TÀI LIỆU THAM KHẢO ... định tính Dữ liệu dùng để phân tích phổ file tín hiệu loại nhạc cụ khác sáo, guitar, piano, violin Hình Hình ảnh tín hiệu âm nhạc cụ đầu vào Hình Ảnh phổ tín hiệu nhạc cụ sáo Hình biểu diễn ảnh phổ. .. trị quan trọng việc phân tích phổ: Hình 10 Ảnh phổ tín hiệu nhạc cụ violin trường hợp hàm cửa sổ hann backman Hình 10 biểu diễn ảnh phổ tín hiệu nhạc cụ violin trường hợp dùng hàm cửa sổ khác... 15, lớp HP: 1022103.1910.17.12 Hình Ảnh phổ tín hiệu nhạc cụ violin Hình biểu diễn ảnh phổ tín hiệu nhạc cụ tín hiệu pinao trường hợp wide band narrow band Các thông số đầu vào là: hàm cửa sổ hann,