4 firdesign vn

78
Thiết kế bộ lọc FIR

Upload: pham-ngan

Post on 24-Dec-2015

6 views

Category:

Documents


0 download

DESCRIPTION

âsdas

TRANSCRIPT

Thiết kế bộ lọc FIR

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

Absolute & Relative Specs

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 hưởng của cửa sổ

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

Bartlett (Triangular) Windowing

else 0,

1-Mn2

1 ,

1

22

2

10 ,

1

2

)(M

M

n

Mn

M

n

nw

Mw

1.6

Hanning Windowing

A raised cosine window:

otherwise

MnM

n

nw

,0

10)],1

2cos(1[5.0

)(

Mw

2.6

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

Đặc tính của một số loại cửa sổ

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

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

ì

íï

îï

Ex 7.14

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:

Some Optimal Transition Samples

Ex 7.15

Comparison

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

Ex. 7.17 Optimum Design

Ex. 7.17 Optimum Design

Ex. 7.18 Optimum Design

Ex. 7.18 Optimum Design

MATLAB Signal Processing Toolbox

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

å

Q and P of Linear Phase FIR

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

]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

P(w) has (L-1)=2

extremes in the open

interval

The error function

has at most (L+3)=6

extremes.

w0

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

L=7

Equipripple Case

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

Ex 7.23