DSP 8 FIR Filter Design การออกแบบตัวกรองดิจิตอลแบบ FIR ดร. พีระพล ยุวภูษิตานนท์ ภาควิชา วิศวกรรมอิเล็กทรอนิกส์ CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ข้อดีของ FIR มีความเสถียร (stable) สามารถออกแบบให้ผลตอบสนองทางเฟส เป็นเชิงเส้น (Linear phase) ได้ง่าย CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
เฟสที่เป็นเชิงเส้น (linear phase) เฟสคือ a=ค่าคงที่ ตัวกรอง FIR ที่ให้ เฟสเป็นเชิงเส้น จะมีเงื่อนไขของการสมมาตร CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
เงื่อนไขของตัวกรองเฟสเชิงเส้น ดูจากผลตอบสนองอิมพัลส์ h(n) 1 2 3 4 N เลขคี่ สมมาตร (symmetric) 1 2 3 4 5 N เลขคู่ N เลขคี่ 1 2 3 4 สมมาตร ตรงกันข้าม (Anti-symmetric) N เลขคู่ 1 2 3 4 5 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
พิจารณากรณี h(n) เป็น “สมมาตร” และ N เป็นเลขคี่ เมื่อให้ เราจะได้ว่า ขนาด เฟส โดยที่ *ต่อไปนี้ เราจะใช้ h(n) แบบ “สมมาตร,N เลขคี่” สำหรับตัวกรอง FIR CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
FIR Filter Design เนื่องจาก FIR ที่เราพิจารณานั้นให้ผลตอบสนองทางเฟสเป็นเชิงเส้น (Linear phase) ดังนั้นการออกแบบจึงกระทำโดยใช้ การพิจารณาทางขนาด (Magnitude) เท่านั้น มีการออกแบบ 2 วิธีที่นิยมคือ การออกแบบโดยใช้หน้าต่าง (Window Method) การออกแบบ FIR โดยเทคนิกสุ่มความถี่ (Frequency Sampling Method) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
Low pass filter (LPF ) High pass filter (HPF) Band pass filter (BPF) Band stop filter (BSF) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ผลตอบสนองอิมพัลส์ของตัวกรองต่ำผ่าน LPF CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ผลตอบสนองอิมพัลส์ตัวกรองอุดมคติ เราพบว่าเราไม่สามารถสร้าง d(n) ได้ เพราะเป็น noncausal เราจึงต้องใช้การประมาณ ค่า (approximation) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ตัวกรองต่ำผ่านที่ต้องการ =ความถี่ตัด (Cut-off frequency) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ผลตอบสนองอิมพัลส์ของตัวกรองต่ำผ่าน ที่มีการ เลื่อน M ลำดับ CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
การออกแบบตัวกรอง FIR โดยใช้ฟังก์ชัน หน้าต่าง(Windowing Techniques) ขั้นตอนการออกแบบ 1. เลื่อนลำดับ d(n) ไปทางขวา M ลำดับ 2. ตัดลำดับของ d(n) ที่เป็นแบบไม่จำกัด( infinite) ให้เป็นแบบ จำกัด (finite) โดยใช้การคูณด้วย หน้าต่าง (window) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
การออกแบบด้วยหน้าต่าง = n n n เราได้สมการของ h(n) โดยที่ฟังก์ชันหน้าต่าง w(n) เป็น N = อันดับ (order) ของตัวกรอง M=(N-1)/2 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
การคูณในโดเมนเวลา = การประสานในโดเมนความถี่ CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
การประมาณค่าสำหรับวงจรกรองต่ำผ่าน ----- ตัวกรองอุดมคติ ตัวกรองตามจริง ริปเปิ้ลแถบผ่าน ริปเปิ้ล แถบหยุด สิ่งที่สำคัญในการออกแบบ วงจรกรองดิจิตอลคือ 1 ริปเปิ้ล ทั้งแถบผ่านและแถบหยุด 2 ความชันระหว่างแถบ CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ข้อกำหนดในการออกแบบตัวกรอง (Filter specification) แถบผ่าน แถบ เปลี่ยน แถบหยุด CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
คุณสมบัติของฟังก์ชันหน้าต่าง โลบหลัก(Main lobe) โลบข้าง (sidelobe) ความกว้างของแถบเปลี่ยน CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ตัวอย่าง จากตารางที่ 7.2 หนังสือ อ พรชัย ตัวอย่าง จากตารางที่ 7.2 หนังสือ อ พรชัย หน้าต่าง As สี่เหลี่ยม 8.9 % 21 1 ฮานนิ่ง(Hanning) 0.63% 44 แฮมมิ่ง (Hamming) 0.22% 53 แบล็กแมน (Blackman) 0.02% 74 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ขั้นตอนออกแบบตัวกรอง FIR โดยใช้หน้าต่าง ใช้ ค่าริปเปิ้ลของแถบผ่าน ( ) หรือ การลดทอนของแถบหยุด As เพื่อเลือกชนิดของหน้าต่าง (ข้ามขั้นตอนนี้ หากกำหนดชนิดหน้าต่างมาให้) ใช้ ค่าความกว้างของแถบเปลี่ยน ( ) หา “อันดับ (order)” ของตัวกรอง (N) ที่ต้องใช้ เลื่อน d(n) ให้หน่วงไป M ตำแหน่ง และคำนวณ h(n)=d(n-M)w(n), n=0,…,N-1 นำ h(n) ที่ได้ ไป เป็นค่า สปส ของ ตัวกรอง CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ตัวอย่าง 1 จงออกแบบตัวกรอง FIR LPF ที่มีความถี่ตัดที่ 500 Hz โดยใช้ หน้าต่างสี่เหลี่ยม และ ความกว้างแถบเปลี่ยน น้อยกว่า 90 Hz ระบบใช้ความถี่สุ่ม (fs) =2 kHz CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ตัวอย่าง 1 (ต่อ) ความถี่ตัด ดิจิตอล แถบความถี่เปลี่ยน ดิจิตอล ตัวอย่าง 1 (ต่อ) ความถี่ตัด ดิจิตอล แถบความถี่เปลี่ยน ดิจิตอล จากตารางที่ 7.2 หาออเดอร์ ของตัวกรอง เลือกเลขคี่จำนวนเต็มที่ มากกว่า 44.44 นั่นคือ N=45 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ตัวอย่าง 1 (ต่อ) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ขนาดของตัวกรองต่ำผ่านที่ออกแบบได้ 500 Hz ex_7_1.eps CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ผลตอบสนองอิมพัลส์ h(n) ของตัวกรอง ex_7_2.eps CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
หน้าต่างสี่เหลี่ยม -21 dB CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
หน้าต่าง ฮานนิ่ง -44 dB CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
หน้าต่าง แบล็กแมน -74 dB CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ตัวอย่างที่2 จงออกแบบตัวกรองต่ำผ่าน ที่มีความถี่ตัด 2 kHz โดยต้องการ จงหา หน้าต่างแบบที่ใช้ได้ และ ใช้ได้ที่อันดับที่เท่าไร? CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
1. เปรียบเทียบริปเปิ้ล เปรียบเทียบ และ เปรียบเทียบ และ เลือกใช้ตัวที่ น้อยกว่า ในการออกแบบ จาก เพราะฉะนั้น เปรียบเทียบ ความต้องการ ดังนั้น ในการออกแบบจะเลือกใช้ CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
2. เลือกหน้าต่าง ใช้ ค่าริปเปิ้ลที่แถบผ่าน ในการ เลือกหน้าต่าง จากตาราง 7.2 เราเห็นว่า หน้าต่างที่ให้ค่าริปเปิ้ลเกิน 0.3 % คือ หน้าต่างสี่เหลี่ยม (8.9%) และหน้าต่างฮานนิ่ง (0.63%) เพราะฉะนั้น หน้าต่างที่ใช้ได้ คือ หน้าต่างแฮมมิ่ง (0.22%) หน้าต่างแบล็กแมน (0.02%) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
หน้าต่างแฮมมิ่ง (0.22%) ความถี่ตัดดิจิตอล แถบความถี่เปลี่ยน ดิจิตอล หน้าต่างแฮมมิ่ง (0.22%) ความถี่ตัดดิจิตอล แถบความถี่เปลี่ยน ดิจิตอล จากตารางที่ 7.2 หน้าต่างแฮมมิ่ง หาอันดับของตัวกรอง อันดับ คือจำนวนเต็มเลขคี่ที่มากกว่า 200 นั่นคือ N=201 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
หน้าต่างแบล็กแมน (0.02%) จากตารางที่ 7.2 หน้าต่างแบล็กแมน หน้าต่างแบล็กแมน (0.02%) จากตารางที่ 7.2 หน้าต่างแบล็กแมน หาอันดับ ของตัวกรอง อันดับ คือจำนวนเต็มเลขคี่ที่มากกว่า 300 นั่นคือ N=301 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
% window.m demonstrating of the window design technique fc=500; fs=2000; N=41; M=(N-1)/2; wc=2*pi*fc/fs; n=0:N-1; %%%%%%% we can add a smallest number % 'eps' to avoid dividing by zero d=sin(wc*(n-M+eps))./(n-M+eps)/pi; %%%% uncomment lines below for different windows w=ones(1,N); % Rectangular % w=.5-.5*cos(2*pi*n./(N-1)); %Hanning % w=.42-.5*cos(2*pi*n./(N-1))+.08*cos(4*pi*n./(N-1)); %blackman h=d.*w; figure(1);subplot(111);freqres(h,1,fs,'db') figure(2);subplot(111);stem(h) grid on xlabel('n') ylabel('h(n)') CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
การออกแบบ FIR เทคนิกการสุ่มความถี่ (Frequency Sampling Techniques) เป็นการสร้างตัวกรองโดยใช้ การสุ่มสัมประสิทธิ์ จาก DFT ซึ่งได้เคยกล่าวถึงไปแล้ว ในบทที่ 7 ใช้ในการสร้างตัวกรองที่มีผลตอบสนองความถี่แปลกๆ 1 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
ในเชิงทฤษฎี เราเห็นว่ามีความสอดคล้องกับเรื่องของ “ FIR: Frequency Sampling” ใน DSP 7: โครงสร้างตัวกรองดิจิตอล ที่ เราได้ h(n) จากการสุ่มค่าสัมประสิทธิ์ของ DFT และได้ ฟังก์ชันถ่ายโอนเป็น CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
การออกแบบตัวกรองแบบสุ่มความถี่ จาก เราได้ ดังนั้น แทน ข้อสำคัญ จะเท่ากับ เฉพาะ ตำแหน่งที่เราสุ่มเท่านั้น CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
เลือก N เป็นเลขคี่ ครอบคลุม 1 1 2 3 10 20 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
หาสัมประสิทธิ์ของตัวกรอง FIR แบบต่ำผ่าน ที่ความถี่ตัด ตัวอย่าง หาสัมประสิทธิ์ของตัวกรอง FIR แบบต่ำผ่าน ที่ความถี่ตัด 2 kHz ความถี่สุ่ม (fs) 10 kHz กำหนดให้เราสุ่ม 21 จุด วิธีทำ ความถี่ตัด ดิจิตอล หาจำนวนจุด ของ ย่านแถบผ่าน= ดังนั้นจำนวนจุด ของ ย่านแถบหยุด= CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
การสุ่มเพื่อให้ได้ตัวกรองที่ต้องการ 1 CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
กรณีสุ่ม 21 จุด ex_8_8.eps CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
เพิ่มจำนวนจุดสุ่มเป็น 61 จุด หาจำนวนจุด ของ ย่านแถบผ่าน= ดังนั้นจำนวนจุด ของ ย่านแถบหยุด= CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
กรณีสุ่ม 61 จุด ความชันมากขึ้น โลบข้างมีขนาดเท่ากับ กรณีสุ่ม 21 จุด ex_8_9.eps CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
% freq_sampl.m demonstrating low-pass design for FIR fs=10000; % ความถี่สุ่ม 10 kHz wc= 0.4*pi; % ความถี่ตัดดิจิตอล N=21; % เลือกจำนวนจุดสุ่มเป็นเลขคี่ Mp= ceil(wc*N/(2*pi)); %จ.น. จุด ของแถบผ่าน 0<w<pi Mpp=Mp-1; %จ.น. จุด ของแถบผ่าน pi<w<2pi Ms= N-Mp-Mpp; %จ.น. จุด ของแถบหยุด 0<w<pi H=[ones(1,Mp) zeros(1,Ms) ones(1,Mpp)]; %ขนาดของตัวกรอง k=0:1:N-1; % มี N ความถี่ H=H.*exp(-j*pi*(N-1)*k/N); % ตัวกรอง=ขนาด*เฟส h=real(ifft(H)); %ผลตอบสนองอิมพัลส์เป็นค่าจริง figure(1) freqres(h,1,fs) CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon
สรุป การออกแบบตัวกรอง FIR ทำได้สองแบบ หน้าต่างแต่ละแบบให้จุดเด่น จุดด้อยต่างกัน การออกแบบโดยวิธีสุ่มความถี่ ทำให้สามารถออกแบบตัวกรองได้จาก ผลตอบสนองความถี่ได้โดยตรง จำนวนสุ่มมากจะเพิ่มความชันของแถบ แต่ก็ทำให้อันดับของตัวกรองมากขึ้นด้วย CESdSP EEET0485 Digital Signal Processing http://embedsigproc.wordpress.com Asst. Prof. Dr. P.Yuvapoositanon