Filter-Design Exercise
ใช้วิธี zero-placement , ออกแบบ FIR filters สำหรับ
multirate system ใน
Multirate Filtering: Introduction.
ให้นึกถึง
z
z-transform ที่ มีความยาวของ FIR filter -
N
Nเป็น polynomial ในรูป
z-1
z
-1
, โดยที่ polynomial ดังกล่าวสามารถแยกส่วนประกอบได้เป็นจำนวน
N-1
N
1
Hz=
h
0
+
h
1
z-1+
h
2
z-2+⋯=
z
1
-z-1
z
2
-z-1
z
3
-z-1⋯
H
z
h
0
h
1
z
-1
h
2
z
-2
⋯
z
1
z
-1
z
2
z
-1
z
3
z
-1
⋯
(1)
ใช้ความสัมพันธ์นี้ในการออกแบบ low-pass filter
(สำหรับ anti-aliasing และ anti-imaging filters ของ the multirate
system) โดยการแทนที่ complex zeros ทั้ง 12 ตัวบน unit circle ที่
±3π8
±
3
8
,
±π2
±
2
,
±5π8
±
5
8
,
±3π4
±
3
4
,
±7π8
±
7
8
, และ
±π
±
. Filter ที่ออกแบบโดยวิธีนี้จะสามารถใช้ได้กับทั้ง
FIR 1 และ FIR 3. สำหรับ filter FIR 2 (operating
at the decimated rate), ใช้ equally-spaced zeros สี่ตัว บน
unit circle ที่ตำแหน่ง
±π4
±
4
และ
±3π4
±
3
4
. อย่าลืมปรับค่า resulting filter
coefficients เพื่อให้แน่ใจว่าค่า gain จะไม่เกินค่า exceed one
at any frequency.
ออกแบบ filter ของคุณ โดยการเขียน MATLAB script เพื่อคำนวณค่า
filter coefficients จากจุด zero location ที่ให้ไป. MATLAB
function polyจะช่วยได้ ให้พิมพ์คำว่า
help poly เพื่อเรียนรู้วิธีการใช้คำสั่ง
เมื่อคุณเลือก coefficients ที่จะใช้สำหรับ filter ได้แล้ว, ใช้
MATLAB function freqz ในการสร้างกราฟ frequency
responses. คุณจะพบว่า ช่วง frequency response ของ
filters เหล่านี้มี ช่วง gain ที่มาก. ทำการปรับค่า resulting filter
coefficients เพื่อให้แน่ใจว่า ค่า frequency gain ที่มากที่สุดมีค่าน้อยกว่า
หรือเท่ากับ หนึ่ง โดยทำการหารค่า coefficients ด้วยค่าที่เหมาะสม
ค่า frequency responses ที่ได้ตรงกับที่คาดไว้หรือไม่โดยอิงจาก ตำแหน่ง
ศูนย์ใน z-plane?