Hình ảnh pha của bộ lọc FIR.c Thiết kế bộ lọc này sử dụng công cụ SPTool trong Matlab và so sánh.Ta sẽ dụng công cụ fdatool thay cho công cụ sptool trong Matlab, fdatool nó cũng là 1 côn
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA ĐIỆN – ĐIỆN TỬ -o0o -
BÀI TẬP LỚN MÔN HỌC
XỬ LÝ TÍN HIỆU SỐ
Giảng viên: Trần Văn Hưng Sinh viên thực hiện: Nguyễn Đình Quý - Lớp ĐTVT2-K62Mã sinh viên: 211404443
Đề bài: 13
Hà Nội, tháng 04 năm 2023
Trang 2MỤC LỤC
I, Bài tập 3
Bài 1: 3
a) Xác định và biểu diễn 300 mẫu đầu tiên của đáp ứng xung 3
b) Biểu diễn phổ biên độ và phổ pha của đáp ứng tần số 4
c) Tính và vẽ tín hiệu ra khi cho tín hiệu vào có dạng: 4
d) Hãy xây dựng dạng nối tiếp (ghép tầng) và chuyển vị 6
e) Hãy xây dựng dạng song song và chuyển vị 7
Bài 2: 9
a) Xây dựng bộ lọc lưới mô tả hệ thống ( tính toán bằng tay ) 9
b) Sử dụng ngôn ngữ lập trình Matlab để tính toán các hệ số phản xạ và so sánh kết quả của câu a 12
Bài 3: 13
a,Hãy thiết kế bộ lọc bằng tay Với fs1=¿ 4Khz, fs2=¿ 6Khz , Fs=50Khz và∆ f = 440Hz 13
b) Mô phỏng thiết kế bộ lọc này trên Matlab 15
c) Thiết kế bộ lọc này sử dụng công cụ SPTool trong Matlab và so sánh 18
Bài 4: 21
II, Tài liệu tham khảo 24
Trang 3stem(h);xlabel('n');ylabel('h[n]');title('Đáp ứng xung của hệ thống');figure;
Hình ảnh khi chạy code câu a
Trang 4b) Biểu diễn phổ biên độ và phổ pha của đáp ứng tần số
Hình ảnh khi chạy code câu b
c) Tính và vẽ tín hiệu ra khi cho tín hiệu vào có dạng:x(n)= cos(0,1254πn) +120sin(0,375πn + 0,5π) với 0≤ n ≤ 299
*Matlab Code
% c) Tính và vẽ tín hiệu ra khi cho tín hiệu vào có dạng% x(n) = cos(0.1254*pi*n) + 120*sin(0.375*pi*n + 0.5*pi), với 0 ≤ n ≤ 299
Trang 5n = 0:299;x = cos(0.1254*pi*n) + 120*sin(0.375*pi*n + 0.5*pi);y = filter(b, a, x);
subplot(2, 1, 1);plot(n, x);xlabel('n');ylabel('x[n]');title('Tín hiệu đầu vào');subplot(2, 1, 2);plot(n, y);xlabel('n');ylabel('y[n]');title('Tín hiệu ra');figure;
Hình ảnh khi chạy code câu c
Trang 6d) Hãy xây dựng dạng nối tiếp (ghép tầng) và chuyển vị
*Matlab Code:
%d) Hãy xây dựng hệ thống dạng nối tiếp(ghép tầng) và chuyển vị%Hệ thống dạng ghép tầng
[sos,G]=tf2sos(b,a);>>sos =
1.0000 -4.2941 -2.6552 1.0000 1.3390 -0.4104 1.0000 2.1339 1.8797 1.0000 1.1369 2.1103 1.0000 -1.6255 0.6893 1.0000 -2.7559 1.9513>> G = 3.8124
Khi đó H(z) được biểu diễn thành:
-
2.6552 0.41041.87972.11030.68931.9513Sơ đồ dạng chuyển vị của nối tiếp (ghép tầng)
Trang 7e) Hãy xây dựng dạng song song và chuyển vị
* Matlab Code:
%e) Hãy xây dựng hệ thống dạng song song và chuyển vị [R,p,C] = residuez(b,a);
[B1,A1] = residuez(R(1:2),p(1:2),[]);B1 = real(B1);
A1 = real(A1);[B2,A2] =residuez(R(3:4),p(3:4),[]);B2 = real(B2);
A2 = real(A2);
Output của code như sau:
>> C,A1,B1,A2,B2,A3,B3C =
1.7101A1 = 1.0000 2.1646 0.9074B1 =
1.0428 1.2009A2 =
1.0000 -0.8095 -0.4771B2 =
0.1876 -2.5535A3 =
1.0000 -1.6351 0.3543B3 = -2.1004 2.4414
Trang 8Khi đó H(z) được biểu diễn thành:H(z) =1.7101+ 1.0428−1.2009 z
-0.9074
0.1876
z−1
0.8095 -2.5535 z−1
- 0.3543
Sơ đồ hệ thống dạng song song
Trang 9-0.9074
0.1846
z−1
-2.5535 0.8095 z−1
0.4771
-2.1004 1 z−1
2.4414 1.6351 z−1
Sơ đồ dạng chuyển vị song song
Trang 10+0.5904 z−3Với m=3 Ta có:
a2( 1) =a3(1)−a3(3 )a3(2)1−a3(3)2=1.2741+0.5904 ×2.9948
1−0.59042=4.67
- Với m=3, i=2:
a2( 2) =a3(2)−a3(3 )a3(1)1−a3(3)2=−2.9948−0.5904 ×1.2741
a2( 2) =k2=−5.752
- Với m=2, i=1:
a1( 1) =a2(1)−a2(2)a2(1)1−a2( )22=4.67+5.752 ×4.67
Trang 11Áp dụng công thức:cm=bm+∑
i=m+1
N
ciai−m(i) để tính các hệ số cVới m=3: c3=b3=1.6278
Trang 12b) Sử dụng ngôn ngữ lập trình Matlab để tính toán các hệ số phản xạ và so sánh kết quả của câu a.
* Matlab code:
% Tính toán các hệ số phản xạ của bộ lọc FIR từ các hệ số đầu vào% Input: h - mảng chứa các hệ số của bộ lọc FIR
% Output: k - mảng chứa các hệ số phản xạ% G - hệ số tỉ lệ của bộ lọc FIRfunction [k,G] = fir2lat(h)
G = h(1); a = h/G;M = length(h)-1; k(M) = a(M+1);for m = M:-1:2
b = fliplr(a);a = (a-k(m)*b)/(1-k(m)^2); a = a(1:m);k(m-1) = a(m);
endÁp dụng với bài toán trên:Input: >> h=[1 1.2741 -2.9948 0.5904];
>> [k,G] = fir2lat(h)Output: k = -0.9828 -5.7520 0.5904 G =1
Hình ảnh trên code trên matlab:
Trang 14∆ω = 6.6NπBậc của bộ lọc:N = 6.6∆ ωπ = 0.01766.6ππ = 375Tâm đối xứng: α = N2−1 = 3752−1 = 187
Bước 3: Tính đáp ứng xung của bộ lọc lý tưởng hd(n):
hd(n) = h (n − α) =bp ωc 2
π
sinωc 2(n−α)
ωc 2(n−α) − ωc 1π sinωc 1ωc 1(n−α)(n−α) = 0.2312ππ sin 0.23120.2312ππ(n−187)(n−187) − 0.1688ππ sin 0.16880.1688ππ(n−187)(n−187)
Bước 4: Xác định đáp ứng xung của bộ lọc thực tế
Trang 15h(n) = hd(n)ωHam(n)Với hàm cửa sổ là:
wHam(n)N = {0.54−0.46 cos3752πn khi 0 ≤ n≤ 375
Bước 5: Thực hiện bộ lọc
Phương trình mô tả hệ thống:y(n) = h x(n) + h x(n − 1) + h x(n − 2) + + h x(n − 375)012375
Sơ đồ khối thực hiện hệ thống:
b) Mô phỏng thiết kế bộ lọc này trên Matlab.- Dựa vào các tính toán câu a ta sẽ có phần code trên matlab như sau:% Thiết kế bộ lọc FIR sử dụng phương pháp cửa sổ Hamming% Thông số bộ lọc
Fs = 50e3; % Tần số lấy mẫu và e = 10^
Trang 16f_pass = [4e3 6e3]; % Tần số dải thôngA_stop = 53; % Độ suy giảm dải chặndelta_f = 440; % Bề rộng dải chuyển tiếp
% Tính các tham sốwp = 2*pi*f_pass/Fs; % Tần số cắt ở dải thôngws = [wp(1)-2*pi*delta_f/Fs, wp(2)+2*pi*delta_f/Fs]; % Tần số cắt ở dải chặndelta_omega = 2*pi*delta_f/Fs; % Bề rộng dải chuyển tiếp
M = ceil(6.6*pi/delta_omega) + 1; % Số mẫu của bộ lọcn = -(M-1)/2:(M-1)/2; % Biến động mẫualpha = (M-1)/2; % Tâm đối xứngh = zeros(size(n)); % Khởi tạo hệ số bộ lọcw = hamming(M)'; % Hàm cửa sổ Hamming (hàm có sẵn trong Matlab)
% Tính hệ số bộ lọcfor i = 1:length(n) if n(i) == 0 h(i) = (ws(2)-ws(1))/pi; else
h(i) = (sin(ws(2)*n(i))/(pi*n(i))) - (sin(ws(1)*n(i))/(pi*n(i))); end
h(i) = h(i) * w(i); % Áp dụng cửa sổ Hammingend
% Vẽ đáp ứng tần số và pha của bộ lọcf = linspace(0,Fs/2,1024); % được sử dụng để tạo ra một mảng f gồm 1024 giá trị, phân bố đều trong khoảng giá trị từ 0 đến Fs/2
Trang 17H = freqz(h,1,f,Fs);plot(f,20*log10(abs(H))); grid on;xlabel('Tần số (Hz)'); ylabel('Độ lớn (dB)');title('Đáp ứng tần số của bộ lọc FIR');figure;
plot(f,unwrap(angle(H))); grid on;xlabel('Tần số (Hz)'); ylabel('Góc (rad)');title('Pha của bộ lọc FIR');
%figure;
- Hình ảnh khi chạy code trên matlab được như sau.
Hình ảnh đáp ứng tần số của bộ lọc FIR
Trang 18Hình ảnh pha của bộ lọc FIR.
c) Thiết kế bộ lọc này sử dụng công cụ SPTool trong Matlab và so sánh.Ta sẽ dụng công cụ fdatool thay cho công cụ sptool trong Matlab, fdatool nó cũng là 1 công cụ thiết kế bộ lọc
Ta gọi công cụ fdatool bằng cách vào cửa sổ Command Window và đánh chữ fdatool.
Trong cửa sổ Filter Designer" được mở ra, thực hiện các thiết lập sau đây:B1: Chọn loại thông dải( bandpass)
B2: Chọn bộ lọc FIR thiết kế theo phương pháp cửa sổ chọn window.B3: Ở option ta chọn cửa sổ Hamming
B4: Ở mục Filter Order ta chọn Specify order = 375.B5: Ở mục Frequency Specifications ta chọn đơn vị là Hz với các tham số như sau:Với tần số lấy mẫu Fs=50000 Hz
Từ câu a ta có:ωc = 0.1688π và ωc = 0.2312π vậy nên fc1 = 4220 Hz và fc2= 5780 Hz
Trang 19B6: Chọn Design Filter.
Hình ảnh bảng thiết kế
Hình ảnh Magnitude Response(db)
Trang 20Phần code trong câu b cũng thực hiện thiết kế bộ lọc FIR sử dụng phương pháp cửa sổ Hamming và tính toán đáp ứng tần số và pha của bộ lọc Tuy nhiên, nó yêu cầu người dùng phải tính toán các tham số của bộ lọc bằng tay và nó rất dễ sai số lớn
Trang 21Về kết quả, cả hai phương pháp này thì kết quả đáp ứng tần số và pha của bộ lọc được tính toán sẽ khá tương đương nhau Tuy nhiên, phương pháp sử dụng fdatool trong Matlab sẽ nhanh hơn và dễ sử dụng hơn đối với người dùng và thuận tiện hơn nhưng về phương pháp sử dụng code thì sẽ dễ làm theo ý muốn của mình.
Bài 4:
Thiết kế bộ lọc IIR thông dải Elliptic trên fdatool với các thông số:Bậc của bộ lọc N=90
Tần số lấy mẫu Fs=160000 HzTần số giới hạn trong dải thông lần lượt là Fs1= 9000Hz và Fs2= 24000HzSuy hao trong dải chặn là As= 80 dB
Sử dụng công cụ fdatool trong Matlab và nhập các thông số trên như sau:
Hình ảnh bộ lọc được thiết kế:
Trang 22Hình ảnh Magnitude Response(db)
Với bậc bộ lọc N=90, ta có thể quan sát đồ thị Magnitude Response để xác định độ suy giảm của tín hiệu ở dải chặn Trong trường hợp này, suy giảm của tín hiệu trong dải chặn là 80 dB, đây là một giá trị suy giảm lớn, cho thấy bộ lọc có khả năng loại bỏ được nhiễu ở dải chặn
Tuy nhiên, độ gợn sóng của đồ thị Magnitude Response cũng cần phải được xem xét Độ gợn sóng của đồ thị Magnitude Response là một đo lường cho sự biến động của độ lớn của tín hiệu ở dải thông và dải chặn Trong trường hợp bộ lọc thông dải Elliptic, độ gợn sóng ở dải thông có thể là một giá trị khá nhỏ, tuy nhiên, ở dải chặn, độ gợn sóng có thể khá lớn Điều này có nghĩa là tín hiệu được truyền qua bộ lọc sẽ có thể bị biến dạng ở dải chặn Vì vậy, khi thiết kế bộ lọc, cần phải xem xét đến cả độ suy giảm và độ gợn sóng để đảm bảo hiệu quả của bộ lọc
Hình ảnh về pha của bộ lọc:
Trang 23Trong trường hợp của bộ lọc thông dải Elliptic với bậc N=90, đồ thị Phase sẽ cho ta biết sự thay đổi pha của tín hiệu qua bộ lọc Trong dải chặn, pha của tín hiệu sẽ có sự thay đổinhỏ và gần như không đáng kể, trong khi đó, ở dải thông, pha của tín hiệu sẽ có sự thay đổi đáng kể Điều này có nghĩa là tín hiệu được truyền qua bộ lọc sẽ bị trễ pha ở dải thông so với dải chặn.
Trễ pha có thể gây ra các vấn đề trong việc xử lý tín hiệu, đặc biệt là trong các ứng dụng thời gian thực Trong các hệ thống điều khiển, trễ pha có thể làm tăng thời gian phản hồi và ảnh hưởng đến sự ổn định của hệ thống Do đó, khi thiết kế bộ lọc, cần phải xem xét đến cả độ suy giảm và độ trễ pha để đảm bảo sự ổn định và hiệu suất của hệ thống
Hình ảnh pha và biên độ
So sánh khi thiết kế bộ lọc có bâc thấp hơn như bậc 10:
Hình ảnh pha và biên độ của bộ lọc N=10
Trang 24- Khi so sánh về độ gợn sóng ở dải thông, bộ lọc với bậc N=90 sẽ đạt được độ gợn sóng thấp hơn so với bộ lọc với bậc N=10 Điều này cho thấy bộ lọc với bậc cao hơn sẽ có khả năng loại bỏ các tần số nhiễu trong dải thông tốt hơn.
- Tuy nhiên, khi so sánh về độ gợn sóng ở dải chặn, bộ lọc với bậc N=90 sẽ có độ gợn sóng cao hơn so với bộ lọc với bậc N=10 Điều này cho thấy bộ lọc với bậc thấp hơn sẽ có khả năng loại bỏ các tần số nhiễu trong dải chặn tốt hơn
Sau đây là bảng so sánh một số thông số giữa bộ lọc bậc 90 với bộ lọc 10Thông sốBộ lọc bậc N= 90Bộ lọc bậc N= 10
Thông tin tài liệu tham khảo:
[1] SLIDE BÀI GIẢNG CỦA GIẢNG VIÊN TRẦN VĂN HƯNG.[2] BÀI GIẢNG XỬ LÝ TÍN HIỆU SỐ - TS TRẦN VĂN HƯNG - TS NGUYỄN THÚY BÌNH - PGS.TS NGUYỄN THANH HẢI.