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

thiết kế bộ lọc số iir bằng phương pháp chebyshev

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 (475.89 KB, 28 trang )

TRƯỜNG ĐHKTCN CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA ĐIỆN TỬ
BM Kỹ Thuật Điện Tử
Độc lập - Tự do - Hạnh phúc
ĐỒ ÁN MÔN HỌC
MÔN HỌC: THIẾT KẾ MẠCH TÍCH HỢP SỐ
Nhóm Sinh viên: 1.Nguyễn Thị Hiền
2. Nguyễn Thị Hoa
3.Tăng Thị Ngân
4.Hoàng Thị Thủy
Lớp: 47B1 Ngành: Kỹ thuật điện tử
Ngày giao đề: Ngày hoàn thành:
1.Tên đề tài: Thiết kế mạch lọc số IIR
2. Nội dung thuyết minh tính toán
- Phân tích bài toán và xác định yêu cầu
- Cơ sở lý thuyết
- Lựa chọn giải pháp giải pháp thiết kế
- Thuyết minh tính toán cụ thể
- Chương trình, mô phỏng trên matlab
Thông qua phần
Xác định yêu cầu
Thông qua phần
thiết kế
Thông qua phần
xây dựng hệ thống
Đồng ý cho bảo
vệ
TRƯỞNG BỘ MÔN GIÁO VIÊN HƯỚNG DẪN
Nhận xét của giáo viên hướng dẫn






Thái Nguyên, ngày tháng Năm 20
Giáo Viên hướng dẫn
(Ký ghi rõ họ tên)
Nhận xét của giáo viên chấm




Thái Nguyên, ngày tháng Năm 20
Giáo Viên hướng dẫn
(Ký ghi rõ họ tên)
MỤC LỤC
LỜI NÓI ĐẦU
Tín hiệu xuất hiện hầu như ở tất cả các ngành khoa học và kỹ
thuật; ví dụ như trong âm học, sinh học, thông tin liên lạc, hệ thống
điều khiển, rada, vật lý học, địa chất học và khí tượng học. Có hai
dạng tín hiệu được biết đến. Đó là tín hiệu liên tục theo thời gian và
tín hiệu rời rạc theo thời gian.
Một tín hiệu rời rạc, cũng như một tín hiệu liên tục, có thể được
biểu diễn bởi một hàm của tần số và được biết đến như là phổ tần
của tín hiệu. Lọc số là một quá trình mà ở đó phổ tần của tín hiệu có
thể bị thay đổi, biến dạng tùy thuộc vào một số đặc tính mong muốn.
Nó có thể dẫn đến sự khuếch đại hoặc suy giảm trong một dải tần
số, bỏ đi hoặc cô lập một thành phần tần số cụ thể,… Sử dụng bộ lọc
số có rất nhiều vẻ, ví dụ như: Để loại đi thành phần làm bẩn tín hiệu
như nhiễu, loại bỏ méo xuyên giữa các kênh truyền dẫn hoặc sai lệch
trong đo lường, để phân tách hai hoặc nhiều tín hiệu riêng biệt đã

được trộn lẫn theo chủ định nhằm cực đại hóa sự sử dụng kênh
truyền, để phân tích các tín hiệu trong các thành phần tần số của
chúng, để nén tín hiệu, để truyền tín hiệu rời rạc theo thời gian sang
tín hiệu liên tục theo thời gian.
Bộ lọc số là một hệ thống số có thể được sử dụng để lọc các tín
hiệu rời rạc theo thời gian. Có nhiều phương pháp để nghiên cứu,
tổng hợp cũng như thiết kế bộ lọc số, điển hình là hai phương pháp
thiết kế bộ lọc số có đáp ứng xung hữu hạn (FIR) và phương pháp
thiết kế bộ lọc số có đáp ứng xung vô hạn (IIR).
Đồ án này trình bày phương pháp thiết kế bộ lọc số có đáp ứng
xung vô hạn (IIR). Các phân tích, tính toán, so sánh với các phương
pháp khác dựa trên nền tảng của ngôn ngữ MatLab
Em xin chân thành cảm ơn thầy giáo TS. Nguyễn Phương Huy
cùng các anh, chị khóa trên đã tận tình giúp đỡ để chúng em hoàn
thành đồ án này.
Xong do trong quá trình thực hiện kiến thức còn rất hạn chế và
trong thời gian ngắn nên chúng em còn nhiều thiếu sót mong thầy cô
3
và các bạn sinh viên đóng góp ý kiến để đồ án của của chúng em
được hoàn thiện hơn.
Chúng em xin chân thành cảm ơn!
CHƯƠNG 1: BỘ LỌC SỐ
Bộ lọc số là một trong những lĩnh vực quan trọng nhất của ngành
xử lý tín hiệu số. Được ứng dụng rộng rãi trong hầu khắp các lĩnh vực
thông tin số, như xử lý tiếng nói, hình ảnh, video, truyền dẫn tín
hiệu…
1.1 Các phương pháp tổng hợp bộ lọc số
Bộ lọc số có đáp ứng xung chiều dài hữu hạn (FIR):
- Phương pháp cửa sổ.
- Phương pháp lấu mẫu tần số.

- Phương pháp lặp.
Bộ lọc số có đáp ứng xung chiều dài vô hạn (IIR):
- Phương pháp bất biến xung.
- Phương pháp biến đổi song tuyến.
- Phương pháp tương đưng vi phân.
1.2 Đặc tuyến tần số của bộ lọc số lý tưởng
Việc thiết kế các bộ lọc số thực tế đều đi từ lý thuyết các bộ lọc
số lý tưởng. Ta sẽ tiến hành nghiên cứu bốn bộ lọc số tiêu biểu là:
- Bộ lọc số thông thấp
- Bộ lọc số thông cao
- Bộ lọc số thông dải
- Bộ lọc số chắn dải
4
Lọc ở đây ta hiểu là lọc tần số chính, vì vậy mà tất cả các đặc
trưng của lọc tần số đều được cho theo đáp ứng biên độ.
1.2.1. Bộ lọc thông thấp lý tưởng
Định nghĩa: Bộ lọc thông thấp lý tưởng có đặc tính biên độ tần
số khi
[ ]
,
ω π π
∈ −
như sau:
1 [ , ]
( )
0 [ , ] µ [ , ]
c c
j
hp
c c

Khi
H e
Khi v
ω
ω ω ω
ω π ω ω ω π
∈ −

=

∈ − − ∈

Hình 1: Đồ thị đáp ứng biên độ của bộ lọc số thông thấp lý
tưởng
Các tham số thực của bộ lọc thông thấp lý tưởng
- Tần số cắt :
c
f
- Dải thông : f p [0,
c
f
]
- Dải chặn : f s [
c
f
,∞]
Bộ lọc thông thấp lý tưởng cho tín hiệu số có phổ nằm trong dải
tần
c
f f<

đi qua, chặn không chi tín hiệu số trong dải tần
c
f f>
đi
qua.
1.2.2. Bộ lọc thông cao lý tưởng
Định nghĩa: Bộ lọc thông cao lý tưởng có đặc tính biên độ tần
số khi
[ ]
,
ω π π
∈ −
như sau:
5
1 [ , ] µ [ , ]
( )
0 [ , ]
c c
j
hp
c c
Khi v
H e
Khi
ω
ω π ω ω ω π
ω ω ω
∈ − − ∈

=


∈ −

Hình 2: Đồ thị đáp ứng biên độ của bộ lọc số thông cao lý tưởng
Các tham số thực của bộ lọc thông cao lý tưởng
- Tần số cắt :
c
f
- Dải thông: f p [
c
f
,∞]
- Dải chặn : f s [0,
c
f
]
Bộ lọc thông cao lý tưởng cho tín hiệu số có phổ nằm trong dải
tần f >
c
f
đi qua, chặn không cho tín hiệu trong dải tần f <
c
f
đi qua.
1.2.3. Bộ lọc thông dải lý tưởng
Định nghĩa: Bộ lọc dải thông lý tưởng có đặc tính biên độ tần
số khi
[ ]
,
ω π π

∈ −
như sau:
2 1
1 2

1
( )
0
c c
j
c c
còn la
H e
i
ω

−ω ≤ ω ≤ −ω

 
=
ω ≤ ω ≤ ω



ω

6
Hình 3: Đồ thị đáp ứng biên độ của bộ lọc số thông dải lý
tưởng.
Các tham số của bộ lọc dải thông lý tưởng

- Tần số cắt :
1 2
,
c c
f f
- Dải thông : f ϵ [
1 2
,
c c
f f
]
- Dải chặn : f ϵ [0,
1c
f
] và [
2c
f
,∞]
Bộ lọc dải thông lý tưởng cho tín hiệu số có phổ nằm trong dải
tần số
1 2c c
f f f< <
đi qua , chặn không cho tín hiệu ngoài dải tần đó đi
qua.
1.2.4. Bộ lọc chắn dải lý tưởng
Định nghĩa: Bộ lọc dải chặn lý tưởng có đặc tính biên độ tần
số khi
[ ]
,
ω π π

∈ −
như sau:
2
1 2
2
( )

1
0
c
c c
j
c
H
c
e
òn lai
ω

−π ≤ ω ≤ −ω



ω ≤ ω ≤ ω
 
=


ω ≤ ω ≤ π




ω

Hình 4: Đồ thị đáp ứng biên độ của bộ lọc số chắn dải lý tưởng.
7
1.3. Đặc tuyến tần số bộ lọc thực tế
Tất cả bộ lọc số lý tưởng có đặc tính biên độ tần số dạng chữ
nhật, nên đặc tính xung của chúng đều là dãy không nhân quả có độ
dài vô hạn , vì thế không thể thực hiện được các bộ lọc lý tưởng .
Đặc tính biên độ tần số của bộ lọc số thực tế thường có độ
nhấp nhô trong dải thông và dải chặn , với hai biên là sườn dốc như
hình 1-11.
Hình 5: Đặc tính biên độ tần số của bộ lọc thông thấp thực tế
Để đặc trưng cho bộ lọc thực tế , người ta sử dụng các tham số
sau :
1. Loại bộ lọc : Thông thấp, thông cao, dải thông, dải chặn
2. Tần số giới hạn giải thông
c
ω
(hay f
c
).
3. Tần số giới hạn dải chặn
p
ω
(hay f
p
).
4. Độ rộng dải quá độ

cpp
ωωω
−=∆
(hay
p
f

)
5. Độ nhấp nhô trong dải thông
1
δ
. Trong dải thông, đặc
tính biên độ tần số
)(
ω
j
bp
eH
phải thỏa mãn điều kiện
( )
≤−
1
1
δ
)(
ω
j
bp
eH
( )

1
1
δ
+≤
8
6. Độ nhấp nhô trong dải chặn
2
δ
. Trong dải chặn đặc tính
biên độ tần số
)(
ω
j
bp
eH
phải thoả mãn điều kiện :
)(
ω
j
bp
eH
2
δ

Bộ lọc thực tế có
p
ω

,
1

δ

2
δ
càng nhỏ thì dặc tuyến biên độ
tần số càng gần giống dạng chữ nhật , nên độ chọn lọc tín hiệu càng
tốt.
9
CHƯƠNG 2: THIẾT KẾ BỘ LỌC SỐ IIR BẰNG PHƯƠNG
PHÁP CHEBYSHEV 2
2.1.Giới thiệu bộ lọc số IIR
Bộ lọc số IIR là bộ lọc có đáp ứng xung chiều dài vô hạn
Tương tự với bộ lọc số FIR, tổng hợp bộ lọc số IIR chỉ xét đến
quá trình xác định các hệ số bộ lọc sao cho thỏa mãn các chỉ tiêu kỹ
thuật trong miền tần số:
1 2
, , ,
p s
δ δ
ω ω
.
Nội dung các phương pháp để tổng hợp bộ lọc số IIR trên cơ sở
lọc tương tự, tức là tổng hợp bộ lọc tương tự trước, sau đó dùng các
phương pháp chuyển đổi tương đương một cách gần đúng từ bộ lọc
tương tự sang bộ lọc số.
Hàm truyền đạt:
( )
0
0
m

r
r
r
z
n
k
k
k
b Z
H
a Z

=

=
=


Đáp ứng tần:
( )
( )
|
jw
jw
z
z e
e
H H
=
=

10
2.2 Các phương pháp chính để chuyển từ bộ lọc tương tự
sang số
Tương tự với bộ lọc số FIR, tổng hợp bộ lọc số IIR chỉ xét đến
quá trình xác định các hệ số bộ lọc sao cho thỏa mãn các chỉ tiêu kỹ
thuật trong miền tần số:
1 2
, , ,
p s
δ δ
ω ω
.
Nội dung các phương pháp để tổng hợp bộ lọc số IIR trên cơ sở
lọc tương tự, tức là tổng hợp bộ lọc tương tự trước, sau đó dùng các
phương pháp chuyển đổi tương đương một cách gần đúng từ bộ lọc
tương tự sang bộ lọc số.
Các phương pháp chính để chuyển từ bộ lọc tương tự sang số:
- Phương pháp bất biến xung.
- Phương pháp biến đổi song tuyến.
- Phương pháp tương đương vi phân.
2.2.1. Phương pháp bất biến xung
Nội dung của phương pháp là xác định đáp ứng xung h(n) của
bộ lọc số bằng cách lấy mẫu đáp ứng xung của bộ lọc tương tự h
a
(t):
( ) ( )
s a
t nTs
h nT h t
=

=
Giả thiết hàm truyền đạt H
a
(s) của bộ lọc tương tự có dạng:
1
( )
N
i
a
i
ci
k
H s
s s
=
=


Hàm truyền đạt H(z) của bộ lọc số được chuyển tương đương
theo phương pháp bất biến xung sẽ là:
1
1
(z)
1
ci s
N
i
s T
i
k

H
e z

=
=


2.2.2. Phương pháp biến đổi song tuyến
Nội dung của phương pháp là phép ánh xạ mặt phẳng s của bộ
lọc tương tự sang mặt phẳng z của bộ lọc số.
11
Hàm truyền đạt của bộ lọc số H(z) có thể nhận được từ hàm
truyền đạt bộ lọc tương tự H
a
(s), nếu ta thay:
1
1
2(1 )
(1 )
s
z
s
T z



=
+
Hay quan hệ giữa các hàm truyền đạt H
a

(s) và H(z) là:
1
1
2(1 )
(1 )
( ) (s)
s
z
a
s
T z
H z H



=
+
=
2.2.3. Phương pháp tương đương vi phân
Hàm truyền đạt của bộ lọc số H(z) có thể nhận được từ hàm
truyền đạt bộ lọc tương tự H
a
(s), nếu ta thay:
1
1
s
z
sT
=


Hay quan hệ giữa các hàm truyền đạt H
a
(s) và H(z) là:
1
1
( ) ( )
s
z
a
s
T
H z H s


=
=
2. 3. Ví dụ minh họa
Thiết kế bộ lọc thông thấp theo cấu trúc IIR sử dụng bộ lọc
chebyshev và phương pháp biến đổi song tuyến
2.3.1. Các bước thiết kế
+ Bước 1: Xác định các chỉ tiêu của bộ lọc số :
- Tần số dải thông : fp
- tần số dải chắn :fs
- Độ gợn sóng dải thông : δ1
- Độ gợn sóng dải chắn : δ2
+ Bước 2: Chọn phương pháp chuyển đổi từ bộ lọc số sang tương tự
Gồm 3 phương pháp: - Bất biến xung
- Biến đổi song tuyến
- tương đương vi phân
12

=> chọn phương pháp biến đổi song tuyến
+ Bước 3: Thiết kế bộ lọc tương tự theo các phương pháp
- butterworth
- chebyshev 1
-chebyshev 2
- eliptique
-bessel
=> chọn phương pháp chebyshev 2
+ Bước 4: Chuyển H(s) sang H(z) và H(jw)
2.3.2. Công thức tính toán
• Bộ lọc chebyshev 2: là bộ lọc có đáp ứng biên độ gợn sóng ở
dải chắn và giảm đơn điệu ở dải thông.
- Đáp ứng biện độ của bộ lọc chebyshev2 cho bởi biểu thức

|H
(jw)
|
2
=
( )
( )
2
2
2
1
1
N s p
N s
T
T

ω ω
ε
ω ω
 
+
 
 
 
Tại ω=ω
p
:
2
1
1
1
1
ε
δ
+
= −


Bậc của bộ lọc được tính theo công thức sau:
2
2
2
2
1
1
1

1
ln 1
ln 1
s
s
as as
ap ap
A
A
n
ε ε
ω ω
ω ω
 


 
 
+ −
 
 
 
=
 
 
 
+ −
 ÷
 ÷
 

 
 
 
• Phương pháp biến đổi song tuyến là phép ánh xạ mặt phẳng s
của bộ lọc tương tự sang mặt phẳng z của bộ lọc số.
13
2.3.3. Tính toán cụ thể
Đề bài: thiết kế mạch lọc số IIR sử dụng phương pháp chebyshev 2
với các thông số:
- Tần số dải thông : fp= 40Hz
- tần số dải chắn :fs= 50Hz
- Độ gợn sóng dải thông : δ1=0.3
- Độ gợn sóng dải chắn : δ2=0.34
là tham số, tại ω=ω
p
thi nó được tính bằng công thức:
2
1
1
1
1
ε
δ
+
= −
=>

n là bậc của bộ lọc được tính theo công thức sau:
2
2

2
2
1
1
1
1
ln 1
ln 1
s
s
as as
ap ap
A
A
n
ε ε
ω ω
ω ω
 


 
 
+ −
 
 
 
=
 
 

 
+ −
 ÷
 ÷
 
 
 
 
(1)
Với:
là tần số chuẩn hóa của dải : (2)
là tần số chuẩn hóa của dải thông: (3)

14
50
1,57
200
2
2
s
sr
s
F
π
ωπ
ω
= = =
thay vào phương trình (2) => 2

40

1,26
200
2
2
pr
p
s
F
ω
ω π
π
=
= =
thay vào phương trình (3) => :
Ta có độ gợn sóng dải chặn là:
s
A
=
0.34
Thay các thông số trên vào phương trình (1) ta được bậc của bộ lọc
là: n
1
2
2 2
1 1
1
n
γ
δ δ
 

= − +
 ÷
 ÷
 
=
2.3890
a
R
là chiều dài trục hoành của elipse
1
2
a
R
γ γ


=

=
0.98
b
R
là chiều dài trục tung của elips
1
2
b
R
γ γ

+

=

=
1.4038



2 1

2
k
k
n
u
π

=
với n: là bậc của bộ lọc
Khi: k
=
1:


k
u =
0.7854
k
=
2:



k
u =
2.3562
Để tính các điểm cực của hàm truyền ta sử dụng công thức sau:
15

sin cos. .
k a k bpk k ak
u R us j Rj
σ ω
= + = +
khi k
=
1:
pk
s
=
0.7 +j 0.99
khi k
=
2:
pk
s
=
0.7 - j 0.99
Từ đó ta tính ra được
o
H
( )

2
1
1
1
n
k
k
o p
H s
ε
=
= −
+

=1
Từ đó ta tính được hàm truyền bằng công thức:
2
2 2 2
2
1
H
o
H
s
n
s s
k k ak
k
σ σ ω
=

− + +

=
 
 
 

2
1
1.45 0.69
s
H
s s
=
− +
Để chuyển sang miền H(z) ta thay :
1
1
2 1
.
1
z
s
T z



=
+
1

1
1
400.
1
z
z



=
+
Ta được
16
2
1 1
1 1
1
1 1
400. 1.45 400. 0.69
1 1
s
H
z z
z z
− −
− −
=
   
− −
− +

 ÷  ÷
+ +
   
Sau khi tính toán ta được:
1 2
1 2
1 2
179.31 221.38 980.69
Z
Z
z
Y z z
X z z
H
− −
− −
+ +
= =
− − +
( ) ( )
1 2 1 2
179.31 221.38 980.69 1 2
Z Z
Y z z X z z
− − − −
− − + = + +
( ) ( )
1 2 1 2
1 2 221.38 980.69
179.31

Z Z
Z
X z z Y z z
Y
− − − −
+ + + − +
=

Biến đổi z ngược ta có :
( ) ( ) ( )
( ) ( )
211.38 980.7 1
1 2 0
179.31 179.31 179.31
2 1
1 2
179.31 179.31
n
y n y n xy n
x n x n
= − − − + −
+ − + −
=>cấu trúc bộ lọc
17
2.3.4 Tính toán trên công cụ matlab
Chương trình:
clear all;clc
%% Chi tieu bo loc can thiet ke
Fs=200; % tan so lay mau
fp=40; % tan so gioi han dai thong

fs=50; % tan so gioi han dai chan
xmp=0.3; % gon song dai thong
xms=0.34; % gon song dai chan
%%
Ts=1/Fs; % chu ky lay mau
Ap=abs(20*log10(1-xmp)); % gon song dai thong (dB)
As=abs(20*log10(xms)); % gon song dai chan (dB)
wp=fp/(Fs/2); % fp chuan hoa theo 1
ws=fs/(Fs/2); % fs chuan hoa theo 1
wpr=fp*pi/(Fs/2); % fp chuan hoa thep pi
wsr=fs*pi/(Fs/2); % fs chuan hoa theo pi
w=0:pi/1023:pi; % vecto tan so
18
%% Chon kieu bo loc
filter_type = 'cheby2'; % butter, cheby1, cheby2
switch filter_type
case 'butter'
[n,wc] = buttord(wp,ws,Ap,As); % xác đinh bac cua bo loc
[b1,a1] = butter(n,wc); % xác đinh he so cua pt Hz b: tu a:
mau
case 'cheby1'
[n,wc] = cheb1ord(wp,ws,Ap,As);
[b1,a1] = cheby1(n,Ap,wc);
case 'cheby2'
[n,wc] = cheb2ord(wp,ws,Ap,As);
[b1,a1] = cheby2(n,As,wc);
end
%%
Hejw=freqz(b1,a1,w); % xác đinh đap ung tan so Hejw
cswprarr=1;

while w(cswprarr+1)<wpr
cswprarr=cswprarr+1;
end % xác đinh khoang gioi han dai thong va dai chan
cswsrarr=cswprarr;
while w(cswsrarr)<wsr
cswsrarr=cswsrarr+1;
end
xmpr=max(abs(1-abs(Hejw(1:cswprarr)))); %do gon song dai thong
xmsr=max(abs(Hejw(cswsrarr:end))); %do gon song dai chan
%%
Str01=sprintf('Kieu bo loc: %s', filter_type);
Str02=sprintf('Bac bo loc: %d', n); % man hinh coman
Str03=sprintf('Gon song dai thong thuc: %f',xmpr);
Str04=sprintf('Gon song dai chan thuc: %f',xmsr);
fprintf('%s\n%s\n%s\n%s\n',Str01,Str02,Str03,Str04)
%%
figure(1)
% Ve dap ung bien do
subplot(221);hold on;grid on % chia man hinh ra ve do thi thanh nhiu
phan hold on: giu lai phan do thida ve truoc do,grid on: bat luoi do thi
plot(w/pi*Fs/2,abs(Hejw))
title('Dap ung bien do')
xlabel('Tan so (Hz)');ylabel('H(ejw)')
plot([0 fs],[1+xmp 1+xmp],'r ')
plot([0 fp],[1-xmp 1-xmp],'r ') % ve duong bao
plot([fp fp],[0 1-xmp],'r ')
plot([fs fs],[xms 1+xmp],'r ')
plot([fs Fs/2],[xms xms],'r ')
% Ve dap ung pha
subplot(222);hold on;grid on

plot(w/pi*Fs/2,unwrap(angle(Hejw))) % xac dinh dap ung pha, angle:goc pha
title('Dap ung pha')
xlabel('Tan so (Hz)');ylabel('Goc pha')
% Ve dap ung bien do (dB)
subplot(223);hold on;grid on
plot(w/pi*Fs/2,20*log10(abs(Hejw))) %ve duong
title('Dap ung bien do')
xlabel('Tan so (Hz)');ylabel('H(ejw) (dB)')
Log10AxisBottom=-As-50;
axis([0 Fs/2 Log10AxisBottom 1])
% Ve dap ung xung
[h,t]=impz(b1,a1,25); % tinh ra dap ung xung 25: do dai xung can ve
subplot(224);hold on;grid on
19
stem(t,real(h)) % ve xung(diem)
title('Dap ung xung h(n)')
xlabel('n');ylabel('h(n)')
%%
figure(2) %tao cua so moi de ve do thi
% Bieu dien diem khong va diem cuc
subplot(211);zplane(b1,a1)
title('Diem khong va diem cuc');
% Tre nhom va tre pha (thoi gian truyen nhom)
gd = grpdelay(b1,a1,length(w));
gd(1) = []; % Avoid NaNs
TempH1 = Hejw; Tempw = w;
Tempw(1) = []; % Avoid 'Divide by zero'
TempH1(1) = []; % To be the same size as Tempw
pd = -unwrap(angle(TempH1))./Tempw;
subplot(212);plot(Tempw,gd,Tempw,pd,':')

xlabel('Tan so (rad/sec)');
ylabel('Delay (Samples)');
legend('Tre nhom','Tre pha');
title('Tre nhom va tre pha');
axis ([0 pi -1 20]);
Kết quả thu được:
20
21
-3 -2 -1 0 1 2 3
-1
-0.5
0
0.5
1
Real Part
Imaginary Part
Diem khong va diem cuc
0 0.5 1 1.5 2 2.5 3
0
5
10
15
20
Tan so (rad/sec)
Delay (Samples)
Tre nhom va tre pha


Tre nhom
Tre pha

0 50 100
0
0.5
1
1.5
Dap ung bien do
Tan so (Hz)
H(ejw)
0 50 100
-3
-2
-1
0
1
Dap ung pha
Tan so (Hz)
Goc pha
0 50 100
-40
-20
0
Dap ung bien do
Tan so (Hz)
H(ejw) (dB)
0 10 20 30
-0.2
0
0.2
0.4
0.6

Dap ung xung h(n)
n
h(n)
Nhận xét:
22
Ta thấy kết quả tính toán thực tế và tính toán trên matlab là trùng
nhau
=>Ta có thể dùng matlab để giải quyết những bài toán thiết kế
tương tự bài toán bên trên.
2.4. Bài toán cụ thể
Đề bài: thiết kế mạch lọc số IIR sử dụng phương pháp chebyshev 2
với các thông số:
- Tần số dải thông : fp= 3900Hz
- tần số dải chắn :fs= 4100Hz
- Độ gợn sóng dải thông : δ1=0.1
- Độ gợn sóng dải chắn : δ2=0.1
Ta sử dụng công cụ matlab để giải quyết bài toán
-chương trình:
clear all;clc
%% Chi tieu bo loc can thiet ke
Fs=16000; % tan so lay mau
fp=3900; % tan so gioi han dai thong
fs=4100; % tan so gioi han dai chan
xmp=0.1; % gon song dai thong
xms=0.1; % gon song dai chan
%%
Ts=1/Fs; % chu ky lay mau
Ap=abs(20*log10(1-xmp)); % gon song dai thong (dB)
As=abs(20*log10(xms)); % gon song dai chan (dB)
wp=fp/(Fs/2); % fp chuan hoa theo 1

ws=fs/(Fs/2); % fs chuan hoa theo 1
wpr=fp*pi/(Fs/2); % fp chuan hoa thep pi
wsr=fs*pi/(Fs/2); % fs chuan hoa theo pi
w=0:pi/1023:pi; % vecto tan so
%% Chon kieu bo loc
filter_type = 'butter'; % butter, cheby1, cheby2
switch filter_type
case 'butter'
[n,wc] = buttord(wp,ws,Ap,As); % xác đinh bac cua bo loc
[b1,a1] = butter(n,wc); % xác đinh he so cua pt Hz b:
tu a: mau
23
case 'cheby1'
[n,wc] = cheb1ord(wp,ws,Ap,As);
[b1,a1] = cheby1(n,Ap,wc);
case 'cheby2'
[n,wc] = cheb2ord(wp,ws,Ap,As);
[b1,a1] = cheby2(n,As,wc);
end
%%
Hejw=freqz(b1,a1,w); % xác đinh đap ung tan so Hejw
cswprarr=1;
while w(cswprarr+1)<wpr
cswprarr=cswprarr+1;
end % xác đinh khoang gioi han dai thong va dai
chan
cswsrarr=cswprarr;
while w(cswsrarr)<wsr
cswsrarr=cswsrarr+1;
end

xmpr=max(abs(1-abs(Hejw(1:cswprarr)))); %do gon song dai thong
xmsr=max(abs(Hejw(cswsrarr:end))); %do gon song dai chan
%%
Str01=sprintf('Kieu bo loc: %s', filter_type);
Str02=sprintf('Bac bo loc: %d', n); % man hinh
coman
Str03=sprintf('Gon song dai thong thuc: %f',xmpr);
Str04=sprintf('Gon song dai chan thuc: %f',xmsr);
fprintf('%s\n%s\n%s\n%s\n',Str01,Str02,Str03,Str04)
%%
figure(1)
% Ve dap ung bien do
subplot(221);hold on;grid on % chia man hinh ra ve do thi thanh
nhiu phan hold on: giu lai phan do thida ve truoc do,grid on: bat luoi do
thi
plot(w/pi*Fs/2,abs(Hejw))
title('Dap ung bien do')
xlabel('Tan so (Hz)');ylabel('H(ejw)')
plot([0 fs],[1+xmp 1+xmp],'r ')
plot([0 fp],[1-xmp 1-xmp],'r ') % ve duong bao
plot([fp fp],[0 1-xmp],'r ')
plot([fs fs],[xms 1+xmp],'r ')
plot([fs Fs/2],[xms xms],'r ')
24
% Ve dap ung pha
subplot(222);hold on;grid on
plot(w/pi*Fs/2,unwrap(angle(Hejw))) % xac dinh dap ung pha, angle:goc
pha
title('Dap ung pha')
xlabel('Tan so (Hz)');ylabel('Goc pha')

% Ve dap ung bien do (dB)
subplot(223);hold on;grid on
plot(w/pi*Fs/2,20*log10(abs(Hejw))) %ve duong
title('Dap ung bien do')
xlabel('Tan so (Hz)');ylabel('H(ejw) (dB)')
Log10AxisBottom=-As-50;
axis([0 Fs/2 Log10AxisBottom 1])
% Ve dap ung xung
[h,t]=impz(b1,a1,25); % tinh ra dap ung xung 25: do dai xung
can ve
subplot(224);hold on;grid on
stem(t,real(h)) % ve xung(diem)
title('Dap ung xung h(n)')
xlabel('n');ylabel('h(n)')
%%
figure(2) %tao cua so moi de ve do thi
% Bieu dien diem khong va diem cuc
subplot(211);zplane(b1,a1)
title('Diem khong va diem cuc');
% Tre nhom va tre pha (thoi gian truyen nhom)
gd = grpdelay(b1,a1,length(w));
gd(1) = []; % Avoid NaNs
TempH1 = Hejw; Tempw = w;
Tempw(1) = []; % Avoid 'Divide by zero'
TempH1(1) = []; % To be the same size as Tempw
pd = -unwrap(angle(TempH1))./Tempw;
subplot(212);plot(Tempw,gd,Tempw,pd,':')
xlabel('Tan so (rad/sec)');
ylabel('Delay (Samples)');
legend('Tre nhom','Tre pha');

title('Tre nhom va tre pha');
axis ([0 pi -1 20]);
-kết quả thu được
25

×