1. Trang chủ
  2. » Luận Văn - Báo Cáo

bài tập lớn môn học xử lý tín hiệu số

24 4 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Bài tập lớn môn học Xử lý tín hiệu số
Tác giả Nguyễn Đình Quý
Người hướng dẫn Trần Văn Hưng
Trường học Trường Đại học Giao thông Vận tải
Chuyên ngành Xử lý tín hiệu số
Thể loại Bài tập lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 24
Dung lượng 2,22 MB

Nội dung

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 1

TRƯỜ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 2

MỤ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 3

stem(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 4

b) 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 5

n = 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 6

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

e) 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 8

Khi đó 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 12

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.

* 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.6Bậ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 15

h(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 16

f_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 17

H = 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 18

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ô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 19

B6: Chọn Design Filter.

Hình ảnh bảng thiết kế

Hình ảnh Magnitude Response(db)

Trang 20

Phầ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 21

Về 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 22

Hì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 23

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

Ngày đăng: 18/09/2024, 19:59

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w