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

BÁO cáo THÍ NGHIỆM bài 2 BIẾN đổi DFT và GIẢI THUẬT FFT

13 10 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

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA -⁂ - BÁO CÁO THÍ NGHIỆM BÀI 2: BIẾN ĐỔI DFT VÀ GIẢI THUẬT FFT Họ tên sinh viên: Trần Trung Kiên MSSV: 1913863 GVHD: Huỳnh Văn Phận 5.1 Thực FFT-N điểm Tạo mẫu tín hiệu sine có thành phần tần số 200 Hz 3000 Hz khoảng thời gian t = đến t = 0.1 s, với tần số lấy mẫu Fs = kHz từ chương trình Matlab lưu vào biến giá trị xn: a Viết chương trình thực tìm biến đổi DFT tín hiệu vẽ đồ thị phổ biên độ miền tần số Các lệnh matlab: Fs = 8000; Ts = 1/Fs; F_xt = [200,3000]; T_sim = 0.1; t = :Ts : T_sim - Ts; xn = 0; for kk = 1:length(F_xt) xn = xn +sin(2*pi*F_xt(kk)*t); end N = length(xn); Xk = fft(xn,N); Xk_Amp = abs(Xk); Xk_Pha = angle(Xk); semilogy((0:N/2-1)*Fs/N,Xk_Amp(1:N/2)/N); xlabel('Frequency (Hz)'); ylabel('Amplitude'); title('Tinh DFT'); Kết : b Viết chương trình thực tìm biến đổi FFT-128 điểm tín hiệu vẽ đồ thị phổ biên độ miền tần số Các lệnh matlab: Fs = 8000; Ts = 1/Fs; F_xt = [200,3000]; T_sim = 0.1; t = :Ts : T_sim - Ts; xn = 0; for kk = 1:length(F_xt) xn = xn +sin(2*pi*F_xt(kk)*t); end N = 128; Xk = fft(xn,N); Xk_Amp = abs(Xk); Xk_Pha = angle(Xk); semilogy((0:N/2-1)*Fs/N,Xk_Amp(1:N/2)/N); xlabel('Frequency (Hz)'); ylabel('Amplitude'); title('Tinh DFT'); Kết quả: c Viết chương trình thực tìm biến đổi FFT-256 điểm tín hiệu vẽ đồ thị phổ biên độ miền tần số Các lệnh matlab: Fs = 8000; Ts = 1/Fs; F_xt = [200,3000]; T_sim = 0.1; t = :Ts : T_sim - Ts; xn = 0; for kk = 1:length(F_xt) xn = xn +sin(2*pi*F_xt(kk)*t); end N = 256; Xk = fft(xn,N); Xk_Amp = abs(Xk); Xk_Pha = angle(Xk); semilogy((0:N/2-1)*Fs/N,Xk_Amp(1:N/2)/N); xlabel('Frequency (Hz)'); ylabel('Amplitude'); title('Tinh DFT'); Kết quả: d Nhận xét giải thích đồ thị -Đồ thị DFT thể rõ dạng sóng tín hiệu có số lượng lấy mẫu lớn -Đồ thị FFT-128 điểm có số lượng điểm nên tín hiệu thu có dạng đơn giản so với DFT bị méo vài điểm khơng đáng kể - đồ thị FFT-256 điểm có đồ thị giống FFT – 128 điểm số lượng điểm nhiều nên tín hiệu gần khơng bị méo dạng 5.2 Thực STFT Tạo mẫu tín hiệu âm có định dạng wav từ chương trình Matlab ứng dụng khác lưu vào biến giá trị xn: a Viết chương trình thực tìm biến đổi STFT tín hiệu âm với cửa sổ Gaussian độ dài 256, độ dài chồng lấn 30 Sau vẽ đồ thị phổ biên độ miền tần số biến đổi STFT Code matlab: [xn,Fs] = audioread('signal.wav'); Nx = length(xn); t = [0:1:(Nx-1)]/Fs; M = 256; L=30; R=M-L; k = floor((Nx-L)/(M-L)); Grauss_wid = gausswin(M); X = zeros(M,k); for n = 1:k xg = xn( (n-1)*R+1 : (n1)*R+M).*Grauss_wid*exp(-1j*2*pi*n/Fs); X(:,n) = fft(xg); end figure(1); hold on X_Amp = abs(X); semilogy((0:k-1)*Fs/k,X_Amp(1:k)/k); xlabel('Frequency (Hz)'); ylabel('Amplitude'); title('Tinh STFT'); Kết quả: b Nhận xét giải thích đồ thị - Trong STFT âm tách phân chia theo thành phần tần số ta thấy rõ dạng tín hiệu tần số khác -Trong miền tần số, tín hiệu chia thành đoạn nhỏ tần số được chia thành đoạn cố định lấy DFT đoạn -Đồ thị cho thấy tần số khác tín hiệu âm lấy mẫu có biên độ giảm dần sang hai bên tác động cảu hàm cửa sổ ... d Nhận xét giải thích đồ thị -Đồ thị DFT thể rõ dạng sóng tín hiệu có số lượng lấy mẫu lớn -Đồ thị FFT- 128 điểm có số lượng điểm nên tín hiệu thu có dạng đơn giản so với DFT bị méo vài điểm không... dụng khác lưu vào biến giá trị xn: a Viết chương trình thực tìm biến đổi STFT tín hiệu âm với cửa sổ Gaussian độ dài 25 6, độ dài chồng lấn 30 Sau vẽ đồ thị phổ biên độ miền tần số biến đổi STFT Code... +sin (2* pi*F_xt(kk)*t); end N = 25 6; Xk = fft( xn,N); Xk_Amp = abs(Xk); Xk_Pha = angle(Xk); semilogy((0:N /2- 1)*Fs/N,Xk_Amp(1:N /2) /N); xlabel('Frequency (Hz)'); ylabel('Amplitude'); title('Tinh DFT' );

Ngày đăng: 21/02/2022, 01:16

w