Báo cáo bài 1 TN Xử Lý Số Tín Hiệu online Đại học Bách Khoa Thành phố Hồ chí Minh (HCMUT) Giới thiệu tổng quan về Matlab và một số lệnh chức năng cơ bản.Giới thiệu công cụ SPTool trong hỗ trợ thiết kế bộ lọc số.Thực thi chương trình trên Matlab với các lệnh cơ bản về xử lý tín hiệu rời rạc.
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN - ĐIỆN TỬ
BÁO CÁO THÍ NGHIỆM
BỘ MÔN: XỬ LÝ SỐ TÍN HIỆU
Nhóm: L10 GIẢNG VIÊN HƯỚNG DẪN: HUỲNH VĂN PHẬN
Năm học: 2020 – 2021
Trang 2Thực hành 1: Viết file-M thực hiện chương trình trên và lưu với tên
Bai1_NHOMx_PlotGraph.m
x = 0:pi/20:2*pi; % Define vector x from 0 to 2pi with step
size pi/100
y = sin(x); % Define vector y
subplot(1,2,1); % Create a graph with two sub-graphs
in 1 row 2 column and with subplot position 1
plot(x,y,'b-'); % Plot x versus y
axis([0 2*pi -1 1]);
xlabel('x (pi)');
ylabel('y=sin(x)'); %Label of x-axis and y-axis
title('Graph of Continuous Sine from 0 to 2pi'); %Title of
ylabel('y=sin(x)'); %Label of p-axis and q-axis
title('Graph of Discrete Sine from 0 to 2pi'); %Title of
graph
Kết quả:
Thực hành 2: Viết một file-M thực hiện chương trình trên và lưu với tên Bai1_NHOMx_DFT.m
Trang 3close all;
xn = [1, 2, 3, 4, 5, 6];
L = length(xn); %find the length of the sequence
Xk = zeros(1,L); %initialize an array of same size as
that of input sequence
stem(t,Xk_magnitude,'bo-'); hold on;
stem(t,Xk_2_magnitude,'r* '); hold on;
stem(t,Xk_phase,'bo-'); hold on;
stem(t,Xk_2_phase,'r* '); hold on;
Trang 5L = length(Xk); %find the length of the sequence
xn = zeros(1,L); %initialize an array of same size as
that of input sequence
%IDFT of the sequence
stem(t,xn_magnitude,'bo-'); hold on;
stem(t,xn_2_magnitude,'r* '); hold on;
ylabel ('Amplitude');
xlabel ('n');
title('Magnitude Response');
Trang 6% Find the phases of individual DFT points
xn_phase = angle(xn);
xn_2_phase = angle(xn_2);
% plot the magnitude sequence
subplot(1,4,4);
stem(t,xn_phase,'bo-'); hold on;
stem(t,xn_2_phase,'r* '); hold on;
axis([0 3 -1 1]);
ylabel ('Phase');
xlabel ('n');
title ('Phase Response');
legend('Computing', 'ifft Matlab');
Kết quả:
Trang 7Thực hành 4: Viết một file-M tìm ngõ ra y(n) của hệ thống nhân quả với ngõ vào x(n) = [1, 3, 5,
3, 6, 3] và đáp ứng xung h(n) = [1, 4, 7, 2, 8] theo 2 cách, và lưu với tên Bai1_NHOMx_conv.m
stem(t,yn_magnitude,'bo-'); hold on;
stem(t,yn_2_magnitude,'r* '); hold on;
ylabel ('Amplitude');
xlabel ('y(n)');
Kết quả:
Trang 8Thực hành 5: Viết một file-M vẽ đáp ứng tần số của hệ thống có hàm truyền trên theo 2 cách: i)
tính toán đáp ứng tần số và ii) sử dụng hàm Matlab, và lưu với tên Bai1_NHOMx_freqz.m
Trang 9Thực hành 6: Viết các chương trình Matlab thực hiện các yêu cầu sau:
1 Tạo 5 chu kỳ mẫu tín hiệu s1 cos 2 f t1
với f 1 400Hz, tần số lẫy mẫu 8000 Hz.
clc;
% Signal Genergating
Fs = 8e3; % Sampling frequency 8 kHz
Ts = 1/Fs; % Sampling period
Trang 11Kết quả:
- 5 chu kỳ tín hiệu theo giây (s) và n
- Phổ tần số
Trang 122 Tạo mẫu tín hiệu 3
Trang 14- Phổ tần số
3 Tạo tín hiệu sinc s4 sinc 2 f t4 0.5
với f 4 40 Hz, 0 (s) và được lấy mẫut 1
Trang 16- Phổ tần số
Trang 17Thực hành 7: Thực hiện việc thiết kế bộ lọc FIR chắn dải với các thông số như trong ví dụ 1.
Lấy các hệ số của bộ và viết chương trình vẽ đáp ứng tần số của bộ lọc trên Lưu lại với tên
BAI_1_NHOMx_bs2700_freqz
>> sptool
Trang 19Nhận xét: Dùng hàm plot để vẽ theo thang tuyến tính và semilogy theo
thang đo dB, ta thấy được khi dùng hàm semilogy kết quả gần với bộ lọc ta
thiết kế hơn
Thực hành 8: Thực hiện việc thiết kế bộ lọc FIR chắn dải với các thông số như trong ví dụ 2.
Lấy các hệ số của bộ và viết chương trình vẽ đáp ứng tần số của bộ lọc trên Lưu lại với tên
Trang 20Thực hành 9: Thực hiện các chương trình thiết kế bộ lọc thông dải đa dải và vẽ đáp ứng tần số
với các yêu cầu như trong ví dụ 1 và 2
% plot magnitude of the filter
plot(f * FN,m, 'b'); hold on;
plot(w/pi*FN,abs(h), 'r-.');
Kết quả:
Trang 21[num, den] = yulewalk(n-1,f,m);
% frequency response with 256 points
[h w] = freqz(num,den,256);
% plot magnitude of the filter
plot(f * FN,m, 'g'); hold on;
plot(w/pi*FN,abs(h), 'r-.');
Kết quả:
Trang 22Thực hành 10: Thiết kế bộ lọc FIR chắn đa dải 1000-1500 và 2500-3000, có bậc 62, tần số lấy
mẫu là 10 kHz Sau đó vẽ đáp ứng tần số của bộ lọc
%multibandfir63.m: Multiband FIR filter with 63
% plot magnitude of the filter
plot(f * FN,m, 'b'); hold on;
plot(w/pi*FN,abs(h), 'r-.');
Kết quả:
Trang 23Thực hành 11: Thiết kế bộ lọc IIR chắn đa dải 1000-1500 và 2500-3000, có bậc 62, có tần số
lấy mẫu là 10 kHz Sau đó vẽ đáp ứng tần số của bộ lọc
%multibandfir63.m: Multiband FIR filter with 63
[num, den] = yulewalk(n-1,f,m);
% frequency response with 256 points
[h w] = freqz(num,den,256);
% plot magnitude of the filter
plot(f * FN,m, 'g'); hold on;
plot(w/pi*FN,abs(h), 'r-.');
Kết quả: