Viết chương trình thực hiện tìm biến đổi DFT của tín hiệu trên và vẽ đồ thị phổ biên độ miền tần số... Viết chương trình thực hiện tìm biến đổi FFT-128 điểm của tín hiệu trên và vẽ đồ th
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH
KHOA
BÁO CÁO B2 TN XLSTH
LỚP L04 - HK 211 NGÀY NỘP: 16/01/2022
Giảng viên hướng dẫn: Huỳnh Văn Phận
Sinh viên thực hiện: Trần Quang Hào
MSSV: 1911099
Trang 2khoảng thời gian t = 0 đến t = 0.1 s, với tần số lấy mẫu Fs = 8 kHz từ chương trình Matlab và lưu vào biến giá trị xn:
a Viết chương trình thực hiện tìm biến đổi DFT của tín hiệu trên và vẽ đồ thị phổ biên
độ miền tần số
Code:
clc;
clear;
fs = 8000;
t = 0:1/fs:0.1;
L = length(t);
for n = 0:L-1;
xn(n+1) = (sin(200*2*pi*n/fs) +
sin(3000*2*pi*n/fs)); end;
Xk = zeros(1,L); %initialize an array of same size as that of input
sequencefor k = 0:L-1
for n = 0:L-1
Xk(k+1) = Xk(k+1) + xn(n+1)*exp(-1j*2*pi*k*n/L);
end
end
Xk
Trang 3x1n = ifft(Xk);
[H W] = freqz(x1n);
subplot(2,1,2);
semilogy((W/2/pi)*fs, abs(H));
xlabel('F');
ylabel('|Xk|');
title('Pho bien do');
Kết quả chạy code:
Trang 4b Viết chương trình thực hiện tìm biến đổi FFT-128 điểm của tín hiệu trên và vẽ đồ thị phổ biên độ miền tần số
Code:
clc;
clear;
fs = 8000;
t = 0:1/fs:0.1;
xn = sin(200*2*pi*t) + sin(3000*2*pi*t);
Xk = fft(xn, 128);
Xk
Trang 5x1n = ifft(Xk);
[H W] = freqz(x1n);
semilogy ((W/2/pi)*fs, abs(H)); xlabel('F');
ylabel('|X|');
title('Pho bien do');
Kết quả chạy code:
Trang 6c Viết chương trình thực hiện tìm biến đổi FFT-256 điểm của tín hiệu trên và vẽ đồ thị phổ biên độ miền tần số
Code:
clc;
clear;
fs = 8000;
t = 0:1/fs:0.1;
xn = sin(200*2*pi*t) + sin(3000*2*pi*t);
Trang 7Xk = fft(xn, 256);
Xk
x1n = ifft(Xk);
[H W] = freqz(x1n);
semilogy(W/2/pi)*fs, abs(H)); xlabel('F');
ylabel('|X|');
title('Pho bien do');
Kết quả chạy code:
Trang 8d Nhận xét và giải thích các đồ thị trên.
Nhận xét: nhìn chung 3 dạng đồ thị của các kiểu phân tích là như nhau chỉ khác số điểm lấy trên trục F và các giá trị biên độ
Giải thích:
+ Đồ thị 1: 2 vạch cao nhất ở vị thí f = 200 Hz và f = 3000 Hz do tín hiệu chứa
2 tần số chính như ban đầu Với 801 điểm được lấy, nên đồ thị chi tiết hơn Biên
độ max là 400 do sau khi thực hiện các phép tính thì đã cộng lại N lần (800) nhưng do đây là phổ 2 bên nên biên độ max là 400*1 = 400, tương tự cho các biên độ còn lại
+ Đồ thị 2: 2 vạch cao nhất ở vị thí f = 200 Hz và f = 3000 Hz do tín hiệu chứa
2 tần số chính như ban đầu Với 128 điểm được lấy, nên đồ thị thưa hơn so với
Trang 9đồ thị (1) và (3) Biên độ max là 64 do sau khi thực hiện các phép tính thì đã cộng lại N lần (128) nhưng do đây là phổ 2 bên nên biên độ max là 64*1 = 64, tương tự cho các biên độ còn lại
Đồ thị 3: 2 vạch cao nhất ở vị thí f = 200 Hz và f = 3000 Hz do tín hiệu chứa 2 tần số chính như ban đầu Với 256 điểm được lấy, nên đồ thị dày hơn so với đồ thị (2) và thưa hơn so với đồ thị (1) Biên độ max là 128 do sau khi thực hiện các phép tính thì đã cộng lại N lần (256) nhưng do đây là phổ 2 bên nên biên
độ max là
128*1 = 128, tương tự cho các biên độ còn lại
2 Tạo một mẫu tín hiệu âm thanh có định dạng wav từ chương trình Matlab
hoặc các ứng dụng khác và lưu vào biến giá trị xn:
a Viết chương trình thực hiện tìm biến đổi STFT của tín hiệu âm thanh trên 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ố của biến đổi STFT trên
Code:
xn = audioread('wave1.wav');
Trang 10M= 256;
k = round((N-L)/(M-L))
stft(xn,fs,'Window',gausswin(256),'OverlapLength',30,'FFTLength',N);
Kết quả chạy code:
Trang 11Đồ thị phổ biên độ miền tần số của biến đổi STFT
b Nhận xét và giải thích đồ thị trên
- Tín hiệu sau phân tích STFT phù hợp với lý thuyết với các khoảng thời gian có âm thanh (vùng biên độ lớn, có màu vàng) và không có âm thanh mà có nhiễu (vùng biên
độ nhỏ, có màu xanh)
- Tổng cộng có 766 khoảng chia thời thời gian trong khoảng thời gian ngắn được phân tích tần số, tức có tới 766 tín hiệu được lấy ra từ tín hiệu gốc
Không thể vẽ tất các phổ tín hiệu theo cách thông thường, nên đồ thị trên biểu diễn
đủ các tính chất của STFS khi có đủ miền thời gian, tần số, và phổ của tần số
- Khoảng có nhiều tần số mà biên độ cao nhất là trong khoảng thời gian từ 0 tới 0.6s vì ở đây có mật độ các điểm màu vàng nhiều ở khoảng tần số từ 11 Hz cho tới 70 Hz
- Nhìn vào đồ thị ra thấy được đoạn âm thanh ở quanh khoảng 1.5s chứa ít tần số có biên
độ cao nhất nên có thể xem đây là nhiễu