Tải bản đầy đủ (.docx) (12 trang)

BÁO cáo b2 TN XLSTH tạo một mẫu tín hiệu sine có các thành phần tần số 200 hz và 3000 hz trong khoảng thời gian t = 0 đến t = 0 1 s, với tần số lấy mẫu fs = 8 khz

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.06 MB, 12 trang )

ĐẠ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

Thành phố Hồ Chí Minh – 2022


1. Tạo một mẫu tín hiệu sine có các thành phần tần số 200 Hz và 3000 Hz trong
khoả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


sequence for 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


x1n = 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:


Đồ thị phổ biên độ miền tần số. (1)
b. 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


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:


Đồ thị phổ biên độ miền tần số. (2)

c. 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);


Xk = 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:


Đồ thị phổ biên độ miền tần số (3)

d. 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

đồ 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');
L=30;
fs = 1000;


N = length(xn);
M= 256;
k = round((N-L)/(M-L))
stft(xn,fs,'Window',gausswin(256),'OverlapLength',30,'FFTLength',N);

Kết quả chạy code:



Đồ 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

-

Các tần số khác có biên đơ thấp hơn ở các tần số còn lại là nguyên nhân gây ra nhiễu âm.

-

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




×