1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Giáo trình Matlab và ứng dụng trong viễn thông: Phần 2

247 12 0

Đ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 đề Ứng Dụng Matlab Trong Xử Lý Tín Hiệu Và Xử Lý Ảnh
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Viễn Thông
Thể loại Giáo trình
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 247
Dung lượng 4,66 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tiếp nội dung phần 1, Giáo trình Matlab và ứng dụng trong viễn thông: Phần 2 cung cấp cho người học những kiến thức như: tín hiệu và hệ thống; thiết kế các bộ lọc; cơ bản về xử lý ảnh số; nâng cao chất lượng ảnh; nén ảnh số; mã hoá nguồn; truyền dẫn baseband và passband. Mời các bạn cùng tham khảo!

Trang 1

PH ẦN II

ỨNG DỤNG MATLAB

Trang 4

Ch ương 9

Mơ phỏng một hệ thống viễn thơng là một quá trình làm việc với các tín hiệu: kh i t o, biến đổi, thu phát, so sánh, xử lý, Để việc mơ phỏng đ ợc tiến hành thuận lợi và hiệu qu , cần

ph i cĩ đầy đ các cơng cụ xử lý tín hiệu cơ b n Đối với MATLAB, các cơng cụ này đ ợc cung cấp trong MATLAB Signal Processing Toolbox Đĩ là một tập hợp các hàm đ ợc xây

dựng trên cơ s các gi i thuật tốn học và hỗ trợ hầu hết các thao tác xử lý tín hiệu, bao gồm:

kh i t o tín hiệu, phân tích và thiết kế các bộ lọc t ơng tự và số, phân tích phổ, xử lý tín hiệu

thống kê, phân tích các hệ thống tuyến tính,

9.1 BIỂU DIỄN MỘT TÍN HIỆU TRONG MATLAB

ƒ MATLAB là một mơi tr ng tính tốn số, do đĩ một tín hiệu ph i đ ợc biểu diễn thơng qua các mẫu dữ liệu r i r c c a nĩ (tín hiệu đ ợc lấy mẫu) Nĩi cách khác, một tín hiệu bất kỳ

đ ợc biểu diễn bằng một vector hàng (kích th ớc 1 x n) hoặc vector cột (kích th ớc n x 1) Ví

dụ:

>> x = [1 1.2 1.5 1.2 1 0.8 0.5 0.8];

ƒ Để biểu diễn một tín hiệu đa kênh, ta sử dụng d ng ma trận Một tín hiệu m kênh cĩ chiều dài ng với mỗi kênh đều bằng n đ ợc biểu diễn bằng một ma trận kích th ớc n x m, trong đĩ

mỗi cột c a ma trận t ơng ng với một kênh, mỗi hàng c a ma trận ng với một th i điểm lấy

mẫu Ví dụ: sau đây là biểu diễn c a một tín hiệu 3 kênh:

9.2 TẠO TÍN HIỆU: VECTOR THỜI GIAN

Để t o một tín hiệu t ơng tự trong MATLAB, cần cĩ một vector th i gian để xác định các

th i điểm lấy mẫu tín hiệu Tín hiệu t o ra sẽ là một vector mà mỗi phần tử c a nĩ chính là giá trị c a mẫu tín hiệu đ ợc lấy th i điểm xác định b i phần tử t ơng ng c a vector th i gian Ví dụ, để t o tín hiệu y = sin(100πt) + 2sin(240πt), ta lấy mẫu tín hiệu t i các th i điểm cách nhau 0,001s và ta cĩ các vector th i gian và vector biểu diễn tín hiệu y nh sau:

>> t = (0:0.001:1)’;

>> y = sin(2*pi*50*t) + 2*sin(2*pi*120*t);

Dùng hàm plot để vẽ 100 mẫu đầu tiên c a y:

>> plot(t(1:100),y(1:100))

Trang 5

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 -3

-2 -1 0 1 2 3

Hình 9.1

Với ph ơng pháp trên, ta có thể kh i t o bất kỳ tín hiệu nào ta muốn, chỉ cần xác định biểu

th c th i gian c a nó Sau đây là một số tín hiệu đặc biệt:

ƒ Các tín hiệu xung đơn vị, hàm nấc đơn vị và hàm dốc đơn vị:

>> t = (0:0.001:1)'; % vector th ời gian

ƒ Các tín hiệu tuần hoàn:

>> fs = 10000; % t ần số lấy mẫu

>> t = 0:1/fs:1.5; % vector th ời gian

Hàm sawtooth(t,width) t o tín hiệu sóng răng c a hoặc sóng tam giác có các đỉnh ±1, chu kỳ 2π, width là tỷ lệ th i gian lên trên tổng chu kỳ

Hàm square(t,width) t o tín hiệu sóng vuông có các m c là ±1, chu kỳ 2π, width là tỷ

lệ th i gian m c 1 trên tổng chu kỳ

ƒ Hàm pulstran: t o một chuỗi các xung có cùng d ng với một xung gốc

 Ví dụ 9-1 Tạo một chuỗi xung là sự lặp lại c a các xung Gauss sau những khoảng thời

gian b ằng nhau Các thông số cụ thể như sau: tốc độ lấy mẫu c a chuỗi xung là 50kHZ, chiều

Trang 6

dài chu ỗi xung là 10ms, tốc độ lặp lại c a chuỗi xung Gauss là 1kHz, suy hao theo hàm mũ cơ

s ố 0.8 Xung Gauss có tần số trung tâm là 10kHz, băng thông 50%

-0.6

-0.4

-0.2

0 0.2

c

ππ

)sin(

)(sin = (9.1)

n nx

Z k k x

n k

)2/sin(

)2/sin(

,2)

Trang 7

Hình 9.3

9.3 LÀM VIỆC VỚI CÁC FILE DỮ LIỆU

Trong các phần trên, các dữ liệu cĩ thể đ ợc t o ra ch yếu bằng hai cách:

ƒ Nhập trực tiếp từ bàn phím các giá trị dữ liệu

ƒ Dùng các hàm cĩ sẵn c a MATLAB để t o ra các mẫu dữ liệu

Ngồi hai cách trên, dữ liệu cịn cĩ thể đ ợc t o ra bằng một trong những cách sau:

ƒ Dùng lệnh load c a MATLAB để t i dữ liệu ch a trong các file ASCII hoặc file MAT

vào khơng gian làm việc c a MATLAB

ƒ Đọc dữ liệu vào MATLAB bằng cách dùng các lệnh truy xuất ngo i vi cấp thấp nh

fopen, fread, fscanf

ƒ Xây dựng file MEX để đọc dữ liệu

9.4 PHÂN TÍCH VÀ THIẾT KẾ CÁC BỘ LỌC

Vấn đề phân tích và thiết kế các bộ lọc cĩ một ý nghĩa rất quan trọng trong lý thuyết xử lý tín

hiệu vì bất kỳ một hệ thống tuyến tính nào cũng cĩ thể xem nh là một bộ lọc với một đáp

ng xung hoặc một hàm truyền đ t nào đĩ

ƒ Cơ s tốn học c a quá trình lọc một tín hiệu là phép lấy tích chập Nếu x(k) là tín hiệu ngõ vào và y(k) là tín hịệu ngõ ra c a một bộ lọc cĩ đáp ng xung là h(k) thì y(k) chính là tích

x k h k

y( ) ( )* ( ) ( ) ( ) (9.3)

Nếu x(k) và h(k) cĩ chiều dài hữu h n thì y(k) cũng cĩ chiều dài hữu h n và phép lấy tích

chập nĩi trên cĩ thể thực hiện bằng cách gọi hàm conv trong MATLAB

>> y = conv(h,x)

Trang 8

Chiều dài c a vector y bằng length(x) + length(h) – 1

Ngoài ra, ta cũng có thể lấy tích chập c a hai ma trận bằng cách dùng hàm tích chập hai chiều

conv2

Ví dụ:

1()

2()1(

)1()

2()1()()

()(

1

1

z X z m a z

a a

z n b z

b b z X z H z Y

Để biểu diễn một bộ lọc, MATLAB sử dụng hai vector hàng: vector a biểu diễn các hệ số c a

tử số và vector b biểu diễn các hệ số c a mẫu số

Tuỳ theo các vector a và b mà mỗi bộ lọc có thể có các tên gọi khác nhau Cụ thể là:

Nếu n = 0 (b là một vô h ớng) thì bộ lọc trên gọi là bộ lọc đáp ng xung vô h n (IIR – Infinite Impulse Response), bộ lọc toàn cực, bộ lọc hồi quy hoặc bộ lọc AR (autoregressive)

Nếu m = 0 (a là một vô h ớng) thì bộ lọc trên gọi là bộ lọc đáp ng xung hữu h n (FIR –Finite Impulse Response), bộ lọc toàn zero, bộ lọc không hồi quy hoặc bộ lọc trung bình thay đổi (MA – Moving Average)

Nếu c m và n đều lớn hơn 0, bộ lọc trên gọi là bộ lọc đáp ng xung vô h n (IIR – Infinite Impulse Response), bộ lọc cực-zero, bộ lọc hồi quy hoặc bộ lọc ARMA (autoregressive moving-average)

ƒ Từ ph ơng trình (9.4) có thể xây dựng một quá trình để xác định các mẫu dữ liệu ra Gi

sử a(1) = 1 Chuyển mẫu số sang vế trái rồi lấy biến đổi – z ng ợc c hai vế, ta đ ợc ph ơng trình sai phân:

y(k) + a(2)y(k-1) + + a(m-1)y(k-m) = b(1)x(k) + b(2)x(k-1) + + b(n+1)x(k-n)

Vậy:

y(k) = b(1)x(k) + b(2)x(k-1) + + b(n+1)x(k-n) - a(2)y(k-1) - - a(m-1)y(k-m) (9.5)

Trang 9

Đây là d ng chuẩn c a biểu th c tín hiệu ra trong miền th i gian Gi sử điều kiện đầu bằng 0,

ta có quy trình tính toán nh sau:

y(1) = b(1)x(1)

y(2) = b(1)x(2) + b(2)x(1) –a(2)y(1)

y(3) = b(1)x(3) + b(2)x(2) + b(3)x(1) – a(2)y(2) – a(3)y(1) (9.6)

Trong MATLAB, quy trình này đ ợc thực hiện bằng hàm filter Chỉ cần cung cấp các vector

hệ số c a bộ lọc (a và b) cùng với vector tín hiệu vào, hàm sẽ tr về vector tín hiệu ra y có cùng chiều dài với x Nếu a(1) ≠ 1, hàm này sẽ chia các hệ số a cho a(1) tr ớc khi thực hiện

tính toán Hàm filter thực hiện bộ lọc theo cấu trúc trực tiếp d ng II Đây là cấu trúc chuẩn tắc

có số khâu trễ là ít nhất

Hình 9.4 C ấu trúc trực tiếp d ng II để thực hiện hàm filter

ng với mẫu th m c a ngõ ra, hàm filter thực hiện các phép tính sau:

y(m) = b(1)x(m) + z1(m-1)

)()2()1()()

()1(

trong đó zi là vector xác định các giá trị đầu c a ngõ ra các khối trễ, còn zf là vector các giá

trị này sau khi thực hiện xong hàm filter

 Ví dụ 9-2 Bộ lọc số thông thấp tần số cắt ω = 0,4.π có hàm truy ền đạt:

H(z) =

3 2

1

3 2

1

06,042

,058,01

1,03

,03,01,0

z z

z

được dùng để lọc bỏ thành phần tần số cao trong tín hiệu x(n) = sin(πn/5) + cos(4πn/5), v ới 0

n 100 Hãy xác định và vẽ tín hiệu ra y(n)

Trang 10

y = filter(b,a,x); % Tín hi ệu ngõ ra bộ lọc y(n)

subplot(2,1,1);

title('Tin hieu vao');

Tin hieu vao

-1 -0.5 0 0.5 1 1.5

Tin hieu ra

Hình 9.5

9.5 CÁC HÀM KHÁC ĐỂ THỰC HIỆN LỌC

Ngồi hàm filter, để thực hiện các quá trình lọc, trong Signal Processing Toolbox, MATLAB cịn cung cấp thêm một số hàm khác, bao gồm hàm upfirdn thực hiện bộ lọc FIR đ ợc lấy

mẫu l i, hàm filtfilt cho phép lo i bỏ méo pha trong quá trình lọc, hàm fftfilt thực hiện quá

trình lọc trong miền tần số, hàm lactfilt thực hiện bộ lọc theo cấu trúc m ng (lattice)

9.5.1 THỰC HIỆN BĂNG LỌC ĐA TỐC ĐỘ (MULTIRATE FILTER BANK)

Các băng lọc đa tốc độ cĩ thể thực hiện bằng cách dùng hàm upfirdn Hàm này cho phép

thay đổi tốc độ lấy mẫu tín hiệu theo một tỷ lệ P/Q với P, Q là các số nguyên Cĩ thể xem hàm này là kết qu c a sự ghép liên tiếp ba hệ thống:

o Bộ lấy mẫu lên (chèn thêm bit 0) với hệ số tỷ lệ P

o Bộ lọc FIR cĩ đáp ng xung h

o Bộ lấy mẫu xuống với hệ số tỷ lệ Q

Trang 11

Hình 9.6 Nguyên t ắc thực hiện hàm upfirdn

Cấu trúc nĩi trên đ ợc thực hiện bằng kỹ thuật lọc nhiều pha (polyphase), đĩ là trọng tâm c a

lý thuyết băng lọc đa tốc độ

>> y = upfirdn(x, h, P, Q)

Để thực hiện một băng lọc gồm nhiều bộ lọc ta dùng hàm upfirdn, trong đĩ bộ lọc h là một

ma trận mà mỗi cột biểu diễn một bộ lọc FIR Các tín hiệu ngõ ra cũng biểu diễn d ới d ng

ma trận

9.5.2 KHỬ MÉO PHA CHO BỘ LỌC IIR

Trong tr ng hợp bộ lọc FIR, ta cĩ thể thiết kế bộ lọc cĩ pha tuyến tính, dữ liệu ra chỉ lệch so

với dữ liệu vào một số l ợng ký hiệu cố định Nh ng với bộ lọc IIR, méo pha th ng cĩ tính

chất phi tuyến cao Thơng th ng, ng i ta sử dụng các thơng tin về tín hiệu t i các th i điểm

tr ớc và sau th i điểm hiện t i để khắc phục hiện t ợng méo pha này MATLAB xây dựng

hàm filtfilt để thực hiện gi i thuật nĩi trên

Đầu tiên chúng ta kh o sát mơ hình d ới đây Chú ý rằng nếu biến đổi z c a một chuỗi x(n) là X(z) thì biến đổi z c a chuỗi đ o ng ợc th i gian c a x sẽ là X(1/z)

Hình 9.7

Khi |z| = 1, t c là z=e jω, tín hiệu ngõ ra tr thành 2

)()(e jω H e jω

X Vậy nếu biết tất c các

mẫu c a tín hiệu x(n) thì sau hai lần lọc liên tiếp, ta đ ợc một tín hiệu cĩ độ lệch pha bằng 0

so với x(n)

 Ví dụ 9-3 So sánh hai phương pháp lọc dùng hàm filter và hàm filtfilt để thực hiện lọc một

tín hi ệu sin cĩ hai thành phần tần số 3Hz và 40Hz bằng bộ lọc trung bình 10 điểm

fs = 100;

t = 0:1/fs:1;

x = sin(2*pi*t*3)+.25*sin(2*pi*t*40);

b = ones(1,10)/10; % 10 point averaging filter

y = filtfilt(b,1,x); % Noncausal filtering

yy = filter(b,1,x); % Normal filtering

plot(t,x,t,y,' ',t,yy,':')

legend('Tin hieu goc','Loc bang filfilt','Loc binh thuong')

Hình 9.8 là đồ thị thu đ ợc sau khi thực hiện ch ơng trình

Trang 12

Hình 9.8

Từ đồ thị này ta nhận thấy c hai bộ lọc đều lo i bỏ đ ợc thành phần tần số 40Hz trong tín

hiệu gốc Tuy nhiên, trong khi tín hiệu ra c a bộ lọc filtfilt cùng pha với tín hiệu gốc thì tín

hiệu ra c a bộ lọc filter bị trễ đi kho ng 5 ký hiệu so với tín hiệu gốc Chúng ta cũng thấy

rằng biên độ ngõ ra c a bộ lọc filtfilt nhỏ hơn do kết qu c a việc bình ph ơng biên độ hàm

truyền H

L ưu ý: để kết quả lọc là tốt nhất, cần bảo đảm chiều dài c a tín hiệu vào tối thiểu phải gấp

ba l ần bậc c a bộ lọc filtfilt, và tín hiệu vào cĩ xu hướng giảm về 0 ở hai phía

9.5.3 THỰC HIỆN BỘ LỌC TRONG MIỀN TẦN SỐ

Do tính đối ngẫu giữa hai miền th i gian và tần số, bất kỳ một thao tác nào thực hiện đ ợc trong miền này đều cũng cĩ thể thực hiện đ ợc trong miền cịn l i

Trong miền tần số, bộ lọc IIR đ ợc thực hiện bằng cách nhân biến đổi Fourier r i r c (DFT)

c a tín hiệu vào với th ơng số c a các biến đổi Fourier c a các hệ số bộ lọc Ví dụ:

>> n = length(x);

>> y = ifft(fft(x).*fft(b,n)./fft(a,n));

Kết qu tính tốn t ơng tự nh hàm filter, tuy vẫn khác nhau đo n quá độ lúc đầu (hiệu ng biên) Khi chiều dài c a chuỗi vào càng tăng, ph ơng pháp này càng kém hiệu qu do ph i thêm vào nhiều điểm zero cho các hệ số bộ lọc khi tiến hành tính FFT, đồng th i gi i thuật FFT cũng gi m hiệu qu khi số điểm n tăng lên

Ng ợc l i, đối với các bộ lọc FIR, ta cĩ thể tách một chuỗi dài thành nhiều chuỗi ngắn hơn, sau đĩ dùng ph ơng pháp chồng và cộng (overlap and add) Hàm fftfilt c a MATLAB đ ợc

xây dựng dựa trên gi i thuật này

>> y = fftfilt(b,x)

>> y = fftfilt(b,x,n)

x là chuỗi vào, y là chuỗi ra, b là vector các hệ số c a bộ lọc, n là số điểm FFT tối thiểu

Hàm fftfilt(b,x) t ơng đ ơng với hàm filter(b,1,x)

Trang 13

)(

n

n n

x (9.8)

Để tìm đáp ng xung c a một bộ lọc, ta cĩ thể t o một chuỗi xung đơn vị rồi dùng hàm filter:

>> imp = [1; zeros(49,1)];

>> h = filter(b,a,imp);

9.7 ĐÁP ỨNG TẦN SỐ

Signal Processing Toolbox cho phép thực hiện các phép phân tích trong miền tần số đối với

c bộ lọc t ơng tự lẫn bộ lọc số

9.7.1 TRONG MIỀN SỐ

Trong miền số, đáp ng tần số đ ợc tính tốn bằng gi i thuật FFT Hàm freqz sẽ tr về đáp

ng tần số ph c (FFT) p điểm c a bộ lọc số cĩ các vector hệ số là a và b

>> [H,W] = freqz(b,a,p)

H là đáp ng tần số c a bộ lọc đ ợc tính t i p điểm tần số cho b i vector W Các điểm tần số

đ ợc chọn cách đều nhau và nằm nửa trên c a vịng trịn đơn vị

m j j

n j j

j

e m a e

a a

e n b e

b b e

ω ω

=

)1()

2()1(

)1()

2()1()(

L ưu ý: trong MATLAB thường sử dụng các giá trị tần số chuẩn hố, trong đĩ tần số đơn vị là

t ần số Nyquist, t c một nửa tần số lấy mẫu Muốn chuyển từ tần số chuẩn hố sang tần số gĩc quanh vịng trịn đơn vị, chỉ cần nhân với π, mu ốn chuyển từ tần số chuẩn hố sang tần số Hertz, nhân v ới một nửa tần số lấy mẫu

 Ví dụ 9-4 Tính và vẽ đáp ng tần số 256 điểm c a bộ lọc Butterworth bậc 9, tần số cắt

400Hz Bi ết tần số lấy mẫu là 2000Hz

Trang 14

freqz(b,a,256,2000)

Kết qu :

-800 -600 -400 -200 0

9.7.2 TRONG MIEÀN ANALOG

Hàm freqs có th ể thực hiện các ch c năng t ơng tự nh hàm freqz nh ng đối với các bộ lọc

c a nó bằng cách dùng hàm freqz hoặc freqs, sau đó dùng hàm abs để lấy đáp ng biên độ

hoặc hàm angle để lấy đáp ng pha

MATLAB còn cung cấp hàm unwrap tr về đáp ng pha liên tục t i các vị trí ±360° (thông

th ng góc pha chỉ đ ợc tính trong ph m vi -360° đến +360° nên t i các vị trí này đáp ng pha sẽ có b ớc nh y) bằng cách thêm vào các bội số c a ±360° nếu cần thiết

Ngoài ra, ta cũng có thể sử dụng hàm phasez để có đáp ng pha liên tục nh trên Cú pháp

c a hàm phasez hoàn toàn t ơng tự nh hàm freqz, chỉ khác là kết qu tr về là đáp ng pha

Trang 15

title('Dap ung bien do');

0.5

1

Dap ung bien do

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -200

-100 0 100 200

Dap ung pha (gian doan tai 360 do)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -1500

-1000 -500 0

Dap ung pha (lien tuc)

Hình 9.10

đồ thị đáp ng pha đầu tiên, ta cĩ cĩ thể phân biệt các điểm nh y 360° (do gĩc pha v ợt ra ngồi giới h n hàm angle) với các điểm nh y 180° ( ng với các điểm zero c a đáp ng tần

số) Nếu dùng hàm unwrap ta cĩ thể phân biệt đ ợc các vị trí này (nh đồ thị th hai)

9.7.4 THỜI GIAN TRỄ

Độ trễ nhĩm (group delay) c a một bộ lọc là một thơng số đánh giá th i gian trễ trung bình

c a bộ lọc (là một hàm c a tần số) Nếu đáp ng tần số ph c c a bộ lọc là H( jω

e ) thì độ trễ nhĩm đ ợc xác định bằng biểu th c:

ωω

θω

τ

d

d g

)()

( =− (9.10) trong đĩ θ(ω) là đáp ng pha c a bộ lọc

Trong MATLAB, ta cĩ thể xác định độ trễ nhĩm bằng cách dùng hàm grpdelay với cú pháp

hồn tồn t ơng tự nh hàm freqz

Ví dụ:

>> [gd,w] = grpdelay(b,a,n)

tr về độ trễ nhĩm τg(ω)c a bộ lọc số xác định b i các vector hệ số a và b, đ ợc tính t i n điểm tần số xác định b i vector v

Độ trễ pha (phase delay) c a bộ lọc đ ợc định nghĩa b i:

Trang 16

θω

τp( )=− ( ) (9.11)

T ơng tự với độ trễ nhĩm, độ trễ pha cũng cĩ thể đ ợc xác định bằng cách dùng hàm

phasedelay (v ới cú pháp hồn tồn t ơng tự freqz)

plot(f,gd,'b-',f,pd,'r '); grid; hold on;

legend('Do tre nhom','Do tre pha');

0 5 10 15 20

25

Do tre nhom

Do tre pha

Hình 9.11

9.8 GIẢN ĐỒ CỰC – ZERO

Ngồi các cách biểu diễn thơng qua đáp ng xung hoặc hàm truyền đ t, một hệ thống tuyến tính nĩi chung hay một bộ lọc nĩi riêng cũng cĩ thể biểu diễn d ới d ng gi n đồ cực – zero,

t c là sự phân bố các điểm cực và điểm zero c a hàm truyền đ t trong mặt phẳng z

Hàm zpplane cho phép vẽ gi n đồ cực – zero c a một hệ thống tuyến tính nếu chúng ta cung

cấp các điểm cực và zero c a hàm truyền hoặc cung cấp các vector hệ số a và b c a hệ thống

>> zplane(z,p) vẽ gi n đồ cực – zero dựa vào vector các zero z và vector các điểm cực p

>> zplane(b,a) vẽ gi n đồ cực – zero dựa vào vector các hệ số a và b

Trang 17

L ưu ý: giữa mơ hình hàm truyền và mơ hình cực – zero cĩ thể được chuyển đổi qua lại bằng

cách dùng các hàm tf2zp và zp2tf

>> [b,a] = zp2tf(z,p,k)

>> [z,p,k] = tf2zp(b,a)

trong đĩ k là hệ số khuếch đ i khi z → ∞

9.9 CÁC MÔ HÌNH HỆ THỐNG TUYẾN TÍNH

Nh ta đã biết, một hệ thống tuyến tính cĩ thể đ ợc mơ t bằng nhiều mơ hình khác nhau nh

mơ hình hàm truyền, mơ hình cực – zero, Trong MATLAB, Signal Processing Toolbox cung cấp cho ta một cách đầy đ các mơ hình này Ng i sử dụng cĩ thể lựa chọn mơ hình nào thích hợp để mơ phỏng hệ thống một cách nhanh chĩng và chính xác nhất

9.9.1 CÁC MÔ HÌNH HỆ THỐNG RỜI RẠC THEO THỜI GIAN

Các mơ hình hệ thống r i r c đ ợc MATLAB hỗ trợ bao gồm:

ƒ Mơ hình hàm truyền đ t

ƒ Mơ hình độ lợi – cực – zero

ƒ Mơ hình khơng gian tr ng thái

ƒ Mơ hình khai triển hữu tỷ (mơ hình thặng d )

ƒ Mơ hình các khâu bậc hai (SOS – Second Order Sections)

1()

2()1(

)1()

2()1()()

()(

1

1

z X z m a z

a a

z n b z

b b z X z H z Y

Mơ hình độ lợi – cực – zero

Hàm truyền đ t c a hệ thống cĩ thể viết l i d ới d ng nhân tử:

))()) (

2())(

1((

))()) (

2())(

1(()(

)()(

m p z p

z p z

n q z q

z q z k z p

z q z H

MATLAb biểu diễn mơ hình bằng một vơ h ớng k chỉ độ lợi và hai vector z và p mà các phần

tử c a chúng lần l ợt là các zero (nghiệm c a q(z)) và các cực (các nghiệm c a p(z))

Cĩ thể dùng các hàm poly và roots để chuyển đổi qua l i giữa các vector cực và zero với các

vector hệ số c a bộ lọc Hàm poly tr về các hệ số c a đa th c nếu biết các nghiệm c a nĩ, cịn hàm roots tr về các nghiệm c a một đa th c chỉ cần cung cấp các hệ số c a đa th c Tuy nhiên, phần sau ta sẽ thấy rằng MATLAB cung cấp sẵn các hàm để chuyển trực tiếp từ mơ hình hàm truyền sang mơ hình cực – zero mà khơng cần ph i chuyển từng đa th c nh cách nêu trên

Trang 18

Mô hình không gian tr ng thái

Bất kỳ một bộ lọc số nào cũng có thể đ ợc biểu diễn d ới d ng một hệ thống các ph ơng trình sai phân cấp một Cụ thể là một hệ thống tuyến tính r i r c có thể đ ợc mô t bằng hệ sau:

)()()(

)()()1(

n Dy n Cx n y

n Bu n Ax n

Mô hình khai tri ển các phân thức (mô hình thặng dư)

Bất kỳ hàm truyền đ t H(z) nào cũng có thể khai triển thành tổng c a các phân th c hữu tỷ theo d ng sau (còn gọi là d ng thặng d ):

) ( 1

1

)(1

)(

)1(1

)1()

n r z

p

r z

=

với điều kiện H(z) không có cực nào lặp l i Trong tr ng hợp H(z) có một cực r nào đó đ ợc

lặp l i s rlần (nghĩa là r là cực bội s rc a H(z)) thì ng với các cực p(j) = p(j+1) = = p(j+s r1) này, trong khai triển hữu tỷ c a H(z) sẽ có các số h ng sau:

-r r z j p

s j r z

j p

j r z

j p

j r

))(1(

)1(

))(1(

)1()

(1

)(

1 2

+

+

Mô hình này đ ợc biểu diễn bằng ba vector cột: vector p ch a các cực c a H(z), vector r

ch a các thặng d t ơng ng với các cực (t c các hệ số r(j) trong các biểu th c (9.15), (9.16))

và vector k ch a các hệ số k(i) Vậy length(r) = length(p) = length(a) – 1

Hàm residuez cho phép ta chuyển đổi từ mô hình hàm truyền sang mô hình thặng d và

Mô hình các khâu b ậc 2 (SOS – Second Order Sections)

Hàm truyền H(z) cũng có thẻ biểu diễn d ới d ng:

Trang 19

= L

k k

k L

k k

z a z a a

z b z b b z

H

2 2 1 1 0 1

)( (9.17)

trong đó L là số khâu bậc hai trong hệ thống, mỗi hàm H k (z) biểu diễn một khâu bậc hai MATLAB biểu diễn mô hình SOS c a một hệ thống bằng một ma trận kích th ớc L x 6 với các phần tử đ ợc bố trí nh sau:

b

a a a b b b

a a a b b b sos

2 1 0 2 1 0

22 12 02 22 12 02

21 11 01 21 11 01

Hình 9.12 C ấu trúc lattice c a các bộ lọc FIR và IIR

Với các bộ lọc r i r c bậc n toàn điểm cực hoặc toàn zero, đ ợc biểu diễn b i đa th c với các

hệ số a(i), i = 1, 2, , n + 1, ta có thể tìm đ ợc n hệ số t ơng ng k(i), i = 1, 2, , n, các hệ số này là cơ s để xây dựng cấu trúc lattice cho bộ lọc Các hệ số k(i) này còn gọi là các hệ số

ph n x c a bộ lọc Hình 9.12 mô t cấu trúc lattice c a các bộ lọc FIR và IIR với các hệ số

Trang 20

Hình 9.13 C ấu trúc lattice c a bộ lọc ARMA

Để tìm các hệ số c a cấu trúc lattice từ các hệ số a, b c a bộ lọc, ta dùng hàm tf2latc:

tr về cấu trúc lattice c a bộ lọc FIR hoặc bộ lọc FIR pha cực đ i hoặc cực tiểu

>> k = tf2latc(1,den) tr về cấu trúc lattice c a bộ lọc IIR toàn cực

>> [k,v] = tf2latc(num,den) tr về cấu trúc lattice c a bộ lọc IIR tổng quát

num, den là các vector hệ số c a bộ lọc còn k là vector các hệ số lattice, v là vector các hệ số

bậc thang

Ng ợc l i, từ cấu trúc lattice c a bộ lọc có thể suy ra hàm truyền đ t c a bộ lọc bằng cách

dùng hàm latc2tf

>> [num,den] = latc2tf(k,v)

>> [num,den] = latc2tf(k,'allpole') (K: cấu trúc lattice c a bộ lọc IIR toàn cực)

>> [num,den] = latc2tf(k,'allpass') (K: cấu trúc lattice c a bộ lọc IIR toàn thông)

>> num = latc2tf(k)

>> num = latc2tf(k,’max’) (K: cấu trúc lattice c a bộ lọc FIR pha cực đ i)

>> num = latc2tf(k,’min’) (K: cấu trúc lattice c a bộ lọc FIR pha cực tiểu)

Mô hình ma tr ận chập

Trong lý thuyết xử lý tín hiệu, phép lấy tích chập hai vector hay hai ma trận t ơng đ ơng với quá trình lọc một trong hai vector này bằng một bộ lọc có hệ số xác định b i vector còn l i Trên cơ s đó, ta có thể mô t một bộ lọc số bằng một ma trận chập

Với một vector cho tr ớc, hàm convmtx sẽ t o ra một ma trận chập sao cho tích c a ma trận

này với một vector x nào đó khác sẽ bằng với tích chập c a vector đã cho tr ớc với vector x,

với điều kiện vector x ph i có chiều dài thích hợp với kích th ớc c a ma trận chập để phép nhân ma trận có ý nghĩa

Trang 21

9.9.2 CÁC MÔ HÌNH HỆ THỐNG LIÊN TỤC THEO THỜI GIAN

Các mơ hình hệ thống liên tục theo th i gian dùng để mơ t các bộ lọc analog Đa số các mơ hình đã xây dựng cho các hệ thống r i r c đã đề cập trên cũng cĩ thể áp dụng cho các hệ

thống liên tục theo th i gian Cụ thể là các mơ hình sau:

ƒ Mơ hình khơng gian tr ng thái

ƒ Mơ hình khai triển phân th c hữu tỷ

ƒ Mơ hình hàm truyền đ t

ƒ Mơ hình độ lợi – cực – zero

Mơ hình khơng gian tr ng thái biểu diễn hệ thống bằng một hệ các ph ơng trình vi phân bậc

Bu Ax x

(9.19)

u là vector các ngõ vào (chiều dài nu), y là vector các ngõ ra (chiều dài ny), x là vector các

biến tr ng thái (chiều dài nx) A, B, C, D là các ma trận và MATLAB dùng các ma trận này

để biểu diễn mơ hình khơng gian tr ng thái c a hệ thống

Hệ thống liên tục cũng cĩ thể đ ợc mơ t bằng mơ hình hàm truyền đ t Laplace H(s):

2()

1(

)1()

2()

1()(

1

1

++++

++++

m a s

a s a

n b s

b s b s H

m m

n n

2())(

1((

))()) (

2())(

1(()(

)(

m p s p

s p s

n z s z

s z s k s p

s z

= (9.23) Đây chính là cơ s cho việc xây dựng một mơ hình khác cho hệ thống liên tục, đĩ là mơ hình

độ lợi – cực – zero T ơng tự nh với hệ thống r i r c, MATLAB biểu diễn mơ hình này bằng

một vơ h ớng k chỉ độ lợi và hai vector p và z ch a các cực và zero c a H(s)

9.9.3 CÁC PHÉP BIẾN ĐỔI HỆ THỐNG TUYẾN TÍNH

B ng 9.1 tĩm tắt các hàm MATLAB dùng để chuyển đổi giữa các mơ hình hệ thống tuyến tính Để chuyển từ một mơ hình (nguồn) sang một mơ hình khác (đích), ta xuất phát từ hàng

Trang 22

cĩ ch a tên mơ hình nguồn, sau đĩ tìm ơ ng với cột mang tên mơ hình đích, nội dung trong ơ này chính là tên hàm để thực hiện chuyển đổi

B ng 9.1 Các hàm MATLAB th ực hiện các phép biến đổi hệ thống tuyến tính

Hàm truyền đ t Khơng gian tr ng thái

Độ lợi – cực - Phân thức hữu tỷ Bộ lọc lattice SOS

Ma trận chập Hàm truyền

9.10 BIẾN ĐỔI FOURIER RỜI RẠC

Biến đổi Fourier r i r c (DFT – Discrete Fourier Transform) là cơng cụ cơ b n nhất trong xử

lý số tín hiệu Trong Signal Processing Toolbox, hầu hết các hàm đều cĩ sử dụng gi i thuật FFT (một gi i thuật tính DFT nhằm gi m th i gian thực thi)

Trong MATLAB cĩ hai hàm fft và ifft dùng để tính tốn biến đổi DFT thuận và nghịch bằng

gi i thuật FFT Với một chuỗi tín hiệu vào x và biến đổi DFT c a nĩ là X, gi i thuật FFT

đ ợc thực hiện trên cơ s các biểu th c sau:

+

=+

0

1

0

)1(

1)1(

)1()

1(

N k

kn N

N n

kn N W k X N n

x

W n x k

X là biến đổi DFT c a tín hiệu vào, N là số điểm FFT

 Ví dụ 9-7 Hãy xác định và vẽ biên độ và pha c a biến đổi DFT c a tín hiệu x(t) =

sin(30πt) + sin(80πt), t ần số lấy mẫu 100Hz.Dùng biến đổi DFT ngược để khơi phục lại tín

hi ệu ban đầu So sánh với tín hiệu gốc

Trang 23

t = (0:1/100:10-1/100); % Vector th ời gian

Trang 24

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -2

-1.5

-1 -0.5

0 0.5

1 1.5

x là tín hiệu vào còn indvec là vector chỉ số (mặc định là 1:N)

ƒ Đôi khi ta cần sắp xếp l i chuỗi vào sao cho các điểm zero trong chuỗi ngõ ra nằm kho ng giữa chuỗi Khi đó ta dùng hàm fftshift

Trang 25

d 100x4(n)=10cos(0,0008πn2)+w(n), 0≤n≤ , với w(n) là chuỗi ngẫu nhiên phân bố đều trên đo n [-1,1]

(

x

)30()()[

1,0cos(

Sử dụng bộ sai phân này đối với các tín hiệu vào cho d ới đây (dùng hàm filter) Nhận xét

ph m vi sử dụng thích hợp c a bộ sai phân này

Một hệ thống tuyến tính bất biến theo th i gian đ ợc mô t b i ph ơng trình sai phân:

y(n) – 0,5y(n - 1) + 0,25y(n – 2) = x(n) + 2x(n – 1) + x(n – 3)

Trang 26

i h(n)=0,9n

ii h(n) = sinc(0,2n)[u(n + 20) – u(n – 20)], h(0) = 1

iii.h(n) = sinc(0,2n)[u(n) – u(n – 40)], h(0) = 1

iv.h(n)=(0,5n +0,4n)u(n)

v h(n)=0,5n cos(0,1πn)

Lần l ợt kh o sát với các giá trị Eb/No bằng 0, 2, 4, 6, 8 dB và so sánh thông điệp nhận đ ợc

với thông điệp phát Vẽ đồ thị BER

# Bài t ập 9-7

Cho tín hiệu x(n) = 3cos(0,5πn + π/3) + 2sin(0,2πn) lần l ợt đi vào các hệ thống trong bài tập 9-6 Vẽ tín hiệu ra y(n) trong mỗi tr ng hợp

# Bài t ập 9-8

Một bộ lọc số đ ợc mô t b i ph ơng trình sai phân:

y(n) = x(n) + x(n – 1) + 0,9y(n – 1) – 0,81y(n – 2)

a Sử dụng hàm freqz, hãy vẽ đáp ng biên độ và đáp ng pha c a bộ lọc trên Xác định biên

(3

Hãy xác định: (i) hàm truyền đ t miền z, (ii) gi n đồ cực – zero, (iii) mô hình không gian

tr ng thái, (iv) mô hình SOS, (v) mô hình thặng d và (vi) mô hình lattice c a hệ thống

# Bài tập 9-10

Cho các hệ thống tuyến tính bất biến đ ợc định nghĩa thông qua các hàm truyền đ t sau đây:

a H(z) =

5,0

2 125,05,01

1)

−+

++

=

z z

z z z

Trang 27

c

1 121

5,0125,0)

−+

−+

=

z

z z

z z

d

2 2

)3(

1)

Nếu các chuỗi x(n) và h(n) có chiều dài hữu h n lần l ợt là N và x N thì phép tích ch h ập y(n)

= x(n)*h(n) có thể thực hiện bằng phép nhân ma trận: gi sử x(n) và y(n) đ ợc sắp thành các vector cột x, y thì:

y = H.x Trong đó các hàng c a ma trận H là các vector h(n-k) với k = 0, 1, …, N -1 Ma tr h ận này gọi

function [y,H] = conv_tp(h,x)

Nhập vào x(n) và h(n), hàm tr về tích chập c a x(n) và h(n) cùng với ma trận Toeplitz H c a phép tích chập này

# Bài t ập 9-12

Một tín hiệu t ơng tự xa(n) = 2sin(4πt) + 5cos(8πt) đ ợc lấy mẫu các th i điểm t = 0,01n

với n = 0, 1, …, N – 1 để đ t đ ợc một chuỗi x(n) gồm N điểm Sử dụng biến đổi DFT N điểm để tìm đáp ng biên độ gần đúng c a xa(n)

Trong các giá trị N sau, hãy chọn giá trị thích hợp để có đáp ng biên độ chính xác nhất Vẽ

Trang 28

Danh sách các hàm được giới thiệu trong chương 9

Các hàm t o tín hiệu

Các hàm vẽ tín hiệu

Các hàm làm việc với các file dữ liệu

Các hàm phân tích và thiết kế bộ lọc

Trang 29

Các mô hình hệ thống tuyến tính

Các hàm biến đổi Fourier

kho ng giữa

Trang 30

Ch ương 10

Thiết kế bộ lọc là một quá trình xác định các hệ số c a bộ lọc sao cho tho mãn một số yêu

cầu thiết kế Thực hiện bộ lọc là quá trình lựa chọn và áp dụng một cấu trúc thích hợp cho bộ

lọc dựa trên các hệ số đã xác định trong quá trình thiết kế Đây là hai quá trình cơ b n cần

thực hiện tr ớc khi cĩ thể sử dụng bộ lọc để lọc một tín hiệu nào đĩ

10.1 CÁC CHỈ TIÊU THIẾT KẾ BỘ LỌC

Nĩi chung, một chỉ tiêu thiết kế chặt chẽ địi hỏi bộ lọc ph i tho mãn những yêu cầu về đáp

ng tần số bao gồm: d i thơng, d i chắn, độ gợn sĩng d i thơng, suy hao d i chắn, độ rộng vùng chuyển tiếp Những yêu cầu chi tiết hơn cĩ thể là: chọn bộ lọc cĩ bậc tối thiểu, chọn

d ng đáp ng biên độ hoặc yêu cầu sử dụng bộ lọc FIR

Trong miền tần số, bộ lọc đ ợc đặc tr ng b i đáp ng tần số Dựa vào đáp ng tần số c a bộ

lọc, tồn bộ d i tần số cĩ thể đ ợc chia thành ba vùng: d i thơng, d i chắn và d i chuyển tiếp Trong thực tế, đáp ng biên độ trong d i thơng khơng ph i là hằng số mà biến thiên trong kho ng (1±δ1)H0 với H0 là đáp ng biên độ trung bình δ1 đ ợc gọi là gợn sĩng d i thơng

T ơng tự, đáp ng biên độ trong d i chắn khơng ph i luơn bằng 0 mà biến thiên trong kho ng

từ 0 đến δ2H0 với δ2 là độ gợn sĩng d i chắn Bộ lọc cĩ chất l ợng tốt ph i cĩ d i chuyển tiếp

hẹp và các độ gợn sĩng nhỏ Hình 10.1 biểu diễn các thơng số nĩi trên c a đáp ng tần số:

Tất c các hàm thiết kế bộ lọc trong MATLAB đều sử dụng tần số chuẩn hố (theo tần số đơn

vị là tần số Nyquist, t c ½ tần số lấy mẫu), do đĩ khơng cần ph i cung cấp thêm thơng số tần

số lấy mẫu khi gọi các hàm này Muốn chuyển từ tần số chuẩn hố sang tần số gĩc, ta nhân

với π; muốn chuyển sang tần số Herzt, ta nhân với ½ tần số lấy mẫu

Các ph ơng pháp thiết kế bộ lọc số đ ợc phân thành hai nhĩm: thiết kế bộ lọc IIR và thiết kế

Trang 31

10.2 THIẾT KẾ BỘ LỌC IIR

u điểm cơ b n c a các bộ lọc IIR so với các bộ lọc FIR là: bộ lọc IIR cĩ kh năng tho mãn các chỉ tiêu thiết kế với bậc c a bộ lọc thấp hơn so với bộ lọc FIR t ơng ng Nh ợc điểm

c a bộ lọc IIR là cĩ tính chất pha phi tuyến Tuy nhiên, do đặc điểm c a quá trình xử lý dữ

liệu trong MATLAB là mang tính chất “offline”, nghĩa là tồn bộ chuỗi dữ liệu vào đã đ ợc xác định tr ớc khi thực hiện lọc, do đĩ cĩ thể xây dựng bộ lọc khơng nhân qu , cĩ pha bằng 0

(thơng qua hàm filtfilt) để lo i bỏ méo pha phi tuyến

Các ph ơng pháp thiết kế bộ lọc IIR đ ợc sử dụng trong MATLAB gồm cĩ:

ƒ Ph ơng pháp thiết kế cổ diển dựa trên các nguyên mẫu analog, bao gồm các bộ lọc Butterworth, Chebychev lo i I, Chebychev lo i II, elliptic và Bessel

ƒ Ph ơng pháp thiết kế trực tiếp (Yulewalk) tìm một bộ lọc cĩ đáp ng biên độ xấp xỉ một hàm mà ng i thiết kế mong muốn Đây cũng là một ph ơng pháp để xây dựng một bộ lọc thơng d i nhiều băng

ƒ Ph ơng pháp mơ hình thơng số (parametric modelling)

ƒ Ph ơng pháp thiết kế Butterworth tổng quát hố

B ng 10.1 tĩm tắt các ph ơng pháp thiết kế bộ lọc IIR cùng với các hàm đ ợc MATLAB cung cấp để thực hiện các ph ơng pháp thiết kế này

B ng 10.1 Tĩm t ắt các ph ơng pháp thiết kế bộ lọc IIR và các hàm MATLAB t ơng ng

bilinear, impinvar

Thiết kế trực tiếp

Thi ết kế bộ lọc số trực tiếp trong miền th i gian

r i r c bằng ph ơng pháp tiệm cận biên độ

tr ớc

Các hàm t o mơ hình trong miền th i gian:

lpc, prony, stmcb Các hàm t o mơ hình trong miền tần số:

invfreqs, invfreqz

Trang 32

10.2.1.THIẾT KẾ CÁC BỘ LỌC IIR CỔ ĐIỂN DỰA TRÊN CÁC NGUYÊN MẪU ANALOG

Nguyên tắc thiết kế bộ lọc IIR cổ điển là dựa trên sự chuyển đổi từ các bộ lọc thơng thấp analog thành các bộ lọc số t ơng đ ơng Quá trình thiết kế bộ lọc IIR cổ điển bao gồm các

b ớc sau:

o Tìm một bộ lọc thơng thấp t ơng tự với tần số cắt bằng 1 và dùng các phép biến đổi tần số

để chuyển bộ lọc nguyên mẫu này thành bộ lọc với cấu hình các d i thơng và d i chắn nh ta mong muốn

o Chuyển bộ lọc nĩi trên sang miền số

o R i r c hố bộ lọc

Chúng ta lần l ợt kh o sát chi tiết các b ớc c a quá trình thiết kế nĩi trên, đồng th i tìm hiểu các đặc tính nổi bật c a mỗi lo i bộ lọc IIR cổ điển

Thi ết kế các bộ lọc nguyên mẫu analog

MATLAB cung cấp các hàm để kh i t o các bộ lọc thơng thấp t ơng tự cĩ tần số cắt bằng 1, đây là b ớc đầu tiên trong quy trình thiết kế bộ lọc IIR cổ điển Cĩ 5 kiểu bộ lọc thơng thấp analog: bộ lọc Butterworth, bộ lọc Chebychev lo i I, bộ lọc Chebychev lo i II, bộ lọc elliptic

và bộ lọc Bessel Tất c đ ợc tĩm tắt trong b ng sau:

B ng 16.2 Tĩm t ắt các hàm kh i t o các bộ lọc thơng thấp nguyên mẫu

2 2

1

1)

(

Ω+

=

Ω (10.1) trong đĩ: N là bậc c a bộ lọc

Đáp ng tần số c a bộ lọc Butterworth bằng phẳng trong các d i thơng và d i chắn, là hàm đơn điệu gi m trên [0, +∞)

ƒ B ộ lọc Chebychev loại I:

Bộ lọc Chebychev lo i I tối thiểu hố trị tuyệt đối c a sai số giữa đáp ng tần số thực tế và lý

t ng trên tồn bộ d i thơng bằng cách đ a vào một l ợng gợn sĩng cân bằng trong tồn d i thơng Rp (tính bằng dB) Đây là bộ lọc tồn điểm cực, cĩ đáp ng gợn sĩng cân bằng trong

d i thơng và đáp ng bằng phẳng trong d i chắn Th i gian chuyển tiếp từ d i thơng sang d i

chắn nhanh hơn bộ lọc Butterworth |H(jΩ)| = 10−Rp/ 20t i Ω = 1 với Rp là độ gợn sĩng d i thơng

Đáp ng biên độ:

Trang 33

)(1

1)

Ω+

=

Ω

N T

H

ε (10.2) trong đĩ: ε là một hệ số phụ thuộc vào độ gợn sĩng d i thơng / 20

1 =10−Rpδ

1)1(

1

2 1

1 1

1 0

N x

T x xT x

T

x x T x

T

N N

N với (10.4)

ƒ B ộ lọc Chebychev loại II:

Bộ lọc Chebychev lo i I tối thiểu hố trị tuyệt đối c a sai số giữa đáp ng tần số thực tế và lý

t ng trên tồn bộ d i chắn bằng cách đ a vào một l ợng gợn sĩng cân bằng trong tồn d i

chắn Rs (tính bằng dB) Là bộ lọc cĩ c cực và zero, đáp ng bằng phẳng trong d i thơng và

gợn sĩng trong d i chắn D i chắn tiến về 0 chậm hơn so với bộ lọc Chebychev lo i I, thậm chí khơng hội tụ về 0 nếu N chẵn Tuy nhiên, u điểm c a nĩ là d i thơng bằng phẳng |H(jΩ)|

1

U N (10.6)

trong đĩ: UN(x) là hàm elliptic Jacobian bậc N

ε là một hệ số phụ thuộc vào độ gợn sĩng d i thơng: Rp = 10log10(1+ε2

) (10.7)

Do sai số đ ợc tr i đều trên các d i thơng và d i chắn nên bộ lọc Elliptic là bộ lọc hiệu qu

nhất trên ph ơng diện tối thiểu hĩa số bậc c a bộ lọc Nếu cùng thơng số bậc và các yêu cầu khác thì bộ lọc Elliptic sẽ cĩ d i chuyển tiếp nhỏ nhất |H(jΩ)| = δ =1 / 20

Trang 34

(,1)(

2

2 1

1 0

s B s s B N s

B

s s B s

B

N N

N

(10.9)

Bộ lọc Bessel có độ trễ nhóm phẳng tối đa t i tần số bằng 0 và gần nh bằng phẳng trong toàn

bộ d i thông Do đó, bộ lọc Bessel có đáp ng pha tuyến tính trên toàn d i thông Đặc tính này cho phép tín hiệu sau khi lọc giữ nguyên d ng sóng trong ph m vi tần số c a d i thông Tuy nhiên đặc tính này bị mất đi khi ta chuyển sang miền số Vì vậy MATLAB chỉ hỗ trợ cho thiết kế bộ lọc Bessel analog

Để tho mãn điều kiện suy hao d i chắn, bộ lọc Bessel cần có bậc cao hơn so với các lo i bộ

lọc khác Khi Ω = 1 thì |H(jΩ)| <

2

1

và gi m dần khi bậc c a bộ lọc tăng lên

 Ví dụ 10-1 Khởi tạo một bộ lọc elliptic tương tự có bậc n = 5, gợn sóng dải thông Rp =

với các cú pháp t ơng ng c a chúng

B ng 10.3 Các hàm th ực hiện các phép biến đổi tần số

Thông thấp sang thông

/

1/

s [numt,dent] = lp2bs(num,den,Wo,Bw) [At,Bt,Ct,Dt] = lp2bs(A,B,C,D,Wo,Bw)

Từ b ng trên ta thấy rằng các phép biến đổi tần số có thể thực hiện đối với hai d ng mô hình

hệ thống tuyến tính: mô hình hàm truyền đ t và mô hình không gian tr ng thái Mô hình hàm truyền đ t đ ợc biểu diễn b i hai vector (num, den) (hoặc (numt, dent) sau khi biến đổi); còn mô hình không gian tr ng thái biểu diễn bằng 4 ma trận (A, B, C, D) (hoặc (At, Bt, Ct, Dt) sau khi biến đổi)

Trang 35

Đối với các bộ lọc thông thấp và thông cao, ω0 chính là tần số cắt Với các bộ lọc thông d i

ω = (10.11) trong đó ω và 1 ω là các tần số cắt c a bộ lọc 2

Trong tr ng hợp thông d i và chắn d i, do sử dụng phép đổi biến bậc hai nên bậc c a bộ lọc

mới sẽ gấp đôi bậc c a bộ lọc cũ

 Ví dụ 10-2 Thiết kế một bộ lọc thông dải tương tự thuộc dạng Chebychev loại I có bậc n

= 10, g ợn sóng dải thông Rp = 3dB, gợn sóng dải chắn Rs = 20 Các tần số cắt là Ω1 =π /5

Ω2 =π V ẽ đáp ng biên độ c a bộ lọc

Trang 36

R ời r c hoá bộ lọc

B ớc cuối cùng trong khâu thiết kế bộ lọc IIR là chuyển bộ lọc từ miền t ơng tự sang miền

số Có hai ph ơng pháp để thực hiện việc này: ph ơng pháp bất biến xung và ph ơng pháp

biến đổi song tuyến tính Các hàm MATLAB t ơng ng với hai ph ơng pháp này là

impinvar và bilinear (xem b ng 10.4)

B ng 10.4 Các hàm th ực hiện r i r c hoá bộ lọc t ơng tự

Biến đổi tương tự - số Hàm thực hiện biến đổi

Bất biến xung [numd,dend] = impinvar(num,den,fs) [numd,dend] = impinvar(num,den,fs,tol)

Biến đổi song tuyến tính [zd,pd,kd] = bilinear(z,p,k,fs,Fp) [numd,dend] = bilinear(num,den,fs,Fp)

[Ad,Bd,Cd,Dd] = bilinear(At,Bt,Ct,Dt,fs,Fp)

ƒ Ph ương pháp bất biến xung

Nội dung c a ph ơng pháp bất biến xung là: xây dựng một bộ lọc số mà đáp ng xung c a nó

là các mẫu r i r c c a đáp ng xung c a bộ lọc t ơng tự ban đầu Trong MATLAB, ph ơng pháp này đ ợc thực hiện b i hàm impinvar Hàm này chỉ chấp nhận mô hình hàm truyền đ t

c a bộ lọc

Để đ t kết qu tốt nhất, bộ lọc t ơng tự ph i không có thành phần tần số nào lớn hơn ½ tần số

lấy mẫu, vì các thành phần tần số này sẽ chồng lấn vào d i thông thấp trong quá trình lấy mẫu (tiêu chuẩn Nyquist) Ph ơng pháp bất biến xung có thể có tác dụng đối với một số bộ lọc thông thấp và thông d i nh ng không thích hợp đối với các bộ lọc thông cao và chắn d i

ƒ Ph ương pháp biến đổi song tuyến tính:

Phép biến đổi song tuyến tính là một ánh x từ miền liên tục (miền s) sang miền số (miền z) Phép biến đổi này biến hàm truyền Laplace H(s) trong miền s thành hàm truyền đ t H(z) trong

miền z theo quy tắc sau:

1 1

|)()(

H (10.12)

Phép biến đổi song tuyến tính biến trục o jΩ trong mặt phẳng s thành vòng tròn đơn vị trong

mặt phẳng z Một điểm trên trục o có tung độ Ω sẽ tr thành điểm trên vòng tròn đơn vị có:

ω (10.13)

Phép biến đổi song tuyến tính đ ợc thực hiện bằng hàm bilinear Giá trị mặc định c a hệ số k

là (2*Fs) (Fs là tần số lấy mẫu) Nếu cung cấp thêm thông số Fp (gọi là tần số phối hợp) thì:

k =

p f f

f

/tan

π

ω= 2 (10.15)

Hàm bilinear có thể thực hiện phép biến đổi tuyến tính trên ba d ng mô hình hệ thống tuyến tính: mô hình độ lợi – cực – zero, mô hình hàm truyền đ t và mô hình không gian tr ng thái

Trang 37

Trong ví dụ 10.2, ta có thể r i r c hoá bộ lọc t o đ ợc bằng cách dùng hàm bilinear với tần

Normalized Frequency ( ×π rad/sample)

Ta thấy rằng tần số c nh trên c a d i thông nhỏ hơn 0,5Hz mặc dù, đối với bộ lọc t ơng tự giá

trị này đúng bằng 0,5Hz Nguyên nhân là do tính phi tuyến c a b n thân phép biến đổi song tuyến tính Để khắc phục hiện t ợng này, khi xây dựng bộ lọc t ơng tự, ta ph i tính l i các tần

số ng ỡng c a d i thông sao cho qua phép biến đổi song tuyến tính, nó chuyển một cách chính xác thành các tần số mong muốn nh trong ví dụ sau:

 Ví dụ 10-3 Hiệu chỉnh lại ví dụ 10-2 đồng thời áp dụng phép biến đổi song tuyến tính để

thi ết kế bộ lọc số Chebychev loại I, bậc 10, dải thông 0,1 – 0,5Hz, tần số lấy mẫu 2Hz

Trang 38

Hình 10.5

Các hàm thi ết kế bộ lọc IIR hoàn chỉnh

Để thuận tiện cho ng i sử dụng khi thực hiện quá trình thiết kế các nộ lọc IIR cổ điển, MATLAB cũng cung cấp các hàm thiết kế hoàn chỉnh các bộ lọc IIR thay vì ph i thực hiện

từng b ớc quy trình thiết kế nh phần trên Các hàm này tích hợp các quy trình đã đề cập trên đây l i, trong đó b ớc th ba c a quá trình, t c là b ớc r i r c hoá các bộ lọc t ơng tự, các hàm này đều sử dụng ph ơng pháp biến đổi song tuyến tính

Wn là vector gồm 2 phần tử xác định các tần số cắt (với các bộ lọc thông thấp, thông cao, Wn

tr thành một vô h ớng) Wn đ ợc chuẩn hoá theo ½ tần số lấy mẫu

form là một chuỗi xác định d ng bộ lọc: ‘low’ (bộ lọc thông thấp), ‘high’ (thông cao),

‘stop’ (chắn d i) Nếu Wn có hai phần tử và không có thông số form, hàm sẽ t o ra bộ lọc thông d i

Để t o các bộ lọc t ơng tự, ta thêm vào chuỗi ‘s’ vào danh sách các thông số

MATLAB cũng cung cấp hàm buttord để ớc l ợng bậc bộ lọc tối thiểu tho mãn các yêu

cầu thiết kế

>> [N, Wn] = buttord(Wp, Ws, Rp, Rs)

Trang 39

Các thơng số nhập c a nĩ bao gồm các tần số ng ỡng c a d i thơng và d i chắn Wp và Ws, các giá trị mong muốn c a gợn sĩng d i thơng tối đa và suy hao tối thiểu c a d i chắn (Rp, Rs) Hàm tr về bậc tối thiểu c a bộ lọc cùng với vector Wn để cung cấp cho hàm butter

ƒ Bộ lọc Chebychev loại I: dùng hàm cheby1:

 Ví dụ 10-4 Thiết kế một bộ lọc thơng dải cĩ băng thơng từ 1000Hz – 2000Hz, dải chắn bắt

đầu cách các tần số trên 500Hz, gợn sĩng dải thơng tối đa là 1dB, suy hao dải chắn tối thiểu

là 60dB T ần số lấy mẫu là 10kHz.Sử dụng bộ lọc Butterworth

10.2.2.THIẾT KẾ TRỰC TIẾP CÁC BỘ LỌC IIR TRONG MIỀN SỐ

Đây là ph ơng pháp thiết kế trực tiếp trong miền r i r c dựa vào một đáp ng tần số mong

muốn mà khơng dựa vào các bộ lọc analog Ph ơng pháp thiết kế này khơng bị bĩ buộc trong

Trang 40

các d ng cấu hình thơng thấp, thơng cao, thơng d i hay chắn d i mà ta cĩ thể thiết kế một bộ

lọc số với đáp ng tần số bất kỳ, cĩ thể là gồm nhiều d i tần số

Ph ơng pháp này đ ợc thực hiện với hàm yulewalk Gi i thuật mà hàm này sử dụng là: tìm

biến đổi ng ợc FFT c a phổ cơng suất lý t ng mong muốn và gi i hệ ph ơng trình Walker sử dụng các mẫu dữ liệu c a hàm tự t ơng quan tìm đ ợc Bộ lọc IIR đ ợc thiết kế theo ph ơng pháp này là bộ lọc IIR đệ quy với ph ơng pháp bình ph ơng cực tiểu

Yule-Cú pháp:

>> [b,a] = yulewalk(n,f,m)

trong đĩ n là bậc bộ lọc, F là vector tần số và M là vector đáp ng biên độ t ơng ng với F

Ph ơng pháp này khơng quan tâm đến đáp ng pha (b,a) là các vector hệ số c a bộ lọc đ ợc thiết kế

 Ví dụ 10-5 Dùng hàm yulewalk thiết kế một bộ lọc cĩ hai băng, vẽ đáp ng tần số thực tế

0.2 0.4 0.6 0.8 1 1.2

1.4

Dap ung thuc Dap ung ly tuong

Hình 10.6

10.2.3.THIẾT KẾ BỘ LỌC BUTTERWORTH TỔNG QUÁT

Hàm maxflat cho phép ta thiết kế các bộ lọc Butterworth, t c là bộ lọc Butterworth với số

cực và số zero khác nhau Điều này cĩ lợi trong một số tr ng hợp khi mà việc tính tốn các

cực ph c t p hơn so với các zero Cú pháp hàm maxflat t ơng tự nh hàm butter, nh ng

khác chỗ ta cĩ thể cung cấp hai thơng số bậc c a bộ lọc, một cho đa th c tử số và một cho

đa th c mẫu số

Ngày đăng: 31/01/2023, 20:19

🧩 Sản phẩm bạn có thể quan tâm