4 firdesign vn
DESCRIPTION
âsdasTRANSCRIPT
NỘI DUNG
Những khái niệm căn bản về thiết kế
Thiết kế sử dụng cửa sổ (Window)
Các loại cửa sổ
Thực hiện bằng Matlab
Thiết kế lấy mẫu tần số (Frequency sampling)
Phương pháp thiết kế tối ưu (Optimum design method)
Thiết kế có độ gợn sóng đều tối ưu (Optimal Equiripple
Design Technique)
Giới thiệu Hai hệ thống quan trọng trong DSP:
Bộ lọc số (Digital filters): lọc tín hiệu trong miền thời
gian
Bộ phân tích phổ (Spectrum analyzers): phân tích và
biểu diễn tín hiệu trong miền tần số
Nội dung
Các phương pháp thiết kế cơ bản cho FIR & IIR.
Các kiểu chọn lọc tần số (frequency selective): thông
thấp, thông cao, thông dải và chắn dải.
Ngoài ra, các bộ chuyển đổi vi phân (Differentiators)
hay Hilbert.
Cần biết:
Mô tả đặc tính và nguyên lý thiết kế
Áp dụng được cho FIR và IIR
Quá trình thiết kế
Thực hiện 3 bước: Mô tả đặc tính đầu vào (Input Specifications): tùy thuộc
ứng dụng
Xấp xỉ (Approximations): xấp xỉ các yêu cầu đã chobằng cách dùng các công cụ toán.
Thực hiện (Implementation):
Bước trung gian (Intermedium): Mô tả bộ lọc dướidạng phương trình sai phân (difference equation), hàm truyền H(z), hay đáp ứng xung h(n).
Đầu ra (Output): Từ mô tả này, thực hiện bộ lọc trênphần cứng hay phần mềm trên máy tính.
Quá trình thiết kế
Input Specifications: mô tả trong miền tần số
Approximation: có nhiều phương pháp thiết kế khácnhau, chiều dài bộ lọc khác nhau (dẫn đến các bộ lọcFIR khác nhau cùng thỏa mãn yêu cầu ban đầu)
Implementation:
Intermedium: OK!
Output: liên quan đến cấu trúc bộ lọc – dạng trựctiếp (direct form), pha tuyến tính (linear phase), lấymẫu tần số (frequency sampling), hay lattice
Mô tả đặc tính
Trong các ứng dụng về âm thanh và tiếng nói, bộ lọc số
dùng để thực hiện việc chọn lọc tần số.
Đặc tính yêu cầu được mô tả trong miền tần số, dưới
dạng biên độ và pha.
Pha tuyến tính thường được yêu cầu trong miền thông
dải.
Bộ lọc FIR: có thể cho pha tuyến tính một cách chính
xác.
Bộ lọc IIR: pha tuyến tính trong miền thông dải không
đạt được.
Vì vậy, chỉ xem xét đặc tính về biên độ
Đặc tính về biên được cho dưới 1 trong 2 dạng sau:
Tuyệt đối (Absolute specifications)
Tương đối (Relative specifications)
Absolute Specifications
Cung cấp các yêu cầu với đáp ứng biên độ
Thường dùng cho bộ lọc FIR
Các đặc tính của bộ lọc thông thấp:
Dải [0,wp] gọi là dải thông, và là độ gợn chấp nhận
được trong khoảng dải thông.
Dải [ws,pi] gọi là dải chắn, và là độ gợn chấp nhận
được.
Dải [wp, ws] gọi là khoảng chuyển tiếp, thường không
có rang buộc về biên độ trong dải này
1
2
)( jweH
Relative Specifications
RP là độ gợn trong dải thông, tính bằng dB (decibel)
AS là độ suy hao trong dải chắn, dB
Các công thức liên quan:
Ex 7.1 & 7.2
stopbandfor 01
log20
passbandfor01
1log20
1
210
1
110
s
p
A
R
0144.01
1log2025.0 1
1
110
dBRp
0032.01
log2050 2
1
210
dBAs
Chú ý
Tương tự, có thể mô tả đặc tính cho các loại bộ lọc chọn
lọc tần số khác
Các tham số quan trọng nhất là:
Độ gợn (ripple) chấp nhận được
Đầu cuối (band-edge) của các khoảng tần số
Dải thông hay dải chắn không phải là vấn đề lớn
Trước tiên, xem xét bộ lọc thông thấp !
Mô tả bài toán
Đầu vào (Input): cho dải thông [0,wp] với độ gợn δ1 (or
Rp in dB) và dải chắn [ws,pi] với độ gợn δ2 (or As in dB)
Đầu ra (Output): thiết kế bộ lọc thông thấp (i.e., tìm hàm
truyền H(z) hay phương trình sai phân)
Phương pháp thiết kế bằng cửa sổ
Ý tưởng cơ bản:
Chọn một bộ lọc chọn lọc tần số lí tưởng thích hợp (luôn luôn có
đáp ứng xung không nhân quả và có chiều dài vô hạn)
Xén (bằng cách đặt một cửa sổ) đáp ứng xung để có được bộ
lọc FIR nhân quả và có pha tuyến tính.
Chú ý:
Cửa sổ thích hợp
Bộ lọc lí tưởng thích hợp
Bộ lọc thông thấp lí tưởng (LPF) được cho như sau:
- wc là tần số cắt, α là độ trễ
- Biên độ bằng 1, pha tuyến tính trong dải thông, bằng không trong
dải chắn.
||0
||,1)(
ww
wweeH
c
c
wj
jw
d
Cửa sổ (Windowing)
Đáp ứng xung lí tưởng:
hd(n) đối xứng quanh alpha, yếu tố quan trọng để có pha
tuyến tính trong bộ lọc FIR.
Để thu được bộ FIR nhân quả và có pha tuyến tính, với
h(n) có chiều dài M, phải có:
)(
)](sin[)(
2
1)()( 1
n
nwdweeHeHFnh cjwnjw
d
jw
dd
2
1and,
0
10)()(
M
elsewhere
Mnnhnh
d
Xén như thế nào?
h(n) tạo ra bằng cách thực hiện phép nhân sau:
Tùy thuộc vào w(n) mà ta có các phương pháp khác
nhau
Trong miền tần số, ta có:
otherwise,0
10overαtorespectwithfunctionsymmetricsome)(
)()()(
Mnnw
nwnhnh d
deHeWeWeHeH wjjjwjwjwdd )()(
2
1)()()( )(
Nhận xét
Do cửa sổ w(n) có chiều dài hữu hạn M, đáp ứng tần sốcủa nó có một búp chính (main lobe) với độ rộng tỉ lệ với1/M, và các búp phụ (side lobe) có độ cao thấp hơn.
Phép tích chập gây ra sự sái dạng của đáp ứng lí tưởngHd(e
jw)
Búp chính (main lobe) tạo nên khoảng chuyển tiếp trongH(ejw) mà độ rộng của nó tạo ra độ rộng khoảng chuyểntiếp. Vì vậy, độ rộng này tỉ lệ với 1/M. Búp chính càngrộng, khoảng chuyển tiếp càng rộng.
Búp phụ (side lobe) tạo ra gợn sóng (ripple) mà nó códạng giống nhau trong cả dải thông và dải chắn: Gibbs phenomenon
Những vấn đề quan trọng của phương pháp
cửa sổ
Với yêu cầu cho trước, chọn chiều dài M và cửa sổ w(n)
sao cho có được búp chính hẹp nhất (narrowest) và độ suy
hao của búp phụ là lớn nhất.
Từ nhận xét số 4, không thể chọn được độ gợn delta1
trong dải thông và độ gợn delta2 trong dải chắn một cách
độc lập. Thường ta chỉ quan tâm đến delta2 từ đó chọn
delta2 = delta1.
Các loại cửa sổ khác nhau
Rectangular window
Bartlett window
Hanning window
Hamming window
Blackman window
Kaiser window
Cửa sổ chữ nhật (rectangular window)
wM
jwM
jjw
r
jw ew
wM
eeWeW
else
Mnnw
2
1
2
1
)2
sin(
)2
sin(
)()(
,0
10,1)(
Gibbs
Phenomenon
Mw
8.1
Hamming Windowing
A raised cosine window with slight discontinuity:
otherwise
MnM
n
nw
,0
10),1
2cos(46.054.0
)(
Mw
6.6
Blackman Windowing
A raised cosine window with a 2nd harmonic term:
otherwise
MnM
n
M
n
nw
,0
10),1
4cos(08.0)
1
2cos(5.042.0
)(
Mw
11
Optimal Windowing -- Kaiser Window
Với độ suy hao trong dải chắn cho trước, liệu có thể chọn được
khoảng chuyển tiếp có độ rộng nhỏ nhất -- Kaiser windowing
is a modified zero-th order Bessel function of 1st kind (normally
15 terms are enough).
Tham số quyết định sự đánh đổi (trade-off) giữa độ rộng búp
chính và độ cao của búp phụ, thường
1
2
0
0
2
0
!
)2/(1)(
10 ,)(
)1
21(1
)(
m m
xm
xI
MnI
M
nI
nw
94
dB 50 atten. stopbandmin 8.5
538.4
dB 60 atten. stopbandmin 8.7
658.5
Mw
Mw
)(0 xI
Example About Kaiser Windowing
Design Procedure:
5021 ),7.8(07886.0
)21(5842.0
50 ),7.8(1102.0
136.14
95.7order filter
2
,,
4.0
,
ss
s
ss
s
ps
spsp
AA
A
AA
f
AM
wwf
ARwwGiven
Mw
8.7
Matlab Implementation
W=boxcar(M): rectangular window
W=triang(M): bartlett window
W=hanning(M)
W=hamming(M)
W=blackman(M)
W=kaiser(M,beta)
Ex 7.9
5021 ),7.8(07886.0
)21(5842.0
50 ),7.8(1102.0
136.14
95.7order filter
2
,,
4.0
,
ss
s
ss
s
ps
spsp
AA
A
AA
f
AM
wwf
ARwwGiven
Phương pháp thiết kế lấy mẫu tần số
(Frequency Sampling Design) Why Frequency Sampling? Phương pháp cửa sổ cần biết
nhưng đôi khi không dễ dàng tính được !
Để lấy mẫu tần số, ta chỉ cần lấy mẫu M điểm của
Chúng ta có thể thu được một cách chính xác H(z) dựa
trên M mẫu này. How ?
)(nhd
)( jw
d eH
Ý tưởng cơ bản
Hàm truyền H(z) có thể thu được từ các mẫu H(k) của đáp
ứng tần số H(ejw):
Trên đường tròn đơn vị, z=ejw, ta có:
1
0
1
0/211
)(1)()(
M
n
M
kMkj
Mn
ez
kH
M
zznhzH
1
0/21
)(1)(
M
kMkjjw
jwMjw
ee
kH
M
eeH
Minh họa
Cho bộ lọc thông thấp lí tưởng Hd(ejw), chọn chiều dài M và
lấy mẫu Hd(ejw) tại M tần số cách đều nhau giữa 0 và 2pi.
Đáp ứng thực sự (actual response) là sự nội suy
(interpolation) của các mẫu (samples)
Nhận xét
Sai số xấp xỉ (approximation error)—chính là sự sai khác
giữa đáp ứng lí tưởng và đáp ứng thực sự—bằng 0 tại các
tần số lấy mẫu.
Sai số xấp xỉ tại các vị trí khác tùy thuộc vào hình dáng của
bộ lọc lí tưởng: bộ lọc lí tưởng càng dốc (sharp) thì sai số
càng lớn.
Sai số lớn tại biên của các dải tần (band edge) và nhỏ hơn
ở bên trong các dải (within the band).
Phương pháp thiết kế
Phương pháp đơn giản (Naive design method): Sử dụng
nguyên ý tưởng căn bản, không rang buộc bất cứ điều
kiện nào về sai số xấp xỉ, nghĩa là chấp nhậ bất kì sai số
nào sau thiết kế.
Phương pháp thiết kế tối ưu (Optimum design method): tối
thiểu hóa sai số trong dải chắn bằng cách thay đổi giá trị
của mẫu trong khoảng chuyển tiếp.
Thực hiện ?
Đặc điểm khi lấy mẫu: H(k) = Hd(ej2pik/M), k = 0,…, M-1
H(k) đối xứng liên hợp phức (conjugate symmetry) (vì h(n) là số
thực), ví dụ |H(k)|=1 trong dải thông, |H(k)|=0 trong miền còn lại.
Pha tuyến tính (linear phase)
Luôn lấy mẫu trong khoảng
)]([)( kHIDFTnh
1
0/21
)(1)(
M
kMkjjw
jwMjw
ee
kH
M
eeH
1,2,1)(
0),0()()(
*
/2
MkkMH
kHeHkH Mkj
)(2)( kHj
r eM
kHkH
)2,0[
Ex 7.14
Consider to design a linear phase lowpass FIR filter
of M=20 (Type 2):
The frequencies we have to sample
Passband covers
The rest = transition and stopband =0
dBAw
dBRw
ss
pp
50 ,3.0
25.0 ,2.0
kk
wk
1.0
20
2
,9.1,8.1
,2.0 ,1.0,0
119218
210
wwww
wwww p
H r (k) = [11100000000000000011]
ÐH (k) =-awk = -9.5 × 0.1pk, 0 £ k £ 9
a(2p - wk ) = 9.5p × (2 - 0.1k), 10 £ k £19
ì
íï
îï
Note that the stopband attenuation = 16 dB (does not
satisfy the given spec.) --> increase the length
(sample more H(k) points)
Let us increase the sample points number M=40
(Type 2)
The frequencies we have to sample
Passband covers
The transition band covers
The rest are stopband, in total 29 zeros.
kk
wk
05.040
2
3920),05.02(5.19)2(
190,05.05.19)(
]1111000...00011111[)(
)()(
11
)(
kkw
kkwkH
TTkH
ekHkH
k
k
r
kHj
r
3938373643210 ,,,,,,,, wwwwwwwwwww pp
1355 )()( TwHwH
Ex 7.15
Phương pháp thiết kế tối ưu
(Optimum Design Method)
Để tăng suy hao, phải tăng M và tạo ra các mẫu tự do
trong miền chuyển tiếp.
Thay đổi giá trị của các mẫu này để có được độ suy hao
lớn nhất với M và khoảng chuyển tiếp cho trước.
Đây là bài toán tối ưu (optimization), và giải bằng kĩ thuật
linear programming (quy hoạch tuyến tính).
Ưu điểm: bằng cách thay đổi giá trị mẫu, ta có thể thu
được kết quả tốt hơn !
Giải thích
Trên thực tế, khoảng chuyển tiếp thường nhỏ, chỉ chứa
một hoặc hai mẫu. Do đó, ta cần tối ưu nhiều nhất là hai
mẫu để có được sự suy hao trong dải chắn là tốt nhất.
Điều này tương đương với việc tối thiểu hóa biên độ lớn
nhất của búp phụ (side lobe), theo giá trị tuyệt đối. Vì vậy
bài toán tối ưu này gọi là bài toán Minimax.
Có thể dùng Optimization toolbox để nội suy giữa các mẫu
để ước lượng đáp ứng tần số thực sự (actual frequency
response).
Có thể chọn giá trị theo bảng sau:
Ex. 7.16 Optimum Design
Even though T1=0.39 improves the stopband attenuation
(now 43 dB), still not satisfactory --> M=60 samples
]1...11000...00011...11[)( 1221 TTTTkHr
7 and 6 “ones” in two
sides of passband
separately.
43 “zeros” in
stopband.
BW=7
T1=0.5925
T2=0.1099
chosen optimally
Phương pháp thiết kế gợn sóng đều tối ưu
Optimal Equiripple Design
Bất lợi của phương pháp cửa sổ và lấy mẫu tần số là:
Không thể xác định chính xác các tần số wp và ws
Không thể xác định đồng thời độ gợn delta1 và delta2
Sai số xấp xỉ không phân bố đều trong các dải tần.
Giải quyết?
Với bộ lọc FIR có pha tuyến tính, có thể chọn một số điều
kiện để kết quả thiết kế là tối ưu theo nghĩa tối thiểu hóa
sai số xấp xỉ lớn nhất (sai số Chebyshev).
Bộ lọc thỏa tính chất này gọi là bộ lọc gợn sóng đều
(equiripple) bởi vì sai số xấp xỉ được phân bố đều
(uniformly distributed) trong cả dải thông và dải chắn.
Điều này dẫn đến bộ lọc có bậc thấp hơn.
Nhắc lại: Đáp ứng tần số của 4 loại bộ lọc FIR có pha
tuyến tính:
H(ejw) = Hr (ejw)ejbe
- jM-1
2
æ
èç
ö
ø÷w
FIR Amplitude Response
Hr(w) có thể viết lại dưới dạng tích của một hàm cố định
theo w, gọi là hàm Q(w), và tổng các hàm cosine, gọi là
hàm P(w):
Hr (ejw) = Q(w)P(w) = Q(w) a(n)coswn
n=0
L
å
Hàm trọng số (Weighting Function)
Hàm trọng số W(w) cần thiết
cho việc có được các điều
kiện độc lập về 2 1 and
stopband in the,1
passband in the,)(
1
2
wW
Thiết lập sai số có trọng số (Weighted Error Formulation)
Sai số có trọng số biểu diễn theo tần số như sau:
Với
và
]cos)()(
)()[()(
]cos)()(
)()[()(
)]()(
)()[()(
)]()()()[(
],[],0[ )],()()[()(
0
0
L
n
ndr
L
n
dr
dr
dr
sprdr
wnwQ
wHwQwW
wnnwQ
wHwQwW
wPwQ
wHwQwW
wPwQwHwW
wwSwwHwHwWwE
.................
cos3cos43cos
1cos22cos
3
2
www
ww
)(~
),(~),(~
),()( ndncnbnan
Bài toán MINMAX
Sai số có trọng số:
Xác định các hệ số a(n) or b~(n) or c~(n) or d~(n) để tốithiểu hóa giá trị tuyệt đối lớn nhất của E(w) trên toàn dảichắn và dải thông:
)(maxmin coeff.over
wESw
)()()(
],[],0[ ,)()(
)()()()(
wPwHwW
wwSwwPwQ
wHwQwWwE
dr
spdr
MINMAX Problem Statement
Polynomials of order L (in terms of cos(w), or in fact in terms of w) has at most L-1 extremes, (e.g., 2nd order polynomial has only ONE extreme, 3rd polynomial has TWO). Since therefore the extremes may not fall within this range.
Furthermore, we also consider to be extreme points, therefore at most (L+1) local extremes are expected.
We also want the filter specs to be met exactly at the band edges points, . This means there are at most (L+3) extreme points.
Can we try to determine so that P(w) has equiripples (same magnitudes in passband as well as in stopbands, with some ratio of magnitudes between two bands can be specified). Note that our objective is to find to satisfy this, and from we can further determine h(n) based on the relationship between
],0[for ],1,1[cos ww
ww and 0
sp ww and
)(~
),(~ ),(~
),( )( ndncnbnan
)(~
)(),(~)(),(~
)( ),( ndndncncnbnbna
)(n)(n
Example of Minimax Formulation
].15
8,
15
8,0,0[)( ..
cos)(cos15
8cos
15
800
)}cos3cos4(2)1cos2(4cos64{15
1
)3cos22cos4cos64(15
1cos)()(
]2,4,6,4[15
1)(
)3()0()0( and ,31 ),3(2)()(
32/)1( ,7 ],1,2,3,4,3,2,1[15
1)(
3
0
32
32
3
0
nei
wnww
wwww
wwwwnnwP
n
hannhnan
MLMnh
n
n
n
Alternation Theorem
The alternation theorem ensure that the solution to our
minimax approximation problem exits and is unique, but
it does not tell us how to obtain this solution
Parks McClellan Algorithm
We actually don’t know neither M (or L) nor extremal frequencies nor the parameters nor the maximum error
Given the filter length M and the weighting ratio are known, Parks and McClellan algorithm is based on iteratively adjusting the coefficients of the amplitude response until the peak absolute value of E(w) is minimized
)(n iw
12 /
Kaiser’s simple formula to estimate M:
16.14
13log20
2,,
2110
,
fM
wwfARwwGiven
ps
spsp
Remez Exchange Algorithm
Solve an (L+2)x(L+2) linear system to get (L+1)
)(
)(
)(
)(
)(
)(
)(
)1(
)0(
)()(
1cos2coscos1
)()(
1cos2coscos1
)()(
1cos2coscos1
cos)()()(
)1(
)(
)(
)1(cos)()(
)()()(
1
1
1
1
0
0
111
111
000
0
0
L
Ldr
dr
dr
ii
LLL
ii
ii
L
n
i
ii
i
i
idr
iL
n
i
i
idrii
wQ
wH
wQ
wH
wQ
wH
L
wQwWLwww
wQwWLwww
wQwWLwww
nwnwQwWwQ
wH
nwnwQ
wHwQwW
and )(n
Note that this linear equation satisfies both passband and stopband ripple specifications. Assume Q(w)=1for simplicity:
The whole idea is looking for (non-uniform) extreme frequency locations iteratively, so that the equiripple error formulation can be satisfied.
Since there are (L+2) unknown (including ), and we are solving an (L+2)x(L+2) linear equation system, the solution is unique IF the (L+2) extreme frequencies are known in advance. This is why we need to iterate until convergence!
stopband
passband
wWwPwH
i
ii
i
i
iid
,)1(
,)1()1(
)(
)1()()(
2
12
2
1
iw
iw
Step 1: a set of initial values for extremal frequencies are either chosen or are available from the completion of the previous iteration.
Step 2: Solve the (L+2)x(L+2) linear system to obtain (L+1)
Step 3: Determine values of amplitude response P(wi) at from the linear system. Then the polynomial P(w) is determined by interpolating the values at the (L+2)extremal frequencies using the Lagrange interpolation.
Step 4: Determine the (L+2) new extremal frequencies from the new weighted error function.
Step 5: If the peak values of E(w) are equal in magnitude, the algorithm converged. Otherwise, go back to Step 2, until converge.
iw
and )(n
w0
L
n
i
ii
i
i
idr nwnwQwWwQ
wH
0
cos)()()(
)1(
)(
)(
iw