Upload
ek-powell
View
154
Download
1
Embed Size (px)
DESCRIPTION
dsp
Citation preview
การประมวลผลสญญาณดจตอลเบองตนIntroduction to Digital Signal Processing
Revision 1.0
พรชย ภววงษศกด
frequency (Hz) time (sec)
I
ค าน า
เทคโนโลยทางดานวศวกรรมไฟฟา และคอมพวเตอรในปจจบนไดกาวหนาไปอยางรวดเรวและบทบาทส าคญของความกาวหนาเหลานนกมาจากการเปลยนแปลงของเทคโนโลยหลายอยางทเคยท าดวยวงจรแอนะลอกมาเปนวงจรดจตอล เรามกจะไดยนคนพดเสมอถงเทคโนโลยในโลกปจจบนวาเปน "ยคแหงดจตอล" หรอ "โลกดจตอล" ซงผพดสวนใหญกมกมองจากสนคาทนสมยตาง ๆ ทออกมาในทองตลาด เชน การมคอมพวเตอรทมความเรวสงขน การมระบบมลตมเดยดจตอลทดขน การเชอมตอของระบบคอมพวเตอรผานเครอขายอนเตอรเนต การมอปกรณสอสาร เชน โทรศพทมอถอและเพจเจอรทดขน และอปกรณอน ๆ อกมากมาย ซงแนนอนวาอปกรณตาง ๆ เหลานมพนฐานมาจากทฤษฎของอเลกทรอนกส และคอมพวเตอร แตยงมทฤษฎอกเรองหนงทเปนพนฐาน และสวนประกอบทส าคญของเทคโนโลยเหลาน นนกคอ การประมวลผลสญญาณดจตอล
วศวกรไทยมกมองวาการประมวลผลสญญาณดจตอลเปนทฤษฎขนสง และเปนเรองไกลตวซงกมาจากการทเรายงไมมการสอนเรองการประมวลผลสญญาณดจตอลในระดบชนปรญญาตรกนเทาไรนก บางมหาวทยาลยมสอนเปนวชาเลอก ซงกไมคอยมผเลอกเรยกมากนก เนองจากมองวาเปนวชาทยาก ซงเตมไปดวยคณตศาสตร กบทฤษฎทมองไมเหนภาพ แตจรง ๆ แลว การประมวลผลสญญาณดจตอลเปนวชาทมการประยกตใชงานอยางกวางขวางมาก ถาหากการสอนเนนใหเหนถงการประยกตใชมากขน หรอมการทดลองประกอบ กจะท าใหผเรยนมความรสกสนก และเขาใจในเนอหาวชามากขน ในปจจบนการประมวลผลสญญาณดจตอลเปนสวนส าคญทเสรมกบเทคโนโลยในสาขาวชาตาง ๆ ทงวศวกรรมอเลกทรอนกส วศวกรรมโทรคมนาคม วศวกรรมควมคม วศวกรรมไฟฟาแรงสง และวศวกรรมคอมพวเตอร ดงนน วศวกรในระดบชนปรญญาตรจงควรมความเขาใจในระดบพนฐานเกยวกบการประมวลผลสญญาณดจตอล
หนงสอ “การประมวลผลสญญาณดจตอลเบองตน” เลมน สงสมมาจากประสบการณในการสอนวชาการประมวลผลสญญาณดจตอล ทภาควชาวศวกรรมอเลกทรอนกส มหาวทยาลยเทคโนโลยมหานครเปนเวลาเกอบ 3 ป และประสบการณในการเปดอบรมระยะสนใหกบบคคลภายนอกซงจดโดยภาควชาวศวกรรมอเลกทรอนกสเชนเดยวกน ผเขยนมไดมงหวงใหหนงสอเลมนมความสมบรณครบถวนในเนอหา เนองจาก ทฤษฎของการประมวลผลสญญาณดจตอลมมากมาย และมรายละเอยดมากโดยเฉพาะในขนสง แตผเขยนมงหวงวา หนงสอเลมนจะเปนคมอทดส าหรบผทเรมตนศกษาวชาน เนองจาก หนงสอทางดานการประมวลผลสญญาณเปนภาษาองกฤษแทบทงสน และมกจะเตมไปดวยสมการทางคณตศาสตรมากมาย ซงท าใหยากล าบากส าหรบผทเรมตนศกษา ผเขยนไดพยายามลดความซบซอนเหลานนลงเพอใหเหมาะส าหรบผเรมตน อยางไรกตาม เพอใหเขาใจทฤษฎอยางถกตองผอานจ าเปนตองมความเขาใจในคณตศาสตรพนฐานบาง ไดแก การแกสมการ, โพลโนเมยล, จ านวนเชงซอน, และเวคเตอร เปนตน และควรมประสบการณดานการเขยนโปรแกรมคอมพวเตอรมาบางไม
II
วาจะเปนภาษาอะไรกตาม นอกจากน ผอานทเคยศกษาในบางวชาของสาขาวศวกรรมไฟฟา เชน วงจรไฟฟา, สญญาณและระบบ, ไมโครโปรเซสเซอร และวงจรดจตอล กจะพบวา จะสามารถท าความเขาใจในบทเรยนตาง ๆ ไดดมากยงขน
การศกษาตามหนงสอเลมนจะใหผลดทสดกตอเมอผอานไดมการปฏบตตามไปดวย ซงซอฟทแวรทเหมาะสมทสดส าหรบทดลองประมวลผลสญญาณดจตอล กคอ MATLAB (ของบรษทMathworks ประเทศสหรฐอเมรกา) ซงไดแนะน าวธใชใวในภาคผนวก ก ไฟลตาง ๆ ทแสดงในหนงสอเลมน รวมทงขอมลเพมเตมอน ๆ ทเกยวของ สามารถดาวนโหลดไดจากอนเตอรเนตทhttp://www.ee.mut.ac.th/home/pornchai/ นอกจากน คมอปฏบตการการประมวลผลสญญาณดจตอลโดยภาควชาวศวกรรมอเลกทรอนกส มหาวทยาลยเทคโนโลยมหานคร กเปนแหลงขอมลทดส าหรบการท าการทดลองเพอเสรมความเขาใจ โดยเปนการทดลองทใช MATLAB และการทดลองแบบเวลาจรงโดยใชชพ DSP (TMS320C5x)
ผเขยนขออทศหนงสอนใหผอานทมความสนใจทวไป ผอานสามารถท าส าเนาไดโดยอสระตราบใดทไมเปนไปเพอการคา ไมมการแกไขเนอหาในหนงสอ และมการรวมค าน านอยในส าเนาดวยความดทงหลายหากมอย ขอมอบใหภาควชาวศวกรรมอเลกทรอนกส มหาวทยาลยเทคโนโลยมหานคร ซงเปนแหลงทไดใหความร และการสนบสนนในการเขยนหนงสอเลมน หากมขอผดพลาดประการใด ผเขยนขออภยไว ณ ทนดวย และยนดรบค าแนะน าเพอมาปรบปรงแกไขตอไป (กรณาสงจดหมายอเลกทรอนกสไปท [email protected]) อยางไรกตาม ผเขยนไมรบผดชอบหากมความเสยหายใด ๆ เกดขนจากการใชความร หรอขอมลทไดรบจากหนงสอเลมน
พรชย ภววงษศกดเนอหาแกไขเมอ 12/1999ค าน าแกไขเมอ 10/2000
III
สารบญ
บทท 1 บทน า 1สญญาณตอเนอง กบสญญาณไมตอเนอง 1สวนประกอบในระบบประมวลผลสญญาณดจตอล 3การประมวลผลแบบเวลาจรง กบการเลอกใชตวประมวลผลสญญาณ 5งานทมการประยกตใชการประมวลผลสญญาณดจตอล 8ขอดของการใชการประมวลผลสญญาณดจตอล 9ขดจ ากดของการประมวลผลสญญาณดจตอล 10
บทท 2 การสมสญญาณและการสรางสญญาณคน 11การสมสญญาณ 11ทฤษฎการสมสญญาณ 14การสรางสญญาณคน 16
บทท 3 ระบบแบบไมตอเนอง 25ระบบแบบไมตอเนองคออะไร 25ความเปนเชงเสนและไมแปรตามเวลา 26ผลตอบสนองตอสญญาณอมพลส 29ตวกรองแบบ FIR และ IIR 32สมการผลตาง 33ความเปนคอซล 35เสถยรภาพ 39
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 41การแปลง z 41การแปลง z โดยใชสตรส าเรจจากตาราง (ส าหรบสญญาณคอซล) 44การแปลง z ผกผน 47การใชการแปลง z กบระบบแบบไมตอเนอง 51ความเปนคอซล และเสถยรภาพ 55
บทท 5 การแปลง DTFT และผลตอบสนองเชงความถ 59การแปลงฟรเยรแบบเวลาไมตอเนอง หรอการแปลง DTFT 59สญญาณไมตอเนองความถเดยว 62ความสมพนธของ DTFT กบการแปลง z 63
IV
ผลตอบสนองเชงความถของระบบ 64
บทท 6 การแปลง DFT และ FFT 69ทบทวนการแปลงแบบตาง ๆ 69การแปลง DFT 70ทมา และความหมายของการแปลง DFT 72การเตมศนย 74สเปกตรมของพลงงาน กบสเปกตรมของก าลง 75การแปลง FFT 77การแปลง DFT ผกผน 84คณสมบตของ DFT 85เครองวเคราะหสเปกตรม และการปรบปรงผลลพธทไดจาก FFT 85การคอนโวลชนอยางเรว 89
บทท 7 ตวกรองแบบ FIR 95คณสมบตเฟสแบบเชงเสน 95คณสมบตความสมมาตรของตวกรองทมเฟสเชงเสน 98การออกแบบโดยวธหนาตาง 101หนาตางแบบสเหลยม 107หนาตางแฮมมง 109หนาตางไคเซอร 111การออกแบบโดยวธสมความถ 116การสรางตวกรอง FIR 121
บทท 8 ตวกรองแบบ IIR 123การออกแบบโดยองตวกรองแอนะลอกตนแบบ 123ตวกรองบตเตอรเวอรธแอนะลอกตนแบบ 128การออกแบบตวกรองบตเตอรเวอรธดจตอลผานต า 130การออกแบบตวกรองบตเตอรเวอรธแบบอน (นอกจากผานต า) 130การออกแบบโดยวธวางโพล และศนย 138การสรางตวกรอง IIR 144เปรยบเทยบตวกรอง FIR และ IIR 147
บทท 9 ระบบตวเลขในการประมวลผล 149ระบบเลขจ านวนเตม 149ระบบเลขจ านวนเตมแบบมเครองหมาย 149ขอดของเลขแบบ 2's complement 156
V
ระบบเลของดรรชน 158เปรยบเทยบเลขจ านวนเตม กบเลของดรรชน 164
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเตม 165การแบงขนสญญาณ 165ความคลาดเคลอนจากการปดเศษสมประสทธ 171ความคลาดเคลอนจากโอเวอรโฟล 174ความคลาดเคลอนจากการปดเศษหลงการคณ 185การจ าลองการประมวลผลดวยระบบเลขจ านวนเตมใน Matlab 196ตวอยางการประมวลผลดวยระบบเลขจ านวนเตมในภาษาซ 202
บทท 11 การประมวลผลแบบหลายอตราสม 205การเปลยนอตราสมโดยแปลงเปนสญญาณแอนะลอกกอน 205เดซซเมเตอร 206อนเตอรโพเลเตอร 208การเปลยนอตราสมดวยอตราสวนทไมเปนจ านวนเตม 211การเปลยนอตราสมแบบหลายขนตอน 212การลดการประมวลผลของตวเปลยนอตราสม 215การประยกตใชงาน 217
บทท 12 ตวอยางการประยกตใชงาน 222การปรบแตงลกษณะของเสยง 222 อควอไลเซอรเสยง 224 เสยงสะทอน 225 เสยงจ าลองการสะทอนของหอง 226 เสยงคอรส 231 เสยงสามมต 231อปกรณชวยไดยน 233การกรองสญญาณฮารมอนกใน UPS 234ตวสรางสญญาณ 235ตวกรองปรบตวได 236อลกอรธม LMS และเงอนไขการท างานของมน 241การหกลางเสยงสะทอน 246
ภาคผนวก ก การใชงาน Matlab 249เรมรจกกบ Matlab ในฐานะเปนเครองคดเลข 249
VI
การใชตวแปรใน Matlab 250การเรยกค าสงเกามาใชใหม 250เมตรกซ และเวคเตอร 251การกระท าทางเมตรกซ 251การกระท าทเขาถงสมาชกทกตวในเมตรกซ 252การอางถงสมาชกภายในเมตรกซ (หรอเวคเตอร) 252จ านวนเชงซอน 253ฟงกชนภายใน 254โปรแกรมสครปต 255ค าสงเกยวกบการวนลป และเปรยบเทยบ 256โปรแกรมฟงกชน 258การจดการเกยวกบไดเรกทอร และไฟล 260การวาดกราฟ 260การวดประสทธภาพของโปรแกรม 263การเกบตวแปร 263การจดการเกยวกบขอความ 263ค าสงเกยวกบเสยง 264การท ากราฟทเคลอนไหวได 265
ภาคผนวก ข ฟงกชนใน Matlab DSP Toolbox 266
ภาคผนวก ค ประมวลค าศพทเทคนค 269
หนงสออางอง 272
บทท 1 บทน า 1
บทท 1บทน า
ในบทนจะไดกลาวถงภาพรวมของการประมวลผลสญญาณดจตอล เพอใหผอานไดทราบถงสวนตาง ๆ ในระบบประมวลผลสญญาณ และเขาใจวาสงทจะศกษาในบทตอ ๆ ไปอยในสวนใดของระบบโดยรวม นอกจากนยงจะกลาวถงขอด และงานทมการประยกตใชการประมวลผลสญญาณดจตอลดวย
สญญาณตอเนอง กบสญญาณไมตอเนอง
สงแรกทจะตองท าความเขาใจกนกอนกคอ ค าวา สญญาณตอเนอง (continuous-time signal)และสญญาณไมตอเนอง (discrete-time signal) หมายความวาอยางไร ค าวาตอเนอง หรอไมตอเนองนหมายถงสญญาณนน ๆ มคาตอเนองในทางเวลาหรอไม สญญาณตอเนอง กคอ สญญาณทเราพบเหนในชวตประจ าวนทว ๆ ไป หรอทเหนบนหนาจอออสซโลสโคป เชน สญญาณเสยง, สญญาณไฟบาน50 Hz, และอน ๆ ถาแทนสญญาณดวยสญลกษณ x และแทนเวลาดวยสญลกษณ t เราจะกลาววา xเปนฟงกชนของ t หรอ x มคาทเวลา t ใด ๆ เขยนแทนสญญาณนไดวา x(t) ซงเปนฟงกชนทตอเนองสญญาณตอเนองนเรยกอกอยางหนงวา สญญาณแอนะลอก (analog signal)
สญญาณไมตอเนองเปนสญญาณทมคาเพยงบางจดของเวลา โดยทวไปเกดจากการสมสญญาณตอเนองดวยคาบเวลาของการสมคงท ดงจะไดกลาวถงในบทท 2 เราจะใชสญลกษณ n แทนเวลาแบบไมตอเนอง โดย n เปนตวแปรทมคาเปนจ านวนเตมเทานน คอ n = …, -2, -1, 0, 1, 2, 3, …และสญญาณไมตอเนองจะเปนฟงกชนของ n ดงนนจะเขยนแทนสญญาณนไดวา x(n)
t (sec) n
รปท 1.1 สญญาณตอเนอง และสญญาณไมตอเนอง (โปรดสงเกตหนวยของแกนนอนดวย)
บทท 1 บทน า 2
รปของสญญาณไมตอเนองทแสดงเปรยบเทยบกบสญญาณตอเนองดงในรปท 1.1 เปนรปทนยมเขยนเพอแสดงใหเหนรปรางของสญญาณ แตจรง ๆ แลว เราจะไมสามารถเหนสญญาณนไดโดยตรงเหมอนกบทเหนสญญาณแอนะลอกในออสซโลสโคป แตเราจะมองสญญาณไมตอเนองในลกษณะของ “ล าดบของคา” หรอ “ล าดบของขอมล” โดยขอมลแตละตวกแทนคาแตละคาของสญญาณนนเอง ซงล าดบของคาเหลานเปนสงทวเศษ คอ นอกจากมนเปนตวแทนทถกตองของสญญาณตอเนองทถกสมมาแลว มนยงสามารถถกน าไปประมวลผลไดดวยคอมพวเตอร หรอวงจรทางดจตอลไดดวย ในอดต ไดเคยมผคดวา การประมวลผลสญญาณดจตอลใหผลลพธเปนเพยงการประมาณของการประมวลผลทางแอนะลอก แตดวยทฤษฎทถกตองทไดมการคดคนกนมา ท าใหการประมวลผลทางดจตอลใหผลลพธทถกตอง และสามารถพสจนไดวาไมใชคาประมาณของทางแอนะลอก
สวนค าวาสญญาณดจตอล กบสญญาณไมตอเนองนน โดยทวไปหมายถงสญญาณในลกษณะเดยวกน แตมความหมายตางกนเลกนอยตามความรสก และประสบการณของผพด เมอพดถงค าวาสญญาณไมตอเนอง เราหมายถง ล าดบของขอมลดงทไดกลาวมาแลว ซงขอมลแตละตวนนอาจมขนาดเทาไรกไดโดยไมจ ากดความละเอยด ซงคาของสญญาณน เมอน าไปใชงานจรงกจะถกแทนดวยคาดจตอลทมจ านวนบตจ ากด เชน ในรปท 1.2 ไดแสดงใหเหนวาสญญาณ x(n) แตละคา เมอน าไปใชสามารถแทนไดดวย 8 บต เปนตน เมอพดถงค าวาสญญาณดจตอล เรามกหมายถง สญญาณไมตอเนองทแตละคาของสญญาณถกแทนคาดวยเลขฐานสองทมจ านวนบตจ ากด อยในรป 0 กบ 1 แลว
ทฤษฎของการประมวลผลสญญาณดจตอลทเราจะไดศกษาตอไป ถงแมชอทคนนยมเรยกจะเรยกวา การประมวลผล “สญญาณดจตอล” (Digital Signal Processing) แตถาดความหมายทแทจรงของทฤษฎแลว นาจะเรยกวา การประมวลผลสญญาณไมตอเนอง (Discrete-time Signal Processing)มากกวา หนงสอบางเลมกใชค านแทนเสยเลย ทงนเพราะวา ทฤษฎของการประมวลผลสญญาณเปนการกระท าโดยมองสญญาณขาเขาเปนลกษณะของล าดบของขอมล (ซงคอสญญาณไมตอเนอง) โดยน าขอมลเหลานมาประมวลผล เชน บวก ลบ คณ หาร เพอหาสญญาณขาออกในลกษณะเปนล าดบขอมลเชนเดยวกน
คาของสญญาณเหลาน เมอนาไปใชงานสามารถแทนไดดวยขอมลดจตอล เชน 00110110, 00111000, 01100011, …
≡≡≡≡ x(0), x(1), x(2), x(3), x(4), … 1.21, 1.33, 1.74, 0.45, -1.56, …
x(n)0 1 2 n…
รปท 1.2 สญญาณไมตอเนอง กคอ ล าดบของขอมลนนเอง
บทท 1 บทน า 3
กลาวอกนยหนงกคอ วชานจะศกษาถง “อลกอรธม” ในการประมวลผลขอมลทเปนสญญาณนนเอง ไมใชเปนการศกษาการใชลอจกเกต หรอฟลปฟลอปตาง ๆ มาประมวลผลสญญาณดจตอลทเปน 0 กบ 1 แตอยางใด ทฤษฎสวนหลงนเปนเรองของการออกแบบวงจรดจตอล หรอการออกแบบระบบดจตอล (Digital System Design) ซงถอวาอยในระดบของการน าไปใชงาน (implementation)แลว เชน สมมตเรามอลกอรธมหนงทจะใชในการประมวลผลสญญาณ ทฤษฎทบอกวา อลกอรธมนกระท าผลอะไรกบสญญาณ ดมากนอยแคไหน นเปนเรองของการประมวลผลสญญาณดจตอล แตถาจะน าอลกอรธมนไปใชงานโดยท าเปนวงจรดจตอล เมอนน จงเปนหนาทของวชาการออกแบบระบบดจตอล หรอถาจะน าอลกอรธมไปใชงานโดยเขยนเปนซอฟทแวรกได ซงเมอนน กจะตองใชความรเรองการเขยนโปรแกรมคอมพวเตอร เปนตน ขอใหผเรมตนท าความเขาใจในภาพรวมตาง ๆ เหลานใหด
สวนประกอบในระบบประมวลผลสญญาณดจตอล
ระบบประมวลผลสญญาณโดยสวนใหญ แสดงในรปท 1.3 ซงประกอบดวยสวนตาง ๆ ดงตอไปน
1. วงจรแปลงสญญาณแอนะลอกเปนดจตอล ซงสามารถแบงไดเปน 2 กระบวนการยอย คอ1.1 วงจรสมสญญาณ (Sampler) สญญาณขาเขาของวงจรนเปนสญญาณแบบแอนะลอก
x(t) สวนสญญาณขาออกเปนสญญาณไมตอเนอง x(n) พารามเตอรวงจรสมสญญาณนกคอ คาอตราการสม (sampling rate) หรอ ความถในการสม ใชสญลกษณแทนวา fs คานเปนตวก าหนดวา วงจรสมจะสมสญญาณดวยอตรากครงตอวนาท หรอกเฮรซ (Hz) เราจะศกษาหลกการของการสมสญญาณในบทท 2
1.2 วงจรแบงขนสญญาณ (Quantizer) สญญาณ x(n) ทไดจากวงจรสมสญญาณถอวามความละเอยด (นยส าคญ) เตมทในทางขนาด ซงในทางปฏบตเมอน าไปใชงานจะตองลดความละเอยดของ x(n) ลงใหสามารถแทนไดดวยสญญาณดจตอลทมจ านวนบตจ ากด กระบวนการลดความละเอยดน เรยกวา การแบงขนของสญญาณ (quantization) ความละเอยดทไดจากการแบงขนสญญาณขนอยกบจ านวนบตทจะใช
การแบงขนสญญาณท าใหคาสญญาณทไดคลาดเคลอนไปจาก x(n) จรง ซงจะสงผลเหมอนมสญญาณรบกวนเขามาในระบบ ในเนอหาของบทตอ ๆ ไป เราจะละเลยผลของการแบงขนสญญาณนชวคราว และถอเอาวาสญญาณ x(n) เปนสญญาณขาเขาของวงจรประมวลผลสญญาณเลย อยางไรกตาม เราจะกลบมาศกษาหลกการของการแบงขนสญญาณ และผลของความคลาดเคลอนทเกดขนนอกครงในบทท 10
บทท 1 บทน า 4
วงจรสมสญญาณรวมกบวงจรแบงขนสญญาณ ในทางปฏบตกคอ ตวแปลงสญญาณแอนะลอกเปนดจตอล (A/D converter) นนเอง ซงจะรวมสองกระบวนการนอยในวงจรเดยวกน และโดยทวไป เราจะใชตวแปลงสญญาณแอนะลอกเปนดจตอลในรปของวงจรรวมส าเรจรป (IC)
A/Dวงจรสมสญญาณและแบงขนสญญาณ
วงจรประมวลผลสญญาณดจตอล
D/Aวงจรสรางสญญาณคน
x(t) y(n)x(n) y(t)
รปท 1.3 สวนประกอบในระบบประมวลผลสญญาณดจตอล
2. วงจรประมวลผลสญญาณ สวนนเปนหวใจหลกทเราจะศกษาในวชาน ซงท าหนาทประมวลผลสญญาณ x(n) เพอกระท าผลบางอยางกบสญญาณ เชน เปนวงจรกรองความถบางยานออกและใหผลลพธของการประมวลผลเปนสญญาณขาออก y(n) วงจรประมวลผลสญญาณน ถาจะพจารณากนอยางงาย ๆ แททจรงกคอ ตวค านวณนนเอง กลาวไดวา มนกระท าการค านวณหาสญญาณขาออกจากสญญาณขาเขา โดยมองเหนสญญาณขาเขาในลกษณะ ”ล าดบของคา”
ตวอยางการประมวลผลงาย ๆ เชน ถาเรามสมการส าหรบการประมวลผล คอ
y(n) = 0.5( x(n) + x(n-1) ) (1.1)
ถาพจารณาในแงการค านวณ สมการนบอกวา ผลตอบ ณ ต าแหนง n ใด ๆ สามารถหาไดดวยการเอาสญญาณขาเขาทต าแหนงเวลาเดยวกน ( x(n) ) บวกเขากบสญญาณขาเขาทต าแหนงเวลากอนหนานน 1 ต าแหนง ( x(n-1) ) เสรจแลวเอาผลบวกทไดคณดวย 0.5 ยกตวอยางเชน
ท n=3 ตวประมวลผลจะค านวณหา y(3) โดย y(3) = 0.5( x(3) + x(2) )ท n=4 ตวประมวลผลจะค านวณหา y(4) โดย y(4) = 0.5( x(4) + x(3) )ท n=5 ตวประมวลผลจะค านวณหา y(5) โดย y(5) = 0.5( x(5) + x(4) )เปนเชนนไปเรอย ๆ ดงนน ทก ๆ ต าแหนงเวลา หนาทของตวประมวลผลสญญาณ กคอ
ค านวณหาสญญาณขาออกตามสมการนเทานนเองผอานคงพอมองเหนภาพพจนของการประมวลผลสญญาณแลววา จรง ๆ แลวมนกคอการ
ค านวณนนเอง แตสงทเราจะศกษาในบทตอ ๆ ไป คอวา การค านวณเหลานจะกระท าผลอะไรใหเกดขนกบสญญาณไดบาง เชน ตวอยางงาย ๆ ทยกมาในสมการท 1.1 น เปนสมการของตวกรองแบบผาน
บทท 1 บทน า 5
ความถต า (low pass filter) อนดบหนง ชนดหนง กลาวคอ มนจะลดองคประกอบความถสงของสญญาณลงบางสวน ซงเราจะสามารถพสจนไดโดยใชความรในบทตอ ๆ ไป
ในชวตจรง อลกอรธมในการประมวลผลสญญาณมตงแตงาย ๆ ดงทแสดงในสมการท 1.1จนกระทงถงยากมาก หรอ ซบซอนมาก ๆ ซงมนกจะสามารถสงผลทพสดารขนกบสญญาณได การคดคนในเรองของอลกอรธมในการประมวลผลสญญาณน ถอเปนสาขาทมผวจยกนอยางกวางขวางและตอเนองในปจจบน ซงถงแมความรในดานนจะถกพฒนามาหลายสบป และเจรญกาวหนามามากแตกยงเตบโตตอไปอยางไมเหนแนวโนมในการอมตวของมนเลย
ขออธบายเพมเตมจากสมการตวอยางทไดยกมาแลววา ขอมลทเราสามารถน ามาใชในอลกอรธมของการประมวลผลน ไดแก
- สญญาณขาเขาตวปจจบน คอ x(n)- สญญาณขาเขาในอดต คอ x(n-1), x(n-2), x(n-3), …- สญญาณขาเขาในอนาคต (รบมาลวงหนา) คอ x(n+1), x(n+2), x(n+3), …- สญญาณขาออกในอดต (ไดค านวณไปแลว) คอ y(n-1), y(n-2), y(n-3), … เปนตน3. วงจรสรางสญญาณคน (Signal Reconstruction) ใชในระบบทมสญญาณขาออกสดทาย
เปนสญญาณตอเนอง (การประมวลผลสญญาณบางอยาง ตองการสญญาณขาออกเปนไมตอเนอง กไมจ าเปนตองมสวนท 3 น) โดยท าหนาทแปลงสญญาณไมตอเนอง y(n) ใหกลบเปนสญญาณตอเนอง y(t) ซงจะเปนสญญาณขาออกสดทายของระบบ วงจรประเภทนกคอ ตวแปลงสญญาณดจตอลเปนแอนะลอก (D/A converter) นนเอง ซงกมในรปแบบวงจรรวมส าเรจรปเชนกน
การประมวลผลแบบเวลาจรง กบการเลอกใชตวประมวลผลสญญาณ
การประมวลผลแบบเวลาจรง (Real-Time Signal Processing) หมายถง การประมวลผลทกระท าทอตราจรงของสญญาณขาเขา และใหสญญาณขาออกทนกบสญญาณขาเขาทเขามา เชน ในระบบทมอตราการสมของสญญาณขาเขา และขาออกเทากน เมอมสญญาณขาเขาเขามา 1 คา ระบบจะตองประมวลผลใหไดสญญาณขาออก 1 คากอนทสญญาณขาเขาตวถดไปจะเขามา เปนตน การประมวลผลแบบเวลาจรงนมการประยกตใชงานอยางมาก และเปนตวแทนทแทจรงของระบบทเคยใชเปนแบบแอนะลอกดงแสดงในรปท 1.4 อยางไรกตาม ระบบทมการประมวลผลแบบเวลาจรงไมจ าเปนตองมสญญาณขาเขา และออกเปนสญญาณแอนะลอกทงคเสมอไป ยกตวอยางเชน การถอดรหสสญญาณเสยงทถกบบอดขอมลมา ในกรณนสญญาณขาเขาเปนดจตอล ซงคอขอมลเสยงทบบอดมาแลว สวนสญญาณขาออก คอ สญญาณเสยงแอนะลอกทตองสงออกทล าโพง ดงนน การประมวลผลจะตองเกดทอตราสมจรงของสญญาณเสยงขาออก อนนกถอวา เปนการประมวลผลแบบเวลาจรง
บทท 1 บทน า 6
Real-TimeDSPx(t) y(t)A/D A/D
เทยบเทากบวงจรแอนะลอก เพราะมทงสญญาณขาเขา และออกเปนแอนะลอกอยางทนททนใด
รปท 1.4 การประมวลผลแบบเวลาจรงท าให DSP ท าหนาทเหมอนเปนวงจรแอนะลอกได
สวนการประมวลผลแบบไมเปนเวลาจรงนนไมมขอบงคบทางดานเวลาในการประมวลผล ยกตวอยางเชน การจ าลองระบบประมวลผลดวย MATLAB ในคอมพวเตอร ในทนถอวาคอมพวเตอรเปนตวประมวลผล ซงถาใชคอมพวเตอรทเรวเรากไดผลลพธเรว แตถาใชคอมพวเตอรทชาเรากจะไดผลลพธชา แตผลลพธทไดไมแตกตางกนเลยไมวาจะเรวหรอชา ทงนเพราะการประมวลผลไมไดเกดขนทอตราการสมจรงของสญญาณขาเขา หรอขาออก ตวอยางอกอนหนง เชน การใชโปรแกรมพวกตบแตงรปภาพ (ภาพนง) เชน PhotoShop ซงภาพนงนถอเปนสญญาณไมตอเนองสองมต และโปรแกรมพวกนกถอเปนโปรแกรมทมฟงกชนในการประมวลผลภาพ (Image Processing)เนองจากภาพนงไมมอตราการสมของขอมลทเทยบตอเวลา ดงนน การประมวลผลภาพนงจงถอไดวาไมมขอบงคบทางดานเวลา (ถาไมเอาอารมณของผใชมาเปนเกณฑดวย) จงไมเปนการประมวลผลแบบเวลาจรง
การประมวลผลสญญาณแบบเวลาจรงท าใหเกดขอก าหนดทส าคญขนมาตอการเลอกใชตวประมวลผลสญญาณ นนคอ การทตองมตวประมวลผลทเรวพอทจะประมวลผลสญญาณใหทนไดโดยเฉพาะอยางยง ถาสญญาณทตองการประมวลผลมอตราการสมทสง หรออลกอรธมทใชมความซบซอนในการค านวณมาก กจ าเปนทจะตองใชตวประมวลผลทมความเรวสงมากยงขน
มทางเลอกใหญ ๆ อย 3 ทางในการท าตวประมวลผล คอ1) การเขยนซอฟทแวรเพอใชกบคอมพวเตอร หรอใชกบชพไมโครโปรเซสเซอรทว ๆ ไป ซง
ถงแมวาคอมพวเตอร หรอไมโครโปรเซสเซอรจะไมไดออกแบบมาเฉพาะส าหรบการประมวลผลสญญาณ แตเรากสามารถน ามนมาใชไดในงานทตองการอตราการประมวลผลไมมากนก หรอในการประมวผลผลแบบไมเปนเวลาจรง อยางไรกตาม ปจจบนคอมพวเตอรสวนบคคลมความเรวสงมากจนสามารถน ามาใชท าการประมวลผลแบบเวลาจรงหลาย ๆ อยางได ตวอยางทเหนไดชด เชน การถอดรหสของสญญาณเสยง หรอวดโอทถกบบอดขอมลมาดวยมาตรฐาน MPEG ซงแตกอนเราตองใชฮารดแวรพเศษในการถอดรหส แตปจจบนใชเพยงซอฟทแวรกสามารถท าไดแลว โดยอาศย CPU ทมความเรวสงขน
2) การใชซอฟทแวรรวมกบชพ DSP ชพ DSP เปนชอเลนของชพประมวลผลสญญาณ(Digital Signal Processor) ซงคอ ไมโครโปรเซสเซอรทถกออกแบบมาส าหรบงานประมวลผล
บทท 1 บทน า 7
สญญาณแบบเวลาจรงโดยเฉพาะ โดยไมโครโปรเซสเซอรประเภทนจะมสถาปตยกรรมทเอออ านวยตอการค านวณ และการโอนถายขอมลทมประสทธภาพ และความเรวสง เชน การมค าสงพเศษในการคณ, การบวกสะสม, หรอการอางขอมลแบบ circular buffer เปนตน บางชนดยงสามารถท าการประมวลผลหลาย ๆ สวนไดพรอมกนในตวเดยว (multi-processing) อกดวย บรษททเปนผน าดานการผลตชพ DSP ไดแก Texas Instruments, Motorola, Analog Devices, และ AT&T เปนตน ซงชพ DSPนมทงประเภททเปนการประมวลผลขอมลแบบจ านวนเตม (fixed-point) และประเภททประมวลผลขอมลแบบเลของดรรชน (floating-point)
การใชงานชพ DSP นน ท าไดโดยเขยนเปนโปรแกรมภาษาแอสเซมบล หรอภาษาซแลวใชคอมไพลเลอรแปลเปนแอสเซมบล ขอดของการเขยนเปนภาษาแอสเซมบลโดยตรง คอ สามารถควบคมการท างานของชพไดเตมท ท าใหสามารถออกแบบโปรแกรมใหท างานไดเรวกวา และมขนาดโปรแกรมเลกกวาการใชภาษาซ แตขอเสยกคอ ภาษาแอสเซมบลเขยนยากกวา และไมสามารถโอนยายโปรแกรมไปท างานไดในชพตางตระกลกน หรอตางผผลตกนได
การตอวงจรเพอใชงานชพ DSP กท าเชนเดยวกบการตอวงจรไมโครโปรเซสเซอรทว ๆ ไปเพยงแตมตวแปลงสญญาณแอนะลอกเปนดจตอล (ADC) และดจตอลเปนแอนะลอก (DAC) เพมขนมาเทานน ในรปท 1.5 เปนแผนภาพทวไปของวงจร ซงใชชพ DSP แบบ fixed-point 16 บต เชนTMS320C50 ของ Texas Instruments โดยมนจะมบสขอมลขนาด 16 บต และมตวคณ และประมวลผลอน ๆ ขนาด 16 บตอยภายใน ในรปนเราใช DAC และ ADC ขนาด 12 บต ซงมขาขอมล 12 ขาเพอสงขอมลแบบขนาน และตอเขากบ 12 บตลางของบสขอมล สงเกตวามสญญาณนาฬกาซงมความถ fs ปอนใหกบ ADC เพอเปนตวก าหนดอตราการสมสญญาณแอนะลอก ซงกคอ อตราของขอมลทจะตองถกอานเขาชพ DSP ไปประมวลผล ชพ DSP หลายยหอมหนวยความจ า ROM และ RAM บางสวนอยภายในตวเอง ท าใหเพมความเรวในการท างาน และสะดวกในการใชงานมาก โดยงานทไมตองการใชปรมาณ ROM และRAM มากนก กอาจไมจ าเปนตองตอหนวยความจ าภายนอกเลย
DSPchip
ROM RAMADC DACanalogLPF
analogLPF
addressdecoder
12 1216 1616RD WR RD,WR
address bus
data busx(n) y(n)
x(t) y(t)
clockrate = fs
interrupt
รปท 1.5 แผนภาพแสดงตวอยางของวงจรทใชงานชพ DSP
บทท 1 บทน า 8
3) การใชฮารดแวร หรอ ไอซทออกแบบเฉพาะงาน ฮารดแวรในทนกหมายถง วงจรดจตอลซงสามารถออกแบบใหท าการประมวลผลขอมลไดเชนเดยวกน อลกอรธมทเปนทนยม เชน FFT (FastFourier Transform) หรอ ตวกรองดจตอลนน เราอาจสามารถหาซอไดทวไปเปนไอซส าเรจรปทท าเฉพาะฟงกชนนน ๆ แตถาตองการอลกอรธมทเฉพาะมากขน กอาจตองท าการออกแบบเปนไอซเฉพาะงานเอง (Application Specific Integrated Circuits หรอ ASIC) ซงแนนอนวาตนทนในการออกแบบส าหรบทางเลอกนคอนขางสง ทางเลอกอกทางหนง คอ การใชไอซดจตอลประเภทโปรแกรมได หรอ FPGA (Field Programmable Gate Array) ซงปจจบนมขนาดใหญมากพอทจะน ามาใชท าการประมวลผลสญญาณได การใช FPGA จะมตนทนในการออกแบบทถกกวา ASIC
การเลอกใชตวประมวลผลแตละแบบกขนอยกบลกษณะของงาน ความเรวทตองการ และตนทน ถาตองการท าอปกรณทมการประมวลผลแบบเวลาจรง โดยทวไปการใชชพ DSP จะดทสด (ซงชพ DSP กมหลากหลายขนาด และความเรวใหเลอกใชอก) แตถาหากการประมวลผลไมซบซอนหรออตราขอมลไมสงมากจนสามารถใชไมโครโปรเซสเซอรธรรมดาได การใชไมโปรโปรเซสเซอรกจะท าใหตนทนต าลงได ในกรณทตองการอตราการประมวลผลสงมาก ๆ เรากอาจตองใชฮารดแวรในการประมวลผล ซงโดยทวไปกจะมตนทนทสงขน
งานทมการประยกตใชการประมวลผลสญญาณดจตอล
ปจจบนมงานหลายอยางทไดน าเอาการประมวลผลสญญาณดจตอลไปใชงาน คงจะสามารถยกตวอยางไดเพยงแคสวนหนงของมนเทานน ซงไดแก
1. การประมวลผลเสยง เชน การบบอดเสยง หรอเขารหสเสยง (speech coding), การรจ าเสยง(speech recognition), การเตมเอฟเฟคเสยง (sound effect), การผสมเสยง, การกรองเสยงรบกวน, การสงเคราะหเสยงดนตร (music synthesizer) เปนตน
2. ในระบบสอสาร ไดแก modulation/demodulation, การชดเชยผลของชองสญญาณ(channel equalizer) ในอปกรณโมเดม และโทรศพทมอถอ, การกรองเสยงสะทอนในระบบโทรศพททางไกล และระบบการประชมทางไกล (video conferencing), สายอากาศแบบปรบรปแบบการรบไดเอง, ระบบเรดาร และโซนาร, ระบบน าทาง (navigation system), GPS เปนตน
3. ในระบบควบคมโดยดจตอล (digital control system) ตาง ๆ4. ในวงการแพทย ไดแก การวเคราะหสญญาณคลนสมอง (EEG) และสญญาณคลนหวใจ
(ECG), เครองชวยไดยน (hearing aid) เปนตน5. ในระบบการจายก าลงไฟฟา ซงใชในการลดปรมาณของฮารมอนกสทเกดขน6. การประมวลผลสญญาณแบบหลายมต ไดแก การประมวลผลภาพนง (2 มต), วดโอ (3
มต), holography (ภาพ 3 มต) ตวอยางของการประยกตใชงาน ไดแก การบบอดสญญาณวดโอ, การ
บทท 1 บทน า 9
ท าภาพใหชดขน เชนใชกบภาพถายดาวเทยม, ภาพทางโบราณคด, และภาพทถายแลวไมชด, ระบบรจ าภาพ, การมองเหนของหนยนต, และการเคลอนไหวของภาพสามมต เปนตน
7. ในอปกรณ และเครองมอทางไฟฟา เชน เครองวเคราะหความถ (spectrum analyzer),เครองสรางสญญาณ (function generator), และเครองตรวจตวสญญาณ (pattern matching) เปนตน
8. ในการวเคราะหทางสถต และการเงนกลาวไดวา การประมวลผลสญญาณดจตอล ไดปฏวตเทคโนโลยตาง ๆ ใหกาวหนา และม
ประสทธภาพขนอยางมากระยะเวลาทผานมา ในบทท 12 จะไดท าการยกตวอยางการประยกตใชงานบางอยาง รวมถงอธบายหลกการของการประยกตใชงานนน ๆ
ขอดของการใชการประมวลผลสญญาณดจตอล
ขอดของการใชการประมวลผลสญญาณดจตอล ทเหนอกวาการใชวงจรในระบบแอนะลอก มดงน
1. ความสามารถในการโปรแกรมได ท าใหงายตอการออกแบบ, เปลยนแปลงแกไข, และทดสอบ ส าหรบวงจรแอนะลอก ถาตองการเปลยนคณสมบตอะไรบางอยาง อาจหมายถงการตองออกแบบวงจรใหมเลย
2. ความถกตองแมนย าทดกวา ความถกตองของการประมวลผลสญญาณดจตอล ขนอยกบจ านวนบตทใชแทนสญญาณ และพารามเตอรตาง ๆ ซงมความยดหยน และควบคมไดงาย คอ ในงานทเราตองการความแมนย าสง เรากจะใชจ านวนบตทมากขน อกทงในชวงของการออกแบบ การจ าลองระบบทออกแบบในคอมพวเตอร จะใหผลทตรงกบความเปนจรงเมอน าไปสรางเปนวงจรจรง
3. สามารถท าฟงกชนทพสดารทไมสามารถท าไดดวยวงจรแอนะลอก หรอท าไดยากมาก เชนตวกรองแบบปรบตวได (adaptive filter) ตามสภาวะของสญญาณรบกวน, สายอากาศทปรบทศทางการรบเองได, การเตมเอฟเฟคเสยงใหเปนเสยง 3 มต เปนตน
4. มเสถยรภาพทไมขนกบเวลา และอณหภม5. DSP เกยวของโดยตรงกบเทคโนโลยคอมพวเตอร และ VLSI (ชพ DSP กจดเปนชพ
ประเภท VLSI) ซงเทคโนโลยเหลานก าลงเจรญกาวหนาอยางรวดเรว ทงในดานความเรวทสงขนความจของชพทมากขน การกนก าลงไฟทต าลง และราคากถกลง ขอดนถงแมเปนผลพลอยไดแตกมความส าคญมาก เพราะมนหมายถงวาตนทนของการใชการประมวลผลสญญาณดจตอลจะต าลง ๆตามความกาวหนาของเทคโนโลย เราจะเหนไดวา งานบางอยางทในอดตการใชวงจรแอนะลอกใหตนทนทต ากวา แตในปจจบนกลบใชแบบดจตอลแลวคมคากวา หรอ อลกอรธมบางอยางทมผคดคนไดในอดต เชน Kalman Filter แตไมสามารถน ามาใชไดในเวลานน เนองจากมความซบซอนของการ
บทท 1 บทน า 10
ค านวณมากท าใหไมคมคากบการน ามาใช กปรากฏวา อลกอรธมเหลานนกลบน ามาใชงานไดจรงในปจจบน ทงนเปนผลโดยตรงจาก ความกาวหนาของเทคโนโลยคอมพวเตอร และ VLSI
ขดจ ากดของการประมวลผลสญญาณดจตอล
ทกอยางทมขอด กมกจะมขดจ ากดดวยเสมอ เทคโนโลยของดจตอลทมขอดตาง ๆ มากมายตามทกลาวมากเชนเดยวกน ขดจ ากดของการใชการประมวลผลสญญาณดจตอลพอจะแจกแจงได ดงน
1. สญญาณแอนะลอกทมแถบความถ (bandwidth) สงมาก ๆ ไมสามารถใชกบการประมวลผลสญญาณดจตอลได เนองจากสญญาณพวกนตองการอตราการสมทสงมากเพอแปลงเปนดจตอลท าใหตองการตวประมวลผลทเรวมากจนไมคมคาตอการใชงาน นอกจากน ขดจ ากดทอาจส าคญมากกวาตวประมวลผล กคอ การทตองมตวแปลงสญญาณระหวางแอนะลอกกบดจตอลทมความเรวสงมาก ซงปจจบน เทคโนโลยของการแปลงสญญาณแอนะลอกเปนดจตอลสามารถท าไดทอตราสมสงสดประมาณ … MHz ซงหมายความวา เราไมสามารถประมวลผลสญญาณมแถบความถสงกวา …MHz ได (ครงหนงของอตราการสม)
2. งานทตองการการกนก าลงไฟทต ามาก ๆ อาจจะตองท าดวยวงจรแอนะลอกอย ในปจจบนถงแมชพ VLSI จะกนก าลงไฟต าลงมากเมอเทยบกบอดต ประกอบกบเทคโนโลยของแบตเตอรทกาวหนาไปมาก ท าใหอปกรณพกพาหลาย ๆ อยางทม DSP เปนสวนประกอบ เชน โทรศพทมอถอมขนาดเลกกระทดลดลงมาก และแถมยงใชงานไดนานขนอก แตอยางไรกตาม การประมวลผลกยงจดเปนกระบวนการทกนก าลงไฟพอสมควร อปกรณทตองการใหมขนาดเลกมาก ๆ ทไมตองการใสแบตเตอรขนาดใหญลงไป เชน อปกรณชวยไดยน กจะมขอไดเปรยบของการออกแบบเปนชพแอนะลอก ในดานทจะสามารถกนก าลงไฟไดต ากวา
3. อปกรณบางอยาง ถงแมท าไดดกวาดวยเทคโนโลยดจตอล แตกดวยตนทนทสงกวา จงมตลาดทจ ากดอยเฉพาะผใชทมก าลงซอ อปกรณเหลานจงยงคงมใชอยทงแบบดจตอล และแอนะลอกเชน โทรทศนดจตอล กบโทรทศนแอนะลอก, เครองเลน DVD กบเครองเลนวดโอเทป, และออสซลโลสโคปดจตอล กบออสซลโลสโคปแอนะลอก, ฯลฯ เปนตน
4. ขดจ ากดในขอท 1 ถง 3 จะคอยนอยลง ๆ ตามความเจรญของเทคโนโลยคอมพวเตอร และVLSI ดงทไดกลาวมาแลว แตอยางไรกตาม มวงจรบางประเภททตองสรางดวยเทคโนโลยแอนะลอกเสมอ (ถงแมในอนาคตกตาม) และจรง ๆ แลวระบบประมวลผลสญญาณดจตอลกตองพงพาวงจรเหลานดวย นนคอ วงจรขยายสญญาณตาง ๆ, ตวแปลงสญญาณแอนะลอกเปนดจตอล, ตวแปลงสญญาณดจตอลเปนแอนะลอก, ตวกรองแอนะลอกในสวน front-end (กอนตวแปลงแอนะลอกเปนดจตอล)และ ตวกรองแอนะลอกในสวน back-end (หลงตวแปลงดจตอลเปนแอนะลอก) เปนตน
บทท 2 การสมสญญาณ และการสรางสญญาณคน 11
บทท 2การสมสญญาณ และการสรางสญญาณคน
ในบทนเราจะศกษาในแงทฤษฎเกยวกบการสมสญญาณซงคอกระบวนการแปลงสญญาณแอนะลอกเปนดจตอล และการสรางสญญาณคนซงคอกระบวนการแปลงสญญาณดจตอลกลบเปนแอนะลอก เพอใหเขาใจถงลกษณะของสญญาณกอนการสม และหลงการสมทงในภาคเวลา และความถ เราจะศกษาถงขดจ ากดของการสมสญญาณ และสรางสญญาณคน พรอมกบศกษาวธหลกเลยงผลกระทบทไมพงปรารถนาทจะเกดขนจากกระบวนการทงสองดวย
การสมสญญาณ (Sampling)
แนวคดอยางงาย ๆ ของการสมกคอ การน าเอาสญญาณขาเขาแบบตอเนองมาผานสวทซอดมคตทตอวงจรทต าแหนงเวลาเทากบ …, -2T, -T, 0, T, 2T, 3T, … และเปดวงจรทเวลาอน ๆ นนคอ มความถของการตดตอวงจรเทากบ fs ครงตอวนาท หรอมคาบของการสมเทากบ T=1/fs ดงในรปท 2.1เรยกสญญาณขาออกวา !x(t)
x(n) (t)x →x(t)
ความถ = fs
รปท 2.1 การสมดวยสวทซอดมคต
แนนอนวา ถามสวทซอยางนจรง เราจะไดสญญาณขาออก !x(t) ซงเปนสญญาณแอนะลอกทมลกษณะเปนอดมคต คอ มคาทเฉพาะเวลา …, -2T, -T, 0, T, 2T, 3T, … เทานน สวนทเวลาอน ๆ มคาเปนศนย สญญาณนหนาตาเหมอนสญญาณไมตอเนองในบทท 1 ทกประการเพยงแตมองมนเปนสญญาณแอนะลอกในแกนเวลา t ซงถงแมเราจะไมใชสญญาณนในลกษณะเปนสญญาณแอนะลอกแตการมองนกเพอการวเคราะหในเชงความถของสญญาณ ซงจะมประโยชนในการบอกถงขดจ ากดของกระบวนการสมได
บทท 2 การสมสญญาณ และการสรางสญญาณคน 12
เราจะลองมาวเคราะหหาสเปกตรมของสญญาณ !x(t) ดวาสอดคลองกบสเปกตรมของ x(t)อยางไร โดยจะพสจนในแงคณตศาสตร ถานยามวาม สญญาณอมพลส (impulse signal) หรอเขยนแทนดวยสญลกษณวา δ(t) เปนสญญาณทมคาเทากบ 1 ทเวลา t=0 และเปน 0 ทเวลาอน ๆ ดงน
δๆ คาอน= t0,
0= t1, = (t)
(2.1)
เราอาจมองวาการสม คอ การน าเอาสญญาณขาเขามาคณเขากบสญญาณอมพลสหลาย ๆ ลกทมคาบเทากบ T (ระยะหางระหวางอมพลสแตละลก) ขอนยามสญญาณอมพลสหลาย ๆ ลกนเปนสญญาณ s(t) ซงรปรางของมนแสดงในรปท 2.2 ในทางคณตศาสตร สามารถเขยน s(t) ไดวาเปนผลรวมของสญญาณอมพลสทต าแหนงเวลาตาง ๆ ..., -2T, -T, 0, T, 2T, ... ดงน
∑δ∞
∞ - =n nT)-(t = s(t) (2.2)
เมอน าสญญาณ s(t) นคณเขากบสญญาณขาเขา x(t) จะไดสญญาณทเปนขาออกของตวสมสญญาณ คอ
!x(t) = x(t) (t - nT)n = -
δ∞
∞
∑ (2.3)
ตวอยางของสญญาณ !x(t) มลกษณะดงแสดงในรปท 2.2 สญญาณนเราสามารถนยามใหมนเปนสญญาณไมตอเนอง หรอเปน “ล าดบของคา” ดงทไดกลาวมาในบทท 1 ซงกจะใชสญญลกษณเปน x(n) โดยใชคา n เปนตวชแทน t จะไดวา x(n) มความสมพนธกบ x(t) ดงน
x(n) = x(t) t = nT (2.4)
ขอย าใหเขาใจอกครงวา สญญาณ (t)x กบ x(n) นน หมายถงสญญาณตวเดยวกน เพยงแตสญญาณ (t)x เปนการมองสญญาณนในลกษณะเปนสญญาณแอนะลอกในแกนของเวลา t ซงเราจะเหนวาสญญาณมคาทเวลา t = … -2T, -T, 0, T, 2T, … แตสญญาณ x(n) เปนการมองสญญาณเปนสญญาณไมตอเนอง หรอเปนล าดบ คอ มคาท n = …, -2, -1, 0, 1, 2, … สญญาณ x(n) นทงความหมายของเวลาแบบแอนะลอกไปเรยบรอยแลว กลายเปนเหมอนล าดบของขอมลเฉย ๆ ในบทตอ ๆ ไปเราจะท างานกบสญญาณประเภทน และจะเหนตอไปวา ตวประมวลผลสญญาณดจตอลกไมจ าเปนตองร
บทท 2 การสมสญญาณ และการสรางสญญาณคน 13
คาเวลาทแทจรงของสญญาณเลย หรอไมตองใชคา fs เลยในการประมวลผล แตอยางไรกตามเราตองจดบนทกไววา x(n) ทเปนสญญาณขาเขาของระบบน เกดจากการสมสญญาณแอนะลอกมาดวยอตราfs เทาไร เพอทจะใชวเคราะหในเรองผลตอบสนองเชงความถของระบบ และใชเปนพารามเตอรในการออกแบบระบบดงจะไดกลาวในบทตอ ๆ ไป
1tt t
รปท 2.2 สรปสญญาณตาง ๆ ในการสมทงภาคเวลาและความถ
ลองมาดในภาคความถบางวาเกดอะไรขน สมมตวาสญญาณ x(t) เมอใชการแปลงฟรเยรไดสเปกตรมเปน X(f) ซงสมมตวามแถบความถ (bandwidth) จ ากด และมองคประกอบความถสงสดอยทfmax ดงในรป 2.2 สวนสญญาณ s(t) จะสามารถพสจนโดยใชการแปลงฟรเยร (ขอละไมพสจนใหด)ไดวามสเปกตรมเปนสญญาณอมพลสหลายลกทมคาบคงทเชนกน โดยคาบในทนเทากบ fs และมขนาดคงทเทากบ fs เขยนเปนสมการไดดงสมการท 2.5
∑δ∞
∞ - =n ss )nf-(ff = S(f) (2.5)
ส าหรบสเปกตรมของสญญาณขาออก คอ )f(X อาจหาไดโดยกฎทวา การคณในเชงเวลาเทากบการคอนโวลชน (convolution) ในเชงความถ นนคอ เมอ !x(t) เปนผลคณระหวางสญญาณ s(t) กบx(t) จะไดวา สเปกตรมของ !x(t) คอ )f(X จะเทากบผลคณคอนโวลชนระหวาง X(f) กบ S(f) ดงน(ขอนยามสญลกษณ * แทนการคณคอนโวลชน)
S(f) * X(f)= (f)X
x(t) s(t) x (t) หรอ x(n)
|X(f)| S(f) | !X (f)|
-fmax 0 fmax f -fs 0 fs 2fs f -fs 0 fs
-fs/2 fs/2
∑δ∞
∞ - =n ss )nf-(ff = S(f) ∑
∞
∞ - =n ss )nf-X(ff = (f)X
∑δ∞
∞ - =n nT)-(t = s(t)
T∑δ∞
∞ - =n nT)-(t x(t) = (t)x
(Nyquist interval)
บทท 2 การสมสญญาณ และการสรางสญญาณคน 14
เมอแทนคา S(f) ลงไป แลวจดใหเปนรปอยางงายจะได
∑ δ
∑δ
∞
∞
∞
∞
- =n ss
- =n ss
)nf-(f*)f(Xf =
)nf-(ff * X(f)= (f)X
∑∞
∞ - =n ss )nf-X(ff = (f)X (2.6)
สมการนประกอบดวยผลบวกของเทอม X(f-nfs) ซงเทอมน คอ สเปกตรมของสญญาณขาเขาทเลอนจดศนยกลางไปอยทต าแหนงความถ nfs โดย n เปนจ านวนเตมตงแต -∞ จนถง +∞ นนหมายถงวา สเปกตรมของสญญาณหลงการสม คอ )f(X ประกอบดวยส าเนาของสเปกตรมของสญญาณกอนการสม คอ X(f) อยมากมาย โดยส าเนาเหลาน จะเกดขนทความถ ..., -2fs, -fs, 0, fs, 2fs, ... เปนศนยกลาง ส าเนาแตละตวน มชอเรยกอกอยางหนงวา เปนภาพฉาย (image) ของสญญาณ รปรางของ
)f(X ทได แสดงตวอยางดงในรปท 2.2ขอใหสงเกตวา สเปกตรม )f(X ทหามาไดนกมลกษณะทเปนอดมคตในเชงสญญาณแอนะ
ลอก คอ มนมองคประกอบของสญญาณเรอย ๆ ไปจนถงความถอนนต แสดงวามนมพลงงานไมจ ากดซงเปนไปไมได ดงนน ทงสญญาณ x(t) และ )f(X (ถามองในเชงแอนะลอก) เปนสญญาณทเราสรางขนในทางคณตศาสตร เพอประโยชนในการวเคราะหขดจ ากดของกระบวนการสมตอไป
ทฤษฎการสมสญญาณ (Sampling Theorem)
ทฤษฎการสมสญญาณ ระบไววา ถาสญญาณทตองการสมมความถสงสดท fmax เพอใหไดสญญาณทสมแลวเปนตวแทนทถกตองของสญญาณน ความถในการสมจะตองมคามากกวาสองเทาของความถสงสดในสญญาณ หรอ
fs > 2fmax (2.7)
ซงความถท 2fmax น มชอเรยกพเศษวา “ความถไนควสท” (Nyquist frequency) หรออตราไนควสท ลองพจารณาวาถาเราใช fs ต ากวาคาความถไนควสทจะเกดอะไรขน ซงผลทเกดขนนจะดไดชดเจนในภาคความถ ถาเรายดหลกวาทไดพสจนมาในหวขอทแลววา หลงการสมจะเกดสเปกตรมของสญญาณกอนการสมอยทความถ ..., -2fs, -fs, 0, fs, 2fs, ... เปนศนยกลาง แลวลองวาดรปคราว ๆ ออกมา จะไดดงแสดงในรป 2.3
บทท 2 การสมสญญาณ และการสรางสญญาณคน 15
aliasing
0
รปท 2.3 แสดงสญญาณในเชงความถทเกดขน เมอใช fs ต ากวา 2fmax
เมอ fs ต ากวา 2fmax จะเหนไดวา ส าเนาของ X(f) ทเกดขนจะมชวงของความถสวนปลายทซอนทบกน เรยกองคประกอบความถสวนทซอนทบกนนวา aliasing (อานวา เอเลยดซง) ซง aliasingนเปนผลรายอยางยงกบระบบประมวลผลสญญาณ เนองจาก ในระบบแบบไมตอเนองเราจะสนใจความถในชวง -fs/2 จนถง fs/2 ซงเรยกวา ชวงไนควสท หรอ ยานไนควทซ (Nyquist interval) ซงถาเกด aliasing ซอนทบในชวงไนควสทน กจะถอวา สญญาณขาเขาทสมมาไดมความผดเพยนไปกอนทจะเขาไปในสวนของการประมวลผลเสยอก หรอพดอกอยางหนงกคอ สญญาณทสมมาได ไมเปนตวแทนทสมบรณของสญญาณแอนะลอกขาเขา จงจ าเปนอยางยงทเราตองพยายามไมให aliasing เกดขน หรอใหเกดนอยทสดเทาทจะท าได ซงกระท าไดสองวธ คอ
1. การใชตวกรองเพอปองกน aliasing (anti-aliasing filter) ในกรณทเราไมมนใจวาสญญาณทจะท าการสมไมมความถจ ากดอยท fmax เชน อาจมสญญาณรบกวนความถสง หรอสญญาณอน ๆ ปนอยดวย วธแกท าไดโดยการใชตวกรองแอนะลอกแบบผานความถต า เพอจ ากดความถของสญญาณใหอยในชวงทสนใจเทานน (ต ากวา fmax) นนคอ เราตองการตวกรองผานความถต าทมความถตดท fmax
ดงแสดงผลตอบสนองเชงความถแบบอดมคตของตวกรองน ในรปซายมอของรปท 2.4
กรณอดมคต ความเปนจรงff
1 1
รปท 2.4 ผลตอบสนองเชงความถของตวกรองปองกน aliasing
อยางไรกตาม ในชวตจรงตวกรองแบบอดมคตทตองการไมสามารถท าได และถาตองการสรางตวกรองทใกลเคยงกบอดมคตกจะท าใหตนทนสง ตวกรองทสามารถท าไดในทางปฏบตมรปรางประมาณในรปขวามอของรปท 2.4 คอ มความชนของการตดความถไมคมเทากบตวกรองอดมคตจงท าใหอาจม aliasing บางสวนเกดขนไดถาเราใชความถในการสมพอดเทากบ 2fmax
-fs -fs/2 fs/2 fs f
! ( )X f
-fmax 0 fmax -fmax 0 fmax
|Hfilter||Hideal|
บทท 2 การสมสญญาณ และการสรางสญญาณคน 16
2. การสมโดยใชความถเกนกวา 2fmax มาก ๆ หรอเรยกวาการท า Oversampling การสมดวยความถสงขนเปนวธทใชปองกน aliasing เสรมจากวธแรก เชนเดยวกน ถาพจารณาในเชงความถจะเหนวา เมอ fs มคาสงขน จะมชวงความถทเผอใหเกด aliasing ไดกวางขน (ชวงเผอน คอ ยาน toleranceทเขยนอยในรปท 2.5 เปนยานทไมมความถของสญญาณทเราสนใจอย) ชวงเผอนเปนยานความถทยอมใหมความถของสญญาณทไมตองการหลดรอดเขามาในระบบไดบาง ดงนน การสมดวยความถสงกวาอตราไนควสท จงท าใหเราสามารถใชตวกรองปองกน aliasing ทไมตองมคณสมบตคมมากนกได
รปท 2.5 สเปกตรมของสญญาณทเกดขน เมอสมดวยความถสงกวา 2fmax มาก ๆ
ในทางปฏบตจงมกใช fs ≥ 2.5fmax เพอชดเชยผลของการทตวกรอง anti-aliasing ไมเปนอดมคต ส าหรบ fs สงสดทเราจะสมไดโดยทวไป กขนอยกบขดจ ากดดานความเรวของตวแปลงแอนะลอกเปนดจตอล และตวประมวลผลทเลอกใช ถาความถ fs สงขนกหมายถงวา ตองใชวงจรแปลงสญญาณทเรวขน และใชปรมาณการประมวณผลทมากขน เพราะอตราขอมลสงขน โดยชวงเวลาทใชประมวลผล เพอใหไดคาแตละคาของสญญาณขาออก(Tproc) ตองมคานอยกวาคาบของการสม ดงน
Tproc < T (2.8)
การสรางสญญาณคน (Analog Reconstruction)
การสรางสญญาณคน ในทางทฤษฎท าไดโดยผานสญญาณแบบไมตอเนองเขาไปยงตวกรอง(แอนะลอก) แบบผานความถต าทมความถตดท fs/2 ตวกรองนบางครงเรยกวา ตวกรองสรางสญญาณคน (reconstruction filter) ตวกรองจะผานเฉพาะสญญาณในชวงความถระหวาง -fs/2 ถง fs/2 หรอชวงไนควสทออกมา ผลทไดกคอ เราจะไดส าเนาของสเปกตรมทอยรอบความถ 0 ออกมาเปนสญญาณขาออก ซงมนก คอ สญญาณแอนะลอกทมรปรางเปนขอบของสญญาณแบบไมตอเนองกอนสรางกลบนนเอง ดงแสดงในรปท 2.6
-fs -fmax 0 fmax fs f
tolerance
-fs/2 fs/2! ( )X f
บทท 2 การสมสญญาณ และการสรางสญญาณคน 17
ตวกรองสรางสญญาณคน
tty t( )
y n( )
!( )y tหรอ
รปท 2.6 สญญาณขาเขาและออกของตวกรองสรางสญญาณคน
ในทางปฏบต เราไมใช )t(y เปนสญญาณขาเขาของตวกรองสรางสญญาณคน เนองจากอยางทกลาวมาแลววา เรามองเหนสญญาณไมตอเนองในลกษณะเปนล าดบของขอมล สญญาณทมองแบบแอนะลอก คอ )t(y เปนสญญาณอดมคตทใชพสจนในทางคณตศาสตรเทานน ดงนน การแปลงสญญาณดจตอลเปนแอนะลอกในชวตจรง เราจะน าสญญาณ y(n) มาผานวงจรคงคา (hold) ทท างานเขาจงหวะกบอตราสมของสญญาณ y(n) เพอสรางเปนสญญาณลกษณะขนบนไดดงในรปท 2.7 กอนจากนนจงคอยใชสญญาณขนบนไดนสรางเปนสญญาณขาออก โดยสงมนผานตวกรองผานต าเพอสรางสญญาณคนอกทหนง
รปท 2.7 สญญาณขาเขา และขาออกของวงจรคงคาสญญาณ
บางคนอาจสงสยวา แลวสญญาณขนบนได )t(y 2 ทสรางขนมาน มลกษณะของสเปกตรมเหมอน หรอแตกตางจากจากสเปกตรมของสญญาณ )t(y อยางไร เราสามารถหาสเปกตรมของสญญาณ )t(y 2 ไดงาย ๆ โดยมองวงจรคงคาสญญาณเปนระบบแอนะลอกแบบเชงเสนอนหนง ซงมผลตอบสนองสญญาณอมพลสคอ hH(t) ดงแสดงในรป 2.8ก นนคอ วงจรนเปลยนอมพลสของสญญาณขาเขา เปนพลสสเหลยมทมความกวางเทากบคาบของอตราการสม เมอท าการแปลงฟรเยรผลตอบสนองอมพลสน จะไดผลตอบสนองเชงความถของระบบมลกษณะเปนฟงกชนซงค (sinc) ดงรป 2.8ข (สญญาณพลสแปลงฟรเยรไดสญญาณซงค และสญญาณซงคแปลงฟรเยรไดสญญาณพลส)
0 T … t
| ! ( )|Y f
-fs 0 fs f 0 f
|Y(f)|
fcutoff = fs/2
0 T … t 0 … t
)t(y )t(y 2 y(t)
บทท 2 การสมสญญาณ และการสรางสญญาณคน 18
สเปกตรมของสญญาณขาออกของวงจรคงคาน หาไดจากผลคณของสเปกตรมของสญญาณขาเขา และผลตอบสนองเชงความถของระบบ ซงไดผลลพธดงแสดงในรปท 2.8ง สงเกตไดวาสเปกตรมของสญญาณขนบนไดกยงคงมส าเนาของสญญาณแอนะลอกทความถ 0, fs, 2fs, … อยครบถวน เพยงแตส าเนาแตละตวถกกดขนาดลงไปดวยการคณของฟงกชนซงค ซงส าเนาเหลานจะตองถกก าจดทงโดยตวกรองสรางสญญาณคนทมความถตดท fs/2 เพอใหไดสญญาณแอนะลอกขาออกมรปรางทเรยบสมบรณ สรปวา ถงแมจะใชวงจรคงคาซงใหผลตอบมองดใกลเคยงสญญาณแอนะลอกทตองการแลว เรากยงคงตองใชตวกรองสรางสญญาณคนรวมดวย ผอานทไมคนเคยกบเรองสญญาณ และระบบ อาจเขาใจการพสจนทอธบายมายากสกหนอย แตขอใหเพยงดในภาพรวม และขอสรปทไดนกพอ
hH(t)
t 0 T
1
0 fs 2fs 3fs
|HH(f)|
f
0 fmax fs 2fs 3fs
| !( )|Y f
f
0 fmax fs 2fs 3fsf
| ! ( )|Y f2
รปท 2.8 ก) ผลตอบสนองสญญาณอมพลสของวงจรคงคา, ข) ผลตอบสนองเชงความถของวงจรคงคา, ค) สเปกตรมของสญญาณ !( )y t , ง) สเปกตรมของสญญาณ ! ( )y t2
ข)
ค)
ง)
ก)
บทท 2 การสมสญญาณ และการสรางสญญาณคน 19
เชนเดยวกนกบตวกรองปองกน aliasing คอ เราไมสามารถท าตวกรองอดมคตส าหรบสญญาณคนได ซงผลขางเคยงกคอ จะท าใหสญญาณทอยในชวงความถสงกวา fs/2 หลดลอดออกมาทสญญาณขาออกดวย กลายเปนความผดเพยนของสญญาณขาออกไป อยางไรกตาม ถาหากใชความถในการสมสง ๆ หรอ oversampling เพอใหมระยะหางระหวางส าเนาความถแตละตวมากขน นอกจากจะชวยแกปญหาของการใชตวกรองปองกน aliasing ทไมเปนอดมคต ดงทไดกลาวในหวขอกอนหนานแลว กยงจะชวยแกปญหาของการใชตวกรองสรางสญญาณคนทไมเปนอดมคตไดในท านองเดยวกนอกดวย
ขอสรปเรองการสมสญญาณ และการสรางสญญาณคน ดวยทฤษฎการสมสญญาณวา “ถาเราสมสญญาณแอนะลอกดวยความถ fs ทมากกวา 2fmax เราจะสามารถสรางสญญาณแอนะลอกคนมาไดโดยสมบรณ” นนกคอ สญญาณไมตอเนองทเกดจากการสมจะเปนตวแทนทสมบรณของสญญาณตนฉบบ โดยไมมการผดเพยนเลย อยาลมหมายเหตไวดวยความเขาใจเองดวยวา ในทางปฏบต fs ควรมากกวา 2fmax พอประมาณเพอชดเชยการทเราหาตวกรองอดมคตไมได ทฤษฎการสมสญญาณนก าเนดขนตงแตป ค.ศ. ….. โดย Shannon และเปนการเปดยคของการสอสารดวยสญญาณดจตอล,การเกบสญญาณดวยดจตอล และกตามมาดวยการประมวลผลสญญาณดจตอล
ตวอยางท 2.1 แผนภาพขางลางแสดงการสอสารดวยสญญาณดจตอล หรอการเกบสญญาณดจตอล(ยงไมมสวนประมวลผลสญญาณ) โดยสญญาณแอนะลอกถกสมเปนสญญาณดจตอลทตนทาง และถกแปลงกลบทปลายทาง ถาสญญาณขาเขาของระบบในภาพ คอ
x(t) = sin(2πf1t) + 0.3cos(2πf2t)
วงจรส มส ญญาณ
วงจรสร างส ญญาณค นfcutoff = fs/2
x(t)x(n)หร อ!( )x t
y(t)
โดยท f1 = 2 kHz และ f2 = 4 kHz และระบบใชความถในการสม คอ fs = 14kHz จงหา1.1) x(n), สมมตวาเรมสมจดแรกท t = 01.2) วาดสญญาณในเชงความถของ x(t) และ !( )x t ซงกคอ X f( ) และ ! ( )X f1.3) วาดสญญาณ !( )x t และ y(t)
วธท า1.1) ต าแหนงเวลาทเกดการสมสญญาณ คอ t = nT, n=0, 1, 2, … แทนคา t น ลงในสมการ x(t)และใชตวชของฟงกชนใหมเปน n จะได x(n) = x(t) t = nT
= sin(2πnf1T) + 0.3cos(2πnf2T)
บทท 2 การสมสญญาณ และการสรางสญญาณคน 20
= sin(2πnf1/fs) + 0.3cos(2πnf2/fs)
= sin( 2 n7
+ 0.3cos( 4 n7
π π) ) , n = 0, 1, 2, …
= [0.300 0.7151 0.7046 0.6209 -0.2468 -1.2452 -0.8486 …]
1.2) จะไดวาสญญาณ ! ( )X f กคอ ส าเนาของ X f( ) ทเกดขนทก ๆ ความถ …, -2fs, -fs, 0, fs, 2fs,… เปนศนยกลาง ดงแสดงในรปท 2.9
-4k -2k 0 2k 4k f(Hz)
-18k -16k -14k -12k -10k -4k -2k 0 2k 4k 10k 12k 14k 16k 18k f(Hz)
• • •• • •
! ( )X f
X f( )
ส วนท เป นส ญญาณขาออก |Y(f)|
รปท 2.9 สเปกตรมของ x(t) และ !( )x t เมอสมดวย fs = 14kHz
1.3) สญญาณ !( )x t คอสญญาณเดยวกบ x(n) แตมองในเชงเวลา ซงจะไดวาแตละจดอยทเวลา 0,T, 2T, 3T, …
ส าหรบสญญาณ y(t) คอสญญาณทผานตวกรองสรางสญญาณคนแลว ซงในทนจะได ความถ 2kHz และ 4kHz เปนสญญาณขาออก หรอ
y(t) = sin(2πf1t) + 0.3cos(2πf2t), f1 = 2kHz และ f2 = 4kHz
t (ms)
y(t)
!( )x t
รปท 2.10 สญญาณในเชงเวลาของ y(t) และ !( )x t เมอ fs = 14kHz
บทท 2 การสมสญญาณ และการสรางสญญาณคน 21
ตวอยางท 2.2 ท าตวอยางท 2.1 ซ า โดยใช fs = 7 kHz ใหระบในภาพของ ! ( )X f ดวยวา สวนใด คอaliasing พรอมทงตอบค าถามวา ตองใช fs เทากบเทาไรจงไมเกด aliasing
จาก x(n) = sin(2πnf1/fs) + 0.3cos(2πnfs/fs) คราวนแทน fs = 7kHz จะได
= sin( 4 n7
+ 0.3cos( 8 n7
π π) ) , n = 0, 1, 2, …
= [0.300 0.7046 -0.2468 -0.8486 …]
-4k -2k 0 2k 4k f(Hz)
-12k -11k -10k -9k -7k -5k -4k -3k -2k 0 2k 3k 4k 5k 7k 9k 10k 11k 12k f(Hz)
• • •• • •
! ( )X f
X f( )
ส วนท เป นส ญญาณขาออก |Y(f)|
aliasing
รปท 2.11 สเปกตรมของ x(t) และ !( )x t เมอสมดวย fs = 7kHz
จากรป ! ( )X f เราพบส าเนาของ X(f) ทมศนยกลางเปน 7kHz มสวนปลายมาตกทความถ 3kHz ซงเปนสวนทเหลอมกบส าเนาของ X(f) ทมศนยกลางเปน 0 Hz สวนทเหลอมกนนคอ aliasingดงแสดงในรปท 2.11 ดงนนเมอสญญาณนผานตวกรองสรางสญญาณคน ซงมความถตด ท 3.5 kHz กจะไดสญญาณขาออก y(t) เปนองคประกอบของความถ 2kHz และ 3kHz ซงผดจากสญญาณขาเขาซงมความถ 2kHz และ 4kHz
y(t) = sin(2πf1t) + 0.3cos(2πf2t), f1 = 2kHz และ f2 = 3kHz
นคอ ความผดเพยนทเกดขนจาก aliasing เราสามารถมองเหนความผดเพยนในเชงเวลาไดโดยเปรยบเทยบรปท 2.12 กบรปท 2.10 มขอสงเกต คอ x(n) ทไดจากตวอยางน ในชวงเวลาทสมเทากนจะไดจ านวนจดเปนครงหนงของตวอยางแรก หรอไดจดทสมเปนจดเวนจดของกรณแรกพอด จะเหนไดวากราฟของ y(t) ทผดเพยนจะทบพอดกบจดทสมไดทกจด ในเชงเวลา เราสรปไดคราว ๆ วาถาจ านวนจดทสมไดนอยไป จะไมสามารถสรางสญญาณจรงคนไดอยางถกตอง
ในทางทฤษฎ ความถในการสมทไมท าใหไมเกด aliasing ขนตองมคามากกวา 2 เทาของความถสงสดทมอยในสญญาณขาเขา ในทนความถสงสด คอ 4Hz ดงนน fs ตองมากกวา 8 kHz
บทท 2 การสมสญญาณ และการสรางสญญาณคน 22
t (ms)
y(t)!( )x t
รปท 2.12 สญญาณในเชงเวลาของ y(t) และ !( )x t เมอ fs = 7kHz
ผเรยนมกมปญหาวา มองไมเหนวา aliasing คออะไร และคดไปวาเปนสงทมองไมเหน ตองคดแตในทฤษฏเทานน จรง ๆ แลวไมใช เชน ในตวอยางท 2.2 น aliasing อยทความถ 3 kHz ซงสามารถมองเหนไดชดเจน เพราะมนผานออกมาทสญญาณขาออกดวย สญญาณขาออกมองคประกอบทความถ 3 kHz อยดวย และกเปนสวนทท าใหสญญาณผดเพยนไปจากสญญาณขาเขา
ตวอยางท 2.3 ถาสญญาณขาเขาของระบบในตวอยางท 2.1 เปนดงตอไปน (ไมมตวกรองปองกนaliasing) จงระบวาจะเกด aliasing ขนทความถใดบางในชวงระหวาง 0 ถง fs/2 ใหใช fs=18kHz
ก) x(t) = sin(8000πt)cos(12000πt)สญญาณนประกอบดวยสองความถคณกน (รปแบบสญญาณ sin(2πft+φ) คอ รปแบบของ
สญญาณซายน หรอสญญาณความถเดยวทความถ f ) แตไมไดหมายความวามนมองคประกอบความถทสองความถน เราจะตองกระจากมนออกมาใหอยในรปของผลบวกกอนจงจะบอกได โดยใชสตรตรโกณมตวา sinAcosB = 0.5sin(A+B) + sin(A-B) จะได
x(t) = 0.5sin(20000πt) + 0.5sin(-4000πt)= 0.5sin(20000πt) - 0.5sin(4000πt)
ดงนน x(t) มองคประกอบความถ 10 kHz และ 2 kHz เมอสมดวยความถ fs = 18 kHz องคประกอบความถท 10 kHz เปนสวนทเกนยานไนควทซ (fs/2) ซงจะท าใหเกด aliasing ขน เราอาจจะใชวธวาดรปเพอหาควาามถของ aliasing เหมอนทท ามา หรออาจใชวธลดโดยใชสตรวา
ความถ aliasing = | m fs - ความถของสญญาณขาเขาทเกนยานไนควทซ | (2.9)
บทท 2 การสมสญญาณ และการสรางสญญาณคน 23
โดยท m มคาเปนจ านวนเตมทท าใหผลลพธของคาความถ aliasing อยในชวงไนควทซ ในขอนความถของสญญาณขาเขาท 10 kHz เลอก m=1 จะไดวา
ความถ aliasing = | 18k - 10k | = 8 kHz
ขอยกตวอยางเพมเตมเพอใหเขาใจวธใชสมการท 2.9 ไดดยงขน เชน ถาสมมตวาในขอนมความถของสญญาณขาเขาท 40 kHz คราวนเราจะเลอก m=2 ซงจะไดวา
ความถ aliasing = | 2 (18k) - 40k | = |-4k| = 4 kHz
ซงถา m เทากบคาอน จะไมท าใหความถ aliasing ตกอยในชวงไนควทซ (0 ถง 9 kHz) การใชm=2 น หมายถงวา aliasing ทเกดขนมาจากส าเนาของ X(f) ทอยรอบจดความถ 2fs
ข) x(t) ซงมสเปกตรมดงในรป
-10k 0 10k f (Hz)
|X(f)|
ความถในชวง 9 ถง 10 kHz จะท าใหเกด aliasing โดยทaliasing อยในชวงความถ = fs - 10 kHz ถง fs - 9 kHz
= 8 kHz ถง 9 kHz
ค) x(t) ซงเปนสญญาณรายคาบสเหลยมดงในรป
-0.5 0 0.5 t (ms)
x(t)
x(t) นเปนสญญาณสเหลยมทมคาบเทากบ 0.5 ms เพราะฉะนน มความถพนฐานท f0 =1/0.5ms = 2 kHz ถาเปดสตรเกยวกบอนกรมฟรเยร จะพบวา สญญาณสเหลยมรายคาบจะมความถทประกอบดวยความถพนฐาน และความถฮารมอนกค (คอ 3f0, 5f0, 7f0, ...) ดงนน สญญาณ x(t)ในทนจะประกอบดวยความถ 2 kHz, 6 kHz, 10 kHz, 14 kHz, 18 kHz, ...
บทท 2 การสมสญญาณ และการสรางสญญาณคน 24
ความถทเกน 9 kHz คอ 10 kHz, 14 kHz, 18 kHz, ... เปนองคประกอบทจะท าใหเกด aliasingในทางปฏบตทฮารมอนกสง ๆ ของสญญาณสเหลยมจะมพลงงานต าลง ๆ ซงเราอาจจะไมตองวเคราะหทความถสงเหลานกได แตในทนจะลองวเคราะหดททกความถกอน ดวาจะเกดความถalaiasing ทใดบาง
ทความถ 10 kHz จะท าใหเกด aliasing ท |18k - 10k| = 8 kHzทความถ 14 kHz จะท าใหเกด aliasing ท |18k - 14k| = 4 kHzทความถ 18 kHz จะท าใหเกด aliasing ท |18k - 18k| = 0 kHzทความถ 22 kHz จะท าใหเกด aliasing ท |18k - 22k| = 4 kHzทความถ 26 kHz จะท าใหเกด aliasing ท |18k - 26k| = 8 kHzทความถ 30 kHz จะท าใหเกด aliasing ท |2(18k) - 30k| = 6 kHzทความถ 34 kHz จะท าใหเกด aliasing ท |2(18k) - 34k| = 2 kHzทความถ 38 kHz จะท าใหเกด aliasing ท |2(18k) - 38k| = 2 kHzทความถ 42 kHz จะท าใหเกด aliasing ท |2(18k) - 42k| = 6 kHzทความถ 46 kHz จะท าใหเกด aliasing ท |3(18k) - 46k| = 8 kHz. . .เหนไดวา ในขอน aliasing เกดซ า ๆ กนทความถเดม ๆ พอด ถาวเคราะหตอไปทความถสงขน
จะไมพบความถ aliasing อน ๆ นอกเหนอจากทไดแสดงมานเลย ดงนน ในขอนความถ aliasing ทเกดขนทงหมดอยทความถ 0, 2 kHz, 4 kHz, 6 kHz, และ 8 kHz
บทท 3 ระบบแบบไมตอเนอง 25
บทท 3ระบบแบบไมตอเนอง (Discrete-Time Systems)
ในบทนจะกลาวถงระบบแบบไมตอเนอง ซงระบบการประมวลผลสญญาณดจตอลทจะศกษาตอไปกคอ ระบบแบบไมตอเนองนเอง จงมความจ าเปนทจะตองเขาใจเนอหาสวนนใหด ถาใครไดศกษาระบบแบบตอเนอง (Continuous-Time System) มาแลว กจะพบวา ระบบทงสองมลกษณะแนวทางในการคด และการวเคราะหคลายคลงกน ไมวาในเรองของความเปนเชงเสน และไมแปรตามเวลา,การหาผลตอบ, การแปลงระหวางสญญาณในเชงเวลากบความถ, เสถยรภาพ และอน ๆ
ระบบแบบไมตอเนองคออะไร
ระบบแบบไมตอเนองกคอ สวนประมวลผลทไดกลาวถงในบทท 1 นนเอง มสญญาณขาเขาx(n) และสญญาณขาออก y(n) เปนสญญาณไมตอเนอง ระบบแบบไมตอเนองจะท าการประมวลผลหรอ ท าแปลงจากสญญาณขาเขาไปเปนสญญาณขาออก การประมวลผลนอาจเปนการกระท าใด ๆ กได เชน
ก) y(n) = 2x(n - 2) ใหสญญาณขาออกเปนสญญาณขาเขาทถกขยายขนสองเทา และลาหลง(delay) ไป 2 ล าดบเวลา ดงในรปท 3.1
รปท 3.1 แสดงตวอยางของสญญาณขาเขา และขาออกของระบบไมตอเนอง y(n) = 2x(n - 2)
n
n
บทท 3 ระบบแบบไมตอเนอง 26
สงเกตวา x(n) เรมเปนคาลบท n=8 แต y(n) เรมท n=10 (ลาหลงไป 2 ล าดบเวลา) ขอใหจ าใหแมนวารปแบบ x(n-k) คอ สญญาณ x(n) ทลาหลงลง k ล าดบ และ x(n+k) คอ สญญาณ x(n) ทน าหนาขน k ล าดบ (โดย k เปนคาจ านวนเตมบวก)
ข) y(n) = 0.5 ( x(n) + x(n-1) ) สมการเดยวกบทใชในบทท 1 ใหสญญาณขาออกเปนการเฉลยสองต าแหนงของสญญาณขาเขาทตดกน สมการนเปนตวกรองผานต าชนดหนง
ค) y(n) = 0.5y(n-1) + x(n) เปนสมการของตวกรองผานต าอกชนดหนง ซงใชสญญาณขาออกในอดตมาค านวณดวย
ง) y(n) = x2(n) ใหสญญาณขาออกเปนก าลงสองของสญญาณขาเขาจ) y(n) = x(2n) สมการนดยากสกหนอย ถาลองแทนคา n = 0, 1, 2, … ลงไป จะได
y(0) = x(0), y(1) = x(2), y(2) = x(4), … นนคอ เราจะเหนสญญาณขาออกเปนคาเวนคาของสญญาณขาเขา หรอคอ [x(0), x(2), x(4), x(6), … ] ดงนน สมการนท าการลดอตราสมลงเทาหนงนนเอง
ความเปนเชงเสน และไมแปรตามเวลา (Linearity and Time Invariance)
ระบบทเราจะสนใจเปนพเศษในเนอหาเบองตนของการประมวลผลสญญาณ คอ ระบบแบบเชงเสน และไมแปรตามเวลา กอนทจะดถงความส าคญของระบบแบบน เรามาดวธคดกอนวาระบบแบบใดทมคณสมบตดงกลาว
สมมตวาระบบแบบไมตอเนองทเราสนใจระบบหนง เมอปอนสญญาณขาเขา x1(n) ท าใหเกดสญญาณขาออก y1(n) และเมอปอนสญญาณขาเขา x2(n) ท าใหเกดสญญาณขาออก y2(n)
ถาให x(n) เปนสญญาณขาเขาใหม ทเกดจากการค านวณแบบเชงเสนระหวาง x1(n) และ x2(n)นนคอ
x(n) = a1x1(n) + a2x2(n) (3.1)
โดย a1 และ a2 เปนคาคงทใด ๆ ทไมเทากบศนย เรากลาววาระบบนเปนระบบแบบเชงเสน(linear system) ถา x(n) นท าใหเกดสญญาณขาออก คอ
y(n) = a1y1(n) + a2y2(n) (3.2)
นนคอ จะตองได y(n) เปนการค านวณแบบเชงเสนระหวาง y1(n) และ y2(n) โดยทมสมประสทธทใชคณ (a1 และ a2) ตวเดยวกนกบสญญาณขาเขา
บทท 3 ระบบแบบไมตอเนอง 27
ระบบเชงเสนบอกเราวา- ถาเราคณสญญาณขาเขาดวยคาสมประสทธคาหนง สญญาณขาออกกเปลยนไปดวยตวคณ
เดยวกน- ถาสญญาณขาเขาเปนผลรวมของสญญาณหลาย ๆ สญญาณ สญญาณขาออกกจะเปนผลรวม
ของสญญาณขาออก ทเกดจากสญญาณขาเขาแตละตวมารวมกนคณสมบตของระบบทเปนเชงเสนน เรยกอกอยางหนงวา คณสมบต superpositionส าหรบคณสมบตความไมแปรตามเวลาของระบบไมตอเนอง มเงอนไขวาถาสญญาณขาเขา x(n) ท าใหเกดสญญาณขาออก y(n) แลว ถาใหสญญาณขาเขาลาหลง หรอ
น าหนาไปเทากบ k ล าดบ คอ กลายเปน x(n-k) ระบบจะใหสญญาณขาออกเปน y(n-k) (ไดสญญาณเหมอนเดม และลาหลง หรอน าหนาไปเทากบสญญาณขาเขา)
ระบบแบบไมแปรตามเวลา (time-invariant system) บอกเราวา ไมวาเราจะใสสญญาณขาเขาทเวลาใด เราจะไดสญญาณขาออกทเหมอนเดมเสมอ นนกคอในระบบมคาพารามเตอร หรอสมประสทธตาง ๆ คงท ไมแปรตามเวลา หรอแปรตามสภาวะแวดลอมใด ๆ เลย
ตวอยางท 3.1 จงทดสอบวาระบบทมความสมพนธระหวางสญญาณขาออก และขาเขาตามสมการเหลานเปนระบบแบบเชงเสน และไมแปรตามเวลาหรอไม
1) y(n) = ax(n) + bx(n-1) 1.1) ทดสอบวาเปนเชงเสนหรอไม ? ใส x1(n) เปนสญญาณขาเขา จะได y1(n) = ax1(n) + bx1(n-1) ใส x2(n) เปนสญญาณขาเขา จะได y2(n) = ax2(n) + bx2(n-1)
สมมตให x(n) = a1x1(n) + a2x2(n) ใส x(n) เขาไปในระบบ จะได y(n) = a [a1x1(n) + a2x2(n)] + b [a1x1(n-1) + a2x2(n-1)]
จดล าดบเทอมทงสใหมจะได y(n) = a1 [ax1(n) + bx1(n-1)] + a2 [ax2(n) + bx2(n-1)] = a1y1(n) + a2y2(n) เหนไดวา x(n) ท าใหเกด y(n) ทตรงตามคณสมบต ดงนน ระบบนเปนแบบเชงเสน
1.2) ทดสอบวาแปรตามเวลาหรอไม ? สมมตให xd(n) = x(n-k) ลองใส xd(n) เขาไปในระบบ จะไดผลตอบคอ
บทท 3 ระบบแบบไมตอเนอง 28
yd(n) = axd(n) + bxd(n-1) = ax(n-k) + bx((n-1)-k) = ax(n-k) + bx((n-k)-1)
= y(n-k) เหนไดวา x(n-k) ท าใหเกด y(n-k) นนคอ ระบบนไมแปรตามเวลา
2) y(n) = x(2n) 2.1) ทดสอบวาเปนเชงเสนหรอไม ? ใส x1(n) เปนสญญาณขาเขา จะได y1(n) = x1(2n) ใส x2(n) เปนสญญาณขาเขา จะได y2(n) = x2(2n) สมมตให x(n) = a1x1(n) + a2x2(n) ใส x(n) เขาไปในระบบ จะได y(n) = x(2n) = a1x1(2n) + a2x2(2n) ซงเหนไดชดวา y(n) = a1y1(n) + a2y2(n) ดงนน ระบบนเปนแบบเชงเสน
2.2) ทดสอบวาแปรตามเวลาหรอไม ? สมมตให xd(n)= x(n-k) ลองใส xd(n) เขาไปในระบบ จะไดผลตอบคอ yd(n) = xd(2n) = x(2n-k)
แต y(n-k) = x(2(n-k)) = x(2n - 2k)เหนไดชดวา yd(n) ≠ y(n-k) กลาวคอ สญญาณขาเขา x(n-k) ไมท าใหเกด y(n-k) ดงนนระบบนแปรตามเวลา (time-varying system)
ระบบในขอสองนเรยกวาระบบลดอตราการสม (downsampler) ซงจะกลาวถงในบทท 11 ขอยกตวอยางสญญาณเพอแสดงใหเหนความไมแปรตามเวลาอยางชดเจนของระบบ ดงน x(n) = [ x0, x1, x2, x3, x4, x5, … ] ไดขาออก คอ y(n) = [ x0, x2, x4, x6, … ]แตเมอสญญาณขาเขาถกดงใหลาหลงไป 1 ต าแหนง นนคอ xd(n) = x(n-1) = [ 0, x0, x1, x2, x3, x4, x5, … ] ไดขาออก คอ yd(n) = [ 0, x1, x3, x5, x7, … ]ถาระบบเปนแบบไมแปรตามเวลา เราควรจะได yd(n) = y(n-1) แตเรากลบได yd(n) ทตางจากy(n) โดยสนเชงดงทแสดง ดงนน ระบบนแปรตามคาของเวลาทลาหลง
3) y(n) = 2x(n) + 5 3.1) ทดสอบวาเปนเชงเสนหรอไม ?
บทท 3 ระบบแบบไมตอเนอง 29
ใส x1(n) เปนสญญาณขาเขา จะได y1(n) = 2x1(n) + 5 ใส x2(n) เปนสญญาณขาเขา จะได y2(n) = 2x2(n) + 5 สมมตให x(n) = a1x1(n) + a2x2(n) ใส x(n) เขาไปในระบบ จะได y(n) = 2 [a1x1(n) + a2x2(n)] + 5
ซงจะได y(n) = 2a1x1(n) + 2a2x2(n) + 5แต a1y1(n) + a2y2(n) = a1(2x1(n) + 5) = a2(2x2(n) + 5) = 2a1x1(n) + 2a2x2(n) + 5a1 + 5a2
เหนไดวา y(n) ≠ a1y1(n) + a2y2(n) ดงนน ระบบนไมเปนเชงเสน (nonlinear system)
3.2) ทดสอบวาแปรตามเวลาหรอไม ? สมมตให xd(n) = x(n-k) ลองใส xd(n) เขาไปในระบบ จะไดผลตอบคอ yd(n) = 2xd(n) + 5
= 2x(n-k) + 5 = y(n-k)
เหนไดวา x(n-k) ท าใหเกด y(n-k) นนคอ ระบบนไมแปรตามเวลา
เหนจะพอไดแลวส าหรบตวอยางการทดสอบวาระบบเปนเชงเสน และไมแปรตามเวลาหรอไม รปแบบระบบทเราจะสนใจในเบองตนน คอ
y(n) = a0x(n) + a1x(n-1) + a2x(n-2) + … - b1y(n-1) - b2y(n-2) - …
หรอ y(n) = a x n i b y n iii
ii
( ) ( )− −=
∞
=
∞∑ ∑
0 1 - (3.3)
เมอ ai และ bi เปนคาคงท (ไมแปรตาม n) รปแบบสมการน จะเปนระบบแบบเชงเสน และไมแปรตามเวลาเสมอ
ผลตอบสนองตอสญญาณอมพลส (Impulse Response)
ระบบทเปนเชงเสน และไมแปรตามเวลา มคณลกษณะพเศษ คอ สามารถระบคณลกษณะของระบบไดโดยสมบรณดวยผลตอบสนองตอสญญาณอมพลส ผลตอบสนองตอสญญาณอมพลส ซงจะใชสญลกษณแทนวา h(n) เสมอในหนงสอเลมน คอ สญญาณขาออกของระบบเมอมสญญาณขาเขาเปนสญญาณอมพลส ( δ(n) ) ดงแสดงในรปท 3.2
บทท 3 ระบบแบบไมตอเนอง 30
0 1 2 3 4 n 0 n
δ(n)h(n)
h(n)• • •
รปท 3.2 ผลตอบสนองตอสญญาณอมพลส
ผลตอบสนองตอสญญาณอมพลสสามารถเปนตวแทนของระบบได เนองจากเมอรผลตอบสนองตอสญญาณอมพลส เราจะสามารถหาผลตอบของระบบเมอสญญาณขาเขาเปนสญญาณ ใด ๆได ขอพสจนโดยสมมตวา x(n) เปนสญญาณขาเขาทเปนสญญาณไมตอเนองใด ๆ เพอใหงายตอการวเคราะห เราจะสมมตวา x(n) เรมมคาท n=0 เราสามารถเขยน x(n) กระจายเปนผลบวกของสญญาณอมพลสทคาเวลา n=0, 1, 2, … ไดดงน
x(n) = x(0)δ(n) + x(1)δ(n-1) + x(2)δ(n-2) + ... (3.4)
x(0) x(0)h(n)
H 0 n 0 1 2 3 4 n
x(1) x(1)h(n-1)H
1 n 0 1 2 3 4 n
x(2)x(2)h(n-2)
H 2 n 0 1 2 3 4 5 n
x(n)y n x m h n m
m ( ) ( ) ( )= −
∞∑
= 0
H 0 1 2 n 0 1 2 3 4 5 n
n=0
n=2
n=1
ภาพรวม
รปท 3.3 ทมาของการหาผลตอบของระบบโดยวธคอนโวลชน
บทท 3 ระบบแบบไมตอเนอง 31
แตละเทอมในสมการจะแทนคาแตละต าแหนงเวลาในสญญาณ x(n) เชน ถาลองแทนคา n=1จะมเฉพาะเทอม x(1)δ(n-1) เทานนทมคาไมเทากบศนย และจะได x(n)n=1 = x(1) เปนตน
ดวยคณสมบตความไมแปรตามเวลาของระบบ เมอ δ(n) ท าใหเกดผลตอบ h(n) กจะไดวาδ(n-1) ท าใหเกดผลตอบ h(n-1) และ δ(n-2) ท าใหเกดผลตอบ h(n-2) เปนเชนนไปเรอย ๆ
อาศยคณสมบตความเปนเชงเสนของระบบ เรากจะไดวา x(0)δ(n) ท าใหเกดผลตอบ x(0)h(n)และ x(1)δ(n-1) ท าใหเกดผลตอบ x(1)h(n-1) เปนเชนนไปเรอย ๆ ดงแสดงในรป และผลตอบโดยรวม คอ y(n) กสามารถคดไดวา มาจากผลรวมของผลตอบยอยแตละตว นนคอ
y(n) = x(0)h(n) + x(1)h(n-1) + x(2)h(n-2) + ...
∑ −=∞
0 = m)mn(h)m(x)n(y (3.5)
ถาไมจ ากดวา x(n) เรมมคาท n=0 กจะไดเปนสมการทวไปของผลตอบของระบบ เปน
∑ −=∞
∞- = m)mn(h)m(x)n(y (3.6)
ขอนยามการกระท าระหวาง x(n) และ h(n) ในสมการนวา คอนโวลชนแบบไมตอเนอง(discrete convolution) ผทเคยศกษาเรองระบบแบบตอเนองมาจะพบวา สมการนคลายกบคอนโวลชนแบบตอเนองมาก เพยงแคเปลยนจากการบวก เปนการอนทเกรตเทานน เราจะใชสญลกษณ ∗ แทนการกระท าคอนโวลชนน และสามารถเขยนสมการของ y(n) ไดใหมเปน
y(n) = x(n) ∗ h(n) (3.7)
ถาเราแทน m ดวย n - k ในสมการของคอนโวลชน จะไดวา
∑∞
−∞=−kn))k-(n-n(h)k-n(x= )n(y
∑∞+
∞−=
n
nk)k-n(x)k(h= y(n)
เนองจาก n เปนปรมาณทจ ากด ดงนน n-∞ จงมคาเทยบเทากบ -∞ และ n+∞ กมคาเทยบเทากบ ∞ จะไดวา สมการนกลายเปน
บทท 3 ระบบแบบไมตอเนอง 32
∑∞
−∞=k)k-n(x)k(h= y(n) (3.8)
สมการท 3.5 และ 3.8 น แสดงใหเหนวาการคณคอนโวลชน มคณสมบตสลบทของตวถกคณได หรอ y(n) = x(n) ∗ h(n) = h(n) ∗ x(n) แตสตรในสมการท 3.8 น (ใช n-k เปนตวชของ x) จะสามารถน ามาใชงานไดสะดวกกวาในการประมวลผลแบบเวลาจรงดงจะไดเหนตอไป ขออยาไดงงในการสลบตวแปรระหวาง m กบ k เพราะ m และ k ในสมการขางตนเปนเพยงตวชเพอใหเกดการบวกกนใน Σ เทานน เราจะใชตวแปรชออะไรกได แตตวชของเวลาจรง ๆ คอ n
ตวกรองแบบ FIR และ IIR
ในทนขอแนะน าค าทจะพบบอยมากในวชาน คอ FIR และ IIR เปนค าทใชแยกแยะประเภทของระบบตามลกษณะของผลตอบสนองตออมพลสของระบบ ค าวา FIR ยอมาจาก Finite ImpulseResponse ระบบแบบ FIR จะมความยาวของ h(n) จ ากด ถา h(n) ของระบบมความยาวจ ากดเทากบN จด เรากลาววา ระบบนเปนตวกรองแบบ FIR ทมอนดบ (order) เทากบ N-1 ถาสมมตวา h(n) มคาแรกท n=0 จะไดวา h(n) มคาเปนศนย ท n<0 และ n>N-1
ส าหรบ IIR คอ Infinite Impulse Response ระบบแบบ IIR จะม h(n) ไมจ ากด ซง h(n) อาจมความยาวเปนไมจ ากดในชวงท n เปนคาบวก หรอ ลบ หรอ ทงสองดานกได ดงในรปท 3.4 h(n) มคาไปเรอย ๆ จนถงทเวลาท n มคาเปนอนนต (ถงแมคาของ h(n) จะลเขาสศนยทเวลาอนนต กยงถอวาเปนระบบแบบ IIR เพราะ เรานบจ านวนจดของ h(n) ไดไมจ ากดอยด)
h(n) ของระบบ FIR h(n) ของระบบ IIR
• • •
n n
รปท 3.4 ตวอยางของผลตอบสนองตอสญญาณอมพลสของตวกรองแบบ FIR และ IIR
เราจะศกษาถงวธการออกแบบตวกรองทงสองในบทท 7 และ 8 ในทนขอใหเขาใจกอนวาระบบไมตอเนองทมคณสมบตเชงเสน และไมแปรตามเวลา สามารถถกก าหนดลกษณะไดโดย h(n)ซง h(n) ทแตกตางกนกยงผลใหเกดฟงกชนของระบบทแตกตางกนไป ฟงกชนพนฐานทเราจะเรยนในวชานกคอ การกรองความถ ซงสามารถออกแบบไดเปนระบบทงแบบ FIR หรอ IIR กได ซงแตละแบบกมขอดขอเสยแตกตางกนไป
บทท 3 ระบบแบบไมตอเนอง 33
ตวอยางท 3.2 สมมตวาตวกรองแบบ FIR ระบบหนงม h(n) = [4 2 1] จงหาผลตอบ y(n) เมอ x(n) =[1 2 3 2 1] โดยทง h(n) และ x(n) มคาแรกท n=0
ในทน เราจะค านวณคอนโวลชน โดยใชสมการท 3.6 โดยเขยนในรปของตาราง ดงน n = 0 1 2 3 4 5 6 7 8 ... ผลตอบจาก x(0) = x(0)h(n) = 4 2 1 0 0 0 0 0 0 ... ผลตอบจาก x(1) = x(1)h(n-1) = 0 8 4 2 0 0 0 0 0 ... ผลตอบจาก x(2) = x(2)h(n-2) = 0 0 12 6 3 0 0 0 0 ... ผลตอบจาก x(3) = x(3)h(n-3) = 0 0 0 8 4 2 0 0 0 ... ผลตอบจาก x(4) = x(4)h(n-4) = 0 0 0 0 4 2 1 0 0 ... ผลตอบ y(n) = ผลบวกของทกแถว = 4 10 17 16 11 4 1 0 0 ...
สงเกตวาถา h(n) มความยาวจ ากดเทากบ Lh จด และ x(n) มความยาวจ ากดเทากบ Lx จด จะได y(n) มขนาดเทากบ Lh + Lx - 1 เสมอ
สมการผลตาง (Difference Equation)
ระบบแบบไมตอเนอง นอกจากสามารถถกก าหนดลกษณะไดดวย h(n) แลว ยงสามารถถกก าหนดไดดวยสมการผลตาง ซงสมการผลตางในทน คอ สมการทบงบอกความสมพนธในเชงเวลาระหวางสญญาณขาเขาของระบบ คอ x(n) และสญญาณขาออกของระบบ คอ y(n) สมการผลตาง คอสงทจะใชส าหรบสรางตวประมวลผล เพราะมนบอกวาเราจะหา y(n) ไดดวยการค านวณอยางไร
สมการผลตางของระบบแบบเชงเสน และไมแปรตามเวลา มรปแบบเฉพาะตามสมการ 3.3 ทไดกลาวถงไปแลว ขอยกมาเขยนอกครงหนง ดงน
y(n) = a0x(n) + a1x(n-1) + a2x(n-2) + … - b1y(n-1) - b2y(n-2) - …
หรอ เขยนใหกระทดรดลงจะได
y(n) = ∑ −∑ −∞
=
∞
= 0ii
0ii )in(yb - )in(xa (3.9)
โดยทวไป ส าหรบตวกรอง FIR จะมคาสมประสทธ bi เปนศนยทงหมด หรอไมมการใชคาผลตอบในอดตนนเอง แตส าหรบตวกรอง IIR จะมคา bi อยางนอย 1 ตวไมเทากบศนย
บทท 3 ระบบแบบไมตอเนอง 34
ตวอยาง 3.3 จงหาผลตอบของโจทยในตวอยางท 3.2 โดยใชวธค านวณหาจากสมการผลตาง
สมการผลตางของ FIR สามารถหาไดจาก สมการคอนโวลชนในรปสมการท 3.8 คอ
∑∞
−∞=k)k-n(x)k(h= y(n)
เมอแจกแจงการบวกออกมาเปนเทอมตาง ๆ จะได รปทวไปของสมการผลตางของ FIR คอ
y(n) = h(0)x(n) + h(1)x(n-1) + h(2)x(n-2) + … + h(N-1)x(n-N+1) (3.10)
โดย N แทนจ านวนจดของสญญาณ h(n) สมการนจรง ๆ แลวกคอ สมการเดยวกบ 3.9 โดยทai = h(i) และ bi = 0 ส าหรบในขอน h(n) มคาท n = 0, 1, 2 เทานน เพราะฉะนน จะได สมการผลตางของระบบน คอ
y(n) = h(0)x(n) + h(1)x(n-1) + h(2)x(n-2) y(n) = 4x(n) + 2x(n-1) + x(n-2)
เราจะใชสมการนส าหรบหาผลตอบ y(n) ได โดยแทนคา n = 0, 1, 2, 3 … จะไดเมอ n=0, y(0) = 4 x(0) + 2 x(-1) + x(-2) = 4(1) + 2(0) + 0 = 4เมอ n=1, y(1) = 4 x(1) + 2 x(0) + x(-1) = 4(2) + 2(1) + 0 = 10เมอ n=2, y(2) = 4 x(2) + 2 x(1) + x(0) = 4(3) + 2(2) + (1) = 17. . .
ใชวธน หา y(n) ไปเรอย ๆ จะพบวาไดคาเทากบในตวอยาง 3.2 ทกประการ จะเหนไดวา ถาเราตองการหาผลตอบทละคา การหาผลตอบโดยวธการใชสมการผลตางจะท าไดสะดวกกวาวธในตวอยางท 3.2 ทส าคญกคอ วธทใชสมการผลตางนมความเหมาะสมอยางยงในการประมวลผลแบบเวลาจรง เพราะเราสามารถรบคาสญญาณขาเขา 1 คา และค านวณหาสญญาณขาออก 1 คาไดทนท โดยไมตองรอใหสญญาณขาเขาเขามาทงหมด
ส าหรบตวกรองแบบ IIR จะมความสมพนธระหวาง h(n) กบสมการผลตางทคอนขางดไดยาก เนองจาก IIR จะมการปอนกลบ (feed back) หรอมการใชผลตอบในอดตมาค านวณดวย ซงการปอนกลบนเองเปนสวนทสงผลให h(n) ของ IIR มความยาวไปจนถงอนนต ขอใหลองศกษาดลกษณะของ h(n) ของ IIR จากตวอยางถดไป
บทท 3 ระบบแบบไมตอเนอง 35
ตวอยาง 3.4 ตวกรอง IIR ระบบหนงมสมการผลตาง คอ y(n) = 0.5y(n-1) + x(n) จงหา h(n) ของระบบ น
วธหนงทจะหา h(n) ไดกคอ ใสสญญาณขาเขาเปนสญญาณอมพลส ซงคอการแทนคาx(n) = δ(n) แลวหาผลตอบทไดจากสมการ
y(n) = 0.5y(n-1) + δ(n)
โดยการแทนคา n = 0, 1, 2, ... จะได y(0) = 0.5y(-1) + δ(0) = 0.5x0 + 1 = 1 y(1) = 0.5y(0) + δ(1) = 0.5x1 + 0 = 0.5 y(2) = 0.5y(1) + δ(2) = 0.5x0.5 + 0 = 0.25 y(3) = 0.5y(2) + δ(3) = 0.5x0.25 + 0 = 0.125 …ผลตอบทไดนกจะเปน ผลตอบสนองตอสญญาณอมพลสนนเอง ซงคอh(n) = y(n) = [ 1, 0.5, 0.25, 0.125, … ] จะเหนไดวา h(n) มความยาวไปจนถงอนนต และ
ในกรณน h(n) มรปแบบแนนอนซงสามารถเขยนเปนสมการทเปนฟงกชนของ n ไดเปน
h(n) = 0.5 n 00 n < 0
n ,,
≥≥≥≥
อยางไรกด การใชวธแทนคา n เพอหา h(n) ของตวกรอง IIR อยางทแสดงมาน ไมสามารถท า
ได หรอท าไดยากถาสมการผลตางอยในรปแบบทซบซอนมากขน วธท าทถกตองจะใชการแปลง zเพอชวยในการค านวณ ซงเราจะไดศกษาในบทท 4 ตอไป
ความเปนคอซล (Causality)
คณสมบตความเปนคอซล เปนคณสมบตทก าหนดไดทงกบสญญาณ และระบบ ลองมองดทสญญาณกอน เรากลาววา
x(n) เปนสญญาณคอซล (causal signal) เมอ x(n) = 0 ท n < 0 (3.11)
นนกคอ สญญาณนมคาเฉพาะชวงท n เปนบวกเทานน และเรากลาววา
บทท 3 ระบบแบบไมตอเนอง 36
x(n) เปนสญญาณคอซลแบบตรงขาม (anticausal signal) เมอ x(n) = 0 ท n ≥ 0 (3.12)
หรอ สญญาณคอซลแบบตรงขามจะมคาเฉพาะชวงท n เปนลบเทานนอาจตความเปนภาษาพดงาย ๆ วา สญญาณคอซล กคอ “สญญาณทเกดหลงเวลา n=0” นนเอง
สญญาณทมคาทงสวนท n เปนบวก และลบ เราเรยกวา สญญาณแบบสองดาน (two-sided signal)และถาพดถงสญญาณทไมเปนคอซล (non-causal signal) กจะหมายถง สญญาณทมคาทเวลา n<0 ดวยซงอาจเปนสญญาณแบบสองดาน หรอสญญาณคอซลแบบตรงขามกได
เมอพจารณาในแงของระบบ กจะสามารถคดไดในท านองเดยวกน โดยจะพจารณาความเปนคอซลจากผลตอบสนองตอสญญาณอมพลสของระบบ คอ h(n) ดงน
ระบบเปนคอซล (causal system) กตอเมอ h(n) = 0 ท n < 0 (3.13)ระบบเปนคอซลแบบตรงขาม (anticausal system) เมอ h(n) = 0 ท n ≥ 0 (3.14)
ระบบท h(n) มคาทงฝง n เปนบวก และลบ กเรยกวา ระบบแบบสองดาน (two-sided system)และถาพดถงระบบทไมเปนคอซล (non-causal system) กจะหมายถง ระบบท h(n) มคาทเวลา n<0ดวย ซงอาจเปนระบบแบบสองดาน หรอระบบเปนคอซลแบบตรงขามกได
ขออธบายเพมเตมถงระบบทไมเปนคอซลวามลกษณะเปนอยางไร ในรปท 3.5 เปนตวอยางของผลตอบสนองตออมพลสของระบบทไมเปนคอซล ซงเหนไดวา h(n) มคา h(-1) และ h(-2) ไมเทากบศนย ถาพจารณาจากความจรงทวา h(n) เปนผลตอบ เมอมสญญาณขาเขาเปนสญญาณอมพลสเขามาทเวลา n = 0 กหมายความวา ระบบนใหผลตอบบางสวนออกมาลวงหนา (ทเวลา n = -1 และ n = -2) กอนทจะมสญญาณขาเขาเขามาในระบบเสยอก
y(n) = h(-2)x(n+2) + h(-1)x(n+1) + h(0)x(n)+ h(1)x(n-1) + ... (3.15)
Causal part
-4 -3 -2 -1 0 1 2 3 4 n
h(n)
Anticausal part
. . .••••••••
รปท 3.5 ตวอยางผลตอบสนองตอสญญาณอมพลส ของระบบทไมเปนคอซล
บทท 3 ระบบแบบไมตอเนอง 37
ถามองในมมมองของสญญาณทเขามา กลาวไดวา ระบบทไมเปนคอซลสามารถสรางผลตอบลวงหนาบางสวนไดกอนทสญญาณขาเขาจรงจะเขามา หรอ ถามองในมมมองของระบบ กกลาวไดวาระบบทไมเปนคอซลมการน าเอาสญญาณขาเขาในอนาคต (สญญาณขาเขาลวงหนา) มารวมในการค านวณหาผลตอบ ณ เวลาปจจบนดวย ค ากลาวนจะเหนไดชดเจนเมอเราเขยนสมการผลตางของระบบออกมา ใชรปทวไปของคอนโวลชนตามสมการท 3.8 เราจะสามารถเขยนสมการผลตางของระบบนไดดงสมการท 3.15 ทแสดงประกอบในรปท 3.5
ขอทบทวนความหมายของเทอมตาง ๆ สกเลกนอย เทอม x(n-1) คอ สญญาณขาเขาทลาหลงไป 1 ต าแหนง สวน x(n+1) คอ สญญาณขาเขาทถกดงใหล าหนาไป 1 ต าแหนง และคดในท านองเดยวกนไดส าหรบ x(n-2), x(n-3), … หรอ x(n+1), x(n+2), … เมอพจารณาท n หนง ๆ (คอ ณ ขณะเวลาหนงขณะทระบบก าลงท างาน) อาจกลาวไดวา x(n) และ y(n) คอ สญญาณในเวลาปจจบนสวน x(n-1), x(n-2), … คอสญญาณขาเขาในอดต และ x(n+1), x(n+2), … คอ สญญาณขาเขาในอนาคต ยอนกลบไปดสมการผลตางของระบบน จะเหนวา ระบบนใชสญญาณขาเขาในอนาคตลวงหนา 2 ต าแหนง เพอมาค านวณผลตอบ ณ ขณะเวลาปจจบน
ระบบทไมเปนคอซล จากค าอธบายขางตนฟงดเหมอนเปนไปไมได จงมค าถามวา จ าเปนหรอไมทเราตองสนใจระบบเชนน ค าตอบคอ จ าเปน มงานบางอยางทใชแนวความคดของระบบทไมเปนคอซลในการออกแบบ และอกทงระบบแบบไมเปนคอซลกสามารถปรบใหกลายเปนระบบแบบคอซลได ดงจะไดยกตวอยางตอไป
ตวอยางท 3.5 ตวกรอง FIR ตวหนงมคา h(n) ตอไปน จงวเคราะหถงการน าระบบนไปใช
h n( ) = , - 2 n 2
, n = คาอน ๆ
150
≤ ≤
(3.16)
เราเขยนสมการผลตางของระบบนไดเปน
y(n) = 1/5 x(n+2)+x(n+1)+x(n)+x(n-1)+x(n-2) (3.17)
ระบบนบางทเรยกวา ตวกรองเกลย (smoothing filter) เพราะระบบนจะท าการเกลย (smooth)สญญาณขาเขา ณ จด n ใด ๆ ใหกระจายออกรอบตวมน ยงผลใหถามการเปลยนแปลงทฉบพลนในสญญาณขาเขา การเปลยนแปลงนนกจะถกดดซบไปในบรเวณรอบ ๆ หรอจะบอกวาระบบนเปนตวกรองแบบผานต าชนดหนงกได
บทท 3 ระบบแบบไมตอเนอง 38
ระบบนสามารถน าไปใชไดโดยการเลอนสญญาณ h(n) ใหชาลง 2 ต าแหนง เพอท าใหได h(n)เปนคอซล ดงแสดงในรปท 3.6 มองระบบนเปนระบบใหมซงมผลตอบสนองตออมพลสเปน h2(n) =h(n-2) เราจะไดสมการผลตางของระบบใหมเปน
y2(n) = y(n-2) = 1/5 x(n)+x(n-1)+x(n-2)+x(n-3)+x(n-4) (3.18)
ระบบเด มเป นแบบสองด าน
0 1 2 3 4 n-2 -1 0 1 2 n
ระบบเม อ h(n) ล าหล งลง เป นแบบคอซ ล
x(n) h2(n) y2(n)x(n) h(n) y(n)
h(n) h2(n)
h2(n)=h(n-2), y2(n)=y(n-2)
รปท 3.6 h(n) ของตวกรองเกลย (smoothing filter)
y2(n) เปนสญญาณขาออกของระบบใหม ซงมคาเทากบ y(n) ทชาลง 2 ต าแหนง ถาเรามองดทจด ๆ หนง เชน ท n = 3 จะไดวา y2(3) ในระบบใหมน ถอวาเปนผลตอบโดยตรงของ x(3) แตในมมมองของระบบเกา y2(3) จะเปนผลตอบทออกมาลาชา (delay) ไป 2 ต าแหนง เพราะ y2(3) จรง ๆ แลวคอ y(1) ซงเปนผลตอบโดยตรงของ x(1) และควรไดคาออกมาเมอ x(1) เขามาในระบบถาไมมการลาชา แตระบบกลบรอจนกระทง x(3) เขามา จงสามารถใหค าตอบ y(1) ออกมาได
กลาวโดยรวมกคอ การใชงานระบบทไมเปนคอซลท าไดโดยเลอน h(n) ใหลาหลงลงจนระบบเปนคอซล แลวจงน าระบบใหมไปประยกตใชงานไดเหมอนปกต ซงฟงกชนการท างานของระบบใหมจะเหมอนระบบเกาทกประการ ยกเวนเพยงแต ผลตอบของระบบใหมจะถกเลอนลาหลงลงเทากบจ านวนต าแหนงทเราเลอน h(n) ไป
ส าหรบการประมวลผลแบบเวลาจรง การทผลตอบของระบบลาชาลงไป อาจสงผลกระทบหรอไมสงผลกระทบตอการใชงานกได ทงนขนกบลกษณะงานวาสามารถยอมใหมความลาชาไดมากนอยแคไหน ยกตวอยางเชน การประมวลผลสญญาณเสยงพดจากโทรศพท ถาสมมตวาสมสญญาณเสยงดวยอตรา fs = 8 kHz และยอมใหมการลาชาของสญญาณไดไมเกนครงวนาท เพอใหผสนทนาไมสามารถรสกถงผลของมนได จะไดวาระบบนสามารถมการลาชาของระบบได 4000 ขนเวลาโดยไมสงผลกระทบใด ๆ ตอการใชงาน ขอใหท าความเขาใจใหถกตองเกยวกบค าวา เวลาจรง (real-time)และค าวาการลาชา (delay) สองค านไมเกยวของกน การประมวลผลแบบเวลาจรงอาจม หรอไมมการลาชาของสญญาณกได
บทท 3 ระบบแบบไมตอเนอง 39
ส าหรบการประมวลผลแบบไมเปนเวลาจรง หรอการประมวลผลสญญาณท n ไมไดเปนตวชสญญาณในทางเวลา (เชน การประมวลผลภาพนง ซง n เปนตวชต าแหนงของจดในภาพ) การลาชาของผลตอบมกไมสงผลกระทบใด ๆ และจรง ๆ แลวในงานประเภทน ถาเรามสญญาณขาเขาทงหมดเกบอยในหนวยความจ าของระบบประมวลผลแลว กจะสามารถใชงานระบบแบบไมเปนคอซลไดทนทโดยไมจ าเปนตองท าใหเปนคอซลกอน เพราะ เราสามารถดงเอาสญญาณขาเขาลวงหนามาประมวลผลไดเลยโดยไมตองรอ
เสถยรภาพ (Stability)
ระบบทมเสถยรภาพมเงอนไขวา สญญาณขาเขาทมขอบเขตของขนาดจ ากด จะท าใหเกดสญญาณขาออกทมขอบเขตจ ากด หรอ เขยนเปนสญลกษณวา
ถา |x(n)| < A โดยท A เปนจ านวนจรงบวกใด ๆ ทนอยกวาอนนต แลว (3.19)จะได |y(n)| < B โดยท B เปนจ านวนจรงบวกใด ๆ ทนอยกวาอนนต
เงอนไขน ภาษาองกฤษ เรยกวาเสถยรภาพแบบ bounded-input/bounded-output หรอ BIBOเงอนไขดงกลาว สามารถแปลงเปนเงอนไขทางคณตศาสตรงาย ๆ ทสมมลกน และเปนเงอนไขทระบตอสญญาณ h(n) ได โดยพจารณาจากสมการท 3.8 ซงใชหาผลตอบของระบบโดยการท าคอนโวลชนคอ
∑∞
−∞=k)k-n(x)k(h= y(n)
เนองจาก y(n) มาจากการบวกกนของผลคณของ x(n-k) กบ h(k) ท k ทก ๆ คา เมอ x(n) เปนสญญาณขาเขาทมขอบเขตจ ากด และไมจ าเปนตองเทากบศนย เราจะไดวา y(n) จะมขนาดจ ากดไดกตอเมอ คาของ h(n) ตองลเขาสศนยท n เขาเปนคาอนนต และลบอนนต หรอเขยนเปนสมการไดวา
0 = h(n) Lim- n n∞→∞→
(3.20)
เงอนไขทงสองนสมมลกน กลาวคอ จะใชเงอนไขใดเปนตวตรวจสอบวาระบบมเสถยรภาพกได แตเราจะสามารถน าเงอนไขทสองไปใชไดงายกวา เนองจากเปนเงอนไขทก าหนดตอ h(n) ซงสามารถตรวจสอบไดงาย เชน ในกรณของสญญาณคอซล กตรวจสอบเพยงวา h(n) ลเขาสศนยหรอ
บทท 3 ระบบแบบไมตอเนอง 40
ไม เมอ n มคามากขน ๆ ส าหรบระบบแบบ FIR จะมเสถยรภาพเสมอ เนองจาก h(n) มความยาวจ ากด ดงนน h(n) เปนศนยแนนอนท n เปนอนนต
ในทางปฏบตระบบสวนใหญทเราใชเปนระบบทเสถยร แตระบบทไมเสถยรกมการน ามาใชประโยชนไดบาง เชน ในวงจรก าเนดสญญาณ ซงเปนระบบทท างานทภาวะคาบเสนเสถยรภาพ ถาระบบเมอสญญาณขาเขาเปนอมพลส ท n=0 จะใหสญญาณขาออกเปนสญญาณทตองการสราง เชนสญญาณซายนทมความยาวไมจ ากดกได
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 41
บทท 4การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง
ในบทนเราจะศกษาการแปลง z (z-transforms) และการน ามาใชกบระบบแบบไมตอเนอง เราจะศกษาทงสญญาณ และระบบในโดเมนของตวแปร z ซงจะพบวาสามารถน ามาชวยในการวเคราะหระบบไดอยางมประสทธภาพ นอกจากน เสถยรภาพ และความเปนคอซลของระบบกสามารถนยามไดในโดเมน z ดวย
การแปลง z
การแปลงแบบ z เปนการแปลงทกระท ากบสญญาณไมตอเนอง แลวใหผลลพธเปนฟงกชนของตวแปรเชงซอนพเศษ คอ ตวแปร z สมมตวาเรามสญญาณ x(n) ใด ๆ ซง n มคาไดตงแต ..., -3, -2, -1, 0, 1, 2, 3, ... การแปลง z ของ x(n) เขยนแทนดวยสญลกษณ X(z) มนยามวา
∑∞
∞- =n
n-x(n)z = )z(X (4.1)
เมอแจกแจงสมการนอยางตรงไปตรงมาจะได
X(z) = ... + x(-2)z2 + x(-1)z + x(0) + x(1)z-1 + x(2)z-2 + ... (4.2)
เขยนสญลกษณไดวา X(z) = Zx(n) หรอ x(n) X(z)Z
→→→→
เหนไดวา X(z) เกดจากการค านวณของผลบวกของสญญาณคณกบ z-n ซงบวกกนไปจนครบทกคาของ x(n) ดงนน X(z) มโอกาสทจะหาคาไมได หรอมคาเปนอนนตได ในทน เราจะพจารณาตวอยางการหาการแปลง z ของสญญาณทอยในรปของฟงกชนของการยกก าลง n ซงจะพจารณาทงกรณทสญญาณเปนแบบคอซล, แบบคอซลตรงขาม, และแบบสองดาน
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 42
ตวอยางท 4.1 (กรณสญญาณคอซล) หาการแปลง z ของ x(n) = a n 0 0 , n < 0
n , ≥≥≥≥
X z
n
( ) = x(n)z
= a z
= az
= 11 - a / z
ถ า az
= zz - a
ถ า | z| >| a|
-n
n=-
n -n
n=
n=
∞
∞
∞
∞
∑
∑
∑
<
0
0
1
ROC: |z|>|a|
|z|=|a|z-plane
หมายเหต ทบทวนสตรอนกรมเลขาคณตทกลาววา ถา |a| < 1 จะได
1 + a + a + ... = 11 - a
2 (4.3)
และ a + a + a + ... = a1 - a
2 3 (4.4)
เราเรยกบรเวณของ z ทหาคา X(z) วา บรเวณของการลเขา (region of convergence) หรอROC เนองจาก z สามารถมคาเปนจ านวนเชงซอนได ดงนน ROC จะแสดงไดเปนพนทในกราฟของ z (z-plane) ซงเปนกราฟของจ านวนเชงซอนมแกนนอนเปนสวนจรง (real) ของ z และแกนตงเปนสวนจนตภาพ (imaginary) ของ z ดงในตวอยางทผานมา ROC คอ พนทนอกวงกลมทมรศมเทากบ a หรอเขยนเปนสมการไดวาคอ บรเวณท |z| > |a|
ขอนยามรากของโพลโนเมยลทเปนตวหารในฟงกชน X(z) วา คอ โพล (pole) ของสญญาณหรอในกรณทใช X(z) เปนฟงกชนถานโอนของระบบกเรยก รากพวกนวา คอโพลของระบบสญญาณหนง ๆ มโพลไดหลายตว และ ROC จะมขอบเขตทก าหนดโดยต าแหนงของโพลเสมอ ดงเชนในตวอยางท 4.1 น X(z) มโพลตวเดยว คอ a และ ม ROC คอ บรเวณ |z| > |a|
(ใชสตรอนกรมเลขาคณต ในสมการท 4.3)
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 43
ROC: |a|<|z|<|b|
|z|=|b|z-plane
|z|=|a|
ตวอยางท 4.2 (สญญาณคอซลแบบตรงขาม) หาการแปลง z ของ x(n) = a n < 0 0 , n 0
n ,≥
X z( ) = x(n)z
= a z
-n
n=-
n -n
n=
-1∞
∞
−∞
∑
∑
ตองการตวชใหเปนคาบวก ซงท าไดโดยใช m เปนตวชใหม โดยท m = -n จะได
X zm
( ) = a z
= za
= z / a1 - z / a
ถ า za
= za - z
ถ า | z| <| a|
-m m
m=
m=
1
1
1
∞
∞
∑
∑
<
ตวอยางท 4.3 (สญญาณแบบสองดาน) หาการแปลง z ของ x(n) = a n 0
b , n 0
n
n
, ≥
<
X z
z n n
( ) = b z + a z
= b
+ az
n -n
n=
-1 n -n
n=
n= n=
−∞
∞
∞ ∞
∑ ∑
∑ ∑
0
1 0
ใชผลลพธจากตวอยางท 4.1 และ 4.2 จะได
X z( ) = zb - z
+ zz - a
เนองจาก การแปลง z ของทงสองเทอม ม ROC ทแตกตางกน เทอมแรกเปนสญญาณสวนทเปนคอซลแบบตรงขาม ม ROC ท |z| < |b| สวนเทอมทสองเปนสญญาณสวนทเปนคอซล ม ROCท |z| > |a| ดงนน เมอรวมเงอนไขทงสอง จะได ROC รวมคอ สวนททบกนของทงสองเงอนไขนนคอ |a| < |z| < |b| ดงแสดงในรปเราเรยก a วาเปนโพลคอซล (causal pole) เพราะมาจากเทอมทมาสญญาณสวนทเปนคอซล
(n≥0) และเรยก b วาเปนโพลคอซลแบบตรงขาม (anticausal pole) ดวยเหตผลท านองเดยวกน
(ใชสตรอนกรมเลขาคณต ในสมการท 4.4)
ROC: |z|<|a|
|z|=|a|z-plane
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 44
อาจสรปในเรองความสมพนธของ ROC กบความเปนคอซลของสญญาณในขนตนนไดวาสญญาณคอซลจะม ROC อยภายนอกวงปดวงหนง สวนสญญาณคอซลแบบตรงขามจะม ROC อยภายในวงปดวงหนง และสญญาณทเปนแบบสองดานจะม ROC อยภายในวงแหวนปดวงหนง
จดหนงทตองสงเกตกคอ การระบสมการ x(n) เพยงอยางเดยวโดยทไมก าหนดวา n อยในชวงไหน (หรอไมระบวาเปนสญญาณคอซลหรอไม) จะท าใหเราหา X(z) ไดหลายค าตอบ ดงทเราไดเหนในตวอยางทงสามขางตนวา สมการ x(n) เดยวกน เมออยในรปแบบทเปนคอซลจะได X(z) และ ROCทแตกตางจากกรณทเปนคอซลแบบตรงขาม ดงนนเราจงตองรชวงของ n ทกครงทจะหาการแปลง z
การแปลง z โดยใชสตรส าเรจจากตาราง (ส าหรบสญญาณคอซล)
โดยทวไปเราไมจ าเปนตองท าการแปลง z โดยใชนยามดงทแสดงในตวอยางขางตน สญญาณคอซล (มคาท n≥0) ทอยในรปแบบทพบเหนบอย สามารถหาการแปลง z ไดโดยใชสตรในตารางท4.1 และสญญาณอกหลายแบบกสามารถใชคณสมบตของการแปลง z ในตารางท 4.2 มาประยกตใชเพอจดใหอยในรปแบบมาตรฐานเหมอนในตารางท 4.1
ตวอยางท 4.4 จงหาการแปลง z ของ x(n) = 1 - e-an โดยท n ≥ 0 และ a เปนคาคงทมากกวา 0
ใชสตรขอ 2 กบ 5 ในตารางท 4.1 และคณสมบตความเปนเชงเสน จะได
X z
z
( )
)))
)
= zz -1
- zz - e
= z(z - e - z(z -1)(z -1)(z - e
= z(1 - e - z(1+ e + e
-a
-a
-a
-a
-a -a2
ROC คอ |z| > 1 และ |z| > e-a แตเนองจาก a > 0 ดงนน e-a < 1 และ ROC จงยบรวมเหลอแตเพยงเงอนไขเดยว คอ |z| > 1
ตวอยางท 4.5 จงหาการแปลง z ของ x(n) = 3a(n-1), n ≥ 1
รปแบบนไมตรงกบสตรในตารางท 4.1 แตสามารถดดแปลงไดโดยการดงสญญาณ x(n) ใหขนหนามา 1 ต าแหนงกอน โดย
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 45
สมมตให x1(n) = x(n+1) จะได x1(n) = 3an, n ≥ 0เหนไดวา x1(n) ตรงกบรปแบบขอ 5 ในตารางท 4.1 จะไดวา
X1(z) = 3zz a−−−−
, ROC: |z| > |a|
จากคณสมบตการเลอนในเชงเวลา (shift) ของขอ 2 ในตารางท 4.2 จะเหนวา x(n) = x1(n-1)ดงนน เราสามารถหา X(z) จาก X1(z) ไดดงน
X(z) = z-1X1(z)
แทนคา X1(z) จะได X z zz a
( ) = z = 3z - a
-1 3−
ตวอยางท 4.6 จงหาการแปลง z ของ x(n) = 2 - 2 n -12 n 0
n ,,
≤ ≤≥
x(n) เปนสญญาณแบบสองดาน ถาเขยน x(n) ใหมใหอยในรปทวไปของ n จะไดx(n) = 2-2δ(n+2) + 2-1δ(n+1) + 2u(n)x(n) = 0.25δ(n+2) + 0.5δ(n+1) + 2u(n)
โดยท u(n) เปนฟงกชนขนบนได (unit step) มคาเปน 1 ท n ≥ 0เมอใชตารางท 4.1 รวมกบคณสมบตเชงเสน และคณสมบตการเลอนทางเวลาจะได
X(z) = 0.25z2 + 0.5z + 2zz-1
, ROC: |z| > 1
ตวอยางท 4.7 จงหาการแปลง z ของผลตอบสนองอมพลสของ FIR ระบบหนง ซงเปนระบบแบบคอซล โดย h(n) = [ -1 0 2 0 -1] คาเรมตนทเวลา n=0
สามารถเขยน h(n) ในรปแบบผลบวกของสญญาณอมพลสได ดงนh(n) = - δ(n) + 2δ(n-2) - δ(n-4)ดงนน จะได H(z) = -1 + 2z-2 -z-4 ROC : ทกคาของ z
หมายเลข สญญาณ การแปลง z ROC
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 46
x(n), n ≥ 0 X(z) ของ X(z)
1 δ(n) 1 ทกท
2 1 = u(n) z
z −−−−1 |z| > 1
3 n ( )
zz −1 2 |z| > 1
4 n2 ( )
( )z zz
+−11 3 |z| > 1
5 α n z
z −−−−α |z| > |α|
6 n nα ( )
ααz
z − 2 |z| > |α|
7 (-α)n z
z ++++α |z| > |α|
8 ( )cos αn ( )z z
z z−
− +coscos
αα2 2 1
|z| > 1
9 (((( ))))sin αn z
z zsin
cosαα2 2 1−−−− ++++
|z| > 1
10 ( )e nn−α αsin ze
z e z e
−−−−
−−−− −−−−−−−− ++++
α
α ααα
sincos2 22
|z| > e-α
11 ( )e nn−α αcos ( )ze ze
z ze e
−
− −
−− +
α α
α α
ααcos
cos2 22 |z| > e-α
12 ( )cosh αn z z
z z
2
2 2 1−−−−
−−−− ++++cosh
coshα
α |z| > cosh α
13 ( )sinh αn z
z zsinh
coshαα2 2 1−−−− ++++
|z| > sinh α
14 2|c||p|n cos(n∠ p + ∠ c) cz
z pc z
z p−−−−++++
−−−−
*
*
ตารางท 4.1 สตรการแปลง z ของสญญาณมาตรฐานตาง ๆ (เฉพาะสญญาณคอซล) คณสมบต สญญาณ การแปลง z
1. ความเปนเชงเสน a f(n) + b g(n) ( ) ( )aF z bG z+ (linearity) a, b เปนคาคงท
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 47
2. การเลอนทางเวลา f(n - k) ( )z F zk−
(time shifting) มเงอนไขเรมตน = 0
3. Differentiation n f(n) ( )
− z dF zdz
4. การกลบเชงเวลา f(-n) ( )F z1 (time reversal)
5. การคณดวยคายกก าลง anf(n) ( )F a z−1
(exponentiation) a เปนคาคงท
6. การคณทางเวลา f(n) g(n) ( )12π
θθθ
π
πF e G z
edj
j
−
∫
7. คอนโวลชน (convolution) f(n) ∗ g(n) ( ) ( )F z G z
8. การแปลง z ส าหรบ f(n - m) , m > 0 ( ) ( )z F z f i zm i
i
m−
=+ −
∑1
แกสมการผลตางทม
ทมเงอนไขเรมตน f (n + m) , m > 0 ( ) ( )z F z f i zm i
i
m−
−
=
−∑
0
1
ไมเทากบศนย
ตารางท 4.2 คณสมบตทส าคญของการแปลง z โดยท f(n) →Z F(z) และ g(n) →Z G(z)
การแปลง z ผกผน (Inverse z-Transforms)
การแปลง z ผกผนใชส าหรบแปลงสญญาณในโดเมน z หรอ X(z) กลบเปนสญญาณในโด
เมนเวลา หรอ x(n) เขยนสญลกษณไดวา x(n) = Z-1X(z) หรอ X(z) x(n)Z -1
→ในเนอหาเบองตนน เราจะสนใจฟงกชนของ z ทอยในรปแบบเศษสวนของโพลโนเมยลเทา
นน และจะใชวธการกระจายเปนเศษสวนยอย (partial fraction expansion) และตาราง 4.1/4.2 ในการแปลง z ผกผน สมมตวา X(z) ทตองการจะแปลงอยในรปแบบเศษสวนของโพลโนเมยล ดงน
X z z z zz z z
X z z z z
N
M
N
( )
( )
= a + a + a . . . + a b + b + b . . . + b
= a + a + a . . . + a (z - p )(z - p ) . . . (z - p )
0 1 2 N
0 1 2 M
0 1 2 N
1 2 M
2
2
2(4.5)
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 48
โดยท N เปนอนดบของเศษ, M เปนอนดบของสวน, และ M ≥ N สมมตให p1, p2, ..., pM
เปนคารากของโพลโนเมยลสวน หรอเรยกวาโพล (pole) ถาไมมโพลใดมคาเปนศนย และไมมโพลคาซ ากน ดวยวธการกระจายเปนเศษสวนยอย เราสามารถหา X(z) ในอยในรปของผลบวกของเศษสวนโพลโนเมยล ดงตอไปน
X z A z z
A z z
A z z
M( ) = A + - p
+ - p
+ . . . + - p0
1 2 M
1 2 (4.6)
โดยท A0 = X(z) z = 0 (4.7)
A = z - pzi
i
z = p⋅
X zi
( ) (4.8)
ในกรณทมโพลมคาซ ากน เชน สมมตวา มโพล pk ซ ากนอย m คา หรอเขยน X(z) ไดเปน
X z z z z N
( ) = a + a + a . . . + a (z - p )(z - p ) . . . (z - p ) . . . (z - p )
0 1 2 N
1 2 km
M
2
(4.9)
เราสามารถกระจาย X(z) ใหอยในรปตอไปน
X z A z z
A z z
C z z
C z z
C z z
A z z
mm
M( )( ) ( )
= A +- p
+- p
+ . . . +- p
+- p
+. . .+- p
+ . . . +- p0
1 2 k k k M
1 2 1 22 (4.10)
โดยท A0 และ Ai หาไดจากสมการขางตน และ Ci หาไดจาก
C ddz
z pz
X zi
m i
m ik
m
z
= 1(m - i)! = p k
⋅ −
−
−( ) ( ) (4.11)
ตวอยางท 4.8 จงหาการแปลง z ผกผนของ X(z) = ( )( )
zz z
2
20 5 1− −.
ฟงกชนนมโพลซ ากนสองตว หรอโพลอนดบสองท z = 1 เราจะท าการกระจายเปนเศษสวนยอย โดยสามารถจดให X(z) อยในรปตอไปน
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 49
X(z) = Azz −−−− 0 5.
+ C zz1
1−−−− +
( )C z
z2
21− (#)
หา A โดย ( )( )( )
A zz
zz z z
= −− −
=
0 50 5 1
2
20 5
.. .
= 2
หา C1 โดยแทนคา i=1, m=2, p1=1 ในสมการท 4.11
( )( )C d
dzz
zX z
z1
2
1
1 = −
=
= ( )
ddz
zz z−
=0 5 1.
( )( )
= − −− =
z zz z
0 50 5 2
1
..
= - 2
หา C2 โดยแทนคา i=2, m=2, p1=1 ในสมการท 4.11( )
( )C zz
X zz
2
2
1
1 = −
=
= =
zz z−
0.5 1
= 2
แทนคา A, C1, C2 ใน (#) จะได X(z) = ( )
20 5
21
21 2
zz
zz
zz−
−−
+−.
เปดตาราง 4.1 เพอแปลง z ผกผนของแตละเทอม จะได
( )x n = ( )2 0.5 2 2n n− + , n ≥ 0
การแปลง z ผกผนมจดทตองสงเกตเชนเดยวกบการแปลง z กคอ ถาเราก าหนด X(z) โดยทไมไดก าหนดวาสญญาณเปนคอซล หรอเปนคอซลแบบตรงขาม หรอไมไดก าหนด ROC ของ z เราจะสามารถหาการแปลง z ผกผนไดหลายค าตอบ ดงตวอยางเชน
ถาม X(z) = zz - a
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 50
กรณทสญญาณเปนคอซล หรอ ROC คอ |z| > a จะไดวา
x(n) = an, n ≥ 0 หรอ x(n) = anu(n) (ตามตวอยางท 4.1)
แตในกรณทสญญาณเปนคอซลแบบตรงขาม หรอ ROC คอ z < a จะไดวา
x(n) = - an, n < 0 หรอ x(n) = - anu(-n-1) (ตามตวอยางท 4.2)
ดงนน เราควรจะตองร ROC ทกครงทมการระบถงสญญาณ X(z) ใด ๆ อยางไรกตาม เนองจากสญญาณแบบคอซลเปนสญญาณทมบทบาทในการใชงานมากทสด และเราจะสนใจสญญาณชนดนแทบทงสนในบทตอ ๆ ไปม ดงนน ถาหากมการกลาวถง สญญาณในโดเมน z โดยมไดระบ ROC กขอใหถอวาเปนกรณแบบคอซลเสมอ
หมายเหต u(n) คอ ฟงกชนขนบนได (unit step) ทางดาน n บวก การคณ x(n) ดวย u(n)เสมอนเปนการก าหนดวา x(n) เปนสญญาณคอซล โดยไมจ าเปนตองระบวา n อยในชวงไหน และเชนเดยวกน u(-n-1) เปนสญญาณขนบนไดแบบกลบทางกบ u(n) ดงแสดงในรปท 4.1 การคณดวย u(-n-1) กเสมอนก าหนดใหสญญาณเปนคอซลแบบตรงขาม
-2 -1 0 1 2 n-3 -2 -1 0 1 n
u(-n-1) u(n)
• • • • • •
รปท 4.1 ฟงกชนขนบนไดแบบคอซลตรงขาม และแบบคอซล
การใชการแปลง z กบระบบแบบไมตอเนอง
เราไดศกษาพนฐานของการแปลง z ไปพอสงเขปแลว ในสวนนจะไดน าการแปลง z ไปใชเปนเครองมอในการวเคราะหระบบแบบไมตอเนอง สมมตวา ระบบแบบไมตอเนองระบบหนงมผลตอบสนองตอสญญาณอมพลสเปน h(n) และการแปลง z ของ h(n) ไดคาเปน H(z) เรากลาววา H(z)
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 51
เปนฟงกชนถายโอน (transfer function) ของระบบ ซงมความสมพนธกบการแปลง z ของสญญาณขาเขา และขาออกดงสมการ
H z( ) = Y(z)X(z)
(4.12)
ความจรงขอนสอดคลองกบความสมพนธในเชงเวลา ตามสมการคอนโวลชนซงใชหาผลตอบของระบบในเชงเวลา นนคอ y(n) = h(n) ∗ x(n) เพราะเมอใชคณสมบตคอนโวลชน (ขอ 7 ตาราง4.2) ของการแปลง z กบสมการนจะได Y(z) = H(z)X(z) ซงคอ สมการ 4.12 นนเอง
เราสามารถน าสมการความสมพนธในโดเมน z น ไปใชประโยชนในการค านวณหาคาตาง ๆของระบบ ดงตอไปน
1. สมการผลตาง2. h(n)3. H(z)4. y(n) เมอก าหนด x(n)
โดยถาหากทราบคาใดคาหนงในสามขอแรกน เราจะสามารถใชการแปลง z ในการหาคาทเหลออยทงหมดไดอยางมประสทธภาพ
ตวอยางท 4.9 ระบบหนงมสมการผลตางดงน y(n) = 0.5y(n-1) + x(n) จงหาคา h(n), H(z), และ y(n)เมอ x(n) = 2u(n) และใหถอวาเงอนไขเรมตน (initial condition) คอ y(n) มคาเปน 0 กอนเวลา n=0
ถาเราท าการแปลง z กบสมการผลตางทงสองขาง จะได
Y(z) = 0.5z-1Y(z) + X(z)
Y(z)(1-0.5z-1) = X(z)
H z( ) = Y(z)X(z)
= 11 - 0.5z
= zz - 0.5-1
ถาระบบเปนคอซล จากตาราง 4.1 เมอท าการแปลง z ยอนกลบ เราจะได
h(n) = 0.5nu(n)
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 52
จะเหนไดวาเราสามารถหา h(n) ไดงาย และสะดวกมากขน ลองเปรยบเทยบกบวธท าโดยทไมใชการแปลง z ในตวอยางท 3.4 ซงมสมการผลตางทเหมอนกน
ส าหรบการหาผลตอบของระบบ เราเรมจากการแปลง z ของสญญาณขาเขา
x(n) = 2u(n) จากตาราง 4.1 จะได X z( ) = 2z z - 1
Y(z) = H(z)X(z) = zz - 0.5
z - 1
= (z - 0.5)(z - 1)
⋅ 2 2 2z z
รปท 4.2 สญญาณขาเขา และขาออกของตวอยางท 4.9ใชวธกระจายเปนเศษสวนยอย จะไดผลลพธ คอ
Y(z) = (z - 0.5)(z - 1)
= - 2zz - 0.5
+ z - 1
2 42z z
n
n
n
n
ก) สญญาณ ขาเขา
ข) สญญาณ ขาออก
ค) ผลตอบสนอง ชวคร
ง) ผลตอบสนอง สถานะอยตว
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 53
เราจะสามารถหาผลตอบ y(n) ไดจากการแปลง z ผกผนของ Y(z) ดงน
y(n) = Z-1Y(z) = - 2 (0.5)nu(n) + 4u(n)
ผลตอบทไดนสามารถแยกแยะไดเปนสองสวน คอ1. ผลตอบสนองชวคร (transient response) คอ สวนของผลตอบทมคาเปน 0 เมอ n ลเขาส
อนนต ในขอน ผลตอบสนองชวคร คอ - 2 (0.5)nu(n)2. ผลตอบสถานะอยตว (steady-state response) คอ สวนของผลตอบทเหลออยเมอ n ลเขาส
อนนต ในขอน ผลตอบสถานะอยตว คอ 4u(n)จะเหนไดวา เราสามารถหาผลตอบของระบบไดงายกวาการใชคอนโวลชนในเชงเวลา การ
ใชการแปลง z มประโยชนอยางมากในเชงวเคราะห และออกแบบระบบ อยางไรกตาม ในการใชงานเปนตวประมวลผลจรง ๆ ซงมสญญาณขาเขาเปนสญญาณใด ๆ ทไมมรปแบบแนนอน เราจะใชสมการผลตางในการหาสญญาณขาออกของระบบ ดงจะไดเหนในบทตอ ๆ ไป
ตวอยาง 4.10 จากตวอยางท 4.8 ซงมสมการผลตาง คอ y(n) = 0.5y(n-1) + x(n) เราไดท าการหาคา H
(z) ไวแลวคอ H z( ) = zz - 0.5
จงหาผลตอบ y(n) เมอสญญาณขาเขาคอ x(n) = sin(πn/6)
- หาการแปลง z ของ x(n) ใชตารางท 4.1 ขอ 9
X(z) = z
z zsin
cos
ππ6
2 6 12 − + หมายเหต sinπ
612
= , cosπ6
32
=
= z
z z23 12 − +
= z
z j z j2
32 2
32 2
− −
− +
- หา Y(z) = ( ) ( )H z X z
= ( )
z
z z j z j
22
0 5 32 2
32 2
− − −
− +
.
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 54
= A A zz
A z
z jA z
z j01 2 3
0 5 32 2
32 2
+−
+− −
+− +.
- หา สมประสทธ A A A A0 1 2 3, , , โดยสตรของการกระจายเปนเศษสวนยอย
( )A Y0 0 0= =
p1 = 0.5; ( )A zz
Y zz
10 5
0 5= −
=
..
=− +
=
z
z z z
23 12
0 5.
= 0.65108
p j2
32 2
= + ; ( )Az j
zY z
z j2
3 2 2
3 2 2=− −
= +
( )( )=
− − += +
z
z z jz j
20 5 3 2 2 3 2 2
.
( )= +− + −
32 2 3 2
jj = − −0 32554 0 73831. .j
p j3
32 2
= − ; ( )
( )Az j
zY z
z j
3
3 2 2
3 2 2=
− +
= −
( )( )=
− − −= −
z
z z jz j
20 5 3 2 2 3 2 2
.
( )= −− − −
32 2 3 2
jj
= − +0 32554 0 73831. .j
สงเกตวา ถาคาโพล หรอศนยเปนจ านวนเชงซอน จะตองมคคอนจเกต (conjugate) ของมนอยดวยเสมอ (p2 = p3* ในขอน) และจะไดสมประสทธของการกระจายเศษสวนยอย ทเปนคคอนจเกต
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 55
กนดวยเสมอ (A2 = A3* ในขอน) เชนกน โพล และศนยทเปนคคอนจเกตนจะท าใหเมอคณออกมาเปนโพลโนเมยลแลว ไดคาสมประสทธของโพลโนเมยลในฟงกชนถายโอนเปนจ านวนจรงเสมอ
- แทนคา A A A A0 1 2 3, , , จะได
( ) ( ) ( )Y z zz
j zz j
j zz j=
−+ − −
− −+ − +
− +0 65108
0 50 32554 0 73831
3 2 2
0 32554 0 738313 2 2
..
. . . .
- ท าการแปลง z ผกผนโดยใชสตรจากตาราง 4.1 ขอ 5 ส าหรบเทอมท 1 และขอ 14 เทอมท 2 และ 3 (เราจะตองใชคา A2 และ p2 ในรปโพลา ซงในทน A2 = 0.8069∠ -1.986 และ p2 =1∠π /6 ) จะไดผลลพธ คอ
( ) ( ) ( )y n nn= + −0 65108 0 5 1 6138 6 1 986. . . cos .π
( ) ( )= + −0 65108 0 5 1 6138 6 0 4153. . . sin .n n" #$ %$ " #$$$ %$$$π
จากตวอยาง 4.9 และ 4.10 ถาเราสงเกตดจะเหนวา ผลตอบสนองสถานะอยตวของระบบจะมรปแบบเหมอนกบสญญาณขาเขาเสมอ (ถาดในโดเมน z กจะพบวามโพลเหมอนกน) เชน ถาสญญาณขาเขาเปนสญญาณขนบนได (ความถเทากบศนย) กจะไดผลตอบเปนสญญาณขนบนไดเชนเดยวกนแตอาจมขนาดเปลยนไป หรอ ถาสญญาณขาเขาเปนสญญาณซายนทความถหนง กจะไดสญญาณขาออกเปนสญญาณซายนทความถเดยวกน โดยอาจมขนาด และเฟสเปลยนไปเทานน
ส าหรบผลตอบสนองชวครกเชนเดยวกน จะมรปแบบเหมอนผลตอบสนองตออมพลสของระบบ (ถดในโดเมน z กจะมโพลเหมอนกบโพลในฟงกชนถายโอน) ซงลกษณะเชนนของผลตอบสนองสถานะอยตว และผลตอบสนองชวคร เปนลกษณะของระบบเชงเสนทเสถยร และกเปนจดทเหมอนกนกบระบบแบบตอเนองอกจดหนง
ความเปนคอซล และเสถยรภาพ
ในบทท 3 เราไดเรยนรวธบอกเสถยรภาพ และความเปนคอซลของระบบโดยดจากผลตอบสนองตออมพลส ในทนจะขอแนะน าวธทใชดจากฟงกชนถายโอน หรอ H(z) ซงเราสามารถใชต าแหนงของโพล และ ROC ในการบอกเสถยรภาพ และความเปนคอซลของระบบไดเชนเดยวกน
โดยอาศยหลกบางสวนจากตวอยางท 4.1 ถง 4.3 เราสามารถแยกแยะกรณทส าคญ ๆ ส าหรบอธบายเชงสรปเรองความเปนคอซล และเสถยรภาพของระบบได 3 กรณ ดงน
ผลตอบสนองชวคร ผลตอบสนองสถานะอยตว
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 56
1. ระบบแบบ IIR ทเปนคอซล จะมลกษณะคอ- โพลทกตวของระบบเปนโพลคอซล- ROC เปนพนทภายนอกวงกลมซงมรศมเทากบขนาดของโพลทใหญทสด (เนองจากโพลแตละตวสงผลตอ ROC เปนพนททอยนอกวงกลมทมขนาดเทากบโพลนน ๆ ดงนน ผลรวมของ ROC ซงเปนสวนท ROC ยอยทงหมดทบกน จงเทากบ พนททอยนอกวงกลมทมาจากโพลตวทใหญทสดนนเอง)
- ระบบมเสถยรภาพเมอโพลทกตวมขนาดนอยกวาหนง (อยภายใตวงกลมหนงหนวย)2. ระบบแบบ IIR ทเปนคอซลแบบตรงขาม จะมลกษณะคอ
- โพลทกตวของระบบเปนโพลคอซลตรงขาม- ROC เปนพนทภายในวงกลมซงมรศมเทากบขนาดของโพลทเลกทสด- ระบบมเสถยรภาพเมอโพลทกตวมขนาดใหญกวาหนง (อยนอกวงกลมหนงหนวย)
3. ระบบแบบ IIR ทเปนแบบสองดาน จะมลกษณะคอ- โพลบางตวของระบบเปนโพลคอซล และบางตวเปนโพลคอซลตรงขาม- ROC เปนพนทวงแหวน ทมขอบในเปนวงกลมรศมเทากบขนาดของโพลคอซลทใหญทสด และมขอบนอกเปนวงกลมรศมเทากบขนาดของโพลคอซลตรงขามทเลกทสด
- ระบบมเสถยรภาพเมอโพลคอซลทกตวมขนาดนอยกวาหนง และโพลคอซลตรงขามทกตวมขนาดใหญกวาหนง
4. ระบบแบบ FIR ไมวาความเปนคอซลจะเปนอยางไร จะมลกษณะคอ- ไมมโพล- ROC เปนพนททงหมด (จรง ๆ แลวถาเปน FIR แบบคอซล ROC จะไมรวมจด z=0และถาเปน FIR แบบคอซลตรงขามจะไมรวมจด z=∞ แตพอจะอนโลมคดวาเปนพนททงหมดไดโดยไมท าใหการวเคราะหผดไป)
- ระบบมเสถยรภาพเสมอโดยสรป เสถยรภาพมเงอนไขรวมงาย ๆ ซงสามารถใชไดกบทกกรณวา “ระบบทเสถยรจะ
ตองม ROC ครอบคลมวงกลมหนงหนวย (unit circle) ไวดวย” ซงเงอนไขน สอดคลองกบต าแหนงของโพลของระบบทเสถยรในกรณทงสทผานมา และดงทสรปในรปท 4.3
เงอนไขของโพลทใชระบเสถยรภาพน จรง ๆ แลวกเปนเงอนไขทสมมลกบเงอนไขของ h(n)ตามสมการท 3.20 ยกตวอยางเชน กรณระบบคอซลซงมเงอนไขเสถยรภาพวา
n Lim→ ∞
h(n) = 0
ถาพจารณาฟงกชนถายโอนซงประกอบดวยโพลหลาย ๆ ตว จะสามารถเขยนใหอยในรปตอไปน
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 57
เสถ ยร ไม เสถ ยร
คอซ ล
สองด าน
unit circle unit circle
unit circleunit circle
unit circleunit circle
คอซ ลแบบตรงข าม
รปท 4.3 ROC ของระบบในกรณตาง ๆ (สมมตวา จดด าในภาพคอโพลของระบบ) โพลทอยดานในของวงกลม คอ โพลของสวนเปนคอซล
สวนโพลทอยดานนอกของวงกลม คอ โพลของสวนทเปนคอซลแบบตรงขาม
H z A z z
A z z
A z z
M( ) = A + - p
+ - p
+ . . . + - p0
1 2 M
1 2 (4.13)
ซงเมอแปลง z ผกผน จะไดผลตอบสนองตออมพลสเปน
h(n) = A0δ(n) + A1(p1)n + A2(p2)n + … + AM(pM)n , n ≥ 0 (4.14)
เหนไดชดวา เมอ n เขาใกลอนนต คา h(n) จะลเขาสศนยไดกตอเมอ เทอม (pi)n ทกตวตองลเขาสศนย นนกคอ โพลทกตวจะตองมขนาดนอยกวาหนง ขอนเปนจรงกบโพลทเปนจ านวนเชงซอนดวย และเปนจรงกบโพลทอนดบมากกวาหนงดวย (โพลซ ากนมากกวาหนงตว)
บทท 4 การแปลง z และการประยกตใชกบระบบแบบไมตอเนอง 58
ส าหรบกรณของระบบสวนทเปนคอซลแบบตรงขาม กสามารถมองไดในท านองเดยวกนเพยงแตคราวน คา h(n) จะตองลเขาสศนยท n เขาใกลลบอนนต ดงนน กรณนเราจะไดวาโพลทกตวของสวนคอซลแบบตรงขามจะตองมขนาดมากกวาหนงแทน
ตวอยางท 4.11 H(z) = zz - 0.8
+ zz -1.25
จงหากรณของ ROC ทเปนไปไดทงหมด พรอมทงระบ
ถงความเปนคอซล และเสถยรภาพของระบบ
ระบบนมโพลอย 2 ตว อยท 0.8 และ 1.25 ถาไมมการระบ ROC ของระบบมา หรอไมมการระบวาระบบเปนคอซลหรอไม เราสามารถตความเปนกรณทวไปไดสามกรณ คอ
1. ถา ROC คอ บรเวณ |z| < 0.8 จะไดวา โพลทงสองเปนโพลคอซลแบบตรงขาม และระบบนเปนคอซลแบบตรงขาม ระบบนไมเสถยร เพราะ ROC ไมทบวงกลมหนงหนวย
2. ถา ROC คอ บรเวณ |z| > 1.25 จะไดวา โพลทงสองเปนโพลคอซล และระบบนเปนคอซล ระบบนไมเสถยร เพราะ ROC ไมทบวงกลมหนงหนวย
3. ถา ROC คอ บรเวณ 0.8 < |z| < 1.25 จะไดวาระบบนเปนแบบสองดาน จะไดวา 0.8 เปนโพลของสวนคอซล และ 1.25 เปนโพลของสวนคอซลแบบตรงขาม ระบบนเสถยร เพราะ ROCทบวงกลมหนงหนวย
ขอกลาวย าอกครงวา ส าหรบระบบ IIR เราจะใชงานระบบแบบคอซลเปนสวนใหญ ดงนนในบทตอ ๆ ไป ถามการกลาวถงฟงกชนถายโอนโดยไมไดระบ ROC ใหถอวาเปนฟงกชนของระบบคอซล ผอานทอาจจะยงสบสนเกยวกบหลกการเรองความเปนคอซลของระบบแบบ IIR กขอใหเขาใจเฉพาะแบบทเปนคอซลกพอ ซงกจะพจารณาเสถยรภาพไดงาย ๆ โดยดเพยงวา โพลทกตวของระบบมขนาดนอยกวาหนงหรอไมเทานน
บทท 5 การแปลง DTFT และผลตอบสนองเชงความถ 59
บทท 5การแปลง DTFT และผลตอบสนองเชงความถ
ในบทนเราจะศกษาสญญาณแบบไมตอเนองในเชงความถ ซงในบทท 2 เราไดเหนสญญาณในเชงความถโดยคราว ๆ ไปแลวครงหนงโดยการศกษาจากกระบวนการสมสญญาณ ซงเราไดพบวาสญญาณหลงการสม จะมองคประกอบของความถทมลกษณะเปนคาบ โดยมส าเนาสเปกตรมของสญญาณกอนการสม เกดขนรอบจดทมความถ ..., -2fs, -fs, 0, fs, 2fs, ... เปนศนยกลาง ในบทนเราจะศกษาการแปลงสญญาณเชงความถนจากสญญาณเชงเวลา และน าความเขาใจจากจดนไปเชอมโยงเพอศกษาถงเรองผลตอบสนองเชงความถของระบบ
การแปลงฟรเยรแบบเวลาไมตอเนอง หรอ การแปลง DTFT(Discrete-Time Fourier Transform)
เราคงไดเคยเรยนรมาแลววาการหาสญญาณในเชงความถจากสญญาณในเชงเวลาท าไดโดยการแปลงฟรเยร ซงถาสญญาณในเชงเวลาเราเปน x(t) กจะไดสญญาณในเชงความถเปน X(f) ดงสมการของการแปลงฟรเยร คอ
X f dt( ) = x(t)e- j t
-
ω
∞
∞∫ (5.1)
การแปลงนใชไดกบสญญาณแบบตอเนองทว ๆ ไป ส าหรบสญญาณแบบไมตอเนอง ถาเรายงมองมนอยในเชงเวลา กจะเปนสญญาณทมคาเปนอมพลส ณ ต าแหนงเวลา t = nT โดยท T = 1/fs กพบวาเราจะยงสามารถใชรปแบบของการแปลงฟรเยร ในการกระท ากบสญญาณนได โดยเปลยนการอนทเกรตไปเปนการบวกกนแทน และแทนคา t ดวย nT ซงกจะไดสมการของสญญาณเชงความถในรปน
X f( ) = x(nT)e- j nT
n = -
ω
∞
∞∑ (5.2)
บทท 5 การแปลง DTFT และผลตอบสนองเชงความถ 60
x(nT) สามารถมองเปนสญญาณแบบไมตอเนอง หรอล าดบขอมลได ดงนน สามารถใชสญลกษณแทนวา x(n) เหมอนทเราท าในบทท 2 จากนน ลองพจารณาเทอม ωT ซงเทากบ 2πf/fs
จะเหนไดวาเมอถกหารดวย fs จะท าให ωT เหลอหนวยเปนเรเดยนเทานน ซงเหมอนเปนหนวยของมม เราจะนยาม ตว ωT นใหมเปน
ω′ = ωT = 2πf/fs (5.3)
และ นยามให f′ = f/fs ซงกจะไดวา ω′ = 2πf′ (5.4)
โดยเรยก f′ วาเปนความถดจตอล หรอบางทกเรยกวา ความถนอรแมลไลซ (normalizedfrequency) และ ω′ กเปนความถดจตอลเชงมม โดยท f′ ไมมหนวยในทางฟสกส หรอจรง ๆ แลวสามารถคดไดวามหนวยเปน รอบตอจด (cycle/sample) สวน ω′ มหนวยเปนเรเดยน หรอ เรเดยนตอจด (radian/sample) นนกเหมอนกบวา f′ ไดหมดความหมายของการเปนความถจรง ๆ ในแบบแอนะลอกทมหนวยเปน Hz ไป เชนเดยวกบในโดเมนเวลา ทคา n ไดหมดความหมายของเวลาจรง ๆ ไปเมอเรามองเปนสญญาณแบบไมตอเนอง
เราจะเขยนสมการฟรเยรขางตนใหม โดยใช ω′ ซงจะไดวา
X( )′ ′
∞
∞∑ω ω = x(n)e- j n
n = -(5.5)
มกนยมมอง X วาเปนฟงกชนของ ejω′ แทนทจะเปนฟงกชนของ ω′ เฉย ๆ เพราะ ω′ ในสมการนจะตดอยในรป ejω′ เสมอ ดงนน เราจะเขยนเปน X(ω′ ) แทนวาเปน X(ejω′) ได ขอใหอยาเขาใจผดวาเปนการแทน ω′ ในสมการดวย ejω′ จะได
X e j( )′ ′
∞
∞∑ω ω = x(n)e- j n
n = -(5.6)
สมการนมชอเรยกวา การแปลงฟรเยรแบบเวลาไมตอเนอง หรอ DTFT (Discrete-TimeFourier Transform) ซง X(ejω′) ผลลพธจากการแปลง คอ สญญาณในเชงความถ หรอสเปกตรมของสญญาณไมตอเนอง
ลองพจารณา ejω′ จะพบวา มนเปนจ านวนเชงซอนมลกษณะเปนคาบทก ๆ คาของ ω′ ทเพมขนหรอลดลงเทากบ 2π ถาลองวาดภาพของ ejω′ ในกราฟจ านวนเชงซอน จะเหนไดวาเมอคา ω′เปลยนไปจะไดวาคาของ ejω′ วงอยบนวงกลมหนงหนวย ดงแสดงในรปท 5.1
บทท 5 การแปลง DTFT และผลตอบสนองเชงความถ 61
ω'
แกนจ นตภาพe j ω'
วงกลมหน งหน วย
แกนจร ง
รปท 5.1 ภาพของ ejω′ ในกราฟจ านวนเชงซอน
สรปวา ejω′ มขนาดคงท แตมมมเปลยนตาม ω′ และมลกษณะเปนคาบทก ๆ ชวงของ ω′ ทเพมขนหรอลดลงเทากบ 2π ดงนน X(ejω′) ซงเปนฟงกชนของ ejω′ กจะตองมคาเปนคาบทก ๆ ชวงของ ω′ ทเพมขนหรอลดลงเทากบ 2π เชนกน ตวอยางของสญญาณแบบไมตอเนองในเชงความถแสดงอยในรปท 5.2
เราจะไดวา สเปกตรมของสญญาณไมตอเนองทไดจากการแปลง DTFT จะมลกษณะดงน1. เปนฟงกชนแบบตอเนองของ ω′2. เปนคาบ3. มพลงงานไมจ ากด (เนองจาก รปรางของสเปกตรมนยาวไปจนถงความถอนนต)
-2π -π 0 π 2π 3π 4π ω' -1 -.5 0 .5 1 1.5 2 f' -fs -fs/2 0 fs/2 fs 3fs/2 2fs f
| X(ej ω') |
......
รปท 5.2 ตวอยางสเปกตรมของสญญาณแบบไมตอเนองและการเทยบคาความถดจตอล ไปเปนความถแอนะลอก
ประเดนทส าคญอกอยางหนงกคอ การเทยบคาจากความถดจตอลไปเปนความถแอนะลอกเนองจากในการวเคราะหสญญาณแบบไมตอเนองในเชงความถเราจะยงเกยวกบ ω′ และไมจ าเปนตองรเกยวกบคาความถแอนะลอกเลย แตในการมองออกไปทสญญาณแอนะลอก (ทขาเขากอนการสมหรอขาออกหลงจากสรางสญญาณคน) เราจ าเปนตองรวาสญญาณทเราจะประมวลผล ซงมความถในรปความถดจตอล สามารถเทยบออกไปเปนคาความถแอนะลอกไดในยานไหน
บทท 5 การแปลง DTFT และผลตอบสนองเชงความถ 62
ค าตอบมอยแลวจากสมการ 5.3 ทเราเรมตนนยาม ω′ นนคอ ω′ = 2πf/fs ลองแทนคาบางความถด เชน
ทต าแหนงความถ ω′ = 2π จะตรงกบความถแอนะลอกท f = fs
ทต าแหนงความถ ω′ = π จะตรงกบความถแอนะลอกท f = fs/2นนคอ ถาระบ fs มา เราสามารถเทยบคาความถดจตอล ไปเปนความถแอนะลอกได และ
สามารถวาดรปสญญาณในเชงความถ โดยเทยบเแกนนอนปนความถ ω′ หรอความถแอนะลอกกไดขอใหดการเทยบคาความถทงสองโดยสมบรณจากรปท 5.2
บางคนอาจสงสยวา สเปกตรมของสญญาณไมตอเนองทเหนในรปท 5.2 มจรง หรอไม เพราะสเปกตรมของสญญาณจะมพลงงานไปจนถงอนนตไดอยางไร ค าตอบกคลายกบทไดอธบายไปในสวนสญญาณไมตอเนองในเชงเวลา กลาวคอ สเปกตรมรปน “มจรง แตมองไมเหนโดยตรง” เราไมสามารถเหนมนในลกษณะเดยวกบทเราเหนสเปกตรมของสญญาณแอนะลอกได สเปกตรมนเกดจากการแปลงฟรเยรมาจากสญญาณไมตอเนองทประกอบดวยอมพลสอดมคต ดงนน ตวสเปกตรมเองกเปนอดมคต เราสามารถหาคามนไดดวยการค านวณการแปลง DTFT ในสมการท 5.6
อยางไรกตาม การวเคราะหทางสเปกตรมของสญญาณนมประโยชน และเราสามารถแสดงใหเหนไดวาสเปกตรมนมอยจรง เพราะในการอธบายปรากฏการณตาง ๆ ทเกยวของกบความถของสญญาณไมตอเนอง เชน ผลตอบสนองเชงความถของระบบ, เรอง aliasing, และเรองความเพยนจากส าเนาความถ (imaging), การเพมหรอลดอตราการสม (บทท 11) เปนตน จะตองใชหลกการของสเปกตรมของสญญาณไมตอเนองมลกษณะเปนคาบ และมพลงงานไมจ ากดนมาอธบาย
สญญาณไมตอเนองความถเดยว (Discrete Sinusoidal Signal)
ตามทไดทราบมาแลววา สญญาณแอนะลอกความถเดยวมรปแบบสมการ คอ x(t) = sin(2πft+ φ) หรอ sin(ωt + φ) โดยท f มหนวยเปน รอบตอวนาท (เฮรตซ) และ ω มหนวยเปน เรเดยนตอวนาท ความถแอนะลอกในทนบงบอกวา สญญาณมการแกวงไปกรอบในหนงวนาท หรอ มการเปลยนแปลงไปกเรเดยนในหนงวนาท สวน φ คอ เฟสของสญญาณ
ส าหรบสญญาณไมตอเนองความถเดยวมรปแบบสมการทคลายคลงกน คอ
x(n) = sin(2πf′n + φ) หรอ x(n) = sin(ω′n + φ) (5.7)
โดย f′ มหนวยเปนรอบตอจด (cycle/sample) และ ω′ มหนวยเปนเรเดยนตอจด(radian/sample) ซงมความหมายวา ใน 1 จด หรอ 1 ขนเวลาสญญาณมการเปลยนแปลงไปกรอบ หรอกเรเดยน และคาบของสญญาณจะนบเปนหนวยขนเวลา คอ
บทท 5 การแปลง DTFT และผลตอบสนองเชงความถ 63
คาบ = 1/f′ = 2π/ω′ (5.8)
ลองดตวอยางของสญญาณความถเดยวในรปท 5.3 สญญาณซายมอม ω′=0.5π เรเดยนตอจด ซงหมายถง แตละจดของสญญาณมการเปลยนแปลงไป 0.5π เรเดยน เราจะสงเกตไดจากรปวาสญญาณ 4 จด ท าใหครบ 2π เรเดยน หรอ 1 รอบพอด และสญญาณนมคาบเทากบ 4 ขนเวลา
สวนสญญาณขวามอ ม ω′=0.15π เรเดยนตอจด ซงหมายถง แตละจดของสญญาณมการเปลยนแปลงไป 0.15π เรเดยน ดงนน 1 รอบประกอบดวยสญญาณเทากบ 2π/0.15π = 13.333 จดคราวนปรากฏวาคาบของสญญาณไมลงตวเปนเลขจ านวนเตม ท าใหคาของสญญาณในแตละคาบไมตรงกนเหมอนกบกรณความถเทากบ 0.5π ดงแสดงในรป อยางไรกตาม สญญาณทงสองนถอวาเปนสญญาณทมความถเดยว และความถคงท
คาบ=4
คาบ=13.33
x(n) = sin(0.5πn) x(n) = sin(0.15πn)
รปท 5.3 ตวอยางของสญญาณไมตอเนองความถเดยว
ความสมพนธของ DTFT กบการแปลง z
ลองยอนกลบไปดสมการของการแปลง z ของสญญาณ x(n) ซงคอ
X z( ) = x(n)z- n
n = -∞
∞∑
เมอพจารณาเทยบกบสมการของการแปลง DTFT จะพบวา การแปลง DTFT ของสญญาณหนง ๆ กคอ การแปลง z ของสญญาณนน เมอ z มคารอบวงกลมหนงหนวย หรอ เขยนเปนรปสมการไดเปน
บทท 5 การแปลง DTFT และผลตอบสนองเชงความถ 64
X e j( )’ωω = X(z) z = e j ’ (5.9)
นนคอ ถาแทนคา z ในสญญาณทเขยนในโดเมน z ใด ๆ ดวย ejω′ กจะไดฟงกชนสเปกตรมของสญญาณนนทนท ความจรงนท าใหเราสามารถกระท าการตาง ๆ กบสญญาณไดในเชงโดเมน zและเมอใดทสนใจคาในเชงความถของมน (DTFT ของสญญาณ) กท าไดโดยแทนคา z=ejω′
ผลตอบสนองเชงความถของระบบ (Frequency Response)
จากสมการฟงกชนถายโอนของระบบ คอ Y(z) = H(z)X(z) เมอเราแทนคา z=ejω′ จะได
Y(ejω′) = H(ejω′)X(ejω′) (5.10)
สมการนแสดงวา สเปกตรมของสญญาณขาออกจะมคาเปลยนไปจากสเปกตรมของสญญาณขาเขาดวยตวคณ H(ejω′) เราจงเรยก H(ejω′) วาเปน “ผลตอบสนองเชงความถ” (frequency response)ของระบบ ซง H(ejω′) นแททจรงกคอ การแปลง DTFT ของ h(n) ของระบบนนเอง เพราะฉะนนลกษณะของ DTFT และแนวความคดของความถดจตอลทเราไดศกษาไปแลว กจะน ามาใชไดกบสญญาณ h(n) และสเปกตรมของมน คอ H(ejω′) ไดทกประการ
ถาลองแจกแจง H ใหอยในรปผลคณของของขนาด และเฟส ดงน
H(e ) = A(e ) ej ’ j ’ j ’ω ω θ ω( )e (5.11)
รปแบบของ H(ejω′) นท าใหสามารถอธบายไดวา ทความถ ω′ สญญาณขาออกจะมขนาดเปลยนไปจากสญญาณขาเขาดวยตวคณ A(ejω′) และมเฟสเปลยนไปเทากบ θ(ejω′) จงมการเรยก A(ejω′) วาเปนผลตอบสนองทางขนาด (magnitude response) และเรยก θ(ejω′) วาผลตอบสนองทางเฟส(phase response)
ตวอยาง 5.1 จากระบบตวอยางท 4.10 ซงม H z( ) = zz - 0.5
จงใชแนวความคดของผลตอบสนอง
เชงความถในการหาคาผลตอบสนองสถานะอยตว เมอสญญาณขาเขาคอ x(n) = sin(πn/6)
แทน z = ejω′ ลงในฟงกชนถายโอน จะไดผลตอบสนองเชงความถของระบบเปน
บทท 5 การแปลง DTFT และผลตอบสนองเชงความถ 65
H e ee
jj
j( )’’
’ω
ω
ω = - 0.5
สญญาณขาเขา คอ x(n) = sin(πn/6) ซงเปนสญญาณความถเดยวซงมความถดจตอล คอ ω′ =π/6 แทนคา ω′ นลงไปในสมการของ H(ejω′) จะผลตอบสนองเชงความถทความถน ดงน
H e ee
jj
j( )
//
//
/π
π
π6
6
6
22
= - 0.5
= 3 + j0.53 + j0.5 - 0.5
= 1.6138e- j 0.4153
นนคอ ทความถ π/6 สญญาณขาออกจะถกขยายดวยอตรา 1.6138 เทา และมเฟสเปลยนไปเทากบ -0.4153 หรอประมาณ -23.8 องศา ดงนน เราจะไดสญญาณขาออก คอ
y(n) = 1.6138sin(πn/6 - 0.4153)
ซงพบวาค าตอบทไดน ตรงกบค าตอบในสวนของผลตอบสนองสถานะอยตวในตวอยาง 4.10ทกประการ ขอนแสดงใหเหนอยางชดเจนถงความเหมายของผลตอบสนองเชงความถ และการปอนสญญาณความถเดยวเขาไปในระบบกเปนการทดสอบผลตอบสนองเชงความถทความถนน ๆ
ถาเราลองวาดรปของผลตอบสนองเชงความถออกมาในแกน ω′ จะพบวาผลตอบสนองเชงความถมลกษณะเปนคาบไปเรอย ๆ ดงในรปท 5.4 ซงคณสมบตนกตรงกบความจรงทเราไดศกษามาในเรอง DTFT แตผลตอบสนองชวงทเราสนใจ จะอยในชวงความถตงแต 0 ถง fs/2 ซงตรงกบความถดจตอล (ω′ ) ตงแต 0 ถง π สาเหตทเราสนใจเฉพาะชวงความถนเปนพเศษ เนองจาก
- ผลตอบสนองเชงความถมลกษณะเปนคาบ และสมมาตรในดานบวก/ลบ เชนเดยวกนกบสญญาณขาเชาของระบบซงเปนสญญาณไมตอเนอง จะมลกษณะในเชงความถเปนคาบ และสมมาตรเชนเดยวกน ดงนน ถามเหตการณใดเกดขนในชวงความถ ω′ = [0,π] ในชวงความถอนกจะเกดเหตการณเดยวกนหมด เราจงไมจ าเปนตองสนใจ
- ในระบบการประมวลผลแบบไมตอเนอง สญญาณแอนะลอกขาเขา (กอนการสม) และสญญาณแอนะลอกขาออก จะตองถกจ ากดใหอยในชวง 0 ถง fs/2 เทานน ดงนน ระบบทเราออกแบบขนกจะเปนตวกรองทท างานในยานความถจรงตงแต 0 ถง fs/2 เทานน ซงกคอ ชวงความถดจตอลทω′ = 0 ถง π
บทท 5 การแปลง DTFT และผลตอบสนองเชงความถ 66
ถาเราเขาใจหลกการตรงนแลว การวาดผลตอบสนองเชงความถในชวงทเกน fs/2 จงเปนเรองทไมจ าเปน ในบทตอ ๆ ไป ถามการวาดผลตอบสนองเชงความถของระบบอก จะขอแสดงเฉพาะในชวงความถตงแต 0 ถง fs/2 หรอ ความถดจตอล ω′ ตงแต 0 ถง π เทานน เราลองวาดผลตอบสนองเชงความถของระบบนใหม ดงแสดงในรปท 5.5 ซงพบวา รปใหมนท าใหเราสามารถตความไดชดเจนวาระบบนท าหนาทเปนตวกรองแบบผานความถต า
|H|
∠ H
รปท 5.4 ผลตอบสนองเชงความถของระบบ H z( ) = zz - 0.5
|H|
∠ H
ω'π
π
fs/2 f0
รปท 5.5 ผลตอบสนองเชงความถของ H z( ) = zz - 0.5
เฉพาะสวนทสนใจ
ω'
(เรเดยน)
0 2π 4π-2π
ω'0 2π 4π-2π
(เรเดยน)
บทท 5 การแปลง DTFT และผลตอบสนองเชงความถ 67
function[] = freqres(a,b,fs,db)if nargin == 3, db='n'; endfnorm = 0:1/1000:0.5;f = fnorm*fs; w = 2*pi*fnorm;H = polyval(a, exp(j*w)) ./ polyval(b, exp(j*w));
if db=='db' | db=='dB' plot(f,20*log10(abs(H))); ylabel('Magnitude Response (dB') ;else plot(f,abs(H)); ylabel('Magnitude Response');endgrid on
โปรแกรมท 5.1 freqres.m ส าหรบวาดผลตอบสนองเชงความถโดยรบคาสมประสทธของฟงกชนถายโอน
function[] = freqres2(H,fs,db)if nargin == 2, db='n'; endfnorm = 0:1/1000:0.5;f = fnorm*fs; w = 2*pi*fnorm;z = exp(j*w);
for i=1:length(H) if H(i)=='*' | H(i)=='/' | H(i)=='^' Hnew=[Hnew,'.'];endHnew=[Hnew,H(i)];endH=eval(Hnew);
if db=='db' | db=='dB' plot(f,20*log10(abs(H))); ylabel('Magnitude Response (dB');else plot(f,abs(H)); ylabel('Magnitude Response');endgrid on
โปรแกรมท 5.2 freqres2.m ส าหรบวาดผลตอบสนองเชงความถโดยรบคาสมการของฟงกชนถายโอน
โปรแกรมท 5.1 และ 5.2 แสดงการใช Matlab เพอวาดผลตอบสนองเชงความถจากฟงกชนถายโอน โดยโปรแกรมท 5.1 รบคาเวคเตอรทเปนสมประสทธของเศษ และสวน เชน ส าหรบฟงก
ชนถายโอนดงในตวอยางท 5.1 คอ H z( ) = zz - 0.5
เวคเตอรของเศษ คอ [1 0] หรอ 1 เฉย ๆ กได
และเวคเตอรของสวน คอ [1 -0.5] ฟงกชนนเรยกใชฟงกชนภายในของ Matlab ชอ polyval ซงใชค านวณคาของโพลโนเมยลเศษและสวน ถาสมมตวาใช fs=1 เราสามารถเรยกใชฟงกชนนได ดงน
>> freqres(1, [1, -0.5], 1)
สรางตวแปร Hnew ขนมาใหมจาก H โดยเตมจดหนาเครองหมาย *, / ,และ ^
ถามการใสคา 'db' มาฟงกชนจะวาดคาของ20log(|H|) แทน
Eval ใชค านวณคา Hnew ซงตดอยในรปสมการ ใหกลายเปนคาผลลพธทเปนตวเลข
บทท 5 การแปลง DTFT และผลตอบสนองเชงความถ 68
ฟงกชน freqres น ถาให a เปนเวคเตอรของสญญาณไมตอเนองใด ๆ และ b=1 กจะกลายเปนการค านวณการแปลง DTFT ของสญญาณนน ๆ แลววาดสเปกตรมทางขนาดออกมาในชวงความถ 0ถง π
ส าหรบโปรแกรมท 5.2 จะรบคาสมการของฟงกชนถายโอนเปนลกษณะของขอความ (ตองอยในเครองหมายค าพด) แลวใชค าสง eval เพอแปลงขอความเปนคา เชน ส าหรบฟงกชนถายโอน
H z( ) = zz - 0.5
เราสามารถเรยกใชฟงกชนนได ดงน
>> freqres2('z/(z-0.5)', 1)
ฟงกชนทงสองสามารถวาดผลตอบสนองเชงความถในหนวยของ dB ได โดยใสพารามเตอร'db' เพมใหกบฟงกชน เชน freqres(1, [1, -0.5], 1, 'db') เปนตน
ตวกรองทท าขนโดยการประมวลผลสญญาณดจตอลน ถกเรยกวา ตวกรองดจตอล ซงจะเหนไดวาการประมวลผลทท าในภาคสญญาณแบบไมตอเนอง จะมผลถงการเปลยนแปลงทางความถของสญญาณแอนะลอกได เชนเดยวกบการใชตวกรองแอนะลอก ในบทท 7 และ 8 เราจะไดศกษาตอไปวา จะหาสมประสทธของระบบเพอใหระบบท าหนาทเปนตวกรองแบบตาง ๆ ไดอยางไร
จะเหนไดวาชวงความถทตวกรองแบบดจตอลท างาน จะขนอยกบคาความถในการสม (fs)และถา fs สงหรอต าไปกจะมผลไมดตอระบบ การเลอก fs สงเกนไป เชน ถาความถยานทเราสนใจอยในชวงประมาณ 0-100Hz แตเราสมสญญาณดวยความถ 10kHz นนคอ ความถ 0-100Hz จะครอบคลมบรเวณแค 1 ใน 50 หรอ 2% ของชวงความถทตวกรองนท างาน (fs/2= 5kHz) นอกจากจะสนเปลองเพราะตองใช A/D converter และ โปรเซสเซอรทท างานไดเรวแลว ยงท าใหไดผลตอบสนองเชงความถทไมดเทาทควรในยานทสนใจอกดวย
หรอถาเราสมดวยความถทต าเกนไป เชน fs = 220 Hz นนคอ ความถ 0-100 Hz จะครอบคลมบรเวณถงประมาณ 90% ของความถทตวกรองนท างาน (fs/2= 110Hz) กอาจท าใหมผลของความผดเพยนจาก aliasing ในการแปลงแอนะลอกเปนดจตอล และความผดเพยนจากส าเนาความถในการแปลงดจตอลเปนแอนะลอกได
หมายเหต หนงสอหลายเลมใชสญลกษณ ω แทนความถดจตอล ขอใหระวงดวยในการอานอางองเพมเตมจากหนงสอเลมอน
บทท 6 การแปลง DFT และ FFT 69
บทท 6การแปลง DFT และ FFT
ในบทนจะพจารณาการแปลงทส าคญมากในวชาประมวลผลสญญาณ นนคอ การแปลง FFTโดยจะไดเรมตนจากการทบทวนการแปลงแบบตาง ๆ ทเกยวของกบสญญาณในเชงความถและในเชงเวลา แลวจงเขาไปในรายละเอยดของ DFT และ FFT รวมถงการประยกตใชงาน FFT
ทบทวนการแปลงแบบตาง ๆ
การแปลงระหวางสญญาณในเชงความถ และเชงเวลามอยหลายแบบ ซงทกแบบกมวตถประสงคเดยวกน คอ ตองการแปลงระหวางสญญาณในเชงเวลา กบสญญาณในเชงความถ (หรอสเปกตรม) จดทแตกตางกนของการแปลงแตละแบบกคอ คณลกษณะของสญญาณทจะแปลงเทานนเชน การแปลงฟรเยรจะใชกบสญญาณในเชงเวลาทมความตอเนอง และมพลงงานจ ากด ในขณะทอนกรมฟรเยรใชกบในเชงเวลาทมความตอเนอง เปนคาบ และมพลงงานไมจ ากด ขอใหดสรปจากตารางท 6.1 และ 6.2
การแปลงฟรเยรFourier Transform (FT)
เชงเวลา ←→ เชงความถ ตอเนอง ตอเนอง
อนกรมฟรเยรFourier Series (FS)
เชงเวลา ←→ เชงความถ ตอเนองและเปนคาบ ไมตอเนอง
การแปลงฟรเยรแบบเวลาไมตอเนองDiscrete Time Fourier Transform (DTFT)
เชงเวลา ←→ เชงความถ ไมตอเนอง ตอเนองและเปนคาบ
การแปลงฟรเยรแบบไมตอเนองDiscrete Fourier Series (DFS) หรอDiscrete Fourier Transform (DFT) เชงเวลา ←→ เชงความถ
ไมตอเนองและเปนคาบ ไมตอเนองและเปนคาบถาไมระบวาเปนคาบหมายถงสญญาณทไมเปนคาบ และมพลงงานจ ากด (ทอนนตมคาเปนศนย)
ตารางท 6.1 การแปลงแบบตาง ๆ กบคณลกษณะของสญญาณทเกยวของ
บทท 6 การแปลง DFT และ FFT 70
ตารางท 6.1 และ 6.2 ใหไวส าหรบอางอง และใหสงเกตถงความเหมอน และแตกตางของกนแตละแบบ เราจะไมกลาวถงในรายละเอยดของการแปลงแตละแบบ เพราะไมใชประเดนส าคญของวชาน ยกเวนเรอง DFT ซงจะเปนสวนส าคญทจะตองใช
การแปลง จากเชงเวลาไปเปนความถ จากเชงความถไปเปนเวลา(การแปลงผกผน)
การแปลงฟรเยร (FT) X f dt( ) = x(t) e- j t
-
ω
∞
∞∫ x n df( ) = X(f) ej t
-
ω
∞
∞∫
การแปลงฟรเยรแบบเวลาตอเนอง (DTFT)มคาบในเชงความถ = 2π
X ej( )' 'ω ω = x(n)e- j n
n = -∞
∞∑ x n
d( )
'' = X(e ) e2
j ' j t
-
ω ω
π
π ωπ
∫
อนกรมฟรเยร (FS)มคาบในเชงเวลา = T
c k dtT
( ) =1T x(t) e- jk tω0
0∫
โดยท c(k) เปนสมประสทธของความถ kω0
x t( ) = c(k) ejk t
k = -ω0
∞
∞∑
อนกรมฟรเยรแบบไมตอเนอง (DFS) หรอ
การแปลงฟรเยรแบบไมตอเนอง (DFT)มคาบในเชงเวลา = คาบเชงเวลา
= N samples
X kN
( ) = x(n) e- j2 kn/N
n =
π
0
1−∑ x n
N( ) =
1N
X(k) ej2 kn / N
k = π
0
1−∑
ตารางท 6.2 สรปสมการของการแปลงแบบตาง ๆ
การแปลง DFT (Discrete Fourier Transform)
จากตารางท 6.1 จะเหนไดวา มเพยงการแปลง DFT เทานนทมทงสญญาณในเชงเวลา และในเชงความถเปนแบบไมตอเนอง จดนเปนจดทส าคญมาก เพราะมนบงบอกวา เราสามารถจะกระท าการแปลงนไดโดยใชการค านวณ (การคณ และบวก) ทางดจตอลได ซงสามารถประยกตไดสะดวกมากในคอมพวเตอร หรอในฮารดแวรโดยตรงกได การแปลงแบบอนมสญญาณแบบตอเนองเกยวของดวยซงท าใหการแปลงตองใชวธอนทเกรตซงยงยากกวามาก
บทท 6 การแปลง DFT และ FFT 71
DFT มความเหมอนกนกบ DFS มาก ทง DFT กบ DFS มสมการในการแปลงเหมอนกน จดทตางกนกคอทมาและความหมายของทงสอง DFS คอ อนกรมฟรเยรแบบไมตอเนอง (Fourier Series)ใชในกรณทสญญาณเชงเวลาเปนแบบไมตอเนอง และเปนคาบ ซงกจะไดวาสญญาณในเชงความถจะเปนแบบไมตอเนอง และเปนคาบเชนเดยวกน สวน DFT เปนการน าเอาความจรงทเกดขนจาก DFSมาใช นนคอ
1. สญญาณทงในเชงเวลา และความถเปนแบบไมตอเนอง2. สญญาณเปนรายคาบทงในเชงเวลาและความถ สามารถท าการแปลงโดยการใชคาทเกดขน
ใน 1 คาบเทานน (สงเกตวาในสตรจะเปนการหาผลรวมของสญญาณในต าแหนงท 0 ถง N-1 เทานน)ดงนน จ านวนคาทน ามาค านวณในการแปลงไป และแปลงผกผนจงมความจ ากด
DFT กคอ DFS ทเราสนใจเพยงคาบเดยวเทานน กคอ เราสนใจวาสญญาณในเชงเวลาเปนสญญาณไมตอเนองมความยาวจ ากดเทากบ N และเปนสญญาณทมรปรางใด ๆ กได เมอท าการแปลงDFT แลว กจะไดสญญาณในเชงความถเปนเปนสญญาณไมตอเนอง และมความยาวจ ากดเทากบ Nเทากน
สมมตให x(n) เปนสญญาณในเชงเวลา และ X(k) เปนสญญาณในเชงความถทเกดจาก DFTโดย k แทนตวชล าดบของสญญาณทางดานความถ ทงสองสญญาณมความยาวเทากน คอ N เราจะเขยนสญลกษณไดวา
x(n) ←→ X(k)
จากสตรในตารางท 6.2 เราจะไดวา x(n) และ X(k) มความสมพนธกนดงน
X kN
( ) = x(n) e- j2 kn/ N
n =
π
0
1−∑ (6.1)
เพอจดรปสมการใหงายขน ขอนยามให WN = e-j2π/N เปนคาทขนกบ N เทานน ส าหรบในการแปลงครงหนง ๆ N จะมคาคงท ดงนน WN จงเสมอนเปนคาคงท เราสามารถเขยนการแปลง DFTไดใหมเปน
X kN
( ) = x(n) WNkn
n = 0
1−∑ (6.2)
หรอเขยนในรปเมตรกซไดเปน
DFT; N
บทท 6 การแปลง DFT และ FFT 72
XX
X N
W W W WW W W WW W W W
W W W W
xx
x N
N N N N
N Nx
Nx
Nx N
N Nx
Nx
Nx
N NN x
NN x
NN x N
( )( )
( )
( )( )
( )
(
(
( ( ( (
01
01
0 0 0 0
0 1 1 1 2 1
0 2 1 2 2 2
0 1 2-1
=
-1
-1)
N-1)
-1) -1) -1) -1)
⋅
( 6.3)
function X = dft(x)N = length(x);c = j*2*pi/N;for k=0:N-1 X(k+1) = sum(x.*exp(-c*k*[0:N-1]));end
โปรแกรมท 6.1 dft.m ส าหรบค านวณการแปลง DFT
ทมา และความหมายของการแปลง DFT
ลองดวา X(k) ทไดจากการแปลง DFT นมความหมายอยางไร ขอใหดจากรปท 6.1 พรอมค าอธบายดงตอไปน
ก) ให xa(t) เปนสญญาณแบบตอเนองใด ๆ ทมความยาวจ ากด (พลงงานจ ากด) และมสเปกตรม (ซงหามาไดจากการแปลงฟรเยร) คอ Xa(f) สมมตวาได Xa(f) มความถจ ากด โดยมความถสงสดอยท fmax
ข) ถาเราสมสญญาณ xa(t) ดวยอตรา fs โดยท fs > 2fmax จะไดสญญาณไมตอเนอง xb(n) ซงมสเปกตรม คอ Xb(ejω′) มลกษณะเปนรายคาบดงทเราไดศกษามาแลวในเรอง DTFT โดยทสญญาณในชวงความถดจตอล ω′ = -π ถง π จะเหมอนกบสเปกตรมของสญญาณแอนะลอกเดม คอ Xa(f) ในชวง -fs/2 ถง fs/2 ทกประการ เพราะไมเกด aliasing ในการสมครงน
ค) ถาเราสมสญญาณในเชงความถ Xb(ejω′) ดวยความถ N ตวอยางตอ 1 คาบ หรอมคาบในการสมเทากบ 2π/N เราจะไดสญญาณในเชงความถเปนแบบไมตอเนอง และเปนรายคาบ ใหสญญาณใหมนเปน X(k) สงทเกดขนในเชงเวลากคอ สญญาณในเชงเวลาจะเกดเปนรายคาบขนดงรป(เชนเดยวกบทเราสมสญญาณในเชงเวลา แลวเกดส าเนาของสญญาณขนในเชงความถ การสมสญญาณในเชงความถ กจะท าใหเกดส าเนาของสญญาณขนในเชงเวลา)
ง) ถาเราดงเอาเฉพาะสญญาณในชวง 1 คาบออกมาออกมาทงในเชงเวลา และความถ คอในชวง n และ k เทากบ 0 ถง N-1 สวนนกคอ การแปลง DFS ในคาบเวลาเดยว หรอ กคอ การแปลงDFT นนเอง
…
…
…
…
... .........
......
บทท 6 การแปลง DFT และ FFT 73
จะสงเกตไดวา คาบหนง ๆ ของสญญาณ x(n) คอ สญญาณทมาจากการสมของสญญาณ xa(t)และคาบหนง ๆ ของสญญาณ X(k) กคอ สญญาณมาจากการสมสญญาณ Xa(f)
นนกคอ DFT สามารถใชหาสญญาณในเชงความถแทนการแปลงฟรเยรไดอยางสมบรณ โดยใหสเปกตรมเปนสญญาณไมตอเนองซงจะมรปรางเหมอนสเปกตรมจรงของสญญาณ โดยมเงอนไขวาสญญาณทตองการหาคาในเชงความถตองมพลงงานจ ากด และความถจ ากด คอ ไมเกน fmax ซงความถทใชในการสมเพอแปลงสญญาณเปนดจตอลตองมคามากกวา 2fmax
FT
DTFT
DFS
DFT;N
t
0 N−1
0
−N 0 N n
0 N−1 n 0 N−1 k
k
รปท 6.1 ความเกยวโยงกนระหวางการแปลง DFT กบการแปลงฟรเยร
ถาเงอนไขดงกลาวเปนจรง เราสามารถสรปเปนค าพดไดวา “การแปลง DFT ใหผลลพธเปนสญญาณไมตอเนองซงมคาเทากบเปนการสมสเปกตรมทไดจากการแปลง DTFT” หรอ หมายถงวาคาทกคาทไดจากการแปลง DFT จะอยบนเสนของผลลพธทไดจากการแปลง DTFT เสมอ
การคนพบนเปนสงทส าคญมาก เพราะท าใหเราสามารถแปลงสญญาณกลบไปกลบมาระหวางเชงเวลา กบเชงความถได โดยกระท ากบสญญาณแบบไมตอเนองลวน ๆ ดงนน การแปลงDFT กเปนการประมวลผลแบบดจตอลอยางหนงเพอหาสเปกตรมของสญญาณ
xa(t)
xb(n)
|Xa(f)|
|Xb(f)|
n
0 fmax f
-fs/2 0 fs/2 fs f -π 0 π 2π ω’
x(n) |X(k)|
x(n) |X(k)|
-N -N/2 0 N/2 N1 คาบ 1 คาบ
สมในเชงความถ
สมในเชงเวลา
ก)
ข)
ค)
ง)
บทท 6 การแปลง DFT และ FFT 74
ขอสงเกตอกอนหนงกคอ ผลตอบทไดจาก DFT ถาเทยบกบผลทไดจาก DTFT จะอยในชวง 0ถง 2π หรอคอความถจรง ๆ ท 0 ถง fs ซงผลตอบนเมอพบทจดกงกลางจะสมมาตรกน เราสนใจผลตอบในชวงครงแรกเทานน ซงคอความถจรงท 0 ถง fs/2 ซงกคอชวง
k = 0 ถง N/2 ในกรณท N เปนเลขคและ k = 0 ถง (N+1)/2 ในกรณท N เปนเลขค
function dftspec(x,fs)
if nargin < 2, fs=1; end; %ถาไมใสคา fs มา จะให fs = 1N = length(x);
N_plot = (N+1)/2; %ก าหนดจ านวนจดทจะวาดเปนครงหนงของทงหมดf = [0:N-1]*fs/N; %ใช fs เปนตวปรบสเกลของแกนนอนเพอใหแสดงในX = dft(x); หนวยของความถแอนะลอกplot(f(1:N_plot),abs(X(1:N_plot)));grid on
โปรแกรมท 6.2 dftspec.m ส าหรบวาดสเปกตรมทางขนาดของสญญาณ โดยใช DFT
การเตมศนย (zero padding)
“การเตมศนย” เปนการเตมจดทมคาเปนศนยตอทายเขาไปในสญญาณ x(n) กอนทจะท า การแปลง DFT ซงจะสงผลใหสเปกตรมทไดมจ านวนจดมากขน ซงเสมอเปนการสมสเปกตรมดวยจ านวนจดทมากขน การเตมศนยชวยใหมองเหนรปรางไดละเอยด และชดเจนขน แตในทางทฤษฎแลว ไมไดเปนการเพมขอมลใด ๆ ใหแกสญญาณเลย เสนประทแสดงในรปท 6.2 คอ เสนทแสดงผลลพพทเกดจากการแปลง DFT ซงไมวาเราจะเตมศนยเขาไปมากเทาไรเสนนกจะคงเดม กลาวคอ ผลลพธทเราไดดทสดจากการเตมศนยมากขน ๆ กคอผลทเขาใกลผลของการแปลง DTFT นนเอง
x(n)|X(k)|
DFT;N
0 N-1 n N-1k
0
DFT;Mn
M-10 M-1k
0
M>N
เตมศนย 7 จด
N=8
M=15
รปท 6.2 ผลของการเตมศนยกบการแปลง DFT
…
บทท 6 การแปลง DFT และ FFT 75
สเปกตรมของพลงงาน กบสเปกตรมของก าลง
ผลลพธทเกดจากการแปลง DTFT หรอ DFT ทไดกลาวถงมาน เรยกวา สเปกตรมทางขนาด(หรอสเปกตรมของโวลทเทจ) ถาเรามสมมตฐานวาสญญาณทน ามาหาสเปกตรมนเกดขน และสนสดภายในชวงทน ามาคดเทานน หรอทเวลาอน ๆ สญญาณมคา สญญาณประเภทนเรยกวา สญญาณทมพลงงานจ ากด (finite-energy signal) สญญาณทมพลงงานจ ากดมสเปกตรมทเราสนใจ คอ สเปกตรมของพลงงาน (energy spectrum) ซงสามารถหาไดจาก
Sx(k) = |X(k)|2 (6.4)
โดย Sx(k) คอ สเปกตรมของพลงงานของสญญาณ x(n) และ X(k) คอ ผลการแปลง DFT ของสญญาณ x(n) ส าหรบการแปลง DTFT กมสตรในลกษณะเดยวกน คอจะได Sx(ω′) = |X(ejω′)| ผสนใจสามารถดวธพสจนไดในหนงสออางอง [3]
แตถาเรามสมมตฐานวา สญญาณทน ามาหาสเปกตรมนเปนเพยงสวนยอยหนงของสญญาณทมคณลกษณะทางสถตไมแปรตามเวลา (stationary signal) สญญาณหนง กลาวคอ สญญาณนยาวไปจนถงเวลาเปนอนนต แตเราตดเอาเพยงสวนหนงของมนมาดเทานน ซงสญญาณนอาจเปนสญญาณทมรปรางไมแนนอน (random signal) แตขอใหมคณลกษณะทางสถตทคงท เชน มคาเฉลยคงท และมก าลงคงท (เรองของสญญาณแรนดอม มรายละเอยดมาก และเปนสงทส าคญมากในการประมวลผลสญญาณขนสง ซงเกนขอบเขตในขนพนฐานทจะอธยายในหนงสอเลมน)
สญญาณประเภทนเรยกวา สญญาณทมพลงงานไมจ ากด ซงไมสามารถหาคาพลงงานได แตสามารถหาคา “ก าลงเฉลย” ของสญญาณได ดงนน สเปกตรมทเราสนใจของสญญาณประเภทน คอสเปกตรมของก าลง (power spectrum) ซงมสตร คอ (เชนเดยวกน ดพสจนใน [3])
Px(k) = 1N
|X(k)|2 (6.5)
สเปกตรมของก าลงเปนตวบอกวา สญญาณมก าลง (หรอพลงงาน) กระจายอยในความถตาง ๆอยางไร ถาเราบวกคาทกคาของ Sx(k) เขาดวยกน กจะไดก าลงรวมของสญญาณในทก ๆ ความถ ซงกควรจะเทากบก าลงเฉลยของสญญาณนนเอง ซงความจรงขอนมกลาวในทฤษฎบทของ Parseval ทวา“ก าลงเฉลยในทางเวลา จะเทากบก าลงเฉลยในทางความถ” ซงเขยนเปนสตรส าหรบสญญาณไมตอเนอง ไดวา
บทท 6 การแปลง DFT และ FFT 76
x(n) = 1N
=0
N-1
=0
N-12 2
n kX k∑ ∑ ( ) (6.6)
มกนยมแสดง สเปกตรมของก าลงในหนวย dB ซงมสตรวา
Px(k) = 10 1 2logN
X(k)
(dB) (6.7)
รปท 6.3 ตวอยางของสญญาณในเชงเวลา และสเปกตรมทไดจากการใช DFT
function dftpsd(x,fs)if nargin < 2, fs=1; end;N = length(x);N_plot = (N+1)/2;f = [0:N-1]*fs/N;X = dft(x);plot(f(1:N_plot),10*log10(abs(X(1:N_plot)).^2/N));grid on
โปรแกรมท 6.3 dftpsd.m ส าหรบวาดสเปกตรมของก าลงในหนวย dB โดยใช DFT
ก) x(n)
ข) |X(f)|ไดจากโปรแกรมdftspec(x,fs)
ค) Px(f) (dB)ไดจากโปรแกรมdftpsd(x,fs)
f (Hz)
n
f (Hz)
บทท 6 การแปลง DFT และ FFT 77
รปท 6.3 แสดงตวอยางของสเปกตรมทางขนาด และสเปกตรมก าลงทไดจากการใช DFTสญญาณ x(n) ทใชเปนสญญาณเสยงทอานเขามาใน Matlab เปนเวคเตอรแบบแถวยาว 1000 จด มอตราการสมเทากบ 11025 Hz (ดวธอานสญญาณเสยงใด ๆ เขามาใน Matlab ไดในภาคผนวก ก)สเปกตรมทไดในรป ข และ ค ทจรงแลวเปนสญญาณแบบไมตอเนอง แตเนองจากมจ านวนจดถง1000 จด เมอวาดออกมาแลวแตละจดจงตด ๆ กนมองเหมอนเปนสญญาณทตอเนอง แตละจดในสเปกตรมมระยะหางกนเทากบ fs/N = 11025/1000 = 11.025 Hz
สงเกตวาสเปกตรมของก าลงทแสดงในหนวย dB จะสามารถแสดงใหเหนถงในรายละเอยดของสเปกตรมไดดกวาโดยเฉพาะในยานทมก าลงของสญญาณต า ๆ และโดยทวไปแลว สเปกตรมของก าลงเปนคาทนยมหามากกวาสเปกตรมของขนาด ถงแมสญญาณจะไมเปนแบบ stationary กตามดงจะไดกลาวถงตวอยางในสวนหลงในเรองเครองวเคราะหสเปกตรม
การแปลง FFT (Fast Fourier Transform)
เนองจาก การแปลง DFT มประโยชนในการใชงานมาก จงมไดมความพยายามคดคนหาวธทจะค านวณ DFT ใหเรวขน และมประสทธภาพขนกวาปกต การแปลง FFT กคอชอทใชเรยก “วธการค านวณ DFT อยางรวดเรว” กวาการคดปกตนนเอง เพราะฉะนน เมอกลาวถงการแปลง FFT โดยหลกการแลวขอใหนกถงวามนคอ การแปลง DFT นนเอง และการแปลง FFT ไมใชการแปลงชนดใหมแตอยางใด
การค านวณ DFT โดยตรงจากนยาม ถาสญญาณมความยาวเทากบ N จะตองใชการค านวณถงประมาณ N2 CMACs (CMAC คอ Complex Multiplication and Accumulation, เปนหนวยวดการค านวณ ซง 1 CMAC เทากบการกระท าทางคณตศาสตรทประกอบดวยการคณเลขเชงซอน 2 จ านวนเสรจแลวน าเอาผลลพธทไดไปบวกสมทบเขากบเลขเชงซอนอกจ านวนหนง) ซงมคาทมาก โดยเฉพาะเมอ N มคาสง ๆ การใช FFT จะชวยลงจ านวน CMAC ทตองใชลงไดมาก
ในปจจบนไดมผคดคนการค านวณ DFT อยางรวดเรวไดหลายวธ ค าวา FFT เปนชอ กลาง ๆทไมไดบงบอกวาเปนวธไหน ในบทนเราจะศกษาวธท า FFT วธพนฐานวธหนง คอวธ radix-2 แบบdecimation-in-time (แตกเปนสวนยอยทางฝงเวลา)
เราลองยอนกลบไปดการแปลง DFT ในสมการท 6.2 คอ
X kN
( ) = x(n) WNkn
n = 0
1−∑ โดยท WN = e-j2π/N และ k = 0, 1, ... N-1
ถาให N เปนเลขค เราสามารถกระจาย ( )X k ใหอยในรปของผลบวกของเทอมท n เปนคและเทอมท n เปนคได ดงน
บทท 6 การแปลง DFT และ FFT 78
( ) ( ) ( ) ( )X k x n W x n Wn
N
Nnk
NN k
n
N
= + +=
−+
=
−
∑ ∑2 2 10
21
2 2 1
0
21
" #$ %$ " #$$ %$$(6.8)
( ) ( ) ( )X k x n W x n W Wn
N
Nnk
Nnk
Nk
n
N
= + +=
−
=
−
∑ ∑2 2 10
21
2 2
0
21
(6.9)
ถาพจารณาเทอม WNabทม a และ b เปนจ านวนใด ๆ ทไมเทากบ 0 จะพบวา เราสามารถยาย
ตวยกก าลงของ W ไปเปนตวหารของ N ไดดงน
W e e WNab j
Nab j a aN b
N b= = =
− −2 2π π
(6.10)
เราใชความจรงขอน แทนคาเทอม WNnk2 ดวย WN
nk2ในสมการท 6.9 จะได
( ) ( )&X k x n W x n W W
n
N
Nnk
Nnk
n
N
Nk( ) = + + ×
=
−
=
−
∑ ∑2 2 10
21
2 20
21
" #$ %$ " #$$ %$$(6.11)
จะเหนไดวา X(k) ไดกลายเปนผลบวกของสองเทอม แตละเทอมเปนรปแบบของการค านวณDFT N/2 จด โดยเทอมแรกกระท ากบสญญาณ x(0), x(2), …, x(N-2) และเทอมทสองกระท ากบสญญาณ x(1), x(3), …, x(N-1)
ถาเรายตการแตกกระจายเปนเทอมยอยแตเพยงเทาน และค านวณ DFT โดยใชสมการท 6.11จะไดวา เราตองค านวน DFT N/2 จด เปนจ านวน 2 ชด ซงแตละชดจะตองใชจ านวน CMAC ในการค านวณเทากบ (N/2)2 ดงนน ตองใชจ านวน CMAC ในการค านวณทงสนประมาณ
22 2
2N
= N2
(จรง ๆ แลว ตองใชการบวกอก N จด เพอน าผลลพธของแตละชดมาบวกกน แต
เนองจาก ถา N ใหญพอประมาณ N จะมคานอยเมอเทยบกบ N2
2 จงประมาณวาไมตองคดการบวก
N ครงนได)สรปวา การหา W(k) ซงเปน DFT N จด สามารถกระจายใหอยในเทอมของ DFT N/2 จด ซง
จะท าใหจ านวน CMAC ทตองใชลดลงประมาณครงหนง เชนเดยวกน ถาเราท าการแตกเทอม DFT
เทอมค เทอมคมาจาก x(0),x(2),x(4),… มาจาก x(1),x(3),x(5),…
DFT N2
จด สมประสทธพเศษใชคณเทอมค
DFT N2
จด
บทท 6 การแปลง DFT และ FFT 79
N/2 จดทอยในสมการท 6.11 นตอไป แตละเทอมกจะสามารถกระจายใหกลายเปนผลบวกของ DFTN/4 จดสองเทอม ซงกจะท าใหจ านวน CMAC ทตองใชลดลงอกประมาณครงหนง เราสามารถกระจายเชนนไปเรอย ๆ จนกระทงทกตวอยในรปของ DFT 2 จด ซง DFT 2 จดสามารถค านวณไดงาย ๆ ดงน
สมมต x(n) ยาว 2 จด จะได X k( ) = x(n) W2kn
n = 0
1∑ (6.12)
อาศยความจรงวา W20 1 = และ W j
21 = e = -1- π จะไดวา
X(0) = x(0) + x(1)X(1) = x(0) - x(1)
ขนตอนทไดอธบายมาทงหมดนรวมเรยกวา การแปลง FFT เรามกเขยนวธค านวณ FFT โดยใชแผนภาพเรยกวา แผนภาพผเสอ (butterfly diagram) ขอใหศกษาการเขยนแผนภาพผเสอจากตวอยางท 6.1
ตวอยางท 6.1 จงแสดงขนตอนของการคดแผนภาพผเสอส าหรบการแปลง FFT เมอ N=8การกระจาย DFT 8 จด ใหอยในรปของ DFT 4 จด สองเทอมบวกกน สามารถเขยนเปนแผน
ภาพไดดงน ขอใหเปรยบเทยบกบสมการท 6.4
X(0)X(1)X(2)X(3)
X(4)X(5)X(6)X(7)
8จดDFT
x(0)x(1)x(2)
X(0)X(1)X(2)
X(7)x(7)
x(0)x(2)x(4)x(6)
x(1)x(3)x(5)x(7)
4 จดDFT
4 จดDFT
W08W18W28W38
W48W58W68W78
รปท 6.4 การกระจาย DFT 8 จด เปน DFT 4 จด
ขอนยามสญลกษณ ทใชในแผนภาพผเสอ ดงน
W84
บ ว ก≡ ≡ค ณด วย W84
(6.13)
บทท 6 การแปลง DFT และ FFT 80
กอนจะกระจายตอไป เราสามารถท าสมประสทธทคณอยในแผนภาพในรปท 6.4 ใหงายลงได โดยใชคณสมบตความสมมาตรของ WN ดงน
W W WNk N
Nk
NN
Nk
Nk+ / /2 2 = W = W (-1) = - (6.14)
ใชคณสมบตตามสมการท 6.14 จะไดวา
W W84
80 = - , W W8
581 = - , W W8
682 = - , และ W W8
783 = - (6.15)
แทนคาทงหมดลงในแผนภาพในรป 6.4 จะไดแผนภาพดงรปท 6.5ในท านองเดยวกน DFT 4 จดกสามารถกระจายเปน DFT 2 จดไดดงรปท 6.6 และเมอรวมผล
ลพธแตละสวนเขาเปนแผนภาพเดยวกน กจะปรากฏดงในรปท 6.7 จากรปท 6.7 นเราสามารถใชเปนแนวทางในการเขยนแผนภาพส าหรบ FFT N จดใด ๆ ไดทนท โดยไมจ าเปนตองเรมตนจากการกระจายทละขนดงทไดแสดงมา รวมทงใชเปนแนวทางในการเขยนโปรแกรมเพอค านวณ FFT N จดใด ๆ ได
W08W18W28W38
x(0)x(2)x(4)x(6)
x(1)x(3)x(5)x(7)
X(0)X(1)X(2)X(3)
X(4)X(5)X(6)X(7)
4 จดDFT
4 จดDFT
-1-1-1-1
รปท 6.5 การกระจาย DFT 8 จด เปน DFT 4 จด หลงจากใชคณสมบตความสมมาตร
Q2
Q3Q4
x(4)
x(2)x(6)
2 จดDFT
2 จดDFT
-1-1
W04
W14
x(0)x(2)x(4)x(6)
Q1Q2Q3Q4
4 จดDFT
x(0) Q1
รปท 6.6 การกระจาย DFT 4 จด เปน DFT 2 จด
ตวแปรชวคราว
บทท 6 การแปลง DFT และ FFT 81
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
X(0)
X(1)
X(2)
X(3)
X(4)
X(5)
X(6)
X(7)
-1
-1
-1
-1
-1
-1 -1
-1
-1
-1
-1
-1
W04
W14
W14
W04
W38
W28
W18
W08
2 จด DFT4 จด DFT
8 จด DFT
รปท 6.7 แผนภาพรวมของการค านวณ FFT 8 จด
จดทควรสงเกตจากแผนภาพผเสอของการค านวณ FFT มดงนคอ1. ถาตองการไดผลตอบในเชงความถเรยงตามล าดบจาก X(0), X(1), ..., X(7) เราตองท าการ
เรยงล าดบสญญาณขาเขาใหม เปนดงน x(0), x(4), x(2), x(6), x(1), x(5), x(3), และ x(7) ลองเขยนล าดบเหลานในเลขฐานสองจะไดดงตารางตอไปนล าดบใหมฐานสบ ล าดบใหมฐานสอง ล าดบปกตฐานสบ ล าดบปกตฐานสอง
0 000 0 0004 100 1 0012 010 2 0106 110 3 0111 001 4 1005 101 5 1013 011 6 1107 111 7 111
บทท 6 การแปลง DFT และ FFT 82
จะเหนไดวาล าดบใหมเกดจากการเรยงล าดบบตจากหลงไปหนาของล าดบปกต (bit- reversedorder) ซงขอนพบวาเปนจรงส าหรบ FFT ทจ านวนจดใด ๆ ดวย
2. คาคงท W ทใชคณกบสวนค สามารถเปลยนใหอยในรปของ W8k ไดทงหมด โดยคณตว
หอยและตวยกก าลงดวยคาเดยวกน ดงในตวอยางเราสามารถเปลยนเทอมตอไปนได
W W40
80→ และ W W4
182→ (6.16)
ดงนน สามารถใช W8k แทนคาไดทงหมด ซงเราสามารถค านวณ W8
k ท k ตาง ๆ นไวลวงหนาได และใชมนเสมอนเปนคาคงทส าหรบ FFT 8 จด ขอนกเปนจรงเชนกนส าหรบ FFT จ านวน N จดใด ๆ
3. พจารณาโดยรวมแลว จะไดวาการค านวณ FFT N จด ถกแบงเปน log2N ขนตอน โดยอาจประมาณไดวาแตละขนตอนมการค านวณเทากบ N CMAC's (มเสนแทยงในแผนภาพ N เสนในทก ๆขนตอน) ดงนนจะไดวา
จ านวน CMAC ทตองใชในการค านวณ FFT N จด = Nlog2N (6.17)
4. วธ radix-2 นใชไดกตอเมอคา N เทากบ 2b โดย b เปนจ านวนเตมบวกใด ๆ ซงขอนไมเปนปญหา เนองจาก ถาไมสามารถแบงสญญาณใหมความยาวเทากบ 2b ได กใชวธเตมศนยเพมไปในสญญาณใหไดความยาวตามทตองการ
ตวอยางท 6.2 จงเปรยบเทยบจ านวน CMAC ทตองใชส าหรบการค านวณ DFT 1024 จด และ FFT1024 จด
DFT ปกตใชจ านวน CMAC ≈ N2 = 1024x1024 ≈ 106 CMACFFT ใชจ านวน CMAC ≈ Nlog2N = 1024x10 ≈ 104 CMACนนคอ FFT ชวยใหการค านวณ DFT 1024 จดน เรวขนถงประมาณ 100 เทา
ดงไดกลาวมาแลววาการค านวณ FFT มหลายวธ ซงวธตาง ๆ จะมความซบซอนตางกน และไดจ านวน CMAC ตางกนดวย วธ radix-2 ทแสดงไวนจดเปนวธทเปนพนฐาน และนยมใชวธหนง ผทสนใจขอใหศกษาวธค านวณ FFT ดวยวธอน ๆ จากหนงสออางอง [3], [8] ซงหลายวธสามารถใหการค านวณทเรวขนได แตกแลกดวยความซบซอนทมากขน นอกจากน ยงมผคดเทคนคทท าใหการค านวณเรวขนในกรณทสญญาณขาเขาของ FFT เปนจ านวนจรง[8] ซงเปนกรณสวนใหญทเราใชงาน
บทท 6 การแปลง DFT และ FFT 83
ใน Matlab มค าฟงกชนภายในชอ fft ซงจะไชค านวณการแปลง fft ไดอยางรวดเรวมาก ถาลองแทนค าสง dft(x) ในโปรแกรม dftspec.m และ dftpsd.m (โปรแกรม 6.2 และ 6.3) ดวย fft(x) แลวสรางเปนฟงกชนใหมชอ fftspec.m และ fftpsd.m จะพบวาโปรแกรมทใช fft นท างานไดเรวขนมาก
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
X(0)
X(1)
X(2)
X(3)
X(4)
X(5)
X(6)
X(7)
-1
-1
-1
-1
-1
-1 -1
-1
-1
-1
-1
-1
W04
W14
W14
W04
W38
W28
W18
W08
รปท 6.8 สวนยอยทลปตาง ๆ ค านวณ ส าหรบหา DFT 8 จดตามโปรแกรมท 6.4
โปรแกรมท 6.4 แสดงการเขยนโปรแกรมใน Matlab เพอค านวณการแปลง FFT แบบ radix-2ส าหรบความยาว N ใด ๆ โดยในสวนทวนลปเพอค านวณ FFT ตามแผนภาพผเสอนน จะประกอบดวยการวน 2 ลปชดดวยกน คอ ลป for ซอนอยในลป while ตวอยางเชน การแปลง DFT 8 จด จะมจ านวนของลปทวน และคาตวแปรทใชในลปดงแสดงในรปท 6.8
จากตวอยางท 6.2 ทบอกวา FFT ควรค านวณไดเรวกวา DFT ปกตประมาณ 100 เทา แตจากการทดสอบกบสญญาณทมความยาว 1024 จด พบวาโปรแกรม myfft.m นท างานเรวกวา dft.m(โปรแกรมท 6.1) เพยงแคประมาณ 3 เทา สาเหตกเนองมาจากปจจยอน ไดแก การท Matlab ไมมค าสงกระท ากบระดบบต ดงนน การเปลยนล าดบสญญาณขาเขาเปนล าดบทสลบบตซายขวาจงกนเวลาค านวณมาก และในสวนของการค านวณแผนภาพผเสอซงมการชคาตาง ๆ แบบพสดารของตวแปรอะเรยกท าใหการค านวณชา ในกรณทน าไปใชงานซงอาจม N คงท และใชฮารดแวร หรอภาษาแอสเซมบลเปนตวประมวลผล กจะท าใหการการค านวณเรวขนกวานมาก
for ลปท 2 (i=5)
for ลปท 4 (i=7)
for ลปท 3 (i=5)
for ลปท 2 (i=3)
while ลปท 1M=1
while ลปท 2M=2
while ลปท 3M=4
for ลปท 1 (i=1) for ลปท 1 (i=1) for ลปท 1 (i=1)
บทท 6 การแปลง DFT และ FFT 84
อยางไรกตาม โปรแกรมท 6.4 ไดแสดงใหเหนวา การค านวณ FFT ถงแมจะมขนตอนทซบซอนกวาการค านวณ DFT ปกต แตกจะท างานไดเรวกวามาก ผทสนใจสามารถดตวอยางการใชภาษาซเพอค านวณ FFT ไดจากหนงสออางอง [1] และตวอยางของภาษาแอสเซมบลของชพ DSP ตระกลTMS320 ไดจากหนงสออางอง [15]
function X=myfft(x)N=length(x);b=log10(N)/log10(2);
W=exp(-j*2*pi*[0:N/2-1]/N); ค านวณคาคงท WNk ไวกอน
xold=x;for i=0:N-1 index_old=i; index=0; for j=1:b
index=index*2;a=rem(index_old,2);index_old=(index_old-a)/2;index=index+a;
end x(index+1)=xold(i+1);end
M=1;while M < N, M2 = 2*M; for i=1:M2:N xtemp1 = x(i:i+M-1); xtemp2 = x(i+M:i+M2-1).*W(1:N/M2:N/2); x(i:i+M-1) = xtemp1 + xtemp2; x(i+M:i+M2-1) = -xtemp2 + xtemp1; end M=M2;endX=x;
โปรแกรมท 6.4 myfft.m ส าหรบค านวณการแปลง FFT ทจ านวนจด N ใด ๆ
การแปลง DFT ผกผน (IDFT, Inverse Discrete Fourier Transform)
ลองพจารณา สตรของ IDFT เทยบกบ DFT จะพบวามความคลายกนมาก ซงกพบวาการหาIDFT สามารถหาไดโดยการใช DFT ดงสมการตอไปน
x = IDFT(X) = 1N
(DFT(X*))* (6.18)
เครองหมาย * หมายถง conjugate ลองพสจนสตรนโดยใชสมการของ DFT และแทนคา X*ลงไปจะได
ค านวณตามแผนภาพผเสอ
สลบล าดบของสญญาณขาเขา เปนล าดบทสลบบตซายขวา
บทท 6 การแปลง DFT และ FFT 85
DFT(X*) = X k j kn N
k
N( ) * / e−
=
−∑ 2
0
1 π
ดงนน จะได 1N
(DFT(X*))* = 1 12
0
1 2
0
1
NX k
NX kj kn N
k
N j kn N
k
N( ) * ( )/ * / e = e−
=
−
=
−∑ ∑π π
ซงมคาเทากบ IDFT(X) = x(n) จรงตามสมการท 6.18ในท านองเดยวกน IFFT ซงมความหมายเดยวกบ IDFT และสามารถหาไดจากการค านวณ
FFT ดงสมการตอไปน
x = IFFT(X) = 1N (FFT(X*))* (6.19)
คณสมบตของ DFT
สมมตให X1=DFT(x1) และ X2=DFT(x2) จะไดวา1. คณสมบตความเปนเชงเสน
a1x1(n) + a2x2(n) DFT N;→ a1X1(k) + a2X2(k) (6.20)
2. คณสมบตการเลอนทางเวลา
x1(n-m) DFT N;→ e-j2πm/N X1(k) (6.21)
เครองวเคราะหสเปกตรม และการปรบปรงผลลพธทไดจาก FFT
เครองวเคราะหสเปกตรม (spectrm analyzer) คอ เครองทรบสญญาณขาเขาเปนแอนะลอกและแสดงสเปกตรม (ของก าลง) ของสญญาณออกทางหนาจอ และสามารถตดตามการเปลยนแปลงสเปกตรมของสญญาณไดอยางทนททนใด เครองวเคราะหสเปกตรมอยางงายสามารถสรางไดโดยใชFFT ตามสมการท 6.5 ในการค านวณหาคาสเปกตรมของก าลง
แผนภาพของเครองวเคราะหแสดงดงรปท 6.9 โดยหลงจากทสญญาณแปลงสญญาณเปนแบบไมตอเนองแลว กจะท าการจดสญญาณเปนบลอก ๆ ละ N จด แลวท าการหาสเปกตรมของสญญาณทละบลอกเพอสงไปแสดงผลดงรปท 6.10 ก)
บทท 6 การแปลง DFT และ FFT 86
A/D จ ดแบ งบล อกของส ญญาณ
คานวณสเปกตร ม
ส วนแสดงผลส ญญาณขาเข าอนาลอก
รปท 6.9 แผนภาพของเครองวเคราะหสเปกตรม
. . .x1 x2 x3
หา Px1 หา Px2 หา Px3 . . .
ส ง Px1 , Px2 , Px3 , … ไปแสดงผล
N จ ด
. . . ส ญญาณ x (n)(ก อนส ม)
. . .
x1
x2
x3
หา Px1
หา Px2
หา Px3
. . .
N จ ด
x4
หา Px4 หา Px5 หา Px6เฉล ยหา Pavg1
เฉล ยหา Pavg2
ส ง Pavg1 , Pavg2 , Pavg3 , … ไปแสดงผล
เหล อมก น M จ ด
รปท 6.10 การจดบลอกของสญญาณเพอหาสเปกตรม
การจดบลอกตามรปท 6.10 ก) ใหผลลพธพอใชได แตเรายงมวธปรบปรงรปรางของสเปกตรมใหดขน (ชดขน และใกลเคยงความเปนจรงมากขน) โดยใชสองวธ ดงตอไปน
ก) แบบ ธรรมดา
ข) แบบ หาคาเฉลย ของหลาย ๆ บลอก
บทท 6 การแปลง DFT และ FFT 87
เทคนคท 1 ถาสญญาณขาเขาเปนสญญาณแรนดอม (ซงคอสญญาณทเราตองพบในชวตจรง)จะท าใหสเปกตรมทไดจากสญญาณ 1 บลอกมเสนทไมเรยบ คอจะมผลของความไมแนนอนของสญญาณแรนดอมปนอยมาก ดงเชนในรปท 6.3 ค) เทคนคทใชปรบใหเสนสเปกตรมเรยบ และถกตองมากขน กท าไดโดยการน าสเปกตรมทไดจากบลอกทอยตด ๆ กนมา “เฉลย” กน สมมตวาใช Kบลอกมาท าการเฉลย จะไดสเปกตรมทเกดจากการเฉลย คอ
P fK
P favg xi( ) ( ) = i=1
K1∑ (6.22)
นอกจากน สญญาณแตละบลอกกอาจแบงใหมสวนเหลอมกน เพอเพมประสทธภาพในการตดตามสเปกตรมทเปลยนแปลงในสญญาณ ในรปท 6.10 ข) แสดงการแบงบลอกโดยมสวนทเหลอมกนเทากบ M จด และใชสเปกตรมทไดจาก 3 บลอกมาเฉลยกน (K = 3) เทคนคทใชนเปนเทคนคทใชประมาณคาสเปกตรมของก าลงทเรยกวา Averageing Modified Periodogram หรอ วธของ Welch[3]
บางทานอาจสงสยวา การเลอกคา N, M, และ K ขนอยกบอะไร อาจพจารณาไดดงนก) คา N เลกไปจะท าใหไดสเปกตรมทไมละเอยด (low resolution) แตถาคา N ใหญไปกจะ
ลดความสามารถในการตดตามการเปลยนแปลงของสเปกตรมลง จงไมเหมาะกบสญญาณทมสเปกตรมเปลยนแปลงรวดเรว
ข) K เลกไปท าใหรปสเปกตรมไมเรยบ ยงมผลของความไมแนนอนอยมาก แตถา K ใหญไปกจะลดความสามารถในการตดตามการเปลยนแปลงของสเปกตรมลง
ค) M เลกไปจะลดความสามารถในการตดตามการเปลยนแปลงของสเปกตรมลง แตถา Mใหญไปกสนเปลองการประมวลผลมาก
ตวอยางท 6.3 ในหนงสออางอง [2] ไดเสนอการท าเครองวเคราะหสเปกตรมเอง โดยใชชพ DSPตระกล TMS320 เปนตวประมวลผล และแสดงผลบนหนาจอเครองไมโครคอมพวเตอร เครองนใชอตราสมเทากบ 40 kHz, N=128, M=64, และ K=8 จงหายานความถทเครองวเคราะหสเปกตรมนท างาน และความยาวของสญญาณแอนะลอกทใชในการค านวณสเปกตรม 1 รป
ยานความถทเครองนท างาน คอ 0 ถง 20 kHz (ครงหนงของอตราสม)ส าหรบจ านวนจดของสญญาณไมตอเนอง ทน ามาใชค านวณสเปกตรม 1 รป สามารถหาได
จากผลรวมของบลอกทงหมด ลบดวยสวนทเหลอมกน จะไดสตร คอ
จ านวนจดทใชค านวณสเปกตรม 1 รป = NK - M(K-1) (6.23)
บทท 6 การแปลง DFT และ FFT 88
ซงในทนเทากบ (128)(8) - (64)(7) = 576 จด เทยบไปเปนความยาวของสญญาณแอนะลอกไดเทากบ 576 / fs = 576/40000 = 14.4 ms
คานบอกคราว ๆ วา เครองนสามารถตดตามสเปกตรมทเปลยนแปลงชากวาประมาณ 14.4 ms(คอ สญญาณทไมมการเปลยนแปลงสเปกตรมมากนกในชวง 14.4 ms ใด ๆ) เชน สญญาณเสยงซงไดมการวเคราะหมาวา เสยงคนพดมสเปกตรมทประมาณไดวาคงท หรอเปลยนแปลงนอยมากในชวง 10- 20 ms ใด ๆ ดงนน เครองนเหมาะกบสญญาณเสยงคนดวย
เทคนคท 2 เนองจากเราใชวธตดสญญาณเพอมาหาสเปกตรมเปนบลอก ๆ ซงเทากบเปนการหาสเปกตรมของ “บลอกของสญญาณ” ไมใชตวสญญาณจรง ๆ ทเขามาตดตอกนไมมจดเรมตน หรอสนสด การตดสญญาณเปนบลอกนจะท า ใหเกดความคลาดเคลอนในสเปกตรมทได วธลดผลของความคลาดเคลอนนท าไดโดยคณสญญาณแตละบลอก หรอ xi(n) ดวยฟงกชนหนาตาง (windowfunction) กอนทจะท าการหาสเปกตรม
ฟงกชนหนาตางมหลายแบบซงจะไดกลาวถงอกครงในเรองตวกรอง FIR เปนฟงกชนทมลกษณะสมมาตร และมคาสงสดทจดกงกลาง มความยาวเทาไรกไดตามตองการ คอแลวแตจะแทนคาลงในสตร ตวอยางของฟงกชนหนาตางทใชบอยกคอ หนาตางแฮมมง (Hamming window) ซงมสมการ คอ
w(n) = 0.54 0.46 21
−−
cos( )πnN
, n = 0, 1, 2, …, N-1 (6.24)
xi,new(n) = xi(n) w(n) (6.25)
เราตองการ w(n) ทมความยาวเทากบ 1 บลอกของสญญาณ ดงนน ตองใช N ในสมการ 6.22เทากบความยาว 1 บลอกของสญญาณ รปรางของหนาตางแบบแฮมมงแสดงอยในรปท 6.11 ซงจะสงเกตเหนไดวา ฟงกชนหนาตางมคาเลกทสวนตน และปลาย ซงเปนสวนทลดผลของการเปลยนแปลงทจดเรมตน และจดสนสดของบลอก
รปท 6.11 ตวอยางของฟงกชนหนาตางแบบแฮมมง ท N=50
n
บทท 6 การแปลง DFT และ FFT 89
เทคนคทกลาวมาทงสองน เปนเทคนคทใชในวธของ Welch หรอเรยกอกชอหนงวา วธaveraging modified periodogram ซงนยมใชกนมาก ผสนใจรายละเอยดเพมเตมดไดจาก [3] ในMatlab DSP toolbox มฟงกชนชอ psd ซงใชค านวณหาสเปกตรมของก าลงโดยใชวธน
การคอนโวลชนแบบเรว (Fast Convolution)
ดงทไดทราบมาแลววา คอนโวลชนเปนการกระท าทใชส าหรบหาผลตอบของตวกรอง FIRดงสมการ
y(n) = h(n) ∗ x(n) (6.26)
การคอนโวลชนแบบนมชอเรยกวา คอนโวลชนแบบเชงเสน (linear convolution) ถาให Nเปนความยาวของ h(n) การคอนโวลชนแบบนตองการการค านวณประมาณ N CMAC's ตอ 1 จด ของสญญาณขาออก ในการประยกตใชงานประเภทเวลาจรงทมอตราการสมสง และในการประยกตใชงานหลายอยาง N กมคาสงเปนพน ๆ จงมจ าเปนทจะตองค านวณคอนโวลชนนอยางรวดเรว ตอมาจงไดมผคดคนวธท าคอนโวลชนอยางรวดเรวขน โดยอาศยการค านวณ FFT มาชวย ซงเราเรยกโดยรวมวา วธ fast convolution
จากสมการของคอนโวลชนถาเราแปลงสญญาณทงหมดใหอยในเชงความถโดย DTFT จะไดสมการในรปของการคณกน ดงน
Y = DTFT(y) = DTFT(h) DTFT(x) ดงนน y = IDTFT(Y) = IDTFT DTFT(h) DTFT(x) (6.27)
นนคอ เราสามารถใชการค านวณ DTFT และ IDTFT เพอหาคอนโวลชนได แตการกระท าDTFT เปนการกระท าทใชไมสะดวก เพราะใหสญญาณในเชงความถเปนแบบตอเนอง ค าถามกคอเราจะสามารถแทน DTFT และ IDTFT ในสมการนดวย DFT และ IDFT ไดเลยหรอไม ซงค าตอบคอไมได การแทนดวย DFT และ IDFT จะยงผลท าให h และ x มความหมายเปนสญญาณทเปนคาบ ซงจะท าใหไดสญญาณขาออกไมเหมอนเดม เราจะนยามเปนการกระท าแบบใหม เรยกวา คอนโวลชนแบบวงกลม (circular convolution) และเขยนแทนดวยสญลกษณ ⊗ ดงน
~y = h ⊗ x (6.28)~y = IDFT DFT(h) DFT(x)
บทท 6 การแปลง DFT และ FFT 90
หรอ ~y = IFFT FFT(h) FFT(x) (6.29)
ซง h และ x ตองมความยาว N จดเทากน หรอถาตวใดตวหนงสนกวากใหเตมจดทเปนศนยเขาไปเพอใหไดความยาวเทากน ลองศกษาคอนโวลชนแบบวงกลมจากตวอยางท 6.4 วามลกษณะแตกตางจากคอนโวลชนปกตอยางไร
ตวอยางท 6.4 จากตวอยางในบทท 3 ซงม x(n) = [1 2 3 2 1] และ h(n) = [ 4 2 1] จงหา ~y ซงเกดจากคอนโวลชนแบบวงกลมของ x และ h
คอนโวลชนแบบเชงเสน คอนโวลชนแบบวงกลม n → 0 1 2 3 4 5 6 0 1 2 3 4x(0)h(n) = 4 2 1 4 2 1x(1)h(n-1) = 8 4 2 8 4 2x(2)h(n-2) = 12 6 3 12 6 3x(3)h(n-3) = 8 4 2 2 8 4x(4)h(n-4) = 4 2 1 2 1 4 y(n) = 4 10 17 16 11 4 1 8 11 17 16 11
ผลตอบ ~y ในทนคอ [ 8 11 17 16 11 ]ผลตอบจะมความยาวเทากบความยาวของตวตงเสมอ ในทนมความยาวเทากบ 5 จดทแตก
ตางไปของคอนโวลชนแบบวงกลม กคอ ผลตอบทต าแหนง n=5 จะถกวนขนมาบวกกบผลตอบทต าแหนง n=0 และผลตอบทต าแหนง n=6 กจะถกวนขนมาบวกกบผลตอบทต าแหนง n=1 เปนเชนนไปเรอย ๆ เราอาจใชวธหาคอนโวลชนแบบเชงเสนกอน แลวตดเอาผลลพธ 2 จดหลงมาบวกเขากบผลลพธ 2 จดแรกกได นนคอ
y = [ 4 10 17 16 11 4 1 ]~y = [ 4 10 17 16 11 ] + [ 4 1 0 0 0 ] = [ 8 11 17 16 11 ]อยางไรกด อยาลมวานคอการแสดงวธหาคอนโวลชนแบบวงกลมเทานน ในการใชงานจรง
เราจะใช FFT ในการค านวณดงสมการขางตน ซงเขยนเปนไฟล Matlab ไดดงโปรแกรมท 6.6
function y=circonv(x,h)Nx=length(x); Nh=length(h); N = max(Nx,Nh);h = [h, zeros(1,N-Nh)];x = [x, zeros(1,N-Nx)];y = conv(x,h);y = [y,0];
y = y(1:N) + y(N+1:2*N); น าผลลพธสวนทเกน N จด มาบวกสมทบกบสวนหนา
โปรแกรมท 6.5 circonv.m ส าหรบค านวณคอนโวลชนแบบวงกลม
ปรบความยาวของ x กบ h ใหเทากน
บทท 6 การแปลง DFT และ FFT 91
function y=circonv2(x,h)Nx=length(x); Nh=length(h); N = max(Nx,Nh);h = [h, zeros(1,N-Nh)];x = [x, zeros(1,N-Nx)];y = ifft( fft(x) .* fft(h) );
โปรแกรมท 6.6 circonv2.m ส าหรบค านวณคอนโวลชนแบบวงกลมโดยใช FFT
จะเหนไดวาคอนโวลชนแบบวงกลมใหผลตอบ N-1 คาแรกตางจากคอนโวลชนแบบเชงเสนแตสวนทเหลอถกตองตามคอนโวลชนแบบเชงเสน (ในตวอยางขางตน คา [17 16 11] เปนสวนทผลลพธทงสองใหคาตรงกน) เราสามารถน าเอาคอนโวลชนแบบวงกลมมาประยกตใชในการท าคอนโวลชนแบบเชงเสนไดโดยการใชเทคนคบางอยางเขาชวย เทคนคเหลานไดแก วธ overlap-save และวธoverlap-add ดงแสดงในรปท 6.12 และ 6.13
ในการใชงานจรง สญญาณขาเขาคอ x(n) จะเขามาอยางตอเนอง เราจะแบง x(n) เปนบลอกเพอทจะท าคอนโวลชนแบบวงกลมทละบลอก สมมตวาเราแบงแตละบลอกมความยาวเทากบ L + N-1 จด ซง L ตองมากกวา N-1 เมอ N เปนความยาวของ h(n) แตละบลอกมสวนทเหลอมกบบลอกขางหนาเทากบ N-1 จด ดงแสดงในรปท 6.12 เรยก แตละบลอกวา x1(n), x2(n), x3(n), …
น า x1(n), x2(n), x3(n), … มาท าคอนโวลชนแบบวงกลมกบ h(n) ทละสญญาณ ซงจะไดผลลพธเปน y1(n), y2(n), y3(n), … แตละตวมความยาว L+N-1 เชนกน จากนนตดสวนหวของ yi(n) ทงN-1 จด เพราะเปนสวนของผลลพธทมคาไมตรงกบคอนโวลชนแบบเชงเสน
ขาเข าL L L
เต มศ นย N-1 จ ดเฉพาะบล อกแรก
N-1
N-1
x1(n)
x2(n)
x3(n)
y1(n)
y2(n)
y3(n)
ขาออกต ดท ง
N-1 จ ดต ดท ง
N-1 จ ด ต ดท งN-1 จ ด
รปท 6.12 แสดงการท าคอนโวลชนแบบเชงเสนโดยวธ overlap-save
บทท 6 การแปลง DFT และ FFT 92
ขาเข าL L L
เต มศ นย N-1 จ ด
N-1 จ ด
X1(n)
X2(n)
X3(n)
y1(n)
y2(n)
y3(n)
ขาออก
บวกก นN-1 จ ด
บวกก นN-1 จ ด
เต มศ นย
เต มศ นย N-1 จ ด
รปท 6.13 แสดงการท าคอนโวลชนแบบเชงเสนโดยวธ overlap-add
น าสวนทเหลออยซงมความยาว L จดตอบลอก มาตอกนจะไดเปนสญญาณขาออก ซงสญญาณขาออกนจะเหมอนกบผลลพธของการคอนโวลชนแบบเชงเสนระหวาง x(n) และ h(n)
นนคอ ในแตละบลอก เราค านวณคอนโวลชนแบบวงกลมกบสญญาณทมความยาว L+N-1จด เพอใหก าเนดผลลพธทตองการจ านวน L จด ค าถามมอยวา เบดเสรจแลว การใชคอนโวลชนแบบวงกลมบวกกบเทคนคน จะเรวกวาการท าคอนโวลชนแบบเชงเสนหรอไมอยางไร
จากการค านวณคอนโวลชนแบบวงกลมโดยสมการ ~y = IFFT FFT(h) FFT(x) การค านวณนประกอบดวย การท า DFT 2 ครง (ใช 2Lxlog2Lx CMAC), การคณผลทไดจาก DFT ทงสอง(ใชประมาณ Lx CMAC), และการท า IDFT 1 ครง (ใช Lxlog2Lx CMAC) รวมทงหมดจะตองการการค านวณประมาณ (3Lxlog2Lx + Lx) CMAC
ในทนถาเราคดการค านวณตอ 1 บลอก ซงม Lx = L+N-1 จะไดวาตองใชการค านวณ
3(L+N-1)log2(L+N-1) + (L+N-1) CMAC ตอ จ านวนผลตอบ L จด (6.30)
ในกรณทน าไปใชกบระบบทมคาสมประสทธคงท (ไมเปลยนแปลงตามเวลา) เราสามารถค านวณ FFT(h) ไวลวงหนากอน แลวเกบคาไวในตาราง ท าใหไมจ าเปนตองค านวณ FFT(h) อก ดงนน ในกรณนจะท าใหการค านวณลดลงเหลอ
บทท 6 การแปลง DFT และ FFT 93
2(L+N-1)log2(L+N-1) + (L+N-1) CMAC ตอ จ านวนผลตอบ L จด (6.31)
โดยท L+N-1 ตองเปนจ านวนยกก าลงจ านวนเตมของสอง คอเทากบ 2b โดย b เปนจ านวนเตมบวก ในขณะทวธคอนโวลชนแบบเชงเสนธรรมดา ถาสญญาณขาเขาเปนจ านวนจรงจะตองใช
N MAC ตอจ านวนผลตอบ 1 จดหรอกคอ LN MAC ตอจ านวนผลตอบ L จด (6.32)
สงเกตวาในสมการท 6.30 และ 6.31ใชหนวยการคณและบวกแบบจ านวนเชงซอน (CMAC)ในขณะทสมการท 6.32 ใชหนวยการคณและบวกแบบจ านวนจรง (MAC) ซงสามารถเปรยบเทยบกนไดวา
1 CMAC = การคณจ านวนเชงซอน 1 ครง และ บวกจ านวนเชงซอน 1 ครง = (คณ 4 ครง และบวก 2 ครง) และ (บวก 2 ครง) = คณ 4 ครง และบวก 4 ครง
ดงนน 1 CMAC = 4 MAC (6.33)
ตวอยางท 6.5 ตวกรองหนงมคาสมประสทธคงท และมความยาว N=1024 จด จงเปรยบเทยบวธคอนโวลชนธรรมดา กบวธคอนโวลชนแบบเรว (fast convolution) โดยใชขนาดของบลอกในการท าคอนโวลชนแบบวงกลมเทากบ 2048 จด
ค านวณ L คอ ขนาดของบลอกในการท าคอนโวลชนแบบวงกลมจาก L+N-1 = 2048จะได L = 2048 - N + 1 = 2048 - 1023 = 1025
ส าหรบวธคอนโวลชนแบบเรวทมการค านวณ FFT(h) ลวงหนาแลว ตองใชปรมาณการค านวณตอจ านวนผลตอบ L จด ตามสมการท 6.31 ซงเทากบ
2(2048)(log22048) + 2048 = 2(2048)(11) + 2048 CMAC= 47104 CMAC= 4(47104) = 188,416 MAC
ส าหรบวธคอนโวลชนธรรมดา ตองใชปรมาณการค านวณตอจ านวนผลตอบ L จด ตามสมการท 6.32 ซงเทากบ (1025)(1024) = 1,049,600 MAC ดงนน วธคอนโวลชนแบบเรว สามารถค านวณไดเรวกวาประมาณ 1049600/188416 = 5.57เทา ถาเราเปลยนขนาดของบลอกไป กจะท าใหไดอตราสวนนเปลยนไป เชน ในขอนถาใช L+N-
บทท 6 การแปลง DFT และ FFT 94
1= 4096 จะไดอตราสวนมากถง 30 เทา! แตผลเสยของการใชขนาดของบลอกใหญกคอ จะมการหนวงเวลา (delay) จากสญญาณขาเขาไปขาออกมากขน และตองการหนวยความจ าในการประมวลมากขน ดงนนการเลอกขนาดของบลอกใหเหมาะสมจงเปนสงส าคญอนหนง
การใชงานคอนโวลชนแบบเรว มประเดนทนาสนใจนอกเหนอจากทไดวเคราะหไปแลว คอ- คอนโวลชนแบบเรวไมสามารถลดปรมาณการค านวณได ส าหรบตวกรอง FIR ทมอนดบต า ๆ (เราสามารถพสจนไดโดยใชการค านวณเหมอนในตวอยางทผานมา)โดยทวไปมนสามารถใชงานไดดกบตวกรองทมอนดบสงเปนระดบพนขนไป
- คอนโวลชนแบบเรวจะท าใหสญญาณมการหนวงอยางนอยเทากบ 1 บลอก คอ L ขนเวลาการออกแบบจงตองค านงถงวา การหนวงนจะไมกระทบกระเทอนตอการใชงาน เพราะงานบางอยางตองการการหนวงเวลาทไมมากเกนไป
- การใชคอนโวลชนอยางเรวตองมการเขยนโปรแกรมทซบซอนกวาคอนโวลชนธรรมดามาก ซงอาจสงผลใหการท างานชาลงกวาทไดวเคราะห
ตวอยางท 6.6 จากตวอยางท 6.5 ถาน าตวกรองนไปใชงานแบบเวลาจรง โดยมความถในการสมสญญาณเทากบ 10 kHz จงหาจ านวน CMAC ตอวนาททตองใช
จากตวอยางท 6.4 ปรมาณการค านวณส าหรบวธคอนโวลชนแบบเรวเทากบ 47,104 CMAC
ตอจ านวนผลตอบ 1025 จด ซงเทากบ 471041025
= 45.955 CMAC ตอจด
fs = 10kHz หมายถง มอตราของสญญาณขาเขา 10,000 จดตอวนาท ดงนนจะตองใชปรมาณการค านวณเทากบ (45.955)(10000) = 459,550 CMAC ตอวนาทผลลพธทไดนสามารถน าไปประมาณวา จ าเปนจะตองใชตวประมวลผลทมความเรวแคไหน
จงจะสามารถท างานได
บทท 7 ตวกรองแบบ FIR 95
บทท 7ตวกรองแบบ FIR
เราไดศกษาเกยวกบหลกการ และวธการวเคราะหระบบแบบไมตอเนองมาแลวในบทกอน ๆรวมถง ไดเหนถงความแตกตางบางสวนของตวกรองแบบ FIR และ IIR แลว ตวกรองแบบ FIR และIIR นถอเปนระบบพนฐานทส าคญมากในการประมวลผลสญญาณดจตอล จงเปนเรองทจ าเปนตองศกษาใหเขาใจอยางถองแท ในบทท 7 และ 8 นเราจะไดศกษาเพมเตมเกยวกบตวกรองทงสองแบบโดยเฉพาะอยางยงในเรองการหาคาสมประสทธของตวกรอง
ส าหรบตวกรองแบบ FIR นน ในการออกแบบสงทเราตองการหา คอ คาของผลตอบสนองตออมพลส หรอ h(n) ของระบบ ส าหรบตวกรอง FIR ทม h(n) ยาว N จด เรากลาววา ตวกรองนมอนดบเทากบ N-1 เหตผลกคอ มการใชสญญาณขาเขาในอดตยอนหลงไป N-1 ต าแหนง หรอ ตวก าลงสงสดทอยในฟงกชน H(z) กคอ z-(N-1)
คณสมบตเฟสแบบเชงเสน
คณสมบตเฟสแบบเชงเสน (linear phase) คอ คณสมบตของระบบทมผลตอบสนองทางเฟสมลกษณะเปนเชงเสน คณสมบตนเปนคณสมบตทส าคญมากของระบบ และเฉพาะตวกรองแบบ FIRเทานนทสามารถมคณสมบตนไดอยางสมบรณ เราลองมาดกอนวา การมเฟสแบบเชงเสนของระบบหมายความวาอยางไร
จากทเราไดศกษามาวา ระบบสามารถมผลตอบสนองเชงความถทจดใหอยในรปได ดงน
H(e ) = A(e ) ej ’ j ’ j ’ω ω θ ωj e( ) (7.1)
โดยท A คอ อตราขยายหรอลดทอนของระบบ และ θ คอเฟสของสญญาณขาออกทเปลยนไปจากสญญาณขาเขา โดยทงคมคาแปรตามความถ เรากลาววาระบบมเฟสเปนแบบเชงเสนโดยสมบรณเมอ θ เปนฟงกชนแบบเชงเสนของ ω′ หรอเขยนไดเปน
θ = -aω′ (7.2)
บทท 7 ตวกรองแบบ FIR 96
โดยท a เปนคาคงททไมแปรตามความถ นนหมายถงวา เฟสของสญญาณขาออกมการเปลยนแปลงทเปนเชงเสนกบความถของสญญาณขาเขา ปรากฏการณนจะท าใหสญญาณขาออกมความลาหลงทางเฟส (phase delay) ทคงทตลอดทก ๆ ความถ ซงความลาหลงทางเฟสมสมการ คอ
Tp = -θ / ω (7.3)
ในทนจะได Tp คงทเทากบ a การทระบบมเฟสเชงเสนมผลด คอ ท าใหไมเกดความผดเพยนทางเฟส หรอเรยกวา phase distortion ความผดเพยนนมผลเสยมากในงานหลาย ๆ อยาง เชน การสอสารขอมล, เสยงดนตร, วดโอ, และ ชวภาพการแพทยเปนตน จงมความจ าเปนอยางยงทตองพยายามท าใหสวนตาง ๆ ในระบบ ไมวาจะเปนตวกรอง, เครองขยาย/ลดทอน, และสายสงสญญาณ มผลตอบสนอง เฟสทเปนเชงเสนทสดเทาทจะท าได
ลองศกษาดวา ระบบทมเฟสเชงเสนใหผลอยางไรกบสญญาณจากโปรแกรมท 7.1 และรปท7.1 ซงเปนผลลพธของการท างานของโปรแกรม สญญาณขาเขาของระบบน คอสญญาณทประกอบดวยความถดจตอล 3 ความถ คอ ω′ = 0.1π, 0.2π, และ 0.3π โดยมรปสญญาณ คอ
x(n) = sin(0.1πn) + sin(0.2πn) + sin(0.3πn)รปท 7.1 ก) แสดงสญญาณขาเขาน เมอน าสญญาณนผานระบบทผานทกความถทมเฟสเปน
เชงเสน โดยมผลตอบสนองตอความถ คอH(ejω′) = e- j10n/π หรอม θ = -10ω′ /π
จะไดวา ทสญญาณขาออก องคประกอบความถท ω′ = 0.1π, 0.2π, และ 0.3π จะมเฟสลาหลงเทากบ 1, 2, และ 3 เรเดยนตามล าดบ โดยรปท 7.1 ข) แสดงรปของสญญาณขาออกน และรปท7.1 ค) แสดงรปของสญญาณขาออกของอกระบบหนงซงผานทกความถเชนเดยวกน แตมเฟสทไมเปนเชงเสน ผลของความผดเพยนทางเฟสทเกดขนในกรณนสงเกตไดงายมา คอ ระบบทม Tp คงท จะไดสญญาณขาออกมรปรางเหมอนสญญาณขาเขา แตมความลาหลงไปเทากบ Tp จด (Tp ไมจ าเปนตองเปนจ านวนเตม) แตส าหรบระบบทมเฟสไมเชงเสนจะใหรปรางของสญญาณขาออกผดเพยนไป
w1=0.1*pi; w2=0.2*pi; w3=0.3*pi;n=0:50;x=sin(w1*n)+sin(w2*n)+sin(w3*n);d1=-1; d2=-2; d3=-3;y=sin(w1*n+d1)+sin(w2*n+d2)+sin(w3*n+d3);d1=-1; d2=-2; d3=-1;y2=sin(w1*n+d1)+sin(w2*n+d2)+sin(w3*n+d3);subplot(311); plot(n,x); grid onsubplot(312); plot(n,y); grid onsubplot(313); plot(n,y2); grid on
โปรแกรมท 7.1 linearph.m ส าหรบแสดงตวอยางของสญญาณขาออกของระบบทมเฟสเชงเสน และไมเชงเสน
บทท 7 ตวกรองแบบ FIR 97
ธย
Tp
รปท 7.1 ผลลพธของโปรแกรมท 7.1
ในงานบางอยาง ไมจ าเปนทจะตองมการลาหลงทางเฟส (Tp) คงท แตตองการเพยงแคมการลาหลงของกลม (group delay) คงท ซงความลาหลงของกลมมสตร คอ
Tgroup = dd
θω′
(7.4)
เงอนไขนเปนเงอนไขทเบากวา และระบบใดทมการลาหลงทางเฟสคงทกจะมการลาหลงของกลมคงทดวย เรากลาววา ระบบทมความลาหลงของกลมคงทเปนระบบทมเฟสเชงเสน ซงจะไดสมการทวไปของผลตอบสนองทางเฟสของระบบทมเฟสเชงเสน คอ
θ = -aω′ + b (7.5)
โดยท a และ b เปนคาคงททไมแปรตามความถ
n
n
n
ก) สญญาณขาเขา
ข) สญญาณขาออกของ ระบบทมเฟสเชงเสน
ค) สญญาณขาออกของ ระบบทมเฟสไมเชงเสน
บทท 7 ตวกรองแบบ FIR 98
คณสมบตความสมมาตรของตวกรองทมเฟสเชงเสน
ตวกรอง FIR ทจะใหผลตอบสนองเฟสทเปนเชงเสนตามสมการท 7.5 จะตองมเงอนไขสมมาตรส าหรบ h(n) หนงในสชนด ดงตอไปน
ชนดท 1 h(n) มความสมมาตรปกต (symmetric) และ N เปนเลขค ความสมมาตรน เขยนเปนเงอนไขของ h(n) ไดดงน
h(n) = h(N-1-n), n=0, 1, ..., N-1 (7.6)
ตวอยางเชน ถา N=7 เราจะไดวา h(0)=h(6), h(1)=h(5), h(2)=h(4), สวน h(3) ไมมคสมมาตรถานยามให M = (N-1)/2 ดวยเงอนไขนจะสามารถพสจนไดวา ผลตอบสนองเชงความถของระบบจะอยในรปของ
H(ejω′) = Hr(ω′)e-jω′M (7.7)
โดยท Hr(ω′) = h M( ) + 2 h(n)cos[ (M - n)]n=0
M-1ω∑
สงเกตวา Hr(ω′) คอสวนของขนาดซงเปนคาจรงเสมอ สวน -ω′(N-1)/2 คอสวนของเฟสซงเปนเชงเสนตามรปแบบสมการท 7.2 ตวกรอง FIR ชนดท 1 นไมมขอจ ากดของผลตอบสนองทางขนาดเหมอนอก 3 ชนด จงใชออกแบบตวกรองไดทกรปแบบ และเปนชนดทเราจะใชมากทสดในสวนตอ ๆ ไป
ชนดท 2 h(n) มความสมมาตรปกต (symmetric) และ N เปนเลขค มสมการเงอนไขเชนเดยวกบชนดท 1 คอ h(n) = h(N-1-n) ตวอยางเชน ถา N=8 เราจะไดวาh(0)=h(7), h(1)=h(6), h(2)=h(5), และ h(3)=h(4) ดวยเงอนไขน จะสามารถพสจนไดวา ผลตอบสนองเชงความถจะอยในรปของ
H(ejω′) = Hr(ω′)e-jω′(M+0.5) (7.8)
โดยท Hr(ω′) = 2 h(n)cos[ (M + 0.5 - n)]n=0
M-1ω∑
บทท 7 ตวกรองแบบ FIR 99
พบวาผลตอบสนองทางขนาดของชนดนมขอจ ากดวา ท ω′=π จะได Hr(ω′)=0 เสมอ ดงนนจงไมเหมาะส าหรบออกแบบตวกรองผานสง และตวกรองผานตดความถ
ชนดท 3 h(n) มความสมมาตรแบบตรงขาม (antisymmetric) และ N เปนเลขค ความสมมาตรน เขยนเปนเงอนไขของ h(n) ไดดงน
h(n) = - h(N-1-n), n=0, 1, ..., N-1 (7.9)
ดวยเงอนไขน จะสามารถพสจนไดวา ผลตอบสนองเชงความถจะอยในรปของ
H(ejω′) = Hr(ω′)ej(-ω′M+π/2) (7.10)
โดยท Hr(ω′) = ∑ ω1-M
0=nn)]-(M h(n)sin[2
พบวาผลตอบสนองทางขนาดของชนดนมขอจ ากดวา ท ω′=0 หรอ π จะได Hr(ω′)=0เสมอ ดงนนจงไมเหมาะส าหรบออกแบบตวกรองผานต า, ผานสง, และตวกรองตดแถบความถ
ชนดท 4 h(n) มความสมมาตรแบบตรงขาม (antisymmetric) และ N เปนเลขค มสมการเงอนไขของความสมมาตรเชนเดยวกบชนดท 3 คอ h(n) = - h(N-1-n)
ดวยเงอนไขน จะสามารถพสจนไดวา ผลตอบสนองเชงความถจะอยในรปของ
H(ejω′) = Hr(ω′)ej(-ω′(M+0.5)+π/2) (7.11)
โดยท Hr(ω′) = 2 h(n)sin[ (M + 0.5 - n)]n=0
M-1ω∑
พบวาผลตอบสนองทางขนาดของชนดนมขอจ ากดวา ท ω′=0 จะได Hr(ω′)=0 เสมอ ดงนนจงไมเหมาะส าหรบออกแบบตวกรองผานต า, และตวกรองตดแถบความถ
ตวกรอง FIR ทมความสมมาตรชนดท 3 และ 4 เหมาะส าหรบออกแบบตวกรองอนพนธ(differentiator) และตวกรอง Hilbert เนองจากมการกลบเฟส π/2 หรอ 90 องศาอยในผลตอบสนองทางเฟสดวย
บทท 7 ตวกรองแบบ FIR 100
n
ชน ดท 1 สมมาตรแบบปกต และ N เป นค
n
ชน ดท 3 สมมาตรแบบตรงข ามและ N เป นค
n
ชน ดท 2 สมมาตรแบบปกต และ N เป นค
n
ชน ดท 4 สมมาตรแบบตรงข ามและ N เป นค
รปท 7.2 ผลตอบสนองตออมพลสของตวกรอง FIR ทมเฟสเชงเสนทง 4 แบบ
ตวอยางท 7.1 จงใชสมการเงอนไขของความสมมาตร พสจนสตรของผลตอบสนองเชงความถของตวกรอง FIR ชนดท 1 (สมการท 7.7)
สมมตวาตวกรองมความยาวของ h(n) เทากบ N จด โดย N = 2M+1 (ทง N,M เปนจ านวนเตม) จะไดผลตอบสนองเชงความถของตวกรอง คอ
H e j( )′ ′
′
′ ′
∑
∑
∑
ω ω
ω
ω ω
= h(n) e
= h(n) e
= e h(n) e
- j n
n=0
N-1
- j n
n=0
2M
- j M j (M-n)
n=0
2M
ท าการแตกใหเปนสามเทอมยอยบวกกน คอ
H e h Mj( ) ( )′ ′ ′ ′∑ ∑
ω ω ω ω = e + h(n) e + h(n) e- j M j (M-n)
n=0
M-1j (M-n)
n= M+1
2M
เปลยนตวชของเทอมท 3 โดยใหมตวชใหม คอ k ซง n = N-1-k จะได
บทท 7 ตวกรองแบบ FIR 101
H e h Mj( ) ( )′ ′ ′ ′∑ ∑ω ω ω ω = e + h(n) e + h(N - k -1) e- j M j (M-n)
n=0
M-1 - j (M-k)
k = M-1
0
เปลยนตวช k ของเทอมทสามกลบเปน n (โดยคราวนให n=k) และใชคณสมบตความสมมาตรของ h(n) คอ h(n) = h(N-n-1) แทนลงไป จะได
H e h M
h M
j( ) ( )
( )
′ ′ ′ ′
′ ′ ′
∑ ∑
∑ ∑
ω ω ω ω
ω ω ω
= e + h(n) e + h(N - n -1) e
= e + h(n) e + h(n) e
- j M j (M-n)
n=0
M-1 - j (M-n)
n=0
M-1
- j M j (M-n)
n=0
M-1 - j (M-n)
n=0
M-1
รวมสองเทอมหลงเขาดวยกนจะได
[ ] H e h Mj( ) ( )′ ′ ∑ω ω ω = e + 2 h(n) cos (M - n)- j M
n=0
M-1
เราไดผลลพธสดทายนเปนไปดงสมการท 7.7 ตามทตองการพสจน
การออกแบบโดยวธหนาตาง (Window Method)
ในสวนนจะไดกลาวถง การหาคาสมประสทธของตวกรอง FIR เมอก าหนดคณลกษณะเฉพาะของตวกรองมา ซงคณลกษณะเฉพาะน สวนใหญจะเปนการก าหนดลกษณะของผลตอบสนองเชงความถทตองการ ไดแก ความถตด, ความคมของตวกรอง, การลดทอนในแถบหยด และอน ๆ เราจะท าการออกแบบโดยค านงถงความถดจตอล ω′ ทมยานความถทสนใจในชวง -π ถง π หรอ f′ ในชวง -1 ถง 1 ดงทเราไดศกษามาในบทท 5
วธหนาตางเปนวธพนฐานทสดวธหนงทจะใชหาสมประสทธของตวกรอง เปนวธทงายตอการออกแบบ และสามารถใชออกแบบตวกรองแบบตาง ๆ ได ไมวาจะเปนแบบผานต า (LPF), ผานสง(HPF), ผานแถบความถ (BPF), หรอตดแถบความถ (BSF)
เราจะเรมออกแบบโดยใชตนแบบจากตวกรองอดมคต ผลตอบสนองเชงความถของตวกรองอดมคตทงสแบบแสดงอยในรปท 7.3 โดยมความถตด (cutoff frequency) เทากบ ω′ c ส าหรบแบบผานต า และผานสง สวนแบบผานแถบความถ และตดแถบความถมความถตดของแถบความถท ω′ a
และ ω′ b ดงแสดงในรป
บทท 7 ตวกรองแบบ FIR 102
-ω'b -ω'a 0 ω'a
|D(ejω')|
ω'
-π π
BPF
-ω'b -ω'a 0 ω'a
|D(ejω')|
ω'
-π π
BSF
1
|D(ejω')|
ω'
-ω'c 0-π πω'c
LPF |D(ejω')|
ω'
-ω'c 0-π πω'c
HPF
11
1
รปท 7.3 ผลตอบสนองเชงความถของตวกรองอดมคต
สมมตให d(n) แทนผลตอบสนองตออมพลส และ D(ejω′) แทนผลตอบสนองเชงความถส าหรบตวกรองแบบผานต าอดมคต ดงในรปท 7.3 เราจะหาผลตอบสนองตออมพลสของตวกรองอดมคตเหลานไดโดยการแปลง IDTFT ดงน
d(n) = IDTFT D
= 12π
ωω ω
π
π
D(e ) ej j n
-
′ ′ ′∫ d
= 12π
ωω
ω
ω (1)e j n
-
′
′
′′∫ d
C
C
= ejn
e ejn
j n j n j n
C
C C C′
− ′
′ ′ − ′
= −ω
ω
ω ω ω
π π2 2
d(n) = sin( )′ωπ
C nn
, -∞ < n < ∞ (7.12)
สมการนมปญหาท n=0 เพราะจะไดวา d(n) มคาเปนเศษศนยสวนศนย ซงเราสามารถหาคา d(0) ไดโดยใชทฤษฎบทของโลปตล จะไดวา
บทท 7 ตวกรองแบบ FIR 103
d(0) = lim d(sin( n)
dnlim d( n)
dn
n 0
n 0
→
→
′ω
π
C
= π
ω′C (7.13)
ในท านองเดยวกนเราสามารถหา d(n) ส าหรบตวกรองแบบอน ๆ ไดโดยใช IDTFT กระท ากบผลตอบสนองเชงความถของตวกรองนน ๆ ตารางท 7.1 ไดสรปคาของ d(n) ส าหรบตวกรองแบบตาง ๆ ไว เพอใชอางองในการออกแบบตอไป
ชนดของตวกรอง d(n), -∞ < n < ∞ d(0)ผานต า (LPF) sin( )′ω
πC n
n′ω
πC
ผานสง (HPF) δ ωπ
( ) sin( )n nn
C− ′ 1− ′ωπ
C
ผานแถบความถ (BPF) sin( ) sin( )′ − ′ω ωπ
b an nn
′ − ′ωπ
ωπ
b a
ตดแถบความถ (BSF) δ ω ωπ
( ) sin( ) sin( )n n nn
b a− ′ − ′ 1− ′ + ′ωπ
ωπ
b a
ตารางท 7.1 ผลตอบสนองตออมพลสของตวกรองอดมคตตาง ๆ
เราอาจหา d(n) ของตวกรองแบบอน ๆ ไดจากตวกรอง LPF และตวกรองแบบผานทกความถตวกรองแบบผานทกความถในทน คอ D(ejω′)=1 หรอ d(n)=δ(n) ตวอยางเชน ถาตองการหา d(n)ของ HPF จาก d(n) ของ LPF เราสามารถใชความจรงทวา ผลตอบสนองเชงความถของ LPF บวกกบผลตอบสนองเชงความถของ HPF ทมความถตดตรงกน จะไดเปนตวกรองผานทกความถ ดงน
DLP(ejω′) + DHP(ejω′) = 1 (7.14)
เมอแปลง z ทงสมการจะไดความสมพนธของ d(n) เปน
dLP(n) + dHP(n) = δ(n) (7.15)
บทท 7 ตวกรองแบบ FIR 104
ยงมความสมพนธอนในลกษณะเดยวกนนอก คอ ผลตอบสนองเชงความถของ BPF บวกกบผลตอบสนองเชงความถของ BSF ทมความถตดตรงกน จะไดเปนตวกรองผานทกความถ ดงน
DBP(ejω′) + DBS(ejω′) = 1 (7.16)แปลง z ผกผนได dBP(n) + dBS(n) = δ(n) (7.17)
และผลตอบสนองเชงความถของ BPF กสามารถหาไดจากการน าเอาผลตอบสนองเชงความถของ LPF ทมความถตดเทากบความถตดดานต าของ BPF ลบออกจากผลตอบสนองเชงความถของLPF ทมความถตดเทากบความถตดดานสงของ BPF ดงน
DBP(ejω′) = D e D eLPj
LPj
c b c a( ) ( )′
′ = ′′
′ = ′−ωω ω
ωω ω (7.18)
แปลง z ผกผนได dBP(n) = d n d nLP LPc b c a( ) ( )′ = ′ ′ = ′−ω ω ω ω (7.19)
เราอยากจะใชคา d(n) ในตารางท 7.1 เพอเปนผลตอบสนองตออมพลสของตวกรองทตองการแตอยางไรกตาม d(n) ทไดนไมสามารถสรางไดจรงในทางปฏบต เนองจาก มความยาวไมจ ากด และเปนแบบสองดาน กลาวคอ d(n) มคาตงแต n เปน -∞ จนถง ∞ เราจะตองใชเทคนคบางอยางเพอใหน า d(n) เหลานมาใชได ซงเทคนคนกคอ วธหนาตางนนเอง
กอนอนขอใหท าความรจกกบผลตอบสนองเชงความถทเราจะออกแบบไดกอน ซงมรปรางดงในรปท 7.3 คาทจะใชก าหนดเปนคณลกษณะเฉพาะของวธหนาตาง ไดแก
- ความพลวของแถบผาน (pass-band ripple, δpass) คอ คาสงสดทขนาดของแถบผาน แกวงออกหางจากคา 1 บางครงวดเปน dB โดยใช
Apass = 20log11 + -
pass
pass
δ
δ (dB) (7.20)
- การลดทอนของแถบหยด (stop-band attenuation, Astop) คอ จ านวนเทาทแถบหยดลด ทอนลงจากคา 1 วดเปน dB โดยมความสมพนธกบความพลวของแถบหยด คอ
Astop = - 20logδstop (dB) (7.21)
บทท 7 ตวกรองแบบ FIR 105
- ความกวางของแถบเปลยน (transition band width, ∆f′)
- ความถตด (cutoff frequency, fc) คอ คาความถทขนาดลดลงประมาณ 0.5 หรออยทประมาณครงหนงของแถบเปลยน นยามนตางจากความถตดของตวกรองแอนะลอก และตวกรอง IIR ซงความถตดหมายถง ความถทลดทอนลงเทากบ 3 dB
การออกแบบโดยวธหนาตาง สามารถแบงเปนขนตอนยอยไดดงน1. ใชคาความพลวของแถบผาน หรอการลดทอนของแถบหยดอยางใดอยางหนงเพอเลอก
ชนดของหนาตางทสามารถใชไดจากตารางท 7.2 ถามขอก าหนดทงสองอยาง ใหเปลยน Astop เปน δstop กอน แลวเปรยบเทยบ δpass กบ δstop วาคาใดนอยกวากน ถา δpass นอยกวาใหใช δpass เปนตวเลอกหนาตาง แตถา δstop นอยกวาใหใช Astop เปนตวเลอกหนาตาง โดยมหลกการวา δpass ในตารางตองนอยกวาทตองการ และ Astop ในตารางตองมากกวาทตองการ
2. ใชคาความกวางของแถบเปลยนหาคาอนดบของตวกรองทตองใช โดยใชความสมพนธระหวาง ∆f′ กบ N ทแสดงไวในตารางท 7.2 จากนน ค านวณฟงกชนหนาตางทตองใช จะได
w(n), ท n = 0, 1, ..., N-1จากตารางจะสงเกตไดวา อนดบของตวกรองจะเปนสดสวนผกผนกบ ∆f′ นนคอ เรา
สามารถปรบปรง ∆f′ ใหแคบลงได (ตวกรองคมขน) โดยการเพมคา N แตเราไมสามารถปรบปรงคาδstop และ Apass ใหดขนได เพราะคา δstop และ Apass จะมขนาดคงทส าหรบหนาตางแบบหนง ๆ ยกเวนหนาตางแบบ Kaiser
3. ใชชนดของตวกรอง (LPF, HPF, …) และความถตดทตองการ เลอกผลตอบสนองตออมพลส d(n) ทถกตองจากตารางท 7.1
4. เลอน d(n) ใหลาหลงลง M ต าแหนง โดย M=(N-1)/2 จะไดสญญาณเปน d(n-M) จากนนคณเขากบฟงกชนหนาตาง w(n) ทไดจากขอ 2 ซงจะไดเปนผลตอบสนองตออมพลสทมความยาว Nจด และเปนแบบคอซล ดงน
h(n) = d(n - M)w(n) , n = 0, 1, ..., N-1 (7.22)
การออกแบบนจะตองใช N เปนจ านวนค ซงจะไดเปนตวกรอง FIR ทมเฟสเชงเสน และมสมมาตรชนดท 1 เพราะทง d(n) และ w(n) มสมมาตรรอบจดกงกลางทงค ส าหรบการออกแบบโดยท N เปนจ านวนคกท าไดเชนกน แตขอละไวไมกลาวถงในทน
บทท 7 ตวกรองแบบ FIR 106
1
1/2
0แถบผาน แถบหยด
fpass fstop fs / 2fc f
∆f '
1 - δpass
1 + δpass
δstop
Apass
Astop
รปท 7.4 คาตาง ๆ ในการระบคณลกษณะเฉพาะของผลตอบสนองเชงความถของตวกรอง FIR
หนาตาง δpass Astop
-20logδstop
(dB)
∆f′(normalized)
w(n), n=0,1, .. N-1
( M= N−12
)
สเหลยม(rectangular)
8.9% 21 2/N 1
ฮานนง(Hanning)
0.63% 44 4/N 0.5 0.5 21
−−
cos( )πnN
แฮมมง(Hamming)
0.22% 53 4/N 0.54 0.46 21
−−
cos( )πnN
แบลกแมน(Blackman)
0.02% 74 6/N 0.42 0.5 21
0.08 41
−−
+−
cos( ) cos( )π πnN
nN
ไคเซอร(Kaiser)
ปรบได ปรบได AN
−−
7 9514.36 1
.( )
I n M MI
02 2
0
1 ( ( ) / )( )
αα
− −
ตารางท 7.2 หนาตางแบบตาง ๆ และคาพารามเตอรทส าคญ [1], [3]
|H(f)| ผลตอบสนองเชงความถทตองการออกแบบ |D(f)| ผลตอบสนอง
เชงควมถในอดมคต
แถบเปลยน
บทท 7 ตวกรองแบบ FIR 107
หนาตางแบบสเหลยม (Rectangular Window)
ตวอยางท 7.2 จงออกแบบตวกรองแบบ FIR LPF ทมความถตดท 500Hz โดยใชหนาตางแบบสเหลยมและใหมความกวางของแถบเปลยน (∆f) นอยกวา 90 Hz ระบบนใชความถในการสม fs = 2kHz
หาคาความถทตองใชในหนวยของความถดจตอลกอน โดยหารดวย fs จะไดω′ c=2πfc/fs = 2π(500)/2000 = π/2 เรเดยน
∆f′ = ∆f/fs = 90/2000 = 0.045
จากตาราง 7.2 ∆f′ = 2/N จะได N = 2/0.045 = 44.4นนคอ ตองใช N มากกวา 44.4 จงจะได ∆f ตามทก าหนด เราเลอก N=45 (ใหใชเลขค)และ จะได M = (N-1)/2 = 22
จากตารางท 7.1 ใช d(n) ส าหรบ LPF คอ d(n) = sin( )′ωπ
C nn
เลอน d(n) ใหลาหลงไป M
ต าแหนง จะได d(n-M) คอ
d(n-M) = sin( ( ) )( )′ −
−ωπ
C n Mn M
ส าหรบหนาตางแบบสเหลยม เราจะได w(n) = 1, n=0, 1, .. N-1 ดงนน หา h(n) ไดโดยใชสมการท 7.22 คอ
h(n) = d(n-M) w(n)
= sin( ( ))( )′ −−
ωπ
C n Mn M
, n=0, 1, … , N-1
= sin( ( ))
( )
π
π2 22
22n
n−
− , n=0, 1, … ,44
ส าหรบผลตอบสนองเชงความถของระบบ หาไดโดยการหาสเปกตรมของสญญาณ h(n) ซงกคอ H(ejω′) = DTFT(h(n)) ซงสามารถประมาณไดโดยการใช FFT ซงจะได H(k) = FFT(h(n)) กไดในรปท 7.5 เราใชโปรแกรม freqres ทไดเขยนไวในบทท 5 หา |H| และวาดออกมาในชวงความถทสนใจ คอ f = (0, fs/2) ดงรปท 7.5 ก)
บทท 7 ตวกรองแบบ FIR 108
จะเหนไดวาผลตอบสนองเชงความถมลกษณะเปลยนไปจากอดมคต โดยมยานแถบเปลยนเกดขน และมการแกวงขนลง หรอ ความพลวในชวงแถบผาน และแถบหยด ปรากฏการณทเกดความพลวขนน เรยกวา ปรากฎการณของ Gibbs
คราวนลองศกษาผลของการเพมอนดบดหนอย ซงเมอเราเพม N มากขน ๆ กควรจะไดผลตอบสนองเชงความถเขาใกลอดมคตมากขน ๆ เชนกน ลองใชคา N เปน 101 และวาด h(n) และ |H| ทไดในรปท 7.5 เมอเปรยบเทยบกบผลทไดของกรณ N=45 จะเหนไดวา แถบเปลยนมการบบตวแคบลง และความพลวของแถบผานและแถบหยดกมการบบตวแคบลง แตปรากฏวาความสงของความพลวมขนาดคอนขางคงท ซงจากตารางท 7.2 เราจะไดวา δpass ≈ δstop ≈ 0.089 ส าหรบหนาตางแฮมมงซงพบวา หนาตางทกชนดจะให δ มคาคอนขางคงทโดยไมขนกบ N น ถาเราตองการ δ ทเลกลง กจ าเปนตองเปลยนชนดของหนาตางทใช
หลงจากเพมคา N จะเหนไดวา ∆f มขนาดแคบลง ซงเมอค านวณหาคา ∆f จากสตรในตารางจะได ∆f = ∆f′ fs = 2fs/N = 2(2000)/101 = 40 Hz ซงใกลเคยงกบคาทไดในรป
ก) N=45
ข) N=101
รปท 7.5 ผลลพธทไดจากตวอยางท 7.2 (ใชหนาตางแบบสเหลยม)
n
n f (Hz)
f (Hz)
h(n) |H|
บทท 7 ตวกรองแบบ FIR 109
โปรแกรมท 7.2 เปนโปรแกรมทใชค านวณ h(n) และวาดผลตอบสนองเชงความถโดยใชMatlab เมอตองการใชกบตวกรองอนทไมไช LPF หรอใชกบหนาตางอน กสามารถแกตวแปร d และw ไดโดยงาย ส าหรบผทม DSP Toolbox กอาจใชฟงกชนส าเรจรป ชอ fir1 ส าหรบค านวณ h(n) ได
fc=500; fs=2000; ก าหนด N = ความยาวของ h(n),N=45; M = ต าแหนงกงกลางของ h(n)M=(N-1)/2; ωc = 2πfc/fs = ความถตดเชงมมwc=2*pi*fc/fs;
n=0:N-1; ก าหนด n เปนเวคเตอรทมคาจาก 0 ถง N-1d= sin(wc*(n-M))./(n-M)/pi; ค านวณคา d(n-M) โดยใชสตรจากตารางท 7.1d((N+1)/2) = wc/pi; (ในทนคอ LPF)
w=1; ค านวณคา w(n) โดยใชสตรจากตารางท 7.2h=d.*w; (ในทนคอหนาตางแบบสเหลยม) จากนนหา h(n) = d(n-M) w(n)freqres(h, 1, fs) วาดผลตอบสนองเชงความถทได
โปรแกรมท 7.2 window.m ส าหรบออกแบบตวกรอง FIR โดยวธหนาตาง
หนาตางแฮมมง (Hamming Window)
ตวอยางท 7.3 ออกแบบตวกรอง FIR โดยใชหนาตางแฮมมง ใหใช N=101 เปรยบเทยบรป และลกษณะของผลตอบสนองเชงความถทไดกบผลในตวอยางท 7.2 เชนเดยวกน เราใช d(n) ส าหรบ LPF จากตารางท 7.1 โดยเลอนใหลาหลงไป M จด จะได
d(n-M) = sin( ( ))( )′ −−
ωπ
C n Mn M
โดยท M = (N-1)/2 = 50จากตารางท 7.2 ใช w(n) ส าหรบหนาตางแฮมมงจะได
w(n) = 0.54 0.46 21
−−
cos( )πnN
, n=0, 1, .. 100
เราจะได h(n) = d(n-M)w(n), n=0, 1, .. 100 แทนคา N และ w(n) ลงในโปรแกรมท 7.2 จะไดH(ejω′) ดงในรปท 7.6
บทท 7 ตวกรองแบบ FIR 110
ลองค านวณคาความกวางของแถบเปลยนจากตารางท 7.2 เปรยบเทยบกบในรปด จะได ∆f′= 4/N = 4/101 = 0.0396 ดงนน ∆f = ∆f′ fs = 0.0396(2000) = 79 Hz ซงประมาณใกลเคยงกบรปทได และกวางกวากรณหนาตางแบบสเหลยมท N เทากน ประมาณ 2 เทา
รปท 7.6 ผลลพธทไดจากการตวอยางท 7.3 (ใชหนาตางแฮมมง N=101)
จะเหนไดวาหนาตางแฮมมงให ∆f ทกวางกวาในกรณหนาตางแบบสเหลยม แตขณะเดยวกนกใหความพลว δ ทเลกลงมาก จากตารางท 7.2 เราพบวา δpass ≈ δstop ≈ 0.002 ซงกแทบมองไมเหนจากรปท 7.6 โดยมากมนนยมวาดรปของผลตอบสนองเชงความถในหนวย dB (20 คณ log ของ |H|)เพอใหมองเหนอตราการลดทอนไดชดเจนขน รปท 7.7 แสดงผลตอบสนองทางขนาดในหนวย dBและผลตอบสนองทางเฟสทไดจากตวอยางท 7.3 น
| H |2 (dB) ∠ H (เรเดยน)
รปท 7.7 ขนาด(dB) และเฟสของผลตอบสนองเชงความถทไดจากตวอยางท 7.3
f (Hz)n
f (Hz)
h(n) |H|
บทท 7 ตวกรองแบบ FIR 111
ถาพจารณาถงความเปนเชงเสนของระบบ จากรปของเฟสในรปท 7.7 มองดไมเหมอนสภาพทเปนเชงเสน (ซงควรจะไดกราฟเปนเสนตรง) แตจรง ๆ แลวภาพทเหนเปนเชงเสน โดยมขอสงเกตอยสองขอ คอ
1. เฟสแบงออกเปนสองชวง คอ ชวงแถบผาน และชวงแถบหยด ซงแตละชวงมความเปนเชงเสนอสระตอกน ซงเรยกลกษณะเชนนวา เปนเชงเสนแบบเปนชวง ๆ (piece-wise linear) ลกษณะเชนนไมกระทบกระเทอนตอการท างานของตวกรอง เนองจากสญญาณทเราสนใจ และจะผานออกมาทขาออกอยในชวงแถบผานเทานน สญญาณในชวงแถบหยดทออกจะมาทขาออกมนอยมาก
2. การทเฟสในชวงแถบผานทมลกษณะเปนฟนเลอยเกดจากการท Matlab หรอเครองค านวณอน ๆ ใหคาเฟสออกมาอยในชวง -π ถง π เทานน (ใน Matlab ใชค าสง angle เพอหาเฟส) ลองพจารณาจากในรป จะเหนวาตอนเรมตนทความถ 0 กราฟมลกษณะลาดลงเปนเสนตรงจนกระทงถงคา-π หรอประมาณ -3.14 เฟสกจะพลกกลบไปทคา π จากนนกลาดตอลงมาเปนเสนตรงดวยความชนทเทาเดม ถาเราเอาเสนทสองนลากตอกบเสนแรกทต าแหนง -π ไปเรอย ๆ (ท าไดเพราะ เมอบวกลบเฟสดวยจ านวนเทาของ 2π จะไมท าใหคาเปลยน) รปฟนเลอนทเหนนจรง ๆ เปนเสนตรงทลาดลงดวยความชนคงท ดงนน ผลตอบสนองเชงความถมเฟสเชงเสนตรงตามทฤษฎ
หนาตางไคเซอร (Kaiser Window)
หนาตางไคเซอรมลกษณะพเศษกวาหนาตางแบบอน ๆ ตรงทสามารถปรบคาความพลวของแถบผาน และการลดทอนของแถบหยดได ซงท าใหมความยดหยนในการออกแบบกวาหนาตางแบบอน ๆ ท าใหมกจะไดคา N ต ากวาหนาตางแบบอนทคณลกษณะเฉพาะเดยวกน
ก าหนด δ = min(δpass,δstop) = คาความพลวทเลกทสดระหวางแถบผาน กบแถบหยด และใหA = คาลดทอนของแถบหยดซงคดจากคาความพลวทเลกทสดน นนคอ
Apass = A = -20logδ (dB) (7.23)
ก าหนดให α = shape parameter ซงเปนฟงกชนของ A ดงน
α=
≤
+ −
≥
00 07886 21
,. ( ),
เมอ A 210.5842(A - 21) เมอ 21< A <500.1102(A - 8.7), เมอ A 50
0.4 A (7.24)
บทท 7 ตวกรองแบบ FIR 112
คา N ถกก าหนดโดย ∆f′ และ A และเชนเดยวกนกบหนาตางแบบอน คอ ∆f′ จะเปนสดสวนกลบกบ N ดงสมการตอไปน
N
Af=
−′+
′≤
7 9514.36
1.∆
∆
, A > 21
0.9f
, A 21(7.25)
เมอไดคา N และ α เราสามารถหา w(n) ไดจากตารางท 7.2 โดย I0 ในตาราง คอ ฟงกชนเบสเสลชนดแรกทมอนดบ=0 (modified Bessel function of the first kind) มสมการวา
I0 ( ) ( / )!
x xk
k
k=
=
∞∑
2 2
0(7.26)
ฟงกชนเบสเสลนคงเปนการยากทจะค านวณดวยมอ หรอเครองคดเลข โดยปกตเราตองใชเครองคอมพวเตอร หรอเปดตารางส าเรจรป Matlab มฟงกชน besseli(0,x) ซงจะค านวณคา I0(x) ใหเราไดทนทเมอแทนคา x ลงไป ดงนน ถาตองการใชโปรแกรมท 7.2 ค านวณ w(n) ทเปนหนาตางไคเซอรกสามารถเขยนไดวา
alpha = “คา α”w = besseli(0,alpha*sqrt(1-(n-M).^2/M.^2))/besseli(0,alpha);
จะสงเกตจากสมการของ w(n) ไดวา เมอ α=0 หรอ A ≤ 21 จะได w(n)=1 นนคอ หนาตางไคเซอรจะกลายเปนหนาตางแบบสเหลยม เมอ A ≤ 21 แตโดยปกตเรามกใชหนาตางไคเซอรทมคาA > 21
ตวอยางท 7.4 จงใชหนาตางไคเซอรออกแบบตวกรอง LPF แบบ FIR ทมคณลกษณะเฉพาะดงตอไปน fpass = 4kHz, fstop = 5 kHz, fs = 20kHz, δpass = 0.0058, และ Astop = 80 dB
กอนอนหาคา δstop กอน โดย δstop = 10-80/20 = 0.0001ดงนน δ = min(δpass,δstop) = δstop = 0.0001 และ A = -20logδ = 80 dBใชสตรของกรณท A > 50 จะไดα = 0.1102(A-8.7) = 0.1102(80-8.7) = 7.857
บทท 7 ตวกรองแบบ FIR 113
∆f = 5kHz - 4kHz =1kHz, ∆f′ = ∆f /fs = 1k/20k = 0.05ω′ c=2πfc/fs = 2π(4.5k)/20k = 0.45π
N Af
= −′+ − +7 95
14.361 80 7 95
14.36 0.051. .
( )∆ = = 101.3 เลอก N = 101, M=(N-1)/2=50
เรายงคงใช d(n) แบบ LPF เหมอนตวอยางท 7.3 โดยใช ω′ c=0.45πสวนฟงกชนหนาตาง คอ
w(n) = I n M MI
02 2
0
1( ( ) / )( )
αα
− −
= I nI
02 2
0
7 857 1 50 507 857
( . ( ) / )( . )− − , n=0, 1, …, 100
ดงนน จะได h(n) = d(n-M) w(n)
h(n) = sin( ( ))( )
0.45 5050
ππ
nn
−−
I nI
02 2
0
7 857 1 50 507 857
( . ( ) / )( . )− − , n=0, 1, …, 100
วาดผลตอบสนองเชงความถทไดในหนวย dB ในรปท 7.8
รปท 7.8 ตวอยางผลลพธทไดจากการใชหนาตางไคเซอร
ตวอยางท 7.5 ตองการตวกรองแบบตดแถบความถ (BSF) โดยมความถตดของแถบ คอ fa=2kHz และfb=3kHz ตองการ δpass < 0.003, Astop > 45 dB, และ ∆f < 200 Hz หาดวยวาหนาตางชนดใดทใชไดและใชไดทอนดบเทาไร ก าหนดให fs = 10 kHz
f (Hz)n
h(n) |H|2 (dB)
บทท 7 ตวกรองแบบ FIR 114
กอนอนเปรยบเทยบกอนวา δpass กบ Astop ใครเปนขอก าหนดทแรงกวา โดยเปลยน Astop เปนδstop ได δstop = 10 20- Astop
= 0.00562 เพราะฉะนน ขอก าหนดของ δpass แรงกวา (δpass< δstop) เราจะใช δpass = 0.003 = 0.3% เปนตวเลอกชนดของหนาตางทใชไดจากตารางท 7.2
พบวา หนาตางแบบสเหลยม และหนาตางฮานนงม δpass > 0.3% ดงนนใชไมได และหนาตางทใชได คอ
ก) หนาตางแฮมมง ซงม δpass = 0.22%∆f′ ทตองการ คอ ∆f/fs = 200/10000 = 0.02หา N ทตองใชจาก ∆f′ = 4/N แทนคา ∆f′ ลงไปจะได N = 200เพราะฉะนน เลอก N = 201
ข) หนาตางแบลกแมน ซงม δpass = 0.02%หา N ทตองใชจาก ∆f′ = 6/N แทนคา ∆f′ ลงไปจะได N = 300เพราะฉะนน เลอก N = 301
ค) หนาตางไคเซอร ซงม δpass ปรบไดตามตองการใช δ = δpass = 0.003 จะได A = -20log(δ) = 50.5 dBใชสตรกรณท A > 21 หาคา N คอ
N Af
= −′+ − +7 95
14.361 50.5 7 95
14.36 0.021. .
( )∆ = = 148.2
เพราะฉะนน เลอก N = 149
เลอกใชหนาตางไคเซอรท N=149 และ M = (N-1)/2 = 74หา α โดยใชสตรกรณ A > 50 ไดα = 0.1102(A-8.7) = 0.1102(50.5-8.7) = 4.606ผลตอบสนองตออมพลสส าหรบ BSF อดมคต จากตารางท 7.1 คอ
d(n) = δ ω ωπ
( ) sin( ) sin( )n n nn
b a− ′ − ′
ผลตอบสนองตออมพลสทได คอ h(n) = d(n-M) w(n) ดงน
h(n) = δ ω ωπ
( ) sin( ( )) sin( ( ))( )
n M n M n Mn M
b a- - - --
− ′ ′
I n M MI
02 2
0
1 - -( ( ) / )( )
αα
บทท 7 ตวกรองแบบ FIR 115
โดยท M=74, α=4.606, ω′ a=2πfa/fs = 0.4π, ω′ b=2πfb/fs = 0.6π, และ n=0, 1, …, 148เราแกไขโปรแกรมท 7.2 ใหใช d(n) เปน BSF ไดดงน
d=(-sin(wb*(n-M))+sin(wa*(n-M))./(n-M)/pi;d((N+1)/2) = 1-wb/pi+wa/pi;
รปท 7.9 ผลลพธของตวอยางท 7.5 เปนตวกรองตดแถบความถทมเฟสเชงเสน
f (Hz)
f (Hz)
n
บทท 7 ตวกรองแบบ FIR 116
การออกแบบโดยวธสมความถ (Frequency Sampling Method)
วธส มความถเปนวธทเหมาะส าหรบการออกแบบตวกรองทมรปรางของผลตอบสนองเชงความถแปลกไปจากปกต โดยวธนใหเราระบจดตวอยางของผลตอบสนองเชงความถทตองการเปนขอก าหนดเรมตนของการออกแบบ หลกการของการหาสมประสทธส าหรบตวกรองทมเฟสเชงเสนทมสมมาตรชนดท 1 (N เปนค) มดงน
1. สมมตวา |D(ejω′)| คอ ผลตอบสนองทางขนาดทตองการซงอาจมรปรางใด ๆ กได และเปนฟงกชนของ ω′ การทจะไดตวกรองสดทายมเฟสเชงเสน จะไดวาเฟสของระบบจะตองเทากบ -ω′M โดย M=(N-1)/2 ตามทไดพสจนมาในตวอยางท 7.1 เพราะฉะนนจะไดผลตอบสนองเชงความถทตองการ คอ
D(ejω′) = e- jω′M |D(ejω′)| (7.27)
2. ท าการสมตวอยาง D(ejω′) เปนจ านวนทงสน N จด ดวยระยะหางเทา ๆ กน ในชวงความถω′ = 0 ถง 2π ดงนน คาบของการสมเทากบ 2π/N นนคอ จะไดผลตอบสนองเชงความถเปนแบบไมตอเนองยาว N จด เรยกผลตอบสนองเชงความถนวา H(k) จะไดวา
H(k) = D e jk
N
( )'
'
ω
ω π=2 k = 0, 1, …, N-1
H(k) = e M- j2 kNπ
|H(k)|H(k) = e k- j N-1
N π |H(k)| (7.28)
โดยท |H(k)| คอ ผลของการสม |D(ejω′)| ในชวง 0 ถง 2π ดวยระยะหางคงทเทากบ 2π/Nหรอ จะคดวาเปนการแทน ω′ ดวย 2πN/k กได จากนนคณ |H(k)| ดวยเฟส คอ e k-jN-1
N π กเปนอนเสรจ ได H(k) ทเปนผลตอบสนองทตองการมจ านวนทงสน N จด
3. หาผลตอบสนองตอสญญาณอมพลสอนเนองมาจาก H(k) โดยใชการแปลง IDFT หรอการแปลง IFFT คอ
h(n) = IDFT H(k) (7.29)
บทท 7 ตวกรองแบบ FIR 117
ถา H(k) สมมาตรเราจะได h(n) เปนคาจรง อยางไรกตาม ในบางกรณทตองใช H(k) ไมสมมาตรพอดกจะให h(n) เปนจ านวนเชงซอน หรอ ถงแม H(k) จะสมมาตรพอด การค านวณ IDFTโดยคอมพวเตอรสวนใหญกไมสามารถใหผลทแมนย า ซงกจะท าใหผลลพธทมคาจตภาพหลดออกมาบาง h(n) ทเปนจ านวนเชงซอนไมสามารถน าไปสรางได การแกไขสามารถท าไดโดยปดสวนจนตภาพทงทงหมด คอใชเฉพาะสวนจรงของผลลพธเปน h(n) ซงกจะท าใหผลลพธคลาดเคลอนไปบางแตกไมมากนก
h(n) ทไดจะมความยาว N จด และเราจะใช h(n) นเปนผลตอบสนองตออมพลสของระบบเลยค าถามคอ แลวผลตอบสนองเชงความถทจะไดจาก h(n) นจะเหมอน หรอแตกตางจากทตงไวอยางไร
ผลตอบสนองเชงความถทเราจะได คอ H(ejω′) = DTFT h(n) สวนผลตอบสนองเชงความถทตงไว คอ D(ejω′) บางคนอาจคดวา H กบ D นาจะเหมอนกน จรง ๆ แลวมนจะไมทบกนสนททเดยว ถาใชความรจากเรองการแปลง DFT และ DTFT จะบอกไดวาผลตอบสนองเชงความถทงสองจะรบประกนวามคาตรงกนเฉพาะ ณ ต าแหนงทเราสมตวอยางมาเทานน สวนจดอน ๆ ไมรบประกน อาจมความใกลเคยงกนมากหรอนอย กขนกบรปรางของ D(ejω′), จ านวน, และต าแหนงของจดทสมมา ขอใหศกษาเพมเตมจากตวอยางตอไปน
ตวอยางท 7.6 หาสมประสทธของตวกรอง FIR แบบผานต าทมความถตดท 2 kHz โดยวธการสมความถ ใชอตราการสมเทากบ 10 kHz
ความถตดทางดจตอล คอ ωc′ = 2πfc/fs = 0.4π เรเดยนรปของผลตอบสนองความถทตองการกอน และหลงการสมความถ แสดงดงรปท 7.10 ซงจะ
ได |H(k)| = [ หนง 11 จด, ตามดวยศนย 30 จด, และตามดวยหนง 10 จด ]จากนน คณเฟสเพอใหไดผลตอบสนองเชงความถเปนเชงเสน จะได
H k( ) = H(k) e- j40 k41π
0 0.4π π 1.6π 2π ω′
1
|D(ejω′)|
0 26 50 k
1|H(k)|
11 จ ด
30 จ ด
10 จ ด
บทท 7 ตวกรองแบบ FIR 118
รปท 7.10 ผลตอบสนองเชงความถกอน และหลงการสม
รปท 7.11 ผลตอบสนองเชงความถทไดจากวธสมความถ
fs=10000;
H=[ones(1,11) zeros(1,30) ones(1,10)]; ก าหนดขนาดของผลตอบสนองเชงความถทตองการN=length(H);k=0:N-1;
H=H.*exp(-j*pi*(N-1)*k/N); คณเฟสเพอใหไดเฟสทเปนเชงเสนh=real(ifft(H));freqres(h,1,fs)
โปรแกรมท 7.3 freqsam.m ส าหรบออกแบบตวกรอง FIR โดยวธสมความถ
และผลตอบสนองตออมพลสของตวกรองทตองการ คอ h(n) = Real( IFFTH(k) ) ซงโปรแกรม Matlab ทใชค านวณผลลพธในขอนไดแสดงไวดงโปรแกรมท 7.3 และผลตอบสนองความถทไดแสดงในรปท 7.11
จากผลทได วดความพลวสงสดในชวงแถบหยดไดประมาณ 0.15 หรอเทากบการลดทอนประมาณ 16.5 dB ซงถอเปนคาทไมดนกส าหรบตวกรองทมอนดบเทากบ 50 ไดมผเสนอวธในการปรบปรงใหผลตอบสนองเชงความถทไดดขน เชน
1) ใชฟงกชนหนาตางคณเขาไปกบ h(n) ทได ซงกจะใหผลในท านองเดยวกบวธหนาตางทกลาวไปแลวในหวขอกอน
2) เปลยนจดตวอยางในบรเวณแถบเปลยนใหมคาอยระหวาง 0 ถง 1 แทนทจะเปนคา 0 หรอ1 เลย เชน ในตวอยางท 7.6 นถาเราแทรกจดหนงจดมคาเทากบ 0.3 ระหวางชวงแถบผาน และแถบหยด จะท าใหไดการลดทอนในแถบหยดดขนมากในขณะทความกวางของแถบเปลยนกวางขนเลกนอย รายละเอยดวาคาทควรแทรกควรมกคา และมคาเทาใดสามารถหาไดจาก [3]
ตวอยางท 7.8 นแสดงใหเหนถงการใชวธสมความถส าหรบหาสมประสทธของตวกรองพนฐาน ซงแสดงใหเหนถงหลกการงาย ๆ ของวธน อยางไรกตาม วธสมความถนมความเหมาะสมมาก
|H(ejω′)|
บทท 7 ตวกรองแบบ FIR 119
กวา ทจะน าไปใชออกแบบตวกรองทมลกษณะผลตอบสนองเชงความถแปลก ๆ ทไมสามารถออกแบบโดยวธอนได หรอไดไมสะดวกนก
ตวอยางท 7.7 หาสมประสทธของตวกรองซงมผลตอบสนองอดมคตดงรปขางลางน
0 2500 5000
1
f (Hz)
ก าหนดใหใช N=41 และ fs=10 kHz วาดรปของ h(n) และ |H(ejω′)| ทได
จาก fs=10kHz จะไดวาความถ 5 kHz ตรงกบความถดจตอลท ω′ = π ดงนนตวกรองดจตอลทตองการมผลตอบสนองเชงความถในชวง 0 - 2π ดงแสดงในรป
ω’ (เรเด ยน)ππ π π
|D(ejω’)|
รปท 7.12 ผลตอบสนองเชงความถของตวกรองทตองการ
ซงจะได |H(ω′)| มสมการเปน
D e j( )'ω
ωπ
ω π
ωπ
π ω π
ωπ
π ω π
ωπ
π ω π
=
≤ <
≤ <
≤ ≤
≤ <
2
2
2
2
, 0 / 2
- + 2 , / 2
- 2 , 3 / 2
- + 4 , 3 / 2 2
ท าการสมความถ 41 จดในชวง 0-2π โดยแทน ω′ = 241πk จะได
บทท 7 ตวกรองแบบ FIR 120
H k
k
k
k
k
( ) =
, k = 0, 1, 2, ... , 10
- + 2 , k = 11, 12, 13, ... , 20
- 2 , k = 21, 22, 23, ... , 30
- + 4 , k = 31, 32, 33, ... , 40
441441441441
คา |H| สามารถก าหนดไดใน Matlab ดงนk1=0:10; k2=11:20; k3=21:30; k4=31:40;H=[4*k1/41, -4*k2/41+2, 4*k3/41-2, -4*k4/41+4];
เมอแทนคา H ลงในโปรแกรมท 7.3 และใหโปรแกรมค านวณหาผลลพธ จะไดผลตอบสนองเชงความถของระบบดงในรปท 7.13
รปท 7.13 ผลตอบสนองตออมพลส และผลตอบสนองเชงความถทไดจากวธสมความถ
บทท 7 ตวกรองแบบ FIR 121
การสรางตวกรอง FIR (FIR Filter Realization)
ค าวา realization หมายถง การน าเอาสงทไดออกแบบแลว หรอปรากฎการณทางทฤษฎไปประยกตเปนอปกรณทใชงานไดจรง ๆ ขนมา ส าหรบตวกรองแบบ FIR เราจะใชผลตอบสนองตออมพลส หรอ h(n) เพอสรางตวกรอง ซงกระบวนการของตวกรองในทนก คอ การท าคอนโวลชนระหวาง h(n) และสญญาณขาเขา x(n) นนเอง ซงสามารถเขยนเปนแผนภาพไดดง รปท 7.14
z- 1 z - 1x(n) x(n-1) x(n-2)
h(0) h(1) h(2)
delay 1 ข นเวลา
z - 1 x(n-N+1)
h(N-1)
y(n)
รปท 7.14 แผนภาพการสรางตวกรองแบบ FIR โดยคอนโวลชนปกต
จากแผนภาพนเราสามารถน าไปประยกตเขยนเปนโปรแกรมคอมพวเตอร หรอท าเปนฮารดแวรพเศษเพอท าหนาทตวกรองแบบ FIR โดยตรง ในกรณทตวกรองเปนแบบเฟสเชงเสน ซงหมายถง h(n) จะมสมมาตร ณ จดกงกลาง เราอาจใชคณสมบตนลดโครงสรางของ FIR ใหเลกลงไดดงแสดงในรปท 7.15
z - 1 z - 1
z - 1 z - 1
x(n)
h(0) h(1) h(2) h(3)
y(n)
กรณ N ค (เช น N=7)
z - 1
z - 1
.
z - 1 z - 1
z - 1 z - 1
Z - 1
x(n)
y(n)
h(0) h(1) h(2)
กรณ N ค (เช น N=6)
รปท 7.15 แผนภาพการสรางตวกรองแบบ FIR เมออาศยคณสมบตการสมมาตร
บทท 7 ตวกรองแบบ FIR 122
และโดยอาศยวธคอนโวลชนแบบเรวทเราไดศกษามาในบทท 6 กสามารถใชแทนคอนโวลชนปกตเพอใชสรางตวกรองแบบ FIR ได ดงในรปท 7.16
x(n) จ ด block(overlap ก น) FFT IFFT
FFT
ต ดส วนเก นรวม block
y(n)
h(n)
รปท 7.16 แผนภาพการสรางตวกรองแบบ FIR โดยวธคอนโวลชนแบบเรว
บทท 8 ตวกรองแบบ IIR 123
บทท 8ตวกรองแบบ IIR
ในบทนเราจะกลาวถงการออกแบบขนพนฐานของตวกรองแบบ IIR, การสรางตวกรองแบบIIR, และรวมถงเปรยบเทยบขอดขอเสยระหวางตวกรองแบบ FIR และ IIR
ตวกรองแบบ IIR เปนระบบทมโพล และมความยาวของผลตอบสนองตออมพลสไมจ ากดในการออกแบบตวกรอง IIR เราจะไมมงเปาทการหา h(n) เหมอนอยางการออกแบบตวกรอง FIR แตเราจะมงไปทการหาฟงกชนถายโอน H(z) ของระบบ และเราจะไดเหนอกวา การสรางตวกรอง IIRสามารถกระท าไดโดยตรงจากพารามเตอรใน H(z) ทนท โดยไมตองสนใจ h(n) เลย
การออกแบบโดยองตวกรองแอนะลอกตนแบบ
วธออกแบบตวกรองดจตอลทนยมมากวธหนงกคอ การออกแบบโดยองตวกรองแอนะลอกตนแบบ ซงไดแก ตวกรองแบบ Butterworth, Chebychev, Elliptic, Bessel, และอน ๆ ตวกรองแอนะลอกเหลานเปนพนฐานทถกศกษา และพฒนามาถงจดทคอนขางสมบรณแลว ถาเราสามารถหาฟงกชน หรอการแปลงอยางใดอยางหนงทสามารถแปลงฟงกชนถายโอนของระบบแบบแอนะลอก มาเปนระบบแบบไมตอเนองได เรากอาจจะสามารถน าตวกรองในระบบแอนะลอกมาใชในระบบไมตอเนองไดทนท
การแปลงดงกลาวไมยากอยางทคด เนองจากหลกการของระบบตอเนอง และระบบไมตอเนองมลกษณะคลายคลงกน ดงทเราไดเหนการแปลง z ทมลกษณะการใชงานเชนเดยวกบการแปลงลาปลาสในระบบแบบตอเนองมาแลว ในรปท 8.1 แสดงความสมพนธกนของระบบทงสอง จะเหนไดวา จากฟงกชนถายโอนของระบบตอเนอง (Ha(s) ซงเปนฟงกชนของ s) เราสามารถหาผลตอบสนองเชงความถได โดยแทน s = jω และส าหรบฟงกชนถายโอนของระบบไมตอเนอง (H(z) ซงเปนฟงกชนของ z) กสามารถหาผลตอบสนองความถไดโดยแทน z = ejω′
ส าหรบการแปลงระหวางฟงกชนโอนยายของสองระบบ คอ จาก Ha(s) ไปเปน H(z) หรอ จากHa(ω) ไปเปน H(ejω′) เราตองการฟงกชนพเศษในการแปลงจากโดเมน s เปนโดเมน z ซงการแปลงนเรยกวา การแปลงไบลเนยร (Bilinear Transform)
บทท 8 ตวกรองแบบ IIR 124
Ha(s)
H(ejω’)Ha(jω)
H(z)
Bilineartransform
s = f(z)
Bilineartransformω = g(ω’)
z=ejω’s=jω
รปท 8.1 ความสมพนธกนของระบบแบบตอเนอง และไมตอเนอง
เราจะลองศกษาการแปลงไบลเนยรส าหรบแปลงระบบผานต าแอนะลอก เปนระบบผานต าไมตอเนองกอน ซงพบวาฟงกชนส าหรบแปลงจากโดเมน s เปนโดเมน z อยในรปดงน
s = K z -1z + 1
(8.1)
โดยท K เปนคาคงทส าหรบการแปลง ขอละไมกลาวถงวธพสจน แตจะศกษาถงเฉพาะผลทเกดขนจากการแปลงดงกลาว (ผทสนใจวธพสจน สามารถดไดจากหนงสออางอง [3]) ผลทเกดจากการแปลงไบลเนยรสามารถมองไดเปน 2 จดใหญ ๆ คอ
1. เกดการแปลงโพล และศนยบน s-plane ของระบบตอเนอง ไปเปนโพล และศนยบน z-plane ของระบบไมตอเนอง
ซงจดทเราใหความสนใจเปนพเศษ คอ เกดการดงพนทในซกซายของ s-plane ไปยงพนทภายใตวงกลมขนาด 1 หนวยของ z-plane ถาระบบแบบแอนะลอกมโพลอยในซกซายของ s-plane เมอแปลงเปนระบบดจตอลโพลนนกจะอยภายใตวงกลมขนาด 1 หนวยของ z-plane ดงในรปท 8.2 นนหมายถงวา ถาระบบแอนะลอกทเปนตนแบบมเสถยรภาพ และคอซล เมอแปลงเปนระบบแบบไมตอเนองกจะไดระบบทมเสถยรภาพ และเปนคอซลดวย
เราสามารถพสจนผลขอนไดพสจนวา ถาสวนจรงของ s มคานอยกวาศนย (โพลของระบบแอนะลอกอยซกซาย) เมอแปลงจะไดขนาดของ z มคานอยกวา 1 (โพลของระบบดจตอลอยภายในวงกลมหนงหนวย) เรมตนจากสวนจรงของ s ซงสามารถเขยนไดเปนผลบวกของ s และ s* ดงน
Reals = (s + s*)2
(8.2)
บทท 8 ตวกรองแบบ IIR 125
แทนคา s ดวยความสมพนธตามสมการท 8.1 จะได
Reals = K2
z -1z +1
z * -1z * +1
= K2
(z -1)(z * +1) + (z +1)(z * -1)z +1)(z * +1)
= K2
- 2
= K(zz * - 1)(z +1)(z +1) *
+
+ +
(*
( )( * )21 1zz
z z
ใชความสมพนธวา z z* มคาเทากบ |z|2 เราจะสามารถเขยนสมการนเปนฟงกชนของขนาดของ z ไดดงน
Reals = K (| z| -1)| z + 1|
2
2 (8.3)
จากสมการน จะเหนไดวา Reals = 0 เกดขนเมอ |z| = 1 นนคอเสนแบงระหวางซกซายและขวาของ s-plane ถกดงมาทเสนวงกลมหนงหนวยของ z-plane ซงเสนนคอเสนแบงเงอนไขความมเสถยรภาพของระบบทงสอง และจะเหนไดวาเมอ Reals < 0 จะได |z| < 1 ตามทตองการพสจน
z-plane s-plane
รปท 8.2 การแปลงระหวางโพลใน s-plane ไปยงโพลใน z-plane
2. เกดการแปลงระหวางความถแอนะลอกไปเปนความถดจตอลถาเราแทนคา s = jω และแทน z = ejw′ ลงในสมการท 8.1 จะไดฟงกชนทเปนการแปลง
ระหวางความถแอนะลอกไปเปนความถดจตอล ดงน
บทท 8 ตวกรองแบบ IIR 126
jωω
ω
ω ω ω
ω ω ω
= K e - 1e + 1
= K e (e - ee (e + e
j
j
j j - j
j j - j
′
′
′ ′ ′
′ ′ ′
/ / /
/ / /))
2 2 2
2 2 2
jω ωω
= K jsin( ) / 2cos( ) / 2
′′
ω ω = K tan(2′ ) (8.4)
เมอพจารณาสมการน จะไดวา ท ω = ∞ จะได ω′= π และท ω=0 จะได ω′=0 นนคอความถทงหมดของแอนะลอกในชวง 0 ถง ∞ ถกดงเขามาอยในชวง 0 ถง π ของความถดจตอล ซงกคอชวงท างานของความถดจตอลนนเอง ผลของการแปลงความถโดยรวมเกดขนดงในรปท 8.3 ซงเหนไดชดวาเปนการแปลงจากตวกรองผานต าแอนะลอก เปนตวกรองผานต าดจตอล ถาลองสมมตให K=1และวาดกราฟระหวาง ω และ ω′ จะไดดงรปท 8.4
0 +∞-∞
+π0-π
ω
ω’
Ha(ω
H(ejω’)
รปท 8.3 การแปลงระหวางความถแอนะลอก และดจตอล กบผลทเกดขนกบผลตอบสนองเชงควาามถในการแปลงไบลเนยร
จากรปท 8.4 จะสงเกตไดวา การแปลงความถทเกดขนไมไดมลกษณะเปนเชงเสน ซงฟงกชนเชงเสนไมสามารถน ามาใชในการแปลงความถได เพราะความถแอนะลอกมชวงตงแต 0 ถงอนนต แตชวงท างานของความถดจตอลมชวงแค 0 ถง π เทานน ดงนน ถาใชฟงกชนเชงเสนกคงจะไดชวงแถบผานหดลดเหลอเลกนดเดยว
บทท 8 ตวกรองแบบ IIR 127
การใชการแปลงไบลเนยร ท าใหฟงกชนการแปลงความถมลกษณะคลายเปนเชงเสนแบบสองชวง คอในชวงความถตน ๆ (ω ประมาณ 0 ถง 2 เรเดยน/วนาท) กราฟจะมความชนมาก และชวงความถหลง ๆ กราฟจะมความชนนอยลงมาก ซงโดยปกตเราสามารถเลอกคา K ใหกราฟมจดแบงของสองชวงนทประมาณ ณ ความถตดของตวกรอง ซงกจะท าใหในชวงแถบผานมการแปลงความถอยางชา ๆ และในชวงแถบหยดมการแปลงความถอยางเรว ซงกจะดงใหความถแอนะลอกทงหมด(ยาวจนถงอนนต) ในแถบหยด ถกดงมาจ ากดอยในความถ π ของตวกรองดจตอลได ปรากฏการณทความถถกดงหดเขามาน เรยกวา frequency warping
ผลของ frequency warping ท าใหรปรางของผลตอบสนองเชงความถของตวกรองดจตอลทไดมความแตกตางจากตวกรองแอนะลอกตนแบบบาง แตกไมเปนผลส าคญอะไร เพราะลกษณะส าคญของตวกรองแอนะลอกตนแบบไดถกถายทอดมายงตวกรองดจตอลแลว เชน ลกษณะของความคมและความพลวของตวกรอง และทส าคญคอ ไดความถตดของตวกรองดจตอลตามทตองการดวย
เนองจากฟงกชน tan มลกษณะเปนคาบ กราฟทแสดงในรปท 8.4 นแสดงเฉพาะชวงความถω′ เทากบ -π ถง π เทานน ในชวงอน ๆ กจะมลกษณะเปนคาบทก ๆ 2π เชนเดยวกบกราฟน ซงกจะมผลท าใหไดผลตอบสนองเชงความถของระบบดจตอล มลกษณะเปนคาบทก ๆ 2π ตรงตามทฤษฎทเราไดศกษามาในบทกอน ๆ
รปท 8.4 กราฟแสดงความสมพนธระหวางความถแอนะลอก และดจตอลในการท าการแปลงไบลเนยร
สรปความวา ถามฟงกชนถายโอน Ha(s) ของตวกรองแอนะลอกผานต า เราจะสามารถแปลงฟงกชนนเปนฟงกชนถายโอน H(z) ของตวกรองดจตอลไดทนท โดยใชการแปลงไบลเนยร คอแทน
คา s ใน Ha(s) ตามสมการท 8.1 คอ s = K z -1z + 1
หรอ เขยนไดวา
ω(เรเดยน/วนาท)
ω′(เรเดยน)
บทท 8 ตวกรองแบบ IIR 128
( ) ( )[ ]H z H sa s K zz
= = −+11
(8.5)
ซงผลทเกดขน คอ เราไดตวกรองดจตอลแบบ IIR ซงท าหนาทเปนตวกรองผานต าในลกษณะเดยวกบตวกรองแอนะลอกทเปนตนแบบ และมเสถยรภาพเหมอนตวกรองตนแบบเชนกน ในสวนตอไป จะไดยกตวอยางตวกรองดจตอลบตเตอรเวอรธ ซงเกดจากตวกรองบตเตอรเวอรธแอนะลอกตนแบบ
ตวกรองบตเตอรเวอรธแอนะลอกตนแบบ
ตวกรองบตเตอรเวอรธ (Butterworth) ตนแบบทเราจะใชเปนแบบผานต า ลกษณะผลตอบสนองเชงความถของตวกรองบตเตอรเวอรธเปนแบบ monothonic คอ ลาดลงตลอดจากความถศนยจนถงความถอนนต ไมมลกษณะเปนลกคลน
ตวกรองบตเตอรเวอรธอนดบ N ม ฟงกชนถายโอนในรปแบบ ดงน
( )( )
H ss p
ai
i
N = 1
1−
=∏
= ( )( ) ( )1
1 2s p s p s p N− − −'(8.6)
อนดบ (n) มมของโพล (θ1, θ2, …, θN)1 π2 ± 3
4π
3 π, ± 46π
4 ± 58π, ± 7
8π
5 π, ± 610π , ± 8
10π
6 ± 712π, ± 9
12π , ± 11
12π
7 π, ± 814π , ± 10
14π , ± 12
14π
ตารางท 8.1 มมของโพลของตวกรองบตเตอรเวอรธ (โพลมคาเทากบ ejθ )
บทท 8 ตวกรองแบบ IIR 129
โดยท pi เปนโพลของระบบ ซง pi มาจากผลตอบ หรอรากทอยดานซายของ S-plane ของสมการ
( )1 02+ − s N = (8.7)
ตวอยางเชน ถา N=2 จะไดสมการส าหรบหาโพลเปน( )1 s = 02 2+ − ซงคอ s4 = -1
จะไดผลตอบของสมการนม 4 คา ซงผลตอบทงสจะอยบนวงกลมรศม 1 หนวยดงรปดงนนรากทอยดานซาย หรอรากทมคาจรงเปนลบ คอ e j3 4π และ e j− 3 4π จะเปนโพลของ
ตวกรองบตเตอรเวอรธ, N=2 คาทไดนตรงกบทแสดงไวในตารางท 8.1
เมอหาก าลงสองของขนาดของฟงกชนถายโอนของตวกรองบตเตอรเวอรธ จะได
( ) ( ) ( )( )
H s = H s H s = 11 sa
2a a 2N
−+ −
(8.8)
เพอมใหสบสนกบสญลกษณของความถแอนะลอก และดจตอลทไดใชมาซงหมายถง ความถของระบบเดยวกนทมสดสวนกนเทากบ fs จะขอสมมตสญลกษณใหม คอ Ω เพอใชแทนความถแอนะลอกของวงจรตนแบบ โดยท Ω = [0, ∞] ดงนน เมอแทน s=jΩ จะไดผลตอบสนองเชงความถของตวกรองบตเตอรเวอรธ ตนแบบเปน
( )H ja NΩΩ
2
2
11
= +
(8.9)
ตวกรองบตเตอรเวอรธตนแบบน มลกษณะพเศษ คอ ไดถกท าใหมความถตด (Ωc) เทากบ 1
เรเดยนตอวนาท ซงถาลองแทนคา Ω = Ωc = 1 ลงในสมการ จะได ( )H ja Ω 2 12
= หรอคอจดท
มการลดทอนเทากบ 3dB
ขอสงเกต 1) โพลจะมคคอนจเกตกนเสมอ 2) ถา n เปนคาค จะมโพลหนงทเปนคาจรง คอ มคาเทากบ ejπ หรอ -1 เสมอ
ej3π/4 ejπ/4
e- j3π/4 e- jπ/4
บทท 8 ตวกรองแบบ IIR 130
การออกแบบตวกรองบตเตอรเวอรธดจตอลผานต า
ขนตอนตอไปนเปนวธการหาฟงกชนถายโอนของตวกรองบตเตอรเวอรธดจตอลผานต า1) จากคาก าหนดของความถตดทตองการ หาคา K ของการแปลงไบลเนยร โดยจบใหความถ
ตดของตวกรองทงสองเปนจดเดยวกน นนคอ ท Ω Ω= c ตรงกบ ′ ′ω ω= c ซงท าไดโดยแทนคาความถทงสองลงในสมการทเปนการแปลงความถ คอสมการท 8.4 สมการนเขยนใหมโดยแทนสญลกษณของความถแอนะลอกดวย Ω ไดดงน
Ω = K tan ′
ω2
(8.10)
แทนคา Ω Ω= c และ ′ = ′ω ωc แลวจดรปสมการเพอหาคา K จะได
Ω cc = K tan ′
ω2
K cc= Ω cot ′
ω2
(8.11)
ในกรณนตวกรองแอนะลอกตนแบบม Ωc = 1 เมอแทนคาลงไปจะท าใหสมการลดรปเหลอ
K c= cot ′
ω2
(8.12)
2) จากขอก าหนดดานความคมของผลตอบสนองเชงความถ หาคาอนดบของตวกรองทจ าเปนตองใช (ถายงไมไดก าหนด)
จากสมการท 8.9 ซงคอ ผลตอบสนองเชงความถของตวกรองแอนะลอกตนแบบ ดงน
( )H ja NΩΩ
2
2
11
= +
(8.9)
จากสมการน จะสามารถหาสมการของผลตอบสนองเชงความถของตวกรองดจตอลได โดย
แทน Ω = K tan ′
ω2
ซงจะได
บทท 8 ตวกรองแบบ IIR 131
( )H eK
jN
′ =+ ′
ω
ω2
21
12
tan(8.13)
แทนคาขอก าหนดของผลตอบสนองเชงความถลงไป (คอ คา |H| ทตองการทความถ ω′ใด ๆ)กจะสามารถแกสมการหาคา N ต าสดทจ าเปนตองใช ได
3) เมอไดคาอนดบทตองการ หา Ha(s) ของตวกรองตนแบบ สมมตให N=5 จะได Ha(s) ดงน
( ) ( )( ) ( )( ) ( )H ss p s p s p s p s pa =− − − − −∗ ∗
1 1 11 1 2 2 3
(8.14)
4) หา H(z) โดยการแปลงไบลเนยรตามสมการท 8.5 คอ
( ) ( )[ ]H z H sa s K zz
= = −+11
(8.5)
สตรนตรงไปตรงมา โดยแทน s ทกตวในสมการดวย K zz−+11
แลวจดใหอยในรปเศษสวน
ของโพลโนเมยลทจะน าไปใชได อยางไรกตาม คอนขางจะยงในการจดบาง เราพบวา ส าหรบ H(s)ทอยในรปดงสมการท 8.14 เราสามารถจด H(z) ใหอยในรปทวไปไดดงน
( )( )
( )( )( )
( )( )( )H z G z
z z z zG z
z z z zG z
z z= 1
2
1 1
22
2 2
3
3
1 1 1+− −
+− −
+−* * (8.15)
( )
( )
( )
= +− +
+− +
+−
G zz z z z
G zz z z z
G zz z
12
21 1
22
2
22 2
23
3
12
12
1Re Re
(8.16)
โดยท z K pK pi
i
i = +
− และ G
K pii
= 12−
บทท 8 ตวกรองแบบ IIR 132
ส าหรบ i = 1, 2 ซงสตรนจะใชไดกบเทอมโพลทมคคอนจเกตกน ซงในกรณน คอ เทอมทหนงและสอง ส าหรบในกรณทอนดบเปนคจะมเทอมทไมมคคอนจเกตเหลออย 1 เทอม ซงในกรณนเกดจากโพล p3 เราจะได
z K pK p3
3
3 = +
− และ G
K p33
1 = −
ตวอยางท 8.1 ออกแบบตวกรองบตเตอรเวอรธแบบผานต าทมความถตดท 2 kHz และใชความถในการสมเทากบ 8 kHz ใหระบบมอตราการลดทอนไมต ากวา 20 dB ท 3kHz
1) หาคา K
จาก K c= cot ′
ω2
แทนคา ( )′ω π π πc
c
s
ff
= = =2 2 20008000 2
= cot π212
×
= cot π4
= 1
2) หาคา N ทตองใชจากขอก าหนดของผลตอบสนองเชงความถ ท 3 kHz ตองการคาลดทอน = 20 dB นนคอ ตองก าลงขยาย = - 20 dB จากสตรวา dB = 10log|H|2 จะได |H|2 = 10 2010− = 0.01
ส าหรบ f = 3 kHz ตรงกบความถดจตอลท ( )′ω π π π= = =2 2 3
834
ff
kks
เรเดยน
นนคอตองการ H 2ท ′ =ω π3 4 < 0.01 แทนคา |H|2 จากสมการท 8.13 จะได
1
12 3 4
2
+ ′
′=
KN
tan/
ωω π
< 0.01
100 < 1 38
2
+
tan π N
log (99) < 2 38
N log tan π
5.21 < 2N N > 2.6 ⇒ เลอก N = 3
บทท 8 ตวกรองแบบ IIR 133
3) หาตวกรองแอนะลอกตนแบบ
จาก N = 3 ใชตาราง 8.1 จะไดโพล คอ p1= ej4
6π
, p1*= ej− 4
6π
, และ p2= -1
ดงนน จะได ( ) ( )( )( )H s
s e s e sa j j=
− − +−
114 6 4 6π π
4) ใชสตรตามสมการท 8.16 จะหาฟงกชนถายโอนของตวกรองดจตอล ไดคอ
( )( )
( )H z G z
z z z zG z
z z= +
− ++
−1
2
21 1
22
2
12
1Re
โดยท z K pK p
ee
j
j11
1
4 6
4 6
11
0.57735 = = = j+−
+−
π
π ; Re z1 0= , |z1| = 0.5773
GK p e j1
12 4 6
21 1
113
= = = − − π
( )( )
z K pK p2
2
2
1 11 1
0 = = = +−
+ −− −
( )
GK p2
2
1 11 1
12
= = = − − −
รปท 8.5 ผลตอบสนองเชงความถของตวกรองบตเตอรเวอรธทไดจากตวอยาง
| H |2 (dB) ∠ H (เรเดยน)
บทท 8 ตวกรองแบบ IIR 134
แทนคาทงหมดลงในสมการขางตน จะได
( )( )( )
( ) ( )
( )H zz
zzz
zz z
=+
++
= ++
13 10.57735
12 1 16
113
2
2 2
3
2
ซงวาดผลตอบสนองเชงความถของตวกรองทไดดงในรปท 8.5
การออกแบบตวกรองบตเตอรเวอรธแบบอน (นอกจากผานต า)
การออกแบบโดยการแปลงจากตวกรองแอนะลอกตนแบบ ยงสามารถใชออกแบบตวกรองแบบอน ๆ ไดแก ตวกรองผานสง, ผานแบนด, และตดแบนดได โดยการออกแบบตวกรองเหลานสามารถท าไดหลายแนวทาง ดงน
แนวทางท 1 แปลงตวกรองตนแบบทเปนแบบผานต าใหเปนแบบอนกอน (ใชวธการแปลงความถในโดเมนของ s) แลวจงใชการแปลงไบลเนยรแบบปกต (LPF → LPF)
แนวทางท 2 หาตวกรองดจตอลแบบผานต า จากตวกรองแอนะลอกตนแบบดงทเราไดศกษามา จากนนแปลงตวกรองดจตอลผานต าทไดเปนแบบอน (ใชวธการแปลงความถในโดเมนของ z)
แนวทางท 3 ใชการแปลงไบลเนยรแบบพเศษ ซงจะแปลงตวกรองแอนะลอกผานต า เปนตวกรองดจตอลแบบทตองการไดเลย
แนวทางทงสามนใหผลลพธเดยวกน ในขนเบองตนนเราจะศกษาเฉพาะแนวทางท 3 เทานนซงเปนแนวทางทรวมเอาการแปลงความถจากตวกรองผานต าไปเปนแบบอน ไวในสตรเดยวกนกบการแปลงไบลเนยร ดงนน จะได สตรส าหรบการแปลงไบลเนยรทงสนสแบบ ทกแบบเรมตนโดยใชตวกรอง แอนะลอกตนแบบเหมอนกน แตมสตรเพอแปลง s เปน z ตางกน ดงทสรปไวในตารางท 8.2ซงกจะไดผลลพธเปนตวกรองดจตอลตามชนดทตองการ
การแปลงทงสแบบใหผลของเสถยรภาพเหมอนกบการแปลง LPF → LPF ทไดกลาวมา คอโพลทอยดานซายมอ s-plane ของระบบแอนะลอก จะถกแปลงมาเปนโพลทมขนาดนอยกวา 1 ของระบบดจตอลเสมอ สงเกตวาถาเปนการแปลงเปน BPF หรอ BSF เราจะไดจ านวนโพล และศนยเพมขนเปนสองเทาดวย เชน ถาตองการตวกรอง BPF อนดบ 4 กจะตองแปลงมาจากตวกรองแอนะลอกตนแบบทมอนดบ 2 เปนตน
ส าหรบผลของการแปลงความถทเกดขนจะเปนไปตามสมการความสมพนธระหวาง Ω กบω′ ดงสรปไวในคอลมนทสามของตารางท 8.2 ซงสมการเหลานกหามาจากการแทนคา s=jΩ และz=ejω′ ลงในสมการของการแปลงไบลเนยรในคอลมนทสองนนเอง ในกรณทเรารผลตอบสนองเชง
บทท 8 ตวกรองแบบ IIR 135
ความถของตวกรองตนแบบในรป H(jΩ) เราสามารถหาผลตอบสนองเชงความถของตวกรองดจตอลไดโดยแทน Ω ดวยฟงกชนของ ω′ น
ขอยกตวอยาง การพจารณาการแปลงไบลเนยรส าหรบตวกรองแบบผานสง (LPF → HPF)
ซงคอสตรทสองในตารางท 8.2 จะไดวาการแปลงความถเปนไปตามสมการ Ω = K cot(2′ω )
พจารณาสมการนจะเหนวา เมอ Ω=∞ จะได ω′= 0 และเมอ Ω=0 จะได ω′=π นนคอ การแปลงความถเกดขนในลกษณะตรงขามกบการแปลงไบลเนยรในกรณผานต า ในกรณผานสงน สวนทเปนแถบหยดจะถกจบมาอยในชวงความถต าของตวกรองดจตอล และสวนทเปนแถบผานจะถกจบมาอยในชวงความถสงแทน ซงกจะไดผลลพธเปนตวกรองดจตอลแบบผานสง ถาเราสมมตใหคา K=1แลววาดรประหวาง Ω กบ ω′ จะไดดงรปท 8.7
ชนดของตวกรองทได
การแปลง s เปน z การแปลงความถ พารามเตอรทใช
LPF s = K z -1z +1 Ω = K tan(
2′ω ) K = cot(
2′ωc )
HPF s = K z +1z -1 Ω = K cot(
2′ω ) K = tan(
2′ωc )
BPFs = K z + 2cz +1
z -1
2
2Ω = - K cos( ) - c
sin( )′′
ωω
[ ][ ][ ]
K = cot ( ) / 2
c = cos ( ) / 2cos ( ) / 2
′ − ′
′ + ′′ − ′
ω ω
ω ωω ω
2 1
2 1
2 1
BSFs = K z -1
z + 2cz +1
2
2Ω = K sin( )
cos( ) - c′
′ω
ω[ ][ ][ ]
K = tan ( ) / 2
c = cos ( ) / 2cos ( ) / 2
′ − ′
′ + ′′ − ′
ω ω
ω ωω ω
2 1
2 1
2 1
ตารางท 8.2 สรปสตรของการแปลงไบลเนยร ทง 4 แบบ(ω′1 และ ω′2 หมายถง ความถตดดจตอลดานต าและดานสงของแบนดตามล าดบ)
บทท 8 ตวกรองแบบ IIR 136
0 +∞−∞
+π0−π
ω
ω’
Ha(ω)
H(ejω’)
รปท 8.6 การแปลงระหวางความถแอนะลอก และดจตอล ในการแปลงไบลเนยร แบบ LPF → HPF
รปท 8.7 กราฟแสดงความสมพนธ ระหวางความถแอนะลอก และดจตอลในการแปลงไบลเนยร แบบ LPF → HPF
ตวอยางท 8.2 ออกแบบตวกรองบตเตอรเวอรธแบบผานสงทมความถตดท 2 kHz และใชความถในการสมเทากบ 8 kHz ใหระบบมอตราการลดทอนไมต ากวา 20 dB ท 1.5 kHz
หาคา K , K = tan 'ω c
2
, แทนคา ω π π' c
c
s
ff
= = 22
K = tan .π212
= tan π
4
= 1
Ω (เรเดยน/วนาท)
ω′(เรเดยน)
บทท 8 ตวกรองแบบ IIR 137
จากขอก าหนดวา ลดทอน 20dB หรอ คอ ก าลงขยาย = -20 dB = 0.01 ทความถ
ω π π π' ( . ) = = = 2 2 1 58
38
ff
kks
จะไดวา |H|2 ท ω π' = 38
< 0.01
(ใช |H|2 ส าหรบ HFP) 1
12 3
8
2
+
=
kN
cot( ' )'
ωω
π
< 0.01
1
1 316
2
+
cot( )π N < 0.01
100 < 1 316
2
+
cot( )π N
log(99) < 2 316
N log cot( )π
N > log( )
log(cot )
99
2 316π = 5.7 เลอก N = 6
ตวกรองตนแบบ บตเตอรเวอรธ n=6 มฟงกชนถายโอน คอ H ss p
i
N
i
( )( )
=−
=
1
1Π
โดยทโพลม 6 คา คอ e j712π
e j- 712π
e j912π
e- j912π
e j1112π
e- j1112π
(จากตารางท 8.1)
ใชการแปลงไบลเนยร ส าหรบ LPF → HPF จะได
H z H s H ss k zz
s zz
( ) ( ) ( ) = = = +−
= +−
11
11
จากนนกเปนการจดการทางคณตศาสตร เพอใหได H(z) ในรปทจะน าไปใชงานได ซงสามารถคดดวยมอ หรอใชโปรแกรมคอมพวเตอรชวยได ขอละไมแสดงวธท าในทน โดยผลตอบสดทายทได คอ
H z( ) = 0.0296z - 0.1775z + 0.4438z - 0.5918z + 0.4438z - 0.1775z + 0.0296z + 0.7777z + 0.1142z + 0.0018
6 5 4 3 2
6 4 2
บทท 8 ตวกรองแบบ IIR 138
การออกแบบโดยวธวางโพล และศนย
การออกแบบโดยวธวางโพลและศนย เปนวธอยางงาย ๆ โดยอาศยความเขาใจในเรองผลของโพล และศนยทมตอผลตอบสนองเชงความถของระบบ สามารถน าไปใชออกแบบตวกรองทมอนดบต า ๆ และตวกรองประเภทผานความถเดยว (peaking filter) หรอตดความถเดยว (notching filter) ได
กอนอนตองมความเขาใจเรองผลของโพล และศนยทมตอผลตอบสนองเชงความถกอน โดยลองพจารณาระบบทมโพลอยท p1 และมศนยอยท q1 ดงน
H(z) = A z - qz - p
1
1, โดยท |p1|, |q1| ≤ 1 (8.17)
ถาพจารณาผลตอบสนองความถทางขนาดจะไดวา |H(z)| ประกอบดวยเทอม |z-qi| เปนตวคณและเทอม |z-pi| เปนตวหาร ซงเปนจรงส าหรบจ านวนโพล และศนยใด ๆ ในทนมโพล และศนยอยางละหนงตว ซงจะได
|H(z)| = | A| | z - q| z - p
1
1
||
(8.18)
ถาเขยน p1 , q1 ใหอยในรปโพลา ดงน p1=|p1|ejθp และ q1=| q1|ejθq จะไดวา1. ลองพจารณาจากเวคเตอร z-q1 ซงเปนเวคเตอรทวาดสเขมในรปท 8.8 เมอความถเปลยน
ไป z กจะหมนไปรอบ ๆ วงกลมหนงหนวย และ z-q1 กจะเปลยนไปดวย และจะเหนไดชดวาขนาดของเวคเตอร z-q1 จะมคานอยทสดเมอ z หมนมาทบกบ q1 พอด หรอคอจดทความถ ω′= มมของ q1
สรปไดวา ท ω′ = มมของศนย = θq หรอ z=ejθq จะได |z-q1| มคานอยทสด ซงเทอมนเปนตวคณอยในผลตอบสนองเชงความถโดยรวม ดงนน ถาพจารณาผลของศนยตวเดยว (ในกรณทไมมผลของโพล และศนยอนรบกวน) จะพบวา ขนาดของผลตอบสนองเชงความถจะถกดงใหต าสดทความถตรงกบมมของศนยนน ๆ ยงขนาดของศนย | q1| มคาใหญ (ใกล 1) มากขนเทาใด ผลของศนยกจะแรงมากขนเทานน โดยผลแรงทสดเกดขนเมอ ถา | q1| = 1 ซงจะได |H| = 0 ทความถ θq น
2. ท ω′ = มมของโพล = θp หรอ z=ejθp จะได |z-p1| มคาเปนจดต าสด แตเนองจากเทอมนเปนตวหารอยในผลตอบสนองเชงความถ ดงนน มนจะสงผลให |H| มคาเปนจดสงสด (ในกรณทไมมผลของโพล และศนยอนรบกวน) และในท านองเดยวกน คอ ถาขนาดของโพล |p1| มคาใหญ (ใกล 1)มากขน กจะท าใหผลของโพลแรงขนทความถนน ถา | p1| = 1 จะได |H| = ∞ ซงเปนสภาวะทเกอบเสถยร ในระบบปกตเราจะไมใชขนาดของโพลเทากบ 1 ยกเวน ระบบทตองการออกแบบเปนตวก าเนดสญญาณซายน
บทท 8 ตวกรองแบบ IIR 139
z-plane
z = ejω′z-q1q1
ω′
วงกลมหน งหน วย
รปท 8.8 เวคเตอร z-q1 ใน z-plane
ตวอยางของการพจารณาผลของโพล และศนย เชน
H(z) = A z + 0.8z - 0.6
มโพล = 0.6 (ω′=0),มศนย = -0.8 = 0.8ejπ (ω′=π)เมอพจารณาในชวงความถ 0 ถง π ระบบนควรมขนาดของผลตอบสนองความถสงสดทความถ 0และต าสดทความถ π ดงนน ระบบนเปนวงจรผานต า แผนภาพทแสดงในดานขวาน เรยกวาแผนภาพโพล-ศนย ซง ο แทนต าแหนงของศนย และ × แทนต าแหนงของโพล
H(z) = A (z - 1)(z + 1)(z - re )(z - re )j /2 - j /2π π
มโพลท ω′=π/2 และ -π/2,มศนยท ω′=0 และ π ดงนน ควรเปนวงจรผานแบนด ทมความถศนยกลางของแบนดอยท ω′=π/2
ตวอยางท 8.3 จงออกแบบวงจรผานต า ทมผลตอบสนองเชงความถเปนศนยท 1 kHz และเปน 1 ท 0
kHz ใหม |H| = 14
ท 500Hz, fs = 2 kHz
วงจรผานความถต านตองมโพลอยทมมศนย และมศนยอยทมม π f=1kHz → ω′= π ตองการ |H| = 0 เพราะฉะนน ศนย = 1ejπ= -1
z-planeวงกลม|z|=1
z-plane
บทท 8 ตวกรองแบบ IIR 140
f=0kHz → ω′= 0 ตองการ |H| = 1 สมมต โพล = γ ej0 = γ
f=500Hz → ω′= π/2 ตองการ |H|=1/4
จะไดรปทวไปของ H(z) เปน H z zZ
( ) = A +−1γ
ขนตอนตอไป จะตองหาคา A และ γ
จากเงอนไขของผลตอบสนองเชงความถขางตน
ผลตอบสนองเชงความถทได คอ H e ee
jj
j( )'
'ω
ω
ω γ = A +
−1
เงอนไข 1; | H| = 1 = A (1 1)1 gω' 0=+−
จะได 1-γ=2A -------- (a)
เงอนไข 2; | | ( )'
H A e
e
j
jω π
π
π
γ=
+
−2
2
2
14
1 = = ------- (b)
แกสมการ (a), (b) จะได A=0.2052, และ γ=0.5896
ดงนน H z zz
( ) ( )= +−
0.2052 10.5896
การออกแบบโดยวางโพล และศนยยงสามารถใชออกแบบ ตวกรองประเภทกรองความถเดยวโดยการวางโพล และศนยทมขนาดใกลเคยงกนไวความถเดยวกน ถาใหขนาดของโพลมขนาดใหญกวาศนยจะไดเปนวงจรขยายความถเดยว เนองจากผลของโพล และศนยจะชดเชยกนทความถอน ๆแตทความถทตรงกบมมของมน โพลจะมผลแรงกวาศนยจงท าใหเกดยอดขนมาทความถนน ในทางตรงกนขาม ถาขนาดขนาดโพลมขนาดเลกกวาศนย กจะไดเปนวงจรตดความถเดยว
ตวกรองขยาย หรอตดความถเดยวจงมโพล และศนยอยางละหนงค และไดเปนฟงกชนถายโอนอนดบสอง ดงน
H(z) = K (z - r e )(z - r e )(z - r e )(z - r e )
zj
z-j
pj
p- j
0 0
0 0
′ ′
′ ′
ω ω
ω ω (8.19)
ฟงกชนถายโอนนสามารถค านวณโดยใช Matlab ตามโปรแกรมท 8.1 ซงจะรบคาความถทนอรแมลไลซดวย fs/2 เหมอนฟงกชนทค านวณสมประสทธอน ๆ ใน DSP Toolbox และรบคา rz, rp,และ K ตามสมการท 8.19 จากนนค านวณหาคาสมประสทธของโพลโนเมยลเศษ และสวน โดยใชฟงกชน zp2tf ซงเปนฟงกชนภายใน DSP Toolbox
บทท 8 ตวกรองแบบ IIR 141
function [a,b] = singfreq(fn,rz,rp,k)w=fn*pi;z=[rz*exp(j*w); rz*exp(-j*w)];p=[rp*exp(j*w); rp*exp(-j*w)];[a,b]=zp2tf(z,p,k);
โปรแกรมท 8.1 ฟงกชน singfreq.m ส าหรบค านวณฟงกชนถายโอนของตวกรองความถเดยว
ตวอยางผลตอบสนองเชงความถทไดจากตวกรองแบบนแสดงอยในรปท 8.9 โดยทงสองรปใช ω0′= 0.4π
รปท 8.9 ก) ใช rz = 0.91, rp = 0.98, และ K = 1.07รปท 8.9 ข) ใช rz = 1.0 , rp = 0.95, และ K = 0.95
ตวกรองความถเดยวนยงสามารถประยกตท าเปนตวกรองทขยาย หรอตดหลาย ๆ คาความถได โดยการน าเอาฟงกชนถายโอนอนดบสองทตดความถเดยวมาอนกรมกนเปนอนดบทสงขน ตวอยางของตวกรองทได เชน ตวกรองตด หรอขยายสญญาณฮารมอนกส ซงสญญาณฮารมอนกสประกอบดวยความถเดยวหลาย ๆ ความถ (f0, 2f0, 3f0, 4f0, …) รวมกนอย
′ω0
′ω0
ππ
′ω0
′ω0
ππ
รปท 8.9 แผนภาพโพลและศนย และผลตอบสนองเชงความถของวงจรกรองความถเดยวการสรางตวกรอง IIR (IIR Filter Realization)
บทท 8 ตวกรองแบบ IIR 142
ตวกรองแบบ IIR สามารถน าไปสรางใชงานไดโดยมองจาก H(z) ไดโดยตรง เราจะดวธเขยนแผนภาพการสรางตวกรองจาก H(z) โดยเรมจากการจด H(z) ใหอยในรปดงตอไปน (เพอใหงายตอความเขาใจ ขอแสดงโดยการใชอนดบ = 2 โดยอนดบทสงขนสามารถท าไดโดยงายเมอเขาใจวธท าแลว)
H z z a z ab z b
( ) = az0
2
21 2
1 2
+ ++ +
หรอ H z a z a zb z b z
( ) = a1
0 + ++ +
− −
− −1
12
2
11
22 (8.20)
แผนภาพรปแบบแรก คอ แบบ direct form 1 ดงแสดงในรปท 8.10 รปแบบนเกดโดยตรงจากสมการผลตางของระบบ ถาเราแทน H(z)=Y(z)/X(z) และแกสมการเพอหาสมการผลตางของระบบ จะไดดงน
Y(z) 1 + b1z-1 + b2z-2 = X(z) a0 + a1z-1 + a2z-2Y(z) = X(z) a0 + a1z-1 + a2z-2 - Y(z) b1z-1 + b2z-2
y(n) = a0x(n) + a1x(n-1) + a2x(n-2) - b1y(n-1) - b2y(n-2) (8.21)
ซงกพบวา y(n) เกดจากสวนทมาจากสญญาณขาเขาทเวลาปจจบนและอดต คอ a0x(n) + a1x(n-1) + a2x(n-2) ลบดวยสวนทมาจากสญญาณขาออกในอดต คอ b1y(n-1) - b2y(n-2) ซงกตรงกบทแสดงในแผนภาพ
z-1
z-1
x(n) y(n)
-b2
-b1z-1
z-1a2
a1
a0
รปท 8.10 แผนภาพการสรางตวกรอง IIR (direct form 1)
อกรปแบบหนงของการสรางตวกรอง IIR คอ แบบ direct form 2 หรอ canonical form ดงแสดงในรปท 8.11 การพสจนทมาของแผนภาพนท าไดโดย สมมตสญญาณขนใหมสญญาณหนงเรยก
บทท 8 ตวกรองแบบ IIR 143
วา w(n) ซงเกดการเอา x(n) ผานตวสวนของฟงกชนถายโอน หรอเขยนเปนรปแบบฟงกชนโอนยายไดวา
W zX z b z b z
( )( )
= 11+ +− −
11
22 (8.22)
ซงเมอท าการแปลง z ผกผนกจะไดวา w(n) = x(n) - b1w(n-1) - b2w(n-2) ซงเมอแสดง w(n)ในแผนภาพ และมองดเฉพาะสวนครงซายมอของแผนภาพ ซงเหมอนเปนสวนทสรางสญญาณ w(n)ขน กจะพบวาตรงกบสมการทเราเขยนขน
จากนน y(n) จะหาไดจากการเอาสญญาณ w(n) ผานตวเศษของฟงกชนถายโอน ซงเขยนในรปแบบของฟงกชนถายโอนไดวา
Y(z)W(z)
= a0 + +− −a z a z11
22 (8.23)
ซงเมอท าการแปลง z ผกผนกจะไดวา y(n) = a0w(n) + a1w(n-1) + a2w(n-2) ซงสมการนกคอสวนขวามอของแผนภาพนนเอง ฉะนน โดยรวมแลวกจะได
Y zX z
W zX z
Y zW z
a z a zb z b z
( )( )
( )( )
( )( )
= = a1
0 + ++ +
− −
− −11
22
11
22 เปนฟงกชนโดยรวมตามทตองการ
1
1+ +− −b z b z11
22 a + + 0 a z a z1
12
2− −x(n) y(n)w(n)
z-1
z-1
x(n) y(n)
-b2 a2
a1
a0
-b1
w(n)
รปท 8.11 แผนภาพการสรางตวกรอง IIR (direct form 2)ในกรณทตวกรองมอนดบสง ๆ การสรางตวกรองโดยใช direct form 1 หรอ 2 กสามารถท า
ได แตอาจสงผลกระทบเรองความคลาดเคลอนของระบบ และเสถยรภาพ โดยทวไปมกนยมแตกให
บทท 8 ตวกรองแบบ IIR 144
H(z) อยในรปของฟงกชนทอนดบต า ๆ แลวใชรปแบบการสรางตวกรองแบบอนกรม (cascade form)หรอขนาน (parallel form) เขามาชวย
รปแบบอนกรมแสดงอยในรปท 8.12 ท าไดโดยกระจาย H(z) ใหอยในรปของผลคณของ Hi
(z) กอน ซงนยมใช Hi(z) เปนแบบ อนดบ=2 ยกเวนถาอนดบรวมเปนเลขคกจะม Hi(z) ตวหนงทเปนอนดบ=1 สวนทเปน Hi(z) ในแผนภาพกสามารถใช direct form 1 หรอ 2 ในการสรางได
H(z) = c H1(z) H2(z) ... Hm(z) (8.24)
y(n)x(n) H1 HmH2c
รปท 8.12 แผนภาพการสรางตวกรอง IIR โดยใชโครงสรางแบบอนกรม
เชนเดยวกน รปแบบขนานแสดงอยในรปท 8.13 ท าไดโดยกระจาย H(z) ใหอยในรปของผลบวกของ Hi(z) กอน ซงนยมใช Hi(z) เปนแบบอนดบ 2 ยกเวนถาอนดบรวมเปนเลขคกจะม Hi(z) ตวหนงทมอนดบ 1
H(z) = c + H1(z) + H2(z) + ... + Hm(z) (8.25)
+
H1H2
Hm
c
x(n) y(n)
รปท 8.13 แผนภาพการสรางตวกรอง IIR โดยใชโครงสรางแบบขนาน
บทท 8 ตวกรองแบบ IIR 145
ตวอยางท 8.5 จากฟงกชนถายโอนทไดในตวอยางท 8.1 จงเขยนแผนภาพการสรางตวกรอง IIR ทงแบบ direct form 2, แบบอนกรม, และขนาน (ใช canonical form ในแตละสวนของแบบอนกรมและขนาน)
จากฟงกชนถายโอนในตวอยางท 8.1 กระจายตวเศษ และสวนออกเปนโพลโนเมยล จะได
( )( )
( )
( )
H z zz z
z z
z z
z
=
= (z + 3z + 3z +1)
= z / 6 + 0.5z + 0.5z +1 / 6
= 1 / 6 + 0.5z + 0.5z +1 / 6z
3 2
3 2
-1 -2 -3
16
113
16 3
3
1 1 3
3
2
3
3
2
++
+
+
+ −
/
/
เราสามารถเขยนแผนภาพการสราง IIR ไดโดยมองจากสมประสทธของโพลโนเมยลเศษ และสวน ดงน a0 a1 a2 a3 = 1/6 0.5 0.5 1/6 และ b1 b2 b3 = 0 1/3 0
z-1
z-1
z-1
x(n) y(n)
-1/3
1/6
0.5
0.5
1/6
รปท 8.14 แผนภาพแบบ direct form 2
ส าหรบโครงสรางแบบอนกรม ท าไดโดยการกระจาย H(z) ใหอยในรปของผลคณของเทอมทมอนดบไมเกน 2 ดงน
บทท 8 ตวกรองแบบ IIR 146
( )( )
( )
( )
( )
H z zz z
zz z
zz
=
= (z + 2z +1)
= (1+ 2z + z )
2
-1 -2
16
113
16
113
161
1 13
3
2
2
12
++
++
++
−−
( )
( )
z-1 z-1
z-1
x(n) y(n)
-1/3
2
1/6
รปท 8.15 แผนภาพแบบอนกรม
ส าหรบแบบขนาน ท าไดโดยการกระจาย H(z) ใหอยในรปของผลบวกของเทอมทมอนดบไมเกน 2 ดงน
( ) ( )( )
( )
H z zz z
z z
=
= (z + 3z + 3z +1)3 2
16
113
16 13
3
2
2
++
+
ใชวธหารยาวหาคาของ ( )(z + 3z + 3z +1)3 2
z2 13+ ดงน
z + 3 z2 + 1/3 z3 + 3z2 + 3z + 1
z3 +1/3z 3z2 +8/3z 3z2 + 1
8/3z
บทท 8 ตวกรองแบบ IIR 147
ดงนน ( )(z + 3z + 3z +1)3 2
z2 13+ = z + 3 + 8 / 3z
z + 1 / 32
H(z) = 16z
(z + 3 + 8 / 3zz + 1 / 3
= 1 / 6 + 0.5z + 4 / 9z1 + 1 / 3z2
-1-2
-2)
z-1
z-1
z-1
x(n) y(n)
-1/3 4/9
1/6
0.5
รปท 8.16 แผนภาพแบบขนาน
เปรยบเทยบตวกรอง FIR กบ IIR
การเลอกใชตวกรอง FIR หรอ IIR ส าหรบงานหนง ๆ เราตองพจารณาถงขอด และขอเสยของตวกรองทงสองแบบ ซงสามารถกลาวโดยสรปไดดงน
ขอดของตวกรอง FIR เมอเทยบกบตวกรอง IIR1. ใหผลตอบสนองเชงความถทมเฟสแบบเชงเสนโดยสมบรณ ตลอดชวงแถบผาน ซงขอน
ไมสามารถท าไดโดยตวกรอง IIR หรอแมแตตวกรองแอนะลอกใด ๆ (ท าไดแตไมเชงเสนสมบรณ)2. ตวกรอง FIR ไมมการปอนกลบ หรอไมมโพล ท าใหมเสถยรภาพเสมอ3. ตวกรอง FIR มความทนทานดกวาตอความคลาดเคลอนจากการประมาณคาสมประสทธ
และความคลาดเคลอนจากการค านวณ ความคลาดเคลอนนเกดมาจากการใชเลขฐานสองทมความยาวจ ากด (finite word length) ในการแทนคาเลขจรง ๆ ซงจะกลาวถงในบทท 10 ความคลาดเคลอนนสงผลถงลกษณะตาง ๆ ของระบบจากทออกแบบไว เชน ความถตด, รปรางของผลตอบสนองความถ,และรวมถงเสถยรภาพของระบบดวย
บทท 8 ตวกรองแบบ IIR 148
ขอดของตวกรอง IIR เมอเทยบกบตวกรอง FIR1. ใหผลตอบสนองเชงความถทดกวามากในดานความคม (ขนาดของแถบเปลยนเลกกวา และ
ความพลวต ากวา) ทขนาดอนดบเทา ๆ กบตวกรอง FIR นนหมายถงวา โดยทวไปเราไมจ าเปนตองใชตวกรอง IIR ทมอนดบสง ๆ เหมอน FIR ดงนน ตวกรอง IIR จงมความตองการดานความเรวของตวประมวลผลทนอยกวา
2. สามารถออกแบบโดยองจากตวกรองตนแบบแอนะลอกได ถามตวกรองแบบแอนะลอกทเคยใชงานอยแลว
บทท 9 ระบบตวเลขในการประมวลผล 149
บทท 9ระบบตวเลขในการประมวลผล
ทผานมาเราไดสมมตวา คาตาง ๆ ทน ามาใชในการประมวลผล หรอทเกดขนจากการประมวลผลเองมความละเอยดไมจ ากด และมยานทสามารถแทนคาไดไมจ ากด ซงการค านวณโดย Matlab กใหผลใกลเคยงกบการสมมตน เพราะ Matlab แทนคาเลขแตละตวดวยระบบเลของดรรชน (floating-pointnumber) ขนาด 64 บต ท าใหมผลจากความคลาดเคลอนตาง ๆ นอยมาก แตในความเปนจรง โดยเฉพาะอยางยงส าหรบการประมวลผลแบบเวลาจรง เราอาจตองน าการประมวลผลไปใชงานโดยมการแทนตวเลขดวยจ านวนบตต า ๆ โดยเฉพาะอยางยงการน าไปใชกบระบบเลขจ านวนเตม (fixed-pointnumber) ซงเปนทนยมมาก เพราะสรางไดงาย และราคาถกกวา แตกมผลของความคลาดเคลอนมากกวาแบบระบบเลของดรรชน
ในบทนจะไดกลาวถงรายละเอยดของระบบเลขจ านวนเตม เพอเปนพนฐานส าหรบการศกษาในบทท 10 ซงจะกลาวถงความคลาดเคลอนทเกดขน เมอเราใชระบบเลขจ านวนเตมในการประมวลผล สวนทายของบทนจะไดแนะน าระบบเลของดรรชน และดวาท าไมมนจงดกวาระบบเลขจ านวนเตม
ระบบเลขจ านวนเตม (Fixed-Point Number System)
ค าวา fixed-point ถาแปลตามตรงควรแปลวา ระบบตวเลขทมต าแหนงจดทศนยมคงท แตเนองจากลกษณะหนาตาของมน ทเมอแปลงแลวมองดเหมอนเลขจ านวนเตม (ไมมทศนยม)ประกอบกบตวแปรชนดเลขจ านวนเตม หรอ interger ในภาษาตาง ๆ กใชการแทนคาดวยระบบเลขชนดน จงขออนโลมเรยกวา ระบบเลขจ านวนเตม
ขออธบายดวยการยกตวอยางวา สมมตเราจะใชเลขฐานสองจ านวน 8 บตแทนคาของตวเลขซงเลข 8 บตน เรมตนทคา 000000002 และสนสดทคา 111111112 มจ านวนรวมทงสน 256 คา หรอ 28
คา ในการน าเลขฐานสองนไปแทนคาทจะใช ท าไดโดยการสมมตต าแหนงจดทศนยมขนมา ซงต าแหนงของจดทศนยมจะมผลตอชวงของคาทจะแทนได ดงน
ก าหนดให N คอ จ านวนบตทอยกอนหนาจดทศนยม และ M คอ จ านวนบตทอยหลงจดทศนยม หรอเขยนเปนสญลกษณวา
บทท 9 ระบบตวเลขในการประมวลผล 150
X … X X . X X … X โดย X แทนต าแหนงของบตคาทแตละบตแทน คอ 2N-1 … 21 20 2-1 2-2 … 2-M
และคาทแทนได คอ 0 และ นบขนไปทละ 2-M จนกระทงถง 2N-2-M ซงเปนคาตวสดทาย
ตวอยางเชน ส าหรบเลข 8 บต ถา N=8, M=0 หรอ จดทศนยมอยขวามอสด จะไดเขยนเปนสญลกษณ คอ X X X X X X X X .คาของแตละบต คอ 27 26 25 24 23 22 21 20
คาทสามารถแทนได คอ 0, 1, 2, …, 255
ถา N=0, M=8 หรอจดทศนยมอยซายมอสด จะไดเขยนเปนสญลกษณ คอ . X X X X X X X Xคาของแตละบต คอ 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8
คาทสามารถแทนได คอ 0, 2-8, 2(2-8), 3(2-8), …, 1-2-8
ซงเทากบ 0.00390625, 0.0078125, 0.01171875, …, 0.99609375
ถา N=3, M=5 จะไดเขยนเปนสญลกษณ คอ X X X . X X X X Xคาของแตละบต คอ 22 21 20 2-1 2-2 2-3 2-4 2-5
คาทสามารถแทนได คอ 0, 2-5, 2(2-5), 3(2-5), …, 23-2-5
ซงเทากบ 0.03125, 0.0625, 0.09375, …, 3.96875
เหนไดวา ต าแหนงของจดทศนยมมผลตอคาทแทนได ดงนน ในการใชระบบเลขจ านวนเตมเพอแทนคาตวเลขทศนยม นอกจากระบจ านวนบตทจะใชแลว ยงตองบอกวาใชจดทศนยมอยทต าแหนงไหน หรอบอกวา N กบ M มคาเทากบเทาไร (เมอกลาวถง N และ M ในบทท 9 และ 10 น จะหมายถงวา N คอจ านวนบตทอยหนาจดทศนยม และ M คอจ านวนบตหลงจดทศนยมเสมอ) เมอเลอกต าแหนงจดทศนยมแลว ใหคงต าแหนงไวทต าแหนงนนตลอดการค านวณหนง ๆ
ในกรณทคาทตองการแทนไมลงตวพอดเปนคาทสามารถแทนได เราจะตองท าการปดเศษใหเปนคาทใกลเคยงกบคาทตองการแทนทสด ซงวธท ามดงน คอ
ถาให a เปนคาทตองการแทน และ 0 ≤≤≤≤ a < 2N และสมมตให afix คอ คาหลงจากเปลยนเปนรปแบบจ านวนเตมแลว เราสามารถหา afix ซงเปนตวแทนทใกลคาของ a มากทสด ดงน
afix = round( a × 2M ) (9.1)
N บต M บต
บทท 9 ระบบตวเลขในการประมวลผล 151
โดยนยามให round( ) คอ ฟงกชนในการปดเศษเปนจ านวนเตม ถาคาทใสใหมสวนทศนยมทนอยกวา 0.5 กจะตดทง แตถามากกวาหรอเทากบ 0.5 กจะปดเพมเปน 1
การปดเศษนจะท าใหเกดความคลาดเคลอนเกดขน โดยคาท afix แทน จะเปน afixM2
ซงไมเทา
กบคา a เรมตนทตองการ (จะเทากนในกรณท a × 2M ไดคาเปนจ านวนเตมเทานน) ดงนน ในการแปลงเปนเลขจ านวนเตม คาความคลาดเคลอนทเกดขน คอ
err = afixM2
- a (9.2)
ตวอยางท 9.1 จงแปลงเลข 0.66 เปนจ านวนเตม 8 บต โดยท า 2 กรณ คอ กรณท M=8 และ M=7
กรณ M=8 ในขอน a = 0.66 จะไดafix = round( 0.66 × 28 ) = round(168.96) = 169
คา a = 169 นจะสามารถแทนดวยเลขฐานสองทมจ านวน 8 บตไดแนนอน ซงในทนไดa = 101010012 ในขอตอ ๆ ไปจะขอยนยอโดยตอบเปนเลขฐานสบเทานน (โดยปกตเรากไมจ าเปนตองแปลงเปนเลขฐานสอง เพราะซอฟทแวรสวนใหญทจะตองน าคาไปใชตอไป สามารถรบคาเปนเลขจ านวนเตมฐานสบได)
คา afix = 169 น เทยบเทากบคาทศนยมทแทนอย คอ afix/28 = 0.66015625 ซงหมายถงวาคา a=0.66 ทแรกนนไมสามารถแทนไดพอดดวยรปแบบจ านวนเตม 8 บต แตคาทใกลเคยงทสดทสามารถแทนได คอ 0.66015625 ซงตรงกบคา afix = 169 ดงนนความคลาดเคลอนทเกดขนในการแทนคาตวเลขน กคอ
err = a fix
28 - a = 0.00015625
กรณ M=7 ในขอน a = 0.66 จะไดafix = round( 0.66 × 27 ) = 84
และคาความคลาดเคลอนทเกดขน คอ
err = a fix
27 - a = -0.00375
บทท 9 ระบบตวเลขในการประมวลผล 152
เหนไดวา กรณ M=7 สามารถแทนตวเลขไดในชวงทกวางกวา คอแทนคาไดตงแต 0 ถง2 แตกรณ M=8 แทนไดเพยง 0 ถง 1 แตทงสองกรณถอวามความละเอยดในการแทนคาเทากนเพราะใชจ านวนบตรวมเทากน กลาวคอ ถงแมกรณ M=7 จะแทนคาไดในชวงใหญกวาเทาตว แตมนกมการแบงขนทหยาบกวา คอ มขนาดของขนทใหญกวาเทาตว การเลอกวาจะใช M เทากบเทาไร จงเหมาะขอมลชดหนง ๆ กขนอยกบวาคาสงสด และต าสดในขอมลเปนเทาไร
ขนาดของขน จะมคาเทากบคาของบตขวาสด (Least Significant Bit) ซงคอ 2-M และความคลาดเคลอนทเกดขนในกรณของการปดเศษโดยวธ rounding กจะมขอบเขตไมเกนครงหนงของขน นนคอ
- ขนาดขน/2 < err < ขนาดขน/2หรอ - 2M+1 < err < 2M+1 (9.3)
ดงนน กรณ M=8 จะแทนคาไดในชวง 0 ≤ a < 1 และ err ไมเกน ± 2-9
และ กรณ M=7 จะแทนคาไดในชวง 0 ≤ a < 2 และ err ไมเกน ± 2-8
ระบบเลขจ านวนเตมแบบมเครองหมาย
ทผานมาเปนการใชระบบเลขจ านวนเตนแทนเฉพาะจ านวนบวกเทานน ส าหรบการแทนทงจ านวนบวก และลบกสามารถท าได โดยมรปแบบใหญ ๆ สองแบบ คอ
1) แบบ sign-magnitude มรปแบบเหมอนเลขบวก แตเพมบตพเศษขนมาอก 1 บต (โดยทวไปคอบตซายสด) เปนบตบอกเครองหมาย (sign bit) โดยทเมอบตเครองหมายเปน 0 หมายถงเลขบวกและถาเปน 1 หมายถงเลขลบ ขอยกตวอยางเลขแบบ sign-magnitude ในกรณท N=0, และ M=7 เมอรวมบตเครองหมายอก 1 บต จะตองใชจ านวนบตทงสน 8 บต ดงน
เขยนเปนสญลกษณ คอ X . X X X X X X Xคาของแตละบต คอ sign 2-1 2-2 2-3 2-4 2-5 2-6 2-7
ตวอยางเชน010101002 = 8410 มคาเทากบ 0.65625 (จากค าตอบของตวอยาง 9.1)
และ 110101002 = -8410 กจะมคาเทากบ -0.65625 เปนตน
จะเหนไดวารปแบบ sign-magnitude สามารถเขาใจไดงาย โดยเพยงแคเตมบตเครองหมายลงไปขางหนารปแบบปกตเทานน อยางไรกตาม รปแบบนไมเปนทนยมในการใช เนองจากการบวกลบเลขท าไดไมสะดวก และไมดเทารปแบบ 2’s complement ทจะไดกลาวถงตอไป
sign M บต
บทท 9 ระบบตวเลขในการประมวลผล 153
2) แบบ 2's complement เปนแบบทนยมใชกนมากทสด โดยจะก าหนดใชบตซายมอสดมคาเปน -2N-1 ซงเปนบตเดยวทมคาตดลบ บตอน ๆ มความหมายเหมอนเดม ตวอยางชน เลข 2'scomplement ขนาด 8 บต ทม N=2 และ M=6 จะมรปแบบ และคาของบตตาง ๆ ดงน
เขยนเปนสญลกษณ คอ X X . X X X X X Xคาของแตละบต คอ -21 20 2-1 2-2 2-3 2-4 2-5 2-6
ตารางท 9.1 แสดงตวอยางของคาทแทนไดส าหรบกรณเลข 2’s complement ขนาด 8 บตทมN=1, 2, และ 8 ไลตงแตคาลบเปนคาบวก ขอใหสงเกตวา ขนาดของขนในแตละกรณยงมคาเทากบบตซายมอสด คอ 2-M เหมอนกบกรณการแทนเลขบวกอยางเดยว
ฐานสอง ฐานสบ(บวก)
คาทแทน(กรณ N=8)
คาทแทน (กรณ N=1)
คาทแทน(กรณ N=2)
1000 0000 128 -128 -1 (คาลบมากสด) -21000 0001 129 -127 -1+2-7 = -0.9921875 -2+2-6 = -1.9843751000 0010 130 -126 -1+2(2-7) = -0.984375 -2+2(2-6) = -1.96875
… … … … …1111 1111 255 -1 -2-7 = -0.0078125 -2-6 = -0.0156250000 0000 0 0 0 00000 0001 1 1 2-7 = 0.0078125 2-6 = 0.0156250000 0010 2 2 2(2-7) = 0.015625 2(2-6) = 0.03125
… … … … …0111 1111 127 127 1-2-7 = 0.9921875
(คาบวกมากสด) 2-2-6 = 1.984375
ตารางท 9.1 รปแบบเลข 2's complement (กรณ 8 บต) กบคาทแทนได
จะเหนไดวา บตซายมอสดยงสามารถมองเปนบตเครองหมายได เพราะถาบตซายสดเปน 1 จะไดเลขจ านวนนนเปนคาลบแนนอน และถาเปน 0 กจะไดเปนคาบวกแนนอน
ในระบบประมวลผลสญญาณ นยมใชรปแบบ 2's complement ทมจดทศนยมหลงบตซายมอสด 1 บต (N=1) ซงจะแทนเลขไดจาก -1 ถงประมาณ 1 และผลดกคอ การคณเลขสองจ านวนเขาดวยกนจะไมเกดโอเวอรโฟล เพราะ ผลลพธทไดจะไมมทางเกนชวง -1 ถง 1
N บต M บต
บทท 9 ระบบตวเลขในการประมวลผล 154
ตวอยางท 9.2 จงแปลงเลข -0.595 เปนจ านวนเตมแบบ 2's complement 8 บต โดยใช M=7
ในกรณของ 2's complement ถาให a เปนคาทตองการแทน และ -2N-1 ≤≤≤≤ a < 2N-1 สมมตให afix คอ คาหลงจากเปลยนเปนรปแบบจ านวนเตมแลว เราสามารถหา afix ซงแทนคา a ไดใกลเคยงทสด ดวยสมการเดยวกบ 9.1 คอ
afix = round( a × 2M ) (9.1)
ในขอน M=7 และ N=1 ซงจะสามารถแทนคา a ไดระหวาง -1 ถง 1 ซง a=-0.595 ดงนนจะได
afix = round( -0.595 × 27 ) = round(-76.16) = -76
คา -76 สามารถแปลงกลบเปนทศนยมไดเปน -76 / 27 = -0.59375 ซงมความคลาดเคลอนจากคา a เทากบ
7fix
2a - a = -0.59375 - (-0.595) = 0.00125
ซอฟทแวรสวนใหญสามารถรบคาจ านวนเตมฐานสบ (ไมวาจะบวกหรอลบ) นไปใชงานตอไปได ซงเรากไมจ าเปนตองแปลงเปนฐานสองใหยงยาก แตในกรณทตองการแปลงใหเปนเลขฐานสองกสามารถท าไดหลายวธ ดงน (ในทนคอรปแบบ 8 บต)
วธท 1 แยกเลขเปนสวนลบและบวก จะไดสวนลบจะเปนบตซายบตเดยวมคา -2-B+1 เสมอโดยท B = จ านวนบตทงหมด และสวนบวกกแปลงตามปกต เชน afix = -76 แตกเปนสวนลบกบบวกไดเปน afix = -128 + 52 = 100000002 + 001101002 = 101101002
วธท 2 ถาเปนเลขบวกใหแปลงตามปกต แตถาเปนเลขลบใหแปลงเปนเลขบวกโดยการบวก2B เขาไป ซงมนจะท าหนาทเปลยนความหมายของบตซายสด จาก -2-B+1 เปน 2-B+1 เชน ในทน afix = -76 แปลงเปนเลขบวกโดยบวกดวย 28 เขาไป จะได afix = -76 + 28 = 180 = 101101002
ตวอยางท 9.3 110010102 มคาเทากบเทาไร ถาเลขนเปนรปแบบ 2's complement หาในกรณทใหM=0, M=6, และ M=7 บอกดวยวาในแตละกรณสามารถแทนคาเลขไดในชวงใด
บทท 9 ระบบตวเลขในการประมวลผล 155
กรณ M=0 หรอ ต าแหนงจดทศนยมอยขวามอสด ( XXXXXXXX. )ใชแทนคาเลขไดในชวง -128 ถง 127 (คดมาจาก -2N-1 ถง 2N-1-2-M)ถาจะหาวา 110010102 มคาเทากบเทาไร อาจคดแยกเปนสองสวน คอสวนลบ กบบวก จะได
afix = 100000002 + 010010102
สวนลบคอบตซายสด จะมคาเทากบ -2N-1 เสมอ ในทน N=8 ดงนน ไดสวนลบ คอ -128 และสวนบวกแปลงเปนฐานสบปกตไดเทากบ 74 ดงนนจะได
a = -128 + 74 = -54
กรณ M=6 หรอ ต าแหนงจดทศนยมอยหลงสองบตซายมอเขยนเปนสญลกษณ คอ X X . X X X X X Xคาของแตละบต คอ -21 20 2-1 2-2 2-3 2-4 2-5 2-6
ใชแทนคาเลขไดในชวง -2 ถงเกอบ 2 (คดมาจาก -2N-1 ถง 2N-1-2-M)จะได afix = 100000002 + 010010102
a = (-2 ) + 20 + 2-3 + 2-5 = -0.84375ค าตอบของกรณ M=6 น สามารถคดมาจากกรณ M=0 กได โดยเอาคาทไดจากกรณ M=0 มา
หารดวย 2M ดงนa = -54 / 26 = -0.84375
กรณ M=7 หรอ ต าแหนงจดทศนยมอยหลงบตซายมอสด ( X.XXXXXXX )ใชแทนคาเลขไดในชวง -1 ถงเกอบ 1 (คดมาจาก -2N-1 ถง 2N-1-2-M)จะได afix = 100000002 + 010010102
a = (-1 ) + 2-1 + 2-4 + 2-6 = -0.421875เชนเดยวกน สามารถคดไดอยางเรว โดยเอาคาทไดจากกรณ M=0 มาใช ดงน
a = -54 / 27 = -0.421875
ตวอยางท 9.4 จะแปลงเลขตอไปน ซงเปนรปแบบ sign-magnitude ใหเปนรปแบบ 2's complement
ก) 011010012
ส าหรบเลขบวก ทงสองรปแบบมคาเทากน เพราะฉะนน รปแบบ 2’s complement กยงเปน 011010012
ข) 100101102
บทท 9 ระบบตวเลขในการประมวลผล 156
ส าหรบเลขลบ สามารถแปลงเปน 2’s complement ไดโดยน าเลข sign-magnitude มากลบบตทกบตจาก 1 เปน 0 และจาก 0 เปน 1 จากนนบวกผลลพธทไดดวย 1 ดงน
100101102 กลบบตทกบตจะได 011010012
จากนนบวก 1 ได 100101102+1 = 111010102 เปนรปแบบ 2’s complement ทตองการ
ขอดของ 2's complement
รปแบบ 2's complement เปนรปแบบทใชกนทวไปในการค านวณของคอมพวเตอร และในระบบประมวลผลสญญาณ เมอตองการเลขจ านวนเตมทแทนไดทงจ านวนบวกและลบ สาเหตของการใช 2's complement มาจากขอดในการค านวณ 2 ประการ คอ
1) การบวกเลขท าไดเหมอนการบวกปกตโดยไมตองค านงถงจ านวนบวก หรอลบขอยกตวอยางงาย ๆ เพอใหเหนภาพชด โดยใชเลข 2's complement ขนาด 4 บต และ M=0
(ไมมสวนของทศนยม) จะสามารถแทนคาไดในชวง -8 ถง 7ตวอยางท 1 3 + (-5) = ?
0 0 1 1 → 31 0 1 1 → -51 1 1 0 → -2
จะเหนไดวาการบวกเลขฐานสองทเกดขน ท าเหมอนปกต โดยไมตองสนใจวาจะเปนเลขลบหรอบวก ซงจะไดผลลพธสดทายถกตองเอง
ตวอยางท 2 -2 + (-5) = ?1 1 1 0 → -21 0 1 1 → -5
1 1 0 0 1 → -7ในกรณทเกดผลลพธบตแรกขนมา ใหตดทงและขอบเขตเฉพาะบตทเหลอ ซงจะไดผลลพธท
ถกตอง กรณนไมถอเปนโอเวอรโฟล
ตวอยางท 3 -4 + (-5) = ?1 1 0 0 → -41 0 1 1 → -5
1 0 1 1 1 → 7 ไดผลลพธผด!
+
+
+ +
+
+
บทท 9 ระบบตวเลขในการประมวลผล 157
ในกรณน ผลลพธทถกตองจรง ๆ คอ -9 ซงเกนชวงทจะแทนคาได และถอเปนการเกดโอเวอรโฟล การตรวจสอบวาเกดโอเวอรโฟลหรอไม อาจท าไดโดยตรวจสอบทบตเครองหมาย ถาจ านวนลบบวกกบจ านวนลบแลวไดเปนจ านวนบวก เหมอนในตวอยางขางตน หรอจ านวนบวกบวกกบจ านวนบวกแลวไดจ านวนลบ ถอวาเกดโอเวอรโฟลขน
2) การบวกเลขหลาย ๆ จ านวน ไมตองค านงถงการเกดโอเวอรโฟลในผลลพธกงกลาง ถาผลลพธสดทายไมเกดโอเวอรโฟล
ตวอยางเชน 4 + 5 - 3 = ? (ก าหนดใหใชเลข 2’s complement ขนาด 4 บต และ M=0 เหมอนขอ 1) ในการค านวณถากระท า 4+5 กอน จะได 9 ซงเกดโอเวอรโฟลแลวเพราะเกนชวงทจะแทนคาได แตถาพจารณา -3 เขาไปดวย จะไดผลลพธสดทายเปน 6 ซงอยในชวงทแทนได การเกดโอเวอรโฟลทผลลพธกงกลางในลกษณะน ส าหรบเลข 2’s complement จะไมมผลใด ๆ ถาผลลพธสดทายไมเกดโอเวอรโฟล โดยใหท าการบวกตอไปเรอย ๆ เหมอนไมมอะไรผดปกตเกดขน จนกระทงไดผลลพธสดทาย ซงจะไดผลลพธสดทายถกตองเอง ดงแสดงใหเหนดงตอไปน
0 1 0 0 → 40 1 0 1 → 5
1 0 0 1 → -7 ไดผลลพธกงกลางผด!1 1 0 1 → -3
1 0 1 1 0 → 6 ไดผลลพธสดทายถก!
ถาจะพจารณาวา ท าไมจงไดคาสดทายถกตอง กอาจท าไดโดยการแตกคาลบออกมาเปนสวนลบ และสวนบวก ดงน
4 → 45 → 5
-7 → -8+1 -3 → -8+5 6 → 6
อาจกลาวไดวา โอเวอรโฟลทางบวก และโอเวอรโฟลทางลบชดเชยกนหายไป ท าใหไดผลลพธสดทายถกตอง คณสมบตขอนของตวเลข 2's complement มผลดมากตอการประมวลผลสญญาณเพราะ มการประมวลผลหลาย ๆ อยางทใชการบวกสะสมคาเพอหาคาผลลพธสดทาย ตวอยางทเราไดเหนมาแลวกคอ การหาผลตอบของตวกรอง FI R เปนตน
เกดโอเวอรโฟลทางบวก
เกดโอเวอรโฟลทางลบ -8 สองตวหกลางกนหายไป เพราะ -8 คอบตซายสด ดงนนเหลอแค 1+ 5 = 6
+
+
+
+
+
++
+
บทท 9 ระบบตวเลขในการประมวลผล 158
ระบบเลของดรรชน (Floating-Point Number System)
ระบบเลของดรรชน หรอถาแปลตามตรงจากค าวา floating-point หมายถง ระบบเลขทมต าแหนงจดทศนยมลอยตว คอ ต าแหนงของจดทศนยมไมตดอยทต าแหนงเดยวเหมอนอยางกรณระบบเลขจ านวนเตม โดยมกลไกทใชในการชต าแหนงของจดทศนยม คอ การใชเลขชก าลง ระบบเลของดรรชนจะแบงจ านวนบตทจะใชแทนคาตวเลขเปนสองสวน คอ แมนทสซา (mantissa) และเลขชก าลง (exponent)
ผอานสวนใหญคงเคยเหน หรอเคยใชตวเลขทอยในรปของเลของดรรชนมาบางแลวไมมากกนอย ตวอยางเชน ตวเลข 0.003257 เราสามารถเขยนในรปของเลของดรรชน (ฐานสบ) ไดวา คอ3.257 × 10-3 ซงจะไดวาเลขนมแมนทสซา คอ 3.257 และตวชก าลง คอ -3 ซงรปแบบนถาหากมคนเขยนวา คานเทากบ 0.3257 × 10-2 ดวย กไมถอวาผด โดยมหลกงาย ๆ วา ถาเลอนจดทศนยมของแมนทสซาไปทางซาย 1 ต าแหนง ตองเพมคาตวชก าลงขนหนง และถาเลอนจดทศนยมของแมนทสซาไปทางขวา กจะตองลดคาตวชก าลงลง อยางไรกตาม เรานยมปรบ หรอนอรแมลไลซคาแมนทสซานใหมคาอยระหวาง 1 ถง 10 หรอ -1 ถง -10 เสมอ
ในท านองเดยวกน ส าหรบเลของดรรชนของเลขฐานสอง หลกการตาง ๆ ยงคงเหมอนฐาน 10เพยงแตจะใช 2 เปนตวฐานของเลขยกก าลงแทน ดงน
คาทแทน = (แมนทสซา) × 2 (ตวชก าลง) (9.4)
ทงคาแมนทสซา และตวชก าลงจะถกแปลงใหเปนระบบเลขจ านวนเตม (ฐานสอง) แบบบวกลบทมจ านวนบตตามรปแบบทตองการ โดยอาจใชรปแบบ 2’s complement หรอ sign-magnitude ในการแทนคากได และส าหรบแมนทสซานยมนอรแมลไลซใหมคาอยระหวาง 1 ถง 2 หรอ -1 ถง -2เสมอ ซงกหมายถงวา จดทศนยมของแมนทสซาจะมต าแหนงคงท คออยหลงบตทสองจากซายมอสวนตวชก าลงตองมคาเปนจ านวนเตมเสมอ ดงนน มต าแหนงจดทศนยมอยซายมอสด เชน ถาใชแมนทสซาขนาด 13 บต และตวชก าลงขนาด 4 บต จะเขยนรปแบบตวเลข ไดดงน
คาทแทน = X X . X X X X X X X X X X X × 2 X X X X . (9.5)
การนอรแมลไลซแมนทสซาน ท าใหเกดเหตการณทนาสนใจขน คอ ในกรณของเลขบวกซงแมนทสซาจะมคามากกวา 1 เสมอ ดงนนจะไดวาบตทสองจะตองมคาเปน 1 เสมอ และในท านองเดยวกน กรณของเลขลบ เราสามารถเขยนรปแบบของเลขทจะแทนคาเปนเลของดรรชน โดยแบงเปนกรณ
บทท 9 ระบบตวเลขในการประมวลผล 159
เลขบวก และลบซงแมนทสซาจะมคานอยกวา 1 เสมอ ดงนนจะไดวาบตทสองจะตองมคาเปน 0 เสมอดงน
คาบวก = 0 1 . X X X X X X X X X X X × 2 X X X X . (9.5)
คาลบ = 1 0 . X X X X X X X X X X X × 2 X X X X . (9.6)
จะสงเกตเหนไดวา ถาเรารบตเครองหมาย (คอ บตทหนงของแมนทสซา) บตทสองกจะมคาทแนนอนโดยปรยาย ดงนน จงนยมละโดยไมตองเกบคาของบตทสองในรปแบบของเลของดรรชน แตใหเปนทเขาใจกนวามนเสมอนมอย ดงนน รปแบบตวเลขในสมการท 9.5 และ 9.6 น สามารถใชเพยงแค 12 บตเพอแทนคาแมนทสซาได ทง ๆ ทจรง ๆ แลวมนมทงสน 13 บต ท าใหผลรวมของจ านวนบตทตองใชทงหมดในทน คอ 16 บต
ตวอยางท 9.5 จงหาคาของแมนทสซา และตวชก าลง เมอแปลงคาเลขตอไปนใหอยในรปแบบเลของดรรชนตามสมการท 9.5 และ 9.6 ใหใชรปแบบ 2’s complement ส าหรบทงแมนทสซา และตวชก าลง
ก) -7.687 ข) 0.005628
ก) ถาให x เปนคาทตองการแทน ในทน คอ x = -7.687 เราจะตองพยายามเขยน x ใหอยในรปของแมนทสซา คณกบก าลงของสองดงสมการท 9.4 สมมตให m = แมนทสซา และ e = ตวชก าลง นนคอ
x = m × 2e
เราสามารถหาไดวาตวชก าลงจะเปนเทาไรลวงหนาได โดยหา log2 ของสมการขางตน ดงน
log2( |x| ) = log2( |m × 2e| ) log2( |x| ) = log2( |m| × 2e ) log2( |x| ) = e + log2(|m|) e = log2( |x| ) - log2(|m|) (9.7)
เนองจาก |m| จะตองมคาระหวาง 1 ถง 2 ซงจะได log2(|m|) มคาเปนบวกระหวาง 0 ถง 1สวน e จะตองมคาเปนจ านวนเตมเสมอ ดงนน คา e หาไดจากการลบคาทศนยม (ทนอยกวา 1) ทง
บทท 9 ระบบตวเลขในการประมวลผล 160
จาก log2(|x|) เพอใหไดเปนคาจ านวนเตม หรอกลาวไดวา e หาไดจากการปดเศษคา log2(|x|) ไปทางดานลบ (จะท าใหได e เปนจ านวนเตมทนอยกวาหรอเทากบ log2(|x|) ) เขยนเปนสมการไดวา
e = floor( log2( |x|) ) (9.8)
โดยท floor เปนการปดเศษใหเปนจ านวนเตมไปทางดานลบ (เปนชอเดยวกบฟงกชนในMatlab ทท าหนาเดยวกนน) ในทนจะได
e = floor( log2(7.687) ) = floor(2.94242) = 2 = 00102
จากนนคาแมนทสซาหาไดจาก
m = xe2
(9.9)
ซงในทนจะได m = -7.687 / 22 = -1.92175จากนนแปลงคา m ใหอยในรปแบบ 2’s complement โดยใชวธทไดอธบายมาแลวในหวขอ
เรองระบบเลขจ านวนเตม จะได (ในทน N = 2 และ M=11)
mfix = round(-1.92175 × 211) = -3936 = 10000101000002
จะเหนไดวา บตท 2 (จากซาย) เทากบ 0 ซงตรงตามรปแบบของสมการท 9.6 ถาตดบตนทงเราจะไดสวนของแมนทสซาแทนไดดวย 12 บต เปน 1000101000002
ข) x = 0.005628 ใชวธเดยวกนกบขอ ก) ในการหาคาตวชก าลงได ดงน
e = floor( log2(0.005628) ) = floor(-7.47316) = -8 = 10012
และจะไดคาแมนทสซา คอ
m = 0.005628 / 2-8 = 1.440768mfix = round(1.440768 × 211) = 2951 = 01011100001112
บทท 9 ระบบตวเลขในการประมวลผล 161
จะเหนไดวา บตท 2 (จากซาย) เทากบ 1 ซงตรงตามรปแบบของสมการท 9.5 ถาตดบตนทงเราจะไดสวนของแมนทสซาแทนไดดวย 12 บต เปน 0011100001112
ตวอยางท 9.6 จงหาชวงของคาทสามารถแทนได เมอใชระบบเลของดรรชนทมรปแบบดงสมการท9.4 และ 9.5
กอนอนเราลองพจารณาแตละสวนแยกกนกอน โดยส าหรบตวชก าลง ซงใช 4 บต จะสามารถแทนคาไดตงแต -8 ถง 7 ส าหรบตวแมนทสซา ซงใช 12 บต แตเสมอนเปน 13 บตทมคา M=11 และN=2 การพจารณาขอบเขตทมนแทนไดจะไมเหมอนเลข 2’s complement ปกต เนองจาก แมนทสซาจะถกนอรแมลไลซ ดงนน จะแทนคาไดตงแต -2 ถง -1, 0, และ 1 ถง 2 อาจคดโดยละเอยดไดวา
ก) คาบวกมากสดของแมนทสซา คอ 01.111111111112 ซงมคาเทากบ 2 - 2-11
ข) คาบวกนอยสดของแมนทสซา คอ 01.000000000002 ซงมคาเทากบ 1ค) คาลบนอยสดของแมนทสซา คอ 10.111111111112 ซงมคาเทากบ -1 + 2-11
ง) คาลบมากสดของแมนทสซา คอ 10.000000000002 ซงมคาเทากบ -2 จากนน เราจะพจารณาขอบเขตของระบบเลของดรรชนนซงมอย 4 ขอบเขต ดงน
ก) คาบวกทมากทสด เกดเมอแมนทสซามคาบวกมากทสด และตวชก าลงมคาบวกมากทสด ซงจะไดคาเทากบ (2 - 2-11) × 27 = 255.9375ข) คาบวกทนอยทสด เกดเมอแมนทสซามคาบวกนอยทสด และตวชก าลงมคาลบมากทสด ซงจะไดคาเทากบ 1 × 2-7 = 0.0078125ค) คาลบทนอยทสด เกดเมอแมนทสซามคาลบนอยทสด และตวชก าลงมคาลบมากทสด ซงจะไดคาเทากบ (-1-2-11) × 2-7 = -0.0078163…ง) คาลบทมากทสด เกดเมอแมนทสซามคาลบมากทสด และตวชก าลงมคาบวกมากทสด ซงจะไดคาเทากบ -2 × 27 = -256
ตวอยางของเลของดรรชนขนาด 16 บตทไดยกตวอยางไปน มการใชงานในชพ TMS320C3xซงเปนตวประมวลผลในระบบเลของดรรชนของบรษท เทกซสอนสตรเมนส โดยมโครงสรางของบตทเกบในเฟรม 16 บตดงแสดงในรปท 9.1 ระบบเลของดรรชนทนยมใชกนในการประมวลผล ใชจ านวนบตทงสน 32 บต โดยแบงเปนแมนทสซา 24 บต และตวชก าลง 8 บต ซงจะสามารถแทนคาไดประมาณตงแต ±5.8×10-39 จนถง ±3.4×10-3.8 โครงสรางของเฟรมทแสดงในรปท 9.1 เปนรปแบบเลของดรรชนขนาด 32 บตทใชในชพ TMS320C3x และทถกก าหนดเปนมาตรฐาน IEEE 754
เลของดรรชนทใชในชพ TMS320C3x จะใชรปแบบ 2’s complement แทนทงแมนทสซาและตวชก าลง แตส าหรบมาตรฐาน IEEE 745 จะใชรปแบบ sign-magnitude แทนแมนทสซา และรป
บทท 9 ระบบตวเลขในการประมวลผล 162
แบบเลขจ านวนเตมบวกอยางเดยวแทนตวชก าลง โดยการคดคาชก าลงจรง ๆ จะน าคาเลขจ านวนเตมบวกนมาลบดวย 127
sign
sign
sign
แมนท สซาต วช ก าล ง
2381
IEEE 754 Format
แมนท สซาต ง
238 1
TMS320C3x Single-Precision Format
แมนท สซาต ง
114 1
TMS320C3x Short Format
รปท 9.1 ตวอยางของโดรงสรางเฟรมของระบบเลของดรรชน[14]
เปรยบเทยบเลขจ านวนเตม กบเลของดรรชน
มอยหลายจดทเราสามารถเปรยบเทยบระบบเลขจ านวนเตม กบระบบเลของดรรชนได จดแรกกคอ ลกษณะการแบงขนของมน ระบบเลขจ านวนเตมจะแบงขนทมขนาดคงทตลอดชวงทมนแทนคาได ซงกเนองมาจากการทมนมต าแหนงจดทศนยมทคงท สวนระบบเลของดรรชนจะแบงขนทมขนาดไมเทากน โดยเมอคามขนาดนอย ๆ (ใกลศนย) การแบงขนกจะละเอยด หรอขนาดของขนจะเลก แตเมอขนมขนาดใหญขน ขนาดของขนกจะใหญขน ทงน การแบงชวงวาจะมขนาดของขนทงหมดกขนาด และแตละขนาดมการใชงานในชวงกวางแคไหนกขนอยกบการเลอกจ านวนบตใหกบแมนทสซา และตวชก าลง
ขอยกตวอยางงาย ๆ เพอเปรยบเทยบกน ดงน ถามระบบเลขจ านวนเตมทมขนาด 8 บต และชวงของคาทแทนไดคอ ระหวาง -R ถง R จะไดวาตลอดชวงนมการแบงขนทงสนเทากบ 256 ขน โดยแตละขนมระยะหางเทากน ดงแสดงในรปท 9.2
ในขณะเดยวกน ถาเราใชเลข 8 บตนเปนเลของดรรชน โดยแบง 2 บตใชเปนตวชก าลง (e)และเหลอ 6 บตเปนแมนทสซา จะไดวาเราแบงการแทนคาออกเปนสชวง และในแตละชวงมจ านวนขนเทากนเทากบ 64 ขน ชวงแรก คอ ชวงท e = -2 สมมตวาไดขนาดขน คอ Q0 จะม 32 ขนในชวงบวก และ32 ขนในชวงลบ ชวงทสอง คอ ชวงท e = -1 จะไดขนาดของขนเปนสองเทาของ Q0 ดง
บทท 9 ระบบตวเลขในการประมวลผล 163
แสดงในรปท 9.2 ม 32 ขนในชวงบวก และ32 ขนในชวงลบเชนกน เมอ e มากขน ๆ ขนาดของขนกจะใหญขนทละสองเทาตวเรอยไปจนถงคา e ตวสดทาย
จะเหนไดวา การแบงขนของระบบเลของดรรชนมลกษณะทฉลาดกวา เนองจาก มการปรบนยส าคญของเลขทใชแทนใหเหมาะสมตามคาขนาดของตวเลข กลาวคอ ทคาของตวเลขมาก ๆ ขนาดของขนกจะกวาง สวนทคาตวเลขนอย ๆ ขนาดของขนกมคาเลกลง การท าเชนน ท าใหระบบเลของดรรชนทจ านวนบตมากพอสมควร จะมความสามารถในการแทนตวเลขไดในชวงทกวางกวาระบบแบบจ านวนเตมมาก และแทนไดดแมนย ากวา เพราะมนยส าคญทเหมาะสมกบขนาดของตวเลข โดยทวไป ระบบเลของดรรชนกจะใหความคลาดเคลอนในการประมวลผลทต ากวาดวย
การใชระบบเลของดรรชน มขอเสยในดานตนทนทแพงกวา เพราะ วงจรทใชในการประมวลผลของเลของดรรชนท าไดยากกวาเลขจ านวนเตม นอกจากน วงจรของระบบเลของดรรชนยงใหญกวา, ท างานไดชา, และกนไฟมากกวาดวย โดยทวไป เราจะทดสอบการท างานของระบบกบระบบเลขจ านวนเตมกอนวาสามารถใชไดหรอไม ถาไมไดจงคอยลองระบบเลของดรรชน ซงระบบเลของดรรชนจะท างานไดดกวามากในระบบทมสญญาณทงคาสง ๆ และต า ๆ และเราตองการรกษานยส าคญของสญญาณทมคาต า ๆ ไว
บทท 9 ระบบตวเลขในการประมวลผล 164
กรณเลขจ านวนเตม กรณเลของดรรชน
...
...
...
...
8Q0
4Q0
2Q0
Q0
32 ข น, e = 0
32 ข น, e = 1
32 ข น, e = -1
32 ข น, e = -2
R
R/2
R/4
-R
~~
0
R
~~
-R
256 ข น
Q
ช วงโอเวอร โฟลด านต า แทนค าไม ได
...
รปท 9.2 เปรยบเทยบการแบงขนของระบบเลขจ านวนเตม และเลของดรรชน
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 165
บทท 10ความคลาดเคลอนจากการใชระบบเลขจ านวนเตม
ในบทท 9 เราไดรจกลกษณะของระบบเลขจ านวนเตมแบบ 2's complement มาพอสมควรแลว ในบทนจะไดกลาวถงความคลาดเคลอนทเกดขนในระบบ เมอน าเอาระบบเลขนมาใชแทนคาสญญาณ และมาใชในการประมวลผล ความคลาดเคลอนเหลาน เกดจากการแบงขนสญญาณ, การปดเศษสมประสทธ, โอเวอรโฟล, และการปดเศษหลงการคณ การวเคราะหในบางสวนจะมการใชทฤษฎของตวแปรแรนดอม (random variable) บาง ซงผทไมเขาใจกอาจขามไปในสวนของทมาของการวเคราะหนน ๆ และไปสนใจในสวนของผลการวเคราะหไดเลย ในสวนทายของบทจะไดแนะน าการจ าลองการประมวลผลแบบระบบเลขจ านวนเตมโดยใช Matlab และตวอยางของโปรแกรมภาษาซทใชงานระบบเลขจ านวนเตม
การแบงขนสญญาณ (Signal Quantization)
กระบวนการแรกทเกดความคลาดเคลอนขนในระบบกคอ การแบงขนสญญาณ ซงกระท าหลงจากการสมสญญาณ การแบงขนสญญาณ หมายถง การแทนคาสญญาณทถกสมมาซงมความละเอยดไมจ ากด (เพราะมาจากระดบสญญาณแอนะลอก) ดวยระบบเลขฐานสองทมจ านวนบตจ ากดซงกจะเกดความคลาดเคลอนจากการแทนคาขน การแบงขนสญญาณนในทางปฏบตรวมอยในตวแปลง แอนะลอกเปนดจตอล (A/D) แตในทางทฤษฎแยกการแปลงสญญาณแอนะลอกเปนดจตอลเปนสองกระบวนการ คอ การสมซงท าใหไดสญญาณไมตอเนอง และการแบงขนสญญาณซงท าใหไดสญญาณทมความละเอยดทางขนาดจ ากดลง
ในทนจะอธบายเฉพาะกรณทใชระบบเลขจ านวนเตม (fixed-point) ซงจะใหขนาดของขนคงทตลอดชวงทแทนคาสญญาณ การใชจ านวนบตยงมากเทาไรกจะไดการแบงขนทละเอยด และแทนสญญาณจรงไดถกตองมากขนเทานน ถาเราให B เปนจ านวนบตทใชแทน 1 คาของสญญาณ, R เปนชวงของคาสญญาณทสามารถแทนได, และ Q แทนเปนความกวางของขน จะไดวา
จ านวนขนทงหมด = RQ
2 B= (10.1)
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 166
Q
R
สญญาณทถกแบงขนแลว Q
สญญาณจรง ณ x(n) ใดๆ
x ng( )
e n( )x n( )
T
จดทถกสมใดๆ
รปท 10.1 แสดงการแบงขนสญญาณ (เสนประในแกนตงเปนต าแหนงทมการสม)
สญญาณกอนทจะแบงขน จะตองมคาอยในชวง -R/2 ถง R/2 ถาเราพจารณาตวอยางสญญาณทจดหนง ๆ คอ x(n) ซงหลงจากถกแบงขนแลวจะมคาเปลยนไปเพอใหตรงกบขนทแทนคาได สมมตวาไดคาใหมเปน xq(n) ถาเราใชกฎเกณฑการปดเศษหาขนทใกลทสด (rounding) จะไดวา x(n) ทมคาอยระหวาง xq(n) - Q/2 ถง xq(n) + Q/2 จะถกปดเปนคา xq(n) ซงกจะท าใหผลตางระหวาง xq(n)และ x(n) มคาไมเกน Q/2 หรอครงหนงของขน
เรานยามผลตางนเปน e(n) ซงเปนฟงกชนของความคลาดเคลอนทเกดขนจากการแบงขนสญญาณ จะได
e(n) = xq(n) - x(n) (10.2)และ - Q/2 < e(n) < Q/2 (10.3)
สมการน คลายกบสมการท 9.3 ซงเปนคาคลาดเคลอนของการแทนคาเปนเลขจ านวนเตมเพยงแตคราวนคาทจะแทนเปนจดในสญญาณ เพราะฉะนนคาคลาดเคลอนกจะเกดขนททก ๆ จดของสญญาณ และคา Q หาไดจากสมการท 10.1 โดยจะมหนวยเปนแรงดนของสญญาณแอนะลอก
ถาสมมตให xq(n) ซงเปนสญญาณหลงจากทถกแทนคาดวยจ านวนเตม เราอาจมองวาความคลาดเคลอนทเกดขนกบ xq(n) เปนเหมอนสญญาณรบกวนทถกเตมเขาไปในสญญาณเรมแรกนนคอ xq(n) = x(n) + e(n) ดงนน e(n) จงมอกชอหนงวา เปนสญญาณรบกวนทเกดจากแบงขนสญญาณ (quantization noise)
ฟงกชน e(n) นเปนฟงกชนทมคาไมแนนอน (random) ชนดหนง เพราะเราไมสามารถรลวงหนาไดวาแตละคาของ e(n) จะเปนเทาไรแน (เพราะไมรวาสญญาณทจะแทนจะมรปรางอยางไร) แตรแนวา สญญาณความคลาดเคลอนทจะเกดจะมคาอยระหวาง -Q/2 ถง Q/2 เทานน เพอใหงายตอการวเคราะห เราจะสมมตใหคาของ e(n) ทมการกระจายตวสม าเสมอ (uniform distribution) ในชวงของคาระหวาง -Q/2 ถง Q/2 หรอมฟงกชนการกระจายตวของโอกาส (probability density function) เปน
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 167
p(e) = 1/Q, - Q/2 < e < Q/20 , e = คาอน ๆ
(10.4)
จากทฤษฎของความนาจะเปน เราจะไดวาคาเฉลยของ e มคาเทากบ 0 และคาเฉลยของก าลงสองของ e มคาเทากบ Q2/12 ซงหาไดจาก
P Q12q
2= ⋅ =
−∫ e p e de Q
Q 2
2
2( )
/
/(10.5)
คาเฉลยของก าลงสองของสญญาณน กคอ คาก าลงเฉลยนนเอง ดงนน ขอใชสญลกษณแทนคานวา Pq ซงในทนเราหาคาก าลงเฉลยของสญญาณรบกวนจากการแบงขนสญญาณไดเทากบ Q2/12สงเกตวาก าลงของสญญาณรบกวนจะแปรตาม Q2 ซงแปรผกผนกบจ านวนบต
ถาเราทราบวาก าลงเฉลยของสญญาณมคาเทากบ Ps เราสามารถหาคาอตราสวนระหวางก าลงของสญญาณต าก าลงของสญญาณรบกวน หรอ SNR ทเนองมาจากสญญาณรบกวนของการแบงขนสญญาณได คอ
SNR = PPA /D
S
q
หรอ SNRA/D (dB) = Ps (dB) - Pe (dB) (10.6)
Ps อาจหาไดจาก vrms2 ซงคา vrms ของสญญาณหนง ๆ นนขนกบลกษณะรปรางของสญญาณ
ในการวเคราะหตอไป เราอาจนยามคาคณลกษณะของสญญาณคาหนง เพอบงบอกถงคา vrms ของสญญาณ ซงคานนกคอ loading factor หรอ LF ซงเปนคาอตราสวนระหวาง vrms ตอ vp (PeakVoltage, คาสงสดของสญญาณ) ของสญญาณหนง ๆ นนคอ
LF = vvrms
p(10.7)
สญญาณทมระดบสญญาณสงสดอยหางจากระดบสญญาณ ณ เวลาอน ๆ มาก จะมคา LF ทต ากวาสญญาณทมระดบสญญาณสงสดอยพอ ๆ กบระดบสญญาณ ณ เวลาอน ๆ เชน สญญาณซายนม
vrms = vp
2 ดงนน จะม LF = 1
2= 0.707 สวนสญญาณสเหลยมม vrms = vp ดงนน จะม LF = 1 ซง
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 168
เปนคาทมากทสดเทาทจะเปนไปไดส าหรบสญญาณใด ๆ ส าหรบสญญาณเสยงคนพด มคา LFประมาณ 0.15 - 0.2 (จากการทดลอง) เปนตน
จากนยามของ LF เราสามารถหาคาก าลงของสญญาณไดเปน
Ps = vrms2 = (LF)2vp
2 (10.8)
สมมตวาเราสามารถรคาสงสดของสญญาณ คอ รวาสญญาณมคาอยระหวาง -vp และ +vp และสามารถเลอกคาในชวงนเปนชวงทตวแปลงแอนะลอกเปนดจตอลสามารถแทนคาไดพอด นนคอ คาR ในรปท 10.1 มคาเทากบ 2vp เมอแทนคา R ลงในสมการท 10.1 จะไดวา ขนาดของ 1 ขนของสญญาณมคาเปน
Q = 22vpB (10.9)
ดงนน ได SNR อนเนองมาจากการแบงขนสญญาณ มคาเปน
SNRA/D = PP
vv
s
q
p
pB
= (LF)2 2
222
12
= 3 (LF)2 (22B) แปลงเปน dB โดยใส 10log( ) จะได
SNRA/D = 10 log 3 (LF)2 (22B) dB = (2B)10log(2) + 10log(3) + 20log(LF) dB = 6.02B + 4.77 + 20log(LF) dB (10.10)
ขอสงเกต และพจารณาส าหรบ คา SNRA/D ทไดจากสมการท 10.10 น คอ1) SNRA/D มคาแปรตามจ านวนบต (B) โดย SNR จะมคามากขน 6 dB ตอ 1 บต ทเพมขน2) SNRA/D ยงแปรตามคา LF ดงแสดงในรปท 10.2 ซงวาดกราฟระหวาง SNRA/D กบ LF ท
จ านวนบตตาง ๆ3) คา SNRA/D ทไดนเปนคาทมากเกนกวาทเราจะไดจรงในทางปฏบต เนองจากในการหาคา
SNRA/D น เราไดสมมตใหคาสงสดของสญญาณ เปนคาสงสดท A/D สามารถแปลงคาไดพอด แตในทางปฏบตเราอาจไมรคาสงสดของสญญาณ จงมกเผอใหคาสงสดท A/D สามารถแปลงได มคามากกวาชวงทจะใชงานสกเลกนอย นอกจากน ภายในวงจร A/D เองในทางปฏบตกจะมความคลาด
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 169
เคลอนในการแปลงคาดวย ซงกจะสงผลใหมสญญาณรบกวนอนเนองมาจากความคลาดเคลอนของวงจร A/D เองปนเขามาอก
4) การเลอกวา จะใชขอมลดจตอลกบตแทน 1 คาสญญาณ นอกจากขนกบลกษณะของงานวาสามารถยอมรบสญญาณรบกวนไดทเทาไรแลว กยงขนกบ SNR ของสญญาณแอนะลอกขาเขาดวยสญญาณขาเขาโดยทวไป มกจะมสญญาณรบกวนปนมาจากแหลงอนอยแลว ดงนน จะมคา SNR อยคาหนง ถาเราใชจ านวนบตทให SNRA/D สงกวา SNR ของสญญาณขาเขามาก ๆ กอาจไมมประโยชนมากนกเทยบกบตนทนทเพมขน เพราะไมวาจ านวนบตจะเปนเทาไรกตาม SNR ของสญญาณขาออกกจะยงถกจ ากดดวย SNR เรมตนของสญญาณขาเขา (ไมมทางได SNR ดกวา SNR ขาเขา)
SNRA/D
(dB)
LF
B=14 บ ต
B=12 บ ต
B=10 บ ต
B=8 บ ต
รปท 10.2 แสดงคา SNRA/D ในฟงกชนของจ านวนบต (B) และ loading factor (LF)
ตวอยางท 10.1 ตวแปลงแอนะลอกเปนดจตอลขนาด 13 บต (รวมบตเครองหมาย) ตวหนง ใหสญญาณดจตอลขาออกเปนแบบ 2’s complement มการปรบใหรบขนาดของสญญาณขาเขาไดเตมทในชวง -5 โวลท ถง 5 โวลท จงหาวา
1) ขนาดของขนของการแปลงมคาเทากบเทาไร2) ถาสญญาณขาเขามคา 2V ควรไดสญญาณขาออกเปนเทาไร และมคาคลาดเคลอนเทาไร3) ถาใชกบสญญาณขาเขาทมคา vrms = 1.5 V จะได SNRA/D เทากบเทาไร
1) ขนาดของขน มคาเทากบ Q = RB2
โดยท R = ชวงของคาทแทนได = 5 - (-5) = 10 VB = จ านวนบตตอ 1 คา = 13 บต และ 2B = จ านวนขนทงหมด = 213 = 8192
แทนคา R และ B ลงไปจะได Q = 10 / 8192 = 1.2207 mV
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 170
สงเกตวา ในกรณนการแบงขนไมลงตวเหมอนทเราพบเหนในเรองระบบเลข 2’s complementในบทท 9 (R ไมเปนคาเทากบ 2N โดย N เปนจ านวนเตม) ดงนนจะไมสามารถบอกต าแหนงจดทศนยมไดแนนอนวาอยหลงบตใด และคาของแตละบตกไมลงตวเปนก าลงของสอง อยางไรกตามการแบงขนทไมลงตวของสญญาณขาเขานไมมผลส าคญใด ๆ เลย ตรงกนขาม หากพยายามท าใหขนลงตว เชน ถาสญญาณขาเขาอยระหวาง ± 5V แตปรบให A/D รบคาไดในชวง ± 8V กจะท าใหสญเสยชวงทแปลงคาไดไปโดยเปลาประโยชน และท าให SNRA/D แยลงการแบงขนใหลงตว จ าเปนตองใชส าหรบการแปลงคาสมประสทธของระบบใหเปนระบบ
เลขจ านวนเตม เพราะจะท าใหการปดเศษหลงการคณท าไดงาย ดงจะไดกลาวตอไป
2) ถาสญญาณขาเขา = 2V ขนทใกลเคยง 2V มากทสด หาไดจาก round(2V / Q) = round(1638.4) = 1638 ดงนน ควรได 1638 เปนคาผลลพธจาก A/D และคานจรง ๆ แลวมคาเทยบเทากบสญญาณแอนะลอกเทากบ 1638 *Q ≈ 1.999512 V หรอมคาความคลาดเคลอนในการแปลงประมาณ
1.999512 V - 2 V = -0.488 mV
3) ถาสญญาณขาเขาม vrms = 1.5 V
จะได SNRA/D = PP
vQ mV
s
q
rms = = 1.522
2 212 1 2207 12( . ) = 1.8119 × 107
SNRA/D = 10log(1.8119 × 107) = 72.6 dB
ตวอยางท 10.2 สญญาณเสยงสญญาณหนงมคา LF ประมาณ 0.18 ตองการ SNRA/D = 80 dB จะตองใชจ านวนบตของ A/D อยางนอยเทาไร
แทนคา SNRA/D ลงในสมการ 10.10 และหาคา B ดงนSNRA/D = 6.02B + 4.77 + 20log(LF) 80 = 6.02B + 4.77 + 20log(0.18) B = 14.97
ดงนน ตองการ A/D ทมจ านวนบตเทากบ 15 บต
หมายเหต การเกบเสยงในแผนซด ใชจ านวนบตเทากบ 16 บต ซงถาน ามาใชกบสญญาณเสยงในขอนกจะให SNR ดกวา 80 dB ซงถอวาอยในระดบทดมาก
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 171
ความคลาดเคลอนจากการปดเศษสมประสทธ (Coefficient Rounding)
ความคลาดเคลอนจากการปดเศษสมประสทธ เกดจากการทเราน าคาสมประสทธของระบบทไดออกแบบไวไปใชกบระบบเลขจ านวนเตม ซงตองแทนคาสมประสทธทกตวดวยจ านวนเตมทมจ านวนบตจ ากด (โดยทวไปใช 2’s complement) ซงกแนนอนวาจะตองเกดความคลาดเคลอนกบคาสมประสทธเหลานน การแทนคาสมประสทธดวยจ านวนเตมน เรยกอกอยางหนงวา การปดเศษสมประสทธ เพราะเปนการปดใหคาสมประสทธไปลงทคาทสามารถแทนคาไดดวยจ านวนเตม
ความคลาดเคลอนทเกดขนกบสมประสทธจะสงผลถงความคลาดเคลอนของลกษณะของระบบจากทไดออกแบบไว ไดแก ผลตอบสนองเชงความถมรปรางเปลยนไป, ความถตดมคาเปลยนไป, ต าแหนงของโพล และศนยเปลยนไป จนถงกระทงระบบเสยความมเสถยรภาพไป ผลดงกลาวจะมมากนอยขนอยกบ
1) จ านวนบตทใช จ านวนบตนอยลงยอมสงผลกระทบมากขน2) ชนดของตวกรอง ผลของความคลาดเคลอนตอตวกรอง IIR จะมากกวาตวกรอง FIR มาก
และนอกจากนตวกรองประเภท BPF และ BSF ทมแถบความถแคบ ๆ มแนวโนมทจะไดรบผลกระทบมากกวาตวกรองแบบอน ๆ
3) อนดบของตวกรอง ผลกระท าตอตวกรองทมอนดบสงจะมากกวาตวกรองทมอนดบต าขอนสามารถแกไขไดโดยการแตกตวกรองทมอนดบสง ใหอยในโครงสรางอนกรม หรอขนานของตวกรองทมอนดบสอง ดงทไดแสดงตวอยางในบทท 8
เราบอกไดเพยงวาความคลาดเคลอนของสมประสทธท าใหคณลกษณะของระบบเปลยนไป แตจะเปลยนไปอยางไร มากนอยแคไหน และอยในภาวะทยอมรบไดหรอไมนน ยงไมสามารถหาสตรทวไปทจะบอกได แนวทางทดทสดกคอ ลองปดเศษสมประสทธดเปนเฉพาะกรณ ๆ ไป แลวน าสมประสทธชดใหมทไดหลงจากการปดเศษไปตรวจสอบด เชน ถาเปนตวกรองดจตอลกตรวจดวาผลตอบสนองเชงความถเปลยนไปอยางไร
สมมต ในระบบมสมประสทธคาหนงเทากบ a และเราตองการน าไปใชกบตวเลข 16 บต (2’scomplement) กอนอนตองเลอกต าแหนงจดทศนยมของเลขจ านวนเตมกอน ในกรณทคาสมประสทธทกคามคาอยระหวาง -1 ถง 1 เราสามารถเลอกให N=1 และ M=15 ได (ขอทบทวนวา N คอ จ านวนบตหนาจดทศนยม และ M คอจ านวนบตหลงจดทศนยม) แตถามสมประสทธบางตวทมคาเกนชวง -1 ถง 1 กอาจตองเลอกให N มากกวา 1
หลงจากเลอกจ านวนบต และต าแหนงของจดทศนยมแลว กสามารถหาคาของสมประสทธทจะมคาเปลยนไปได สมมตให !a คอคาของสมประสทธหลงการปดเศษ จะไดวา
!a = round(a × 2M) / 2M (10.11)
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 172
เราจะใชสมการนกระท ากบสมประสทธทกคา และจะไดสมประสทธชดใหม คอชดหลงการปดเศษ ซงจะน าไปวเคราะหหาผลตอบสนองเชงความถ หรอลกษณะอน ๆ ตอไป อยาลมวา คา !a ทไดนเปนคาทค านวณขนมาเพอไปใชวเคราะหผลของความคลาดเคลอนเทานน แตคาทจะน าไปใชจรง ๆ คอ afix = round(a × 2M) ซงมคาเปนจ านวนเตม
ตวอยางท 10.3 ตวกรองบตเตอรเวอรธผานต าอนดบสอง ม ω’c = 0.4π มฟงกชนถายโอน ดงน
H z a z a zb z b z
( ) = a1
0 + ++ +
− −
− −1
12
2
11
22
ตองการน าไปใชกบระบบซงแทนตวเลขดวย 2’s complement 6 บต จงหาคาสมประสทธทจะน าไปใช (ตอบเปนจ านวนเตมฐานสบกได) และหากราฟของผลตอบสนองเชงความถทคลาดเคลอนไป
ตารางท 10.1 แสดงคาผลลพธของคาสมประสทธทแปลงเปนจ านวนเตม ซงเปนคาทจะน าไปใชงาน และคาสมประสทธหลงการปดเศษ ซงจะเปนคาทจะน าไปวเคราะหความคลาดเคลอนในขอนพบวา สมประสทธทกตวมคาอยระหวาง -1 ถง 1 เพราะฉะนนสามารถใชรปแบบ N=1และ M=5 ไดในทนจะขอแนะน าการใช Matlab ซงแสดงในโปรแกรมท 10.1 ในการค านวณคา
สมประสทธ และวาดผลตอบสนองเชงความถทคลาดเคลอนไปเทยบกบตวตนฉบบ โปรแกรมนเรยกใชฟงกชน butter ใน DSP Toolbox ใน Matlab ซงจะค านวณคาสมประสทธเรมตนของตวกรองบตเตอรเวรธทตองการ แลวเกบไวในเวคเตอร a และ b โดยท a = [a0 a1 a2] และ b = [b0
b1 b2] คาทไดแสดงไวในคอลมนทสองของตารางจากนนโปรแกรมจะค านวณคาสมประสทธในรปจ านวนเตม แลวเกบผลลพธไวในเวคเตอร
afix และ bfix ในการค านวณจะเรยกใชฟงกชน fixpnt.m โดยผานคา M และ N ใหกบฟงกชนฟงกชนนจะท าการตรวจสอบวา คาสมประสทธทรบมาสามารถแปลงเปนจ านวนเตมในรปแบบทก าหนดไดหรอไม ถาอยในชวงทแปลงได (ระหวาง 2-(N-1) ถง 2N-1 ) กจะแปลงให ถาอยนอกชวงกจะแจงวามขอผดพลาดขน คาทแปลงไดแสดงไวในคอลมนทสามของตารางส าหรบคาสมประสทธหลงการปดเศษ ท าโดยการน า afix และ bfix มาหารดวย 2M ซงไดผล
ลพธดงแสดงในคอลมนทส และคาสมประสทธหลงการปดเศษนจะถกน าไปใชหาผลตอบสนองเชงความถทเปลยนไปซงไดแสดงไวในรปท 10.3จดทตองระวง คอ คา b0 ซงจะตองมคาเปน 1 เสมอส าหรบตวกรอง IIR ทว ๆ ไป คา b0 นจะ
ไมถกน าไปใชไมวาเราจะใชโครงสราง direct form 1 หรอ 2 กตาม ดงนน คา b0 เปนคาทจะไมเกดความคลาดเคลอนขน ในโปรแกรมท 10.1 ไดบงคบให bfix(1) = 2^M ซงจะท าใหได b0 หลงการปดเศษเปน 1 เสมอ
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 173
สมประสทธ คาสมประสทธจรง = a(ค านวณจาก butter ใน Matlab)
คาจ านวนเตมทน าไปใชafix = round(a × 2M)
คาสมประสทธหลงการปดเศษ!a = afix / 2M
a0 0.20657208382615 7 0.21875a1 0.41314416765230 13 0.40625a2 0.20657208382615 7 0.21875b0 1 ไมใช 1b1 -0.36952737735124 -12 -0.375b2 0.19581571265583 6 0.1875
ตารางท 10.1 สมประสทธทเปนค าตอบของตวอยางท 10.3
M=5; N=1;[a,b]=butter(2,0.4);afix=fixpnt(a,M,N);bfix=fixpnt(b,M,N); bfix(1)=2^M;freqres(a,b,2)hold onfreqres(afix/2^M, bfix/2^M, 2)hold off
โปรแกรมท 10.1 ex10_7.m ส าหรบหาสมประสทธทแสดงในตารางท 10.1
function y=fixpnt(x,M,N);
max_y = 2^(M+N-1); %หาคาสงสดทแทนไดy = round(x*2^M); %ท าเปนจ านวนเตมif max(abs(x)) > max_y %ตรวจสอบวาอยในชวงทสามารถแทนคาไดหรอไม error('Overflow Error when converting to fixed-point!');end
y = y - (y==max_y); %ในกรณท x=2N-1 พอด จะได y = 2M+N-1 เปนจดทเกดโอเวอรโฟล ทางบวกพอด แตจะอนโลมใหใชไดโดยใช y = 2M+N-1 - 1
โปรแกรมท 10.2 ฟงกชน fixpnt.m ส าหรบแปลงเปนคาเลขจ านวนเตม จ านวนบต = M+N
หล งป ดเศษส มประส ทธ
ก อนป ดเศษส มประส ทธ
ω′( เรเด ยน)πππππ
รปท 10.3 ผลตอบสนองเชงความถกอน และหลงการปดเศษสมประสทธของตวอยางท 10.3
%หาสมประสทธของ LPF มอนดบ=2 และความถตด=0.4π
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 174
โปรแกรมท 10.1 น สามารถน าไปใชกบการตรวจสอบความคลาดเคลอนของตวกรองใด ๆไดโดยการแกบรรทดทค านวณสมประสทธเรมตน [a, b] ใหหาคาสมประสทธของตวกรองทตองการเทานน ในกรณทมคาสมประสทธบางตวมคาเกนชวง -1 ถง 1 โปรแกรมกจะหยดการท างาน และแจงใหทราบ ซงผใชกจ าเปนจะตองเปลยนคา N ใหมากขนจนกวาชวงทแทนคาไดจะครอบคลมคาของสมประสทธได โดยปกตสมประสทธทกตวจะปดเศษดวยคา N (และ M) เหมอนกนหมด แตในบางโครงสราง เชน โครงสราง IIR แบบ direct form 2 อนญาตใหสมประสทธของโพลโนเมยลเศษ และโพลโนเมยลสวนใชคา N (และ M) ตางกนได ซงรายละเอยด และตวอยางจะไดอธบายในหวขอเรองการจ าลองระบบทใชจ านวนเตมใน Matlab ตอนทายของบทน
การวเคราะหผลของความคลาดเคลอนจากการปดเศษสมประสทธเพยงอยางเดยว มไดเปนหลกประกนรอยเปอรเซนตวา เมอน าไปใชจะไดระบบทมผลตอบสนองเชงความถเปลยนไปเหมอนทไดวเคราะหไว โดยเฉพาะอยางยงถาน าไปใชทจ านวนบตต า ๆ ทงนเนองจาก ยงจะมผลจากความคลาดเคลอนอนในการประมวลผลรวมเขามาอกดวย ซงเราจะไดกลาวถงในหวขอถดไป การวเคราะหความคลาดเคลอนจากการปดเศษเปนการวเคราะหเบองตน ซงท าไดงาย และรวดเรว การวเคราะหโดยละเอยดอาจตองท าโดยการจ าลองระบบใหประมวลผลดวยระบบเลขจ านวนเตมตามทจะใชจรง ๆ แลวดผลลพธวาเปนอยางไร
ความคลาดเคลอนจากโอเวอรโฟล (Overflow)
โอเวอรโฟล คอ เหตการณทผลลพธของการประมวลผลมคาเกนชวงทจะสามารถแทนคาไดโอเวอรโฟลทจะกลาวถงในหวขอน คอ โอเวอรโฟลทเกดจากผลลพธของการบวก กอนอนลองพจารณาดกอนวา เมอเกดโอเวอรโฟลกบผลลพธของการบวกเลข 2’s complement จะสงผลอยางไรกบตวเลขนน ลองพจารณาตวเลข 2’s complement แบบ 8 บต ทม M=0 ( แทนคาตวเลขไดในชวง-128 ถง 127 ) สมมตเราตองการหาผลลพธของ 100 + 87 ซงผลลพธทได คอ 187 ซงเกนชวงทจะแทนคาได ลองดวาการบวกเลข 2’s complement จะใหผลลพธอะไรออกมา ดงน
0 1 1 0 0 1 0 0 → 1000 1 0 1 0 1 1 1 → 871 0 1 1 1 0 1 1 → - 69
ปรากฏวาไดผลลพธ คอ -69 หรอมาจากผลลพธทถกตองลบดวย 28 นนคอ 187 - 256 = -69เราสามารถพสจนหาสตรทวไปไดไมยากวา ผลลพธทเกดโอเวอรโฟลจะมคาเปลยนไปดงแสดงในกราฟในรปท 10.4 โดยแกนนอนแทนคาของผลลพธทถกตอง และแกนตงแทนคาทจะได จด + ทแสดงไวในกราฟ คอ ผลลพธของการค านวณขางตน (คาแกนนอนเปน 187 และแกนตงเปน -69)
+ +
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 175
128
-128
รปท 10.4 กราฟระหวางผลลพธทถกตองกบผลลพธทเกดโอเวอรโฟล (กรณ 8 บต, M=0)
จากกราฟจะเหนไดวา โอเวอรโฟลท าใหผลลพธทไดเปลยนจากหนามอเปนหลงมอทเดยวไมไดเปนเหมอนสญญาณรบกวน หรอความเพยนทเกดขนเหมอนกบความคลาดเคลอนทมาจากสาเหตอน ๆ ดงนน โอเวอรโฟลอาจท าใหสญญาณขาออกเสยรปรางจนดไมรเรองไปเลยกได ถาหากปลอยใหเกดขน
อยางไรกตาม โอเวอรโฟลเปนความคลาดเคลอนทสามารถปองกนได โดย1) ลดขนาดของสญญาณขาเขา หรอ ใชตวคณลดทอนทสญญาณขาเขา หรอ ใชวธเลอนบต
ไปทางซาย (left shift) ซงการเลอนบตไปทางซาย 1 บตเทากบการหารดวย 22) สเกลคาของสมประสทธทเปนตวคณสญญาณไปขางหนาลง (สมประสทธทไมใชตวคณ
ของสญญาณปอนกลบ) การดวาตองลดคาสมประสทธตวใดบางนน ขนอยกบโครงสรางของระบบการปรบลดขนาดของสญญาณ หรอสมประสทธขางตน ถาลดมากเกนไป จะท าใหสญญาณม
ขนาดเลกเกนความจ าเปน ซงสงผลให SNR ต าลง การพจารณาวาตองลดคาลงเทาไร อาจท าโดยการทดลอง หรอจ าลองใสสญญาณขาเขาทจะใชจรงด หรออาจประมาณคาทตองลดลวงหนาโดยท าการวเคราะหกอนกได ในทนจะแสดงวธวเคราะหส าหรบตวกรอง FIR และ IIR เปนตวอยาง
โอเวอรโฟลของกรณตวกรอง FIR และ IIR แบบโครงสราง Direct Form 1สาเหตทจดตวกรองทมโครงสรางทงสองแบบนอยในกรณเดยวกน เนองจาก ทงสองมพฤต
กรรมการหาผลตอบเหมอนกน ในแงทวา ในระบบมการบวกอยจดเดยวซงใชหาผลตอบสดทาย ไมมการบวกทอนอกเลย ซงกคอจะไมมผลลพธกงกลางทมาจากการบวกเกดขนในระบบ ดงนน ผลลพธของการบวกทจะเกดโอเวอรโฟลได กมอยทเดยว คอ ทสญญาณขาออก ดงแสดงในรปท 10.5
จากทเราไดศกษามาในเรองขอดของ 2’s complement ทวา การบวกตวเลขหลาย ๆ ตว ถาผลลพธสดทายไมโอเวอรโฟล การเกดโอเวอรโฟลในระหวางการบวก (ถาม) จะไมสงผลใด ๆ ดงนนในกรณน เนองจากโอเวอรโฟลมโอกาสเกดทคา y(n) เพยงคาเดยว ท าใหความสนใจเราเหลอเพยงวาจะตองลดทอนสญญาณขาเขาลงดวยอตราสวนเทาไร จงจะไมเกดโอเวอรโฟลทสญญาณ y(n)
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 176
z-1
z-1
x(n) y(n)
-b2
-b1z-1
z-1a2
a1
a0
z- 1 z - 1x(n)
h(0) h(1) h(2)
z - 1
h(N-1)
y(n)
รปท 10.5 ต าแหนงทมโอกาสเกดโอเวอรโฟลในโครงสราง FIR และ IIR direct form 1
สมมตวา เราตองลดทอนสญญาณขาเขาลง s เทา (s > 1) จะเรยก s วาเปนตวประกอบการสเกล (scaling factor) นนคอ จะมตวคณทมสมประสทธเทากบ 1/s คณทสญญาณขาเขา
วธทฉลาดกวา โดยไมตองใชตวคณเพมอก 1 ตวทสญญาณขาเขา กคอ ยายอตราสวน 1/s ไปปรบลดคาของสมประสทธของตวกรองแทน โดยทส าหรบตวกรอง FIR เหนไดชดวา เราสามารถน า1/s ไปคณเขากบสมประสทธทก ๆ ตวเกดเปนสมประสทธชดใหมแทนได ดงน
hnew(n) = h ns( ) (10.12)
ในท านองเดยวกน ส าหรบตวกรอง IIR แบบ direct form 1 เราจะยาย 1/s ไปคณทสมประสทธทเปนตวคณไปขางหนาแทนได ซงจะไดสมประสทธใหม คอ
ai,new = asi (10.13)
ไดโครงสรางของทงสองแบบสรปอยในรปท 10.6 และค าถามตอไปก คอ จะใชคา s เทากบเทาไรจงเหมาะสม คา s นขนอยกบหลายอยาง ไดแก ฟงกชนถายโอน, โครงสรางทใช, และลกษณะของสญญาณขาเขา เราสามารถประมาณคา s ได 3 แนวทาง คอ
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 177
z-1
z-1
x(n) y(n)
-b2
-b1z-1
z-1a2/s
a1/s
a0/s
z- 1 z - 1x(n)
h(0)/s h(1)/s h(2)/s
z - 1
h(N-1)/s
y(n)
รปท 10.6 การลดคาสมประสทธเพอปองกนโอเวอรโฟลในโครงสราง FIR และ IIR direct form 1
1) ใชขอบเขต L1 แนวทางนมเงอนไขวา คาตวประกอบการสเกล (s) ทไดตองท าใหสญญาณขาออกมขอบเขตของขนาดไมเกนขอบเขตของขนาดของสญญาณขาเขา เราสามารถพสจนโดยสมมตวา ถาสญญาณขาเขามขนาดอยในชวง ±1 จะตองหาคา s ทท าใหสญญาณขาออกมขนาดไมเกน ±1
สญญาณขาออก คอ y(n) สามารถพจารณาไดวา เกดจากการคอนโวลชนระหวาง x(n) และ y(n) ซงส าหรบกรณระบบแบบคอซล จะได
y(n) = x(n) ∗ h(n) = h m x n mm
( ) ( )−=
∞∑
0
ถา x(n) มขนาดอยในชวง ±1 y(n) จะมโอกาสทจะมคาสงทสด เมอ x(n-m) มขนาดเทากบ 1และมเครองหมายตรงกบ h(m) ทก ๆ คาของ m ซงถาเกดกรณนขน จะไดคาสงสด คอ
ymax = h nn
( )=
∞∑
0
เราจะตองท าใหคาของ ymax ไมเกน 1 ซงกสามารถท าไดโดยการลดขนาดของ y(n) ลด ymax
เทา เนองจากระบบเปนเชงเสน การตองการใหสญญาณขาออกลดขนาดลง กท าไดโดยลดขนาดของสญญาณขาเขาดวยอตราสวนเดยวกน ดงนน คาตวประกอบการสเกลทจะตองน าไปหารสญญาณขาเขาในกรณน คอ
s = L1 = h nn
( )=
∞∑
0(10.14)
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 178
function s=sum_h(a,b);if length(b)==1,
s = sum(abs(a))/abs(b); %กรณ FIR h(n) คอ aelse
[out,zi] = filter(a,b,1); %กรณ IIR outold=100 ; s=0; in=0; while (abs(out) > 1e-10) | (abs(outold-out) > 1e-6) s = s + abs(out); [out,zi] = filter(a,b,in,zi); outold = out; endend
โปรแกรมท 10.3 ฟงกชน sum_h.m ส าหรบค านวนหาขอบเขต L1
สตรนใชไดกบทงตวกรอง FIR และ IIR ซงส าหรบตวกรอง IIR ทเสถยร คา h(n) จะตองลเขาสศนย ดงนน กสามารถบวกคาของ h(n) ไปจนกระทง มนมคานอยมาก ๆ โปรแกรมท 10.3 เปนโปรแกรม Matlab เพอใชค านวณคา L1 โดยใหผใชปอนคาสมประสทธของโพลโนเมยลเศษ และสวนลงไปในรปของเวคเตอร a และ b (ลกษณะเดยวกบการใชงานโปรแกรม freqres.m ในบทท 5)
เงอนไขทใชหาคา s โดยวธน เปนเงอนไขทตรงกบเงอนไขของการเกดโอเวอรโฟลจรง ดงนนวธนรบประกนวา จะไมมการเกดโอเวอรโฟลขนอยางแนนอน อยางไรกตาม คาทไดจากกรณนโดยทวไปเปนคาทสงเกนความจ าเปน เนองจาก กรณทจะท าใหเกดคาสงสดของสญญาณขาออก(ymax) ทไดกลาวถงไปนนเปนกรณสดโตงมาก ในการใชงานจรง อาจไมมสญญาณขาเขาทเหมอนหรอใกลเคยงกบกรณทท าใหเกดสญญาณขาออกดงกลาวได
2) ใชขอบเขต L2 แนวทางนมเงอนไขวา คาตวประกอบการสเกลทไดตองท าใหสญญาณขาออกมขอบเขตของก าลง ไมเกนขอบเขตของก าลงของสญญาณขาเขา (ก าลงในทน คอ คาเฉลยก าลงสองของสญญาณ หรอเทากบ vrms
2 ) ซงจะไดคาตวประกอบการสเกล คอ
s = L2 = [ ]h nn
( ) 2
0=
∞∑ (10.15)
ขอละการพสจนคา L2 เนองจาก คอนขางเกนขอบเขตของความรในเบองตน ส าหรบการค านวณคา L2 โดย Matlab แสดงในโปรแกรมท 10.4 ซงกสามารถกระท าไดคลายคลงกบการค านวณคา L1
การใชคาตวประกอบการสเกลเทากบ L2 น ไมรบประกนวาจะไมเกดโอเวอรโฟลขน ทงนเนองจาก เงอนไขของการทสญญาณมก าลงจ ากด ไมไดรบประกนวาสญญาณจะมขนาดจ ากดทขอบเขตใดแนนอน
%ใชฟงกชน filter ซงเปนฟงกชนใน DSP Toolbox
%ใสสญญาณขาเขาเปน [1 0 0 0 ….] แลวค านวณผล บวกจากสญญาณขาออกจนกระทงขาออกลเขาสศนย
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 179
function s=sum_h2(a,b);if length(b)==1, s = sum(a.^2)/b^2;else [out,zi] = filter(a,b,1); outold=100; s=0; in=0; while (abs(out) > 1e-10) | (abs(outold-out) > 1e-6) s = s + out^2; [out,zi] = filter(a,b,in,zi); outold = out; endends = sqrt(s);
โปรแกรมท 10.4 ฟงกชน sum_h2.m ส าหรบค านวนหาขอบเขต L2
3) ใชขอบเขต L∞∞∞∞ แนวทางนมเงอนไขวา เมอสญญาณขาเขาเปนสญญาณความถเดยว จะไมเกดโอเวอรโฟลขน ซงท าไดโดยการนอรแมลไลซใหผลตอบสนองเชงความถทางขนาดมคาไมเกนหนงตลอดชวงของความถทใชงานทงหมด นนคอ จะท าให ทแตละความถ (เมอมสญญาณความถเดยวเปนขาเขา) สญญาณจะไมถกขยายใหญกวาสญญาณขาเขา ดงนน คาตวประกอบการสเกลในกรณนจะเทากบคาสงสดของผลตอบสนองเชงความถทางขนาด คอ
s = L∞ = max H e j( )′ω (10.16)
โดยปกตเราจะได L2 < L∞∞∞∞ < L1[2] ซงกอาจจะเลอกใชคา s เปนคาใด ๆ ในชวงนกได การเลอกคา s มากกจะมความปลอดภยจากโอเวอรโฟลมากขน แตขณะเดยวกนคา SNR ของสญญาณกลดลง คา s ทเลอกใชอาจเปนเพยงคาเรมตนทจะน าไปใชทดลองกบสญญาณจรง แลวคอยปรบแตงทหลงอกครงหนง
ตวอยางท 10.4 ตวกรอง IIR อนดบสองตวหนงมฟงกชนถายโอนดงน
H zz
( ) = 0.1299z + 0.2597z + 0.1299 - 1.4836z + 0.8309
2
2
ถาน าตวกรองนไปใชดวยโครงสราง direct form 1 จะหาคาตวประกอบการสเกลทตองใช เปรยบเทยบกนระหวางวธ L1, L2, และ L∞
หาขอบเขต L1 โดยใชโปรแกรมท 10.3 ใน Matlab ดงนa = [ 0.1299 0.2597 0.1299];b = [1 -1.4836 0.8309];sum_h(a,b)
ซงไดคาออกมา คอ L1 = 6.159
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 180
หาขอบเขต L2 โดยใชโปรแกรมท 10.4 ดงน sum_h2(a,b) ซงไดคาเปน L2 = 1.4485หาขอบเขต L∞∞∞∞ โดยวาดรปผลตอบสนองเชงความถของระบบ และตรวจดจดสงสด จากรปท
10.7 เหนไดวาจดสงสดอยทความถประมาณ 0.1π เรเดยน และไดคา L∞ = 4.80
รปท 10.7 ผลตอบสนองเชงความถทางขนาดของระบบในตวอยางท 10.4
โอเวอรโฟลของกรณตวกรอง IIR แบบโครงสราง Direct Form 2โครงสรางแบบ direct form 2 มลกษณะแตกตางจาก direct form 1 คอ มผลลพธทเกดจากการ
บวกสองตว คอ y(n) และ w(n) ดงแสดงในรปท 10.8 ดงนน คราวนจะมโอกาสเกดโอเวอรโฟลทผลลพธภายใน คอ w(n) ดวย ไมใชเพยงแคผลลพธสดทายเทานน การเกดโอเวอรโฟลทผลลพธกงกลางเชนน เรยกวา โอเวอรโฟลภายใน (internal overflow) ซงเปนจดทเสยเปรยบของโครงสรางนเมอเทยบกบโครงสราง direct form 1
การปองกนโอเวอรโฟลภายในกสามารถท าไดในท านองเดยวกบการปองกนโอเวอรโฟลทผลลพธสดทาย โดยถาพจารณาฟงกชนถายโอนเฉพาะสวนของโพล คอ F(z) ดงแสดงในรปท 10.8 จะเหนไดวา w(n) เกดจากการการน าสญญาณ x(n) ผาน F(z) เพยงสวนเดยว เราจะพจารณาหาตวประกอบการสเกลเพอลดขนาดของ x(n) เพอไมใหเกดโอเวอรโฟลท w(n) กอน สมมตใหตวประกอบการสเกลน คอ s1 ซงสามารถหาไดสามแนวทางดงทไดกลาวมาแลว แตคราวนการค านวณหา s1 จะใชฟงกชน F(z) กบ f(n) ซงคอ ผลตอบสนองตออมพลสของ F(z) ดงน
แนวทางท 1 s1 = L1 = f nn
( )=
∞∑
0(10.17)
แนวทางท 2 s1 = L2 = [ ]f nn
( ) 2
0=
∞∑ (10.18)
แนวทางท 3 s1 = L∞ = max F e j( )′ω (10.19)
s1 นตองน าไปใชลดขนาดทสญญาณขาเขาเทานน ดงแสดงในรปท 10.9 ไมสามารถน าไปปรบลดคาสมประสทธได เพราะ F(z) ไมมสมประสทธทเปนตวคณไมขางหนา
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 181
F zb z b z
( ) = 11+ +− −
11
22 a + + 0 a z a z1
12
2− −x(n) y(n)w(n)
z-1
z-1
x(n) y(n)
-b2 a2
a1
a0
-b1
w(n)
รปท 10.8 ต าแหนงทมโอกาสเกดโอเวอรโฟลในโครงสราง IIR direct form 2
z-1
z-1
x(n) y(n)
-b2 a2 s1/s2
a1 s1/s2
a0 s1/s2
-b1
w(n)1/s1
รปท 10.9 การลดคาสมประสทธเพอปองกนโอเวอรโฟลในโครงสราง IIR direct form 2
หลงจากนน เราจะท าการหาตวประกอบการสเกลเพอปองกนไมใหเกดโอเวอรโฟลทสญญาณy(n) ซง y(n) คอ สญญาณขาออกทไดผานฟงกชนถายโอนมาทงหมด เพราะฉะนนเราจะใชฟงกชน H(z) เพอหาตวประกอบการสเกลน สมมตวาคาทได คอ s2 ซงจะหาไดสามแนวทางเชนเดยวกนโดยสมการท 10.17 - 10.19 ดวยการเปลยน s1 เปน s2, เปลยน f(n) เปน h(n), และเปลยน F(z) เปน H(z)
คา s2 ทไดน จะน าไปใชโดยหลกการวา ตองท าใหสญญาณขาเขามการลดทอนดวยอตราสวน1/s2 กอนทจะถงสญญาณขาออก แตวาในการปองกนโอเวอรโฟลทสญญาณ w(n) เราไดท าการลดทอนสญญาณขาเขาไปแลวดวยอตราสวน 1/s1 ดงนน เพอใหอตราการลดทอนโดยรวมจากขาเขาถงขาออกเทากบ 1/s2 กจะตองท าการคณเพมเขาไปดวยอตราสวนเทากบ s1/s2
ในกรณท s2 มากกวา s1 อตราสวน s1/s2 นอาจจะคณเขาไปทสญญาณขาเขาเลยกได ซงกจะท าใหไดตวคณทสญญาณขาเขาเปลยนเปน 1/s2 ซงเลกกวา 1/s1 แตโดยทวไปแลว เราจะได s1 มากกวา s2
เนองจาก s1 คดมาจากฟงกชนถายโอนทเปนสวนของโพลซงจะมการขยายมากกวาสวนของศนย ดงนน โดยทวไปอตราสวน s1/s2 จะไดคามากกวา 1 ซงคานจะน ามาใชคณทสมประสทธ ai ดงแสดงในรปท 10.9
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 182
ในกรณทได s1/s2 มากกวา 1 น เหนไดชดวาถงแมเราไมคณคานทสมประสทธ ai สญญาณ y(n) กไมเกดโอเวอรโฟลแนนอนอยแลว แตในทางตรงกนขาม y(n) ทไดจะมขนาดเลกเกนความจ าเปนเราจงใชอตราสวน s1/s2 คณเขาไปท ai เพอขยายสญญาณ y(n) ใหใหญขน (เพราะคดโดยรวมแลวจะไดอตราสวนจากตนถงปลายเทากบ 1/s2) ซงกจะสงผลให SNR ของสญญาณขาออกดขน
ตวอยางท 10.5 ตวกรอง IIR อนดบสองตวหนงมฟงกชนถายโอนดงน (เหมอนกบตวอยางท 10.4)
H zz
( ) = 0.1299z + 0.2597z + 0.1299 - 1.4836z + 0.8309
2
2
ถาน าตวกรองนไปใชดวยโครงสราง direct form 2 จะวาดโครงสรางของตวกรองนพรอมทงระบคาของสมประสทธทตองใช ก าหนดใหใชขอบเขต L1 ส าหรบค านวณตวประกอบการสเกล
ค านวณหา s1 โดยคดเฉพาะสวนของตวหารของฟงกชนถายโอน ใชโปรแกรมท 10.3 ในMatlab ชวยค านวณไดดงน
a = [ 0.1299 0.2597 0.1299];b = [1 -1.4836 0.8309];sum_h(1, b)จะไดคา s1 = 12.741 และ 1/s1 = 0.0785
ส าหรบคา s2 หาโดยใช H(z) ดวยค าสง sum_h(a, b) ซงจะได s2 = 6.159ดงนน จะไดอตราสวน s1/s2 = 2.07 ซงเปนอตราสวนทจะน าไปคณกบ ai
แทนคาทงหมดลงในแผนภาพในรปท 10.9 จะไดค าตอบดงในรปท 10.10
z-1
z-1
x(n) y(n)
-0.8309 0.2689
0.5376
0.2689
1.4836
w(n)0.0785
รปท 10.10 แผนภาพซงเปนค าตอบของตวอยางท 10.5โอเวอรโฟลของกรณตวกรอง IIR โครงสรางอนกรมในทนจะแสดงวธคดส าหรบกรณทใชโครงสรางยอยเปนแบบ direct form 2 ซงจากรปท
10.10 จะเหนไดวา มจดทสามารถเกดโอเวอรโฟลได 3 ท คอ w1(n), w2(n), และ y(n) ซงหลกการในการปองกนโอเวอรโฟลกท าในท านองเดยวกบในกรณโครงสราง direct form 2 ทไดอธบายไปแลว
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 183
z-1
z-1
x(n) y(n)
-b2/1 a2/1
a1/1
a0 /1
-b1/1
w1(n)
z-1
z-1-b2/2 a2/2
a1/2
a0/2
-b1/2
w2(n)
ใช หา s1ใช หา s2
ใช หา s3
รปท 10.10 ต าแหนงทมโอกาสเกดโอเวอรโฟลในโครงสรางอนกรม
z-1
z-1
x(n) y(n)
-b2/1 a2/1 s1/s2
a1/1 s1/s2
a0/1 s1/s2
-b1/1
1/s1
z-1
z-1-b2/2 a2/2 s2/s3
a1/2 s2/s3
a0/2 s2/s3
-b1/2
รปท 10.11 การลดคาสมประสทธเพอปองกนโอเวอรโฟลในโครงสรางอนกรม
สมมตให H1(z) คอ ฟงกชนถายโอนยอยตวแรก ซงม F1(z) เปนสวนของฟงกชนเฉพาะสวนของโพล และให H2(z) คอ ฟงกชนถายโอนยอยทสอง ซงม F2(z) เปนสวนของฟงกชนเฉพาะสวนของโพล เราจะหาตวประกอบการสเกล 3 คา คอ s1, s2, และ s3 โดยท
s1 หาโดยใชฟงกชน F1(z)s2 หาโดยใชฟงกชน H1(z) F2(z)s3 หาโดยใชฟงกชน H1(z) H2(z)
สงเกตวา เราไมตองใชตวประกอบการสเกลทคดจากฟงกชน H1(z)จากนน หาอตราสวน 1/s1, s1/s2, และ s2/s3 ซงแตละคาจะใชเปนตวคณเพอปองกนโอเวอร
โฟลท w1(n), w2(n), และ y(n) ตามล าดบ ต าแหนงทตองท าการคณคาอตราสวนนเขาไปแสดงอยในรปท 10.11ตวอยางท 10.6 ตวกรองตดความถตวหนงออกแบบโดยใชโปรแกรม singfreq.m ในบทท 8 ใหตดความถ 0.2π และ 0.4π โดยสง Matlab ดงน
[a1,b1] = singfreq(0.2,1,0.95,0.95);[a2,b2] = singfreq(0.4,1,0.95,0.95);
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 184
a = conv(a1,a2); (สามารถใช conv ในการคณโพลโนเมยลได!)b = conv(b1,b2);
จะไดเปนตวกรองอนดบ 4 โดยม a และ b เปนเวคเตอรทเกบสมประสทธของเศษ และสวนa = [ 0.9025 -2.0181 2.7075 -2.0181 0.9025 ]b = [ 1.0000 -2.1243 2.7075 -1.9171 0.8145 ]
a1 และ b1 เปนเวคเตอรทเกบสมประสทธของเศษ และสวนของฟงกชนถายโอนยอย H1(z) a1 = [ 0.9500 -1.5371 0.9500 ] b1 = [ 1.0000 -1.5371 0.9025 ]a2 และ b2 เปนเวคเตอรทเกบสมประสทธของเศษ และสวนของฟงกชนถายโอนยอย H2(z) a2 = [ 0.9500 -0.5871 0.9500 ] b2 = [ 1.0000 -0.5871 0.9025 ]
ถาน าไปใชดวยโครงสรางอนกรม แบบ direct form 2 จะหาคาสมประสทธทตองใช (ก าหนดใหใชขอบเขต L1 ในการคดตวประกอบการสเกล)
ตวกรองนจะมโครงสรางตามรปท 10.11 กอนอนหาคาตวประกอบการสเกลกอนหา s1 โดยใช s1 = sum_h(1,b1) ได s1 = 4.855หา s2 โดยใช s2 = sum_h(a1,b) ได s2 = 5.441หา s3 โดยใช s3 = sum_h(a,b) ได s3 = 2.497จากนนหาอตราสวนทตองใชในการคณกบสมประสทธ ได
1/s1 = 0.206, s1/s2 = 0.839, และ s2/s3 = 1.192น าคาอตราสวนเหลานไปคณกบสมประสทธของตวกรองตามทแสดงในรปท 10.11 จะไดผล
ลพธของสมประสทธสดทายดงแสดงในรปท 10.12
z-1
z-1
x(n) y(n)
-0.9025 0.8476
-1.3715
0.8476
1.5371
0.206
z-1
z-1-0.9025 2.0704
-1.2796
2.0704
0.5871
รปท 10.12 โครงสรางของตวกรองทเปนค าตอบของตวอยางท 10.6ตวอยางท 10.7 ถาน าระบบในตวอยางท 10.6 ไปใชกบตวประมวลผลทมความละเอยด 16 บต โดยสญญาณ x(n) รบมาจาก A/D ขนาด 14 บต และสญญาณขาออกสงใหกบ D/A 14 บต จะตองเปลยนแปลงคาสมประสทธทใชในตวอยางท 10.6 อยางไรบาง จงจะได SNR สงสด
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 185
กรณของการใช A/D ทมจ านวนบตต ากวาจ านวนบตของตวประมวลผลเชนนนยมท ากนในทางปฏบต ตวอยางเชน บอรดทดลอง TMS320C5x (TMS320C5x Evaluation Board ของบรษทTI) ใชชพ DSP เบอร TMS320C50 ซงเปนตวประมวลผลแบบ fixed-point 16 บต และใช A/Dรวมกบ D/A เปนชพเดยวกนเบอร TLC32046 ซงมความละเอยด 14 บตการท าเชนนกเหมอนกบการใชสญญาณขาเขาทมการหารสไปแลว แตขณะเดยวกนสญญาณ
ขาออกกรบไดเพยงแค 14 บต ซงกคอ ลดทอนจากคาสงสดไปสเทาเชนกน แตสวนทพเศษกคอ คาอน ๆ ทเกดขนกงกลางในระบบจะสามารถถกแทนไดดวย 16 บต หรอคดงาย ๆ ไดวา คาอน ๆสามารถมคาไดมากกวาคาทขาเขา และขาออก 4 เทาโดยไมเกดโอเวอรโฟล ดงนน การใช A/Dและ D/A ทมจ านวนบตต าลงน มผลดกบการประมวลผลทมโอกาสเกดโอเวอรโฟลภายใน และแนนอนวาเปนการเพมความละเอยดของการค านวณภายในดวยจดทตองเปลยนแปลงจากรปท 10.12 คอ1) เนองจาก สญญาณขาเขาเหมอนมการลดทอนไปแลวเทากบ 1/4 หรอ 0.25 แตการลดทอน
เราตองการการเทากบ 0.206 ดงนน ตวคณทสญญาณขาเขานตองเปลยนคาเปน 0.206 / 0.25 =0.824 (คานใกลเคยง 1 ในทางปฏบตอาจลองตดทงไมตองใชไปเลยกได) ซงจะท าใหการลดทอนโดยรวมทสญญาณขาเขาเทากบ 0.206
2) สมประสทธอน ๆ มคาเหมอนเดมยกเวนตวสดทายกอนออก y(n) คอ a0/2, a1/2, และ a2/2 ซงจะตองท าหนาทลดทอนคา y(n) ลง 4 เทา ดงนน คาเหลานตองถกหารดวย 4 และไดสมประสทธใหม คอ 0.5176, -0.3199, และ 0.1576
ความคลาดเคลอนจากการปดเศษหลงการคณ (Product Rounding)
กอนอนขอใหท าความเขาใจเรองการคณในระบบเลขจ านวนเตมกอน และเหตผลทวาท าไมจงตองมการปดเศษหลงการคณ สมมตวาเรามเลขบวกขนาด 5 บต สองจ านวน ซงใช M=0 ดงนน แตละจ านวนสามารถแทนตวเลขไดระหวาง 0 ถง 32 ถาน าเลขสองจ านวนนมาบวกกน จะไดผลลพธทมคาไดระหวาง 0 ถง 1024 ซงตองใชจ านวนบตในการแทนถง 10 บต (M=0) ดงน
X X X X X . X X X X X . X X X X X X X X X X .
ถาผลคณจะตองถกน าเอาไปใชค านวณตอไป เราตองการใหผลคณมขนาด 5 บตเหมอนตวตง(มฉะนนกจะตองใชตวประมวลผลทมจ านวนบตเพมขนเปนสองเทา) แตในกรณนท าไมได เพราะผลคณจ าเปนตองใชจ านวนบตในการแทนถง 10 บต การคณในกรณนถอวาการเกดโอเวอรโฟลจากการคณขน ซงท าใหใชงานไมไดในระบบประมวลผล
×
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 186
ถาพจารณากรณทตวคณเปนรปแบบเลข 5 บต ทม M=5 และ N=0 จะเกดอะไรขน ยงแนนอนวาเราจะไดผลคณ 10 บต แตทวาเปน 10 บตทแทนคาแค 0 ถง 32 เทานน เนองจากตวตงมคาไดตงแต 0 ถง 32 และตวคณมคาไดตงแต 0 ถง 1 ดงนน ผลคณไมมทางไดคาเกน 32 ซงจะเปนรปแบบเลข 10 บต ทม M=5 และ N=5 ดงน
X X X X X . . X X X X X X X X X X . X X X X X
ดงนน ถาตองการน าผลคณนไปใชค านวณตอ กสามารถท าไดโดยการตดเศษ (truncate) 5 บตหลงทง หรอ ปดเศษ (round) 5 บตหลง การตดเศษเทยบเทากบการตด 5 บตหลงทง ซงท าไดงายกวาการปดเศษในการใชงานจรง เราจะไดผลลพธสดทายหลงการตดเศษ หรอปดเศษเปนรปแบบ 5 บตทมM=5 เหมอนตวตงโดยทไมมทางเกดโอเวอรโฟล และจะสามารถน าไปค านวณตอไปไดโดยใชตวประมวลผลทมจ านวนบตเทาเดม สงทเราสญเสยไปก คอ นยส าคญหรอความละเอยดของผลลพธ 5บตลาง ซงกท าใหเกดความคลาดเคลอนขน
ในกรณทตวคณมคามากกวา 1 ดวย เชน M=3 และ N=2 ผลลพธทไดจะเปนรปแบบ 10 บตทม M=3 โดยเราตองท าการปดเศษ 3 บตหลงทง จดทพเศษขนมา คอ กรณนผลลพธมโอกาสเกดโอเวอรโฟลได ถา 2 บตหนาของผลลพธไมเทากบศนย ดงนน ตวตงและตวคณตองมขนาดไมใหญจนท าใหผลลพธมากเกนกวาทจะแทนคาได
X X X X X . X X . X X X X X X X X X X . X X X
สรปวา ในการคณเลขจ านวนเตม ตวตงจะมจดทศนยมอยตรงไหนกไดไมตองสนใจ สวนตวคณ ถามจ านวนบตอยหลงจดทศนยมเทากบ M บต หลงจากคณแลวตองปดเศษผลลพธทง M บต วธท านจะท าใหไดผลลพธหลงการปดเศษถกตอง และเปนรปแบบเดยวกบตวตง
ส าหรบรปแบบเลข 2’s complement ทแทนไดทงบวกและลบ กมกฎเกณฑนตรงกน โดยถาเราแยกเครองหมายออกมา (แปลงเปนรปแบบ sign-magnitude) สวนของขนาดกจะมวธคณเหมอนดงทกลาวมาขางตน และสวนเครองหมายกสามารถคดตางหากโดยถาเครองหมายเหมอนกนกไดผลลพธเปนบวก ถาตางกนกไดผลลพธเปนลบ ดงนน เลข 2’s complement ขนาด B บต สองจ านวนคณกนจะไดผลลพธทสามารถแทนไดดวย 2B - 1 บต
×
ปดทงตองเปน 0มฉะนน เปนโอเวอรโฟล
ผลลพธหลงปดเศษ
×
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 187
รปท 10.13 แสดงการคณคาสมประสทธ a เขากบสญญาณขาเขา การคณทถกตองจะตองมการปดเศษทง M บตหลงการคณ เพอใหไดผลลพธมรปแบบเหมอนกบสญญาณขาเขา โดยไมตองสนใจเลยวาสญญาณขาเขาจะมจดทศนยมอยตรงไหน นคอสาเหตทเราสามารถแทนคาสญญาณโดยใชรปแบบทมจดทศนยมไมลงตวได ดงทเหนในตวอยางท 10.1 กระบวนการในรปนใชไดกบทงเลขบวกอยางเดยว และเลข 2’s complement
ส าหรบ 2’s complement ถา N=1 คอ -1 ≤ a < 1 จะไดผลลพธทไมมทางเกดโอเวอรโฟล แตถา N>1 ผลลพธจะมโอกาสเกดโอเวอรโฟลได ในบางครงเราจ าเปนตองใชรปแบบท N>1 ถาสมประสทธมคาเกนชวง -1 ถง 1 กลาวคอ ถาสมประสทธมคาไมเกน -2 ถง 2 กใช N=2 และถาไมเกน -4 ถง 4 กใช N=3 เปนตน โอเวอรโฟลทผลลพธของการคณนไมรายแรงอยางทคด ถามการปองกนโอเวอรโฟลทผลลพธของการบวกดงทกลาวมาในหวขอกอนแลว ดงทจะอธบายเหตผลในสวนตอไปเมอกลาวถงการใชตวเกบผลบวกทมจ านวนบตเปน 2 เทา
× a ป ดเศษท ง M บ ตขวาy ay
ร ปแบบ(M,N)
ร ปแบบ (My,Ny)เหม อน y
ร ปแบบ(My,Ny) ใด ๆ
รปท 10.13 การคณโดยใชระบบเลขจ านวนเตม ใหไดผลลพธมรปแบบเหมอนตวตง
ตวอยางท 10.8 เลข 2’s complement สองจ านวนมรปแบบ 8 บต และ M=7 มคา 114 และ -87 ถาน าเลขทงสองมาคณกนแลวปดเศษใหไดผลลพธมรปแบบ 8 บตเหมอนเดม จะไดผลลพธเทากบเทาไรและมความคลาดเคลอนไปเทาไร
114 01110010 -87 10101001-9918 101100101000010
ขอใหหมายเหตไววา การคณเลขฐานสองแบบ 2’s complement มวธคดไมเหมอนการคณเลขปกต ซงการอธบายวธคณอยนอกเหนอเนอหาของหนงสอเลมน ผทสนใจรายละเอยดสามารถศกษาไดจาก [4]ผลลพธทไดจะอยในรปแบบ 15 บต และ M=14 ซงเราจะปดเศษทง 7 บต ไดเปน 101100112
ซงเปนรปแบบ 8 บต และ M=7 เหมอนตวตง มคาเปนฐานสบเทากบ -77ถาลองแปลงคาจ านวนเตมทงตวตง, ตวคณ, และผลลพธเปนคาทศนยมทมนแทนอย ดวยการ
หารดวย 2M จะไดคาดงน
××
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 188
ตวตง คอ 114 เทากบคา 114 27 = 0.890625
ตวคณ คอ -87 เทากบคา - 8727 = -0.6796875
ผลลพธกอนการปดเศษ คอ -9918 เทากบคา - 9918214 = - 0.605346679688 เปนคาทถก
ตองรอยเปอรเซนต แตตองแทนดวย 15 บตผลลพธหลงการปดเศษ คอ -77 เทากบคา - 77
27 = - 0.6015625ดงนน การปดเศษนท าใหเกดความคลาดเคลอนเทากบ
- 0.6015625 - (-0.605346679688) = 0.003784179688
การปดเศษหลงการคณนสามารถค านวณโดยใช Matlab ไดดงโปรแกรมท 10.5 โดยใสคา xซงคอผลคณทตองการปดเศษ และก าหนดคา M และ N ของตวคณ นอกจากโปรแกรมจะท าการปดเศษ M บตทงใหแลว ยงท าการตรวจสอบโอเวอรโฟลใหดวย โดยถามโอเวอรโฟลเกดขน โปรแกรมจะหยดท างาน และรายงานใหผใชทราบ
ตวอยางการค านวณค าตอบของตวอยางท 10.8 สามารถท าไดโดยใชโปรแกรมท 10.5 ดงนrndfix( 114*(-87), 7, 1)
ซงจะไดคาผลคณออกมาเทากบ -77 ตรงตามทเราตองการ โปรแกรมนจะมประโยชนในการจ าลองการประมวลผลโดยใชรปแบบจ านวนเตม ดงจะไดกลาวในหวขอตอไป
function y = rndfix(x,M,N);
max_y = 2^(M+N-1); %หาคาสงสดทแทนได หลงปดเศษy = round(x/2^M); %ปดเศษ M บต ถาตองการเปนการตดเศษใหใช floor แทน roundif max(abs(y)) > max_y %ตรวจสอบวาอยในชวงทสามารถแทนคาไดหรอไม error('Overflow Error after rounding!');end
y = y - (y==max_y); %ในกรณท y = 2M+N-1 พอด เปนจดทเกดโอเวอรโฟลทางบวก พอด แตจะอนโลมใหใชไดโดยใช y = 2M+N-1 - 1
โปรแกรมท 10.5 ฟงกชน rndfix.m ส าหรบปดเศษทง M บต (หลงการคณ)
ดงทไดเหนแลววา ทกครงทมการคณท าใหเกดความคลาดเคลอนขน โดยลกษณะความคลาดเคลอนของการปดเศษหลงการคณน คลายคลงกบความคลาดเคลอนจากการแบงขนสญญาณ อาจมองไดวา การปดเศษหลงการคณ คอ การทเราตองการแทนคาผลลพธจากการคณซงมความละเอยดมากดวยจ านวนบตทจ ากดลง (เทากบจ านวนบตเดมของสญญาณ) สมมตวาขนาดของ 1 ขนของสญญาณมคาเทากบ Q มหนวยเปนแรงดน และหาคาไดจากสมการท 10.1 คอ
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 189
Q = R2B (10.1)
ถาให y(n) เปนสญญาณทเปนผลลพธของการคณกอนปดเศษ และ ye(n) เปนผลลพธหลงปดเศษ เราสามารถมองไดวา ความคลาดเคลอนทเกดขนเปนเหมอนสญญาณรบกวนทถกเตมเขามาในระบบ และเรยกมนวาสญญาณรบกวนจากการคณ (multiplication noise) ขอใชสญลกษณแทนวา ee(n)ซงจะได
e(n) = ye(n) - y(n) (10.20)
ในกรณของการปดเศษ (rounding) สญญาณรบกวนนจะมคาไมเกนครงหนงของขน หรอ
- Q/2 < eround(n) < Q/2 (10.21)
เชนเดยวกนกบการวเคราะหสญญาณรบกวนจากการแบงขนสญญาณ เราจะไดวาคาก าลงเฉลย หรอคาเฉลยของก าลงสองของสญญาณ คอ (เหมอนสมการท 10.5)
P Q12e,round
2= (10.22)
ในกรณของการตดเศษ (truncation) สญญาณรบกวนนจะมคาเปนลบเสมอ (คาจะถกปดลงเปนขนทต าลงเสมอ) ดงนน
- Q < etrunc(n) < 0 (10.23)
เราสามารถพสจนหาก าลงเฉลยของสญญาณรบกวนส าหรบกรณนไดเปน
P Q3e, trunc
2= (10.24)
ในการวเคราะหสญญาณรบกวนจากการคณ เราจะตองแทนตวคณทกตวในระบบดวย ตวคณทมสญญาณรบกวนปนทขาออก ดงแสดงในรปท 10.14 จากนน จงหาผลรวมของสญญาณรบกวนทงหมดทจะปรากฏทสญญาณขาออกของระบบ
× ax(n) แทนด วยy(n)
× ax(n) yr(n)
e(n)ม ย Pe
y(n)
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 190
รปท 10.14 การแทนตวคณดวยตวคณทมสญญาณรบกวนปน เพอใชในการวเคราะห
การวเคราะหสญญาณรบกวนจากการคณในตวกรอง FIRตวกรอง FIR อนดบ N-1 มตวคณทงสน N ตว ดงนน จะมสญญาณรบกวนจากการคณเกดขน
ทงสน N สญญาณ เนองจาก ตวคณทกตวมผลลพธทมาบวกกน ณ จดเดยวกน ดงนนสญญาณรบกวนทเกดขนทกตวกจะมาบวกกนทสญญาณขาออก ดงแสดงในรปท 10.15 เราจะไดวา
etotal(n) = e0(n) + e1(n) + … + eN-1(n) (10.25)
z- 1 z - 1x(n)
h(0) h(1) h(2)
z - 1
h(N-1)
y(n)e2(n) eN-1(n)e0(n) e1(n)
z- 1 z - 1x(n)
h(0) h(1) h(2)
z - 1
h(N-1)
y(n)etotal(n)
รปท 10.15 สญญาณรบกวนจากการคณทเกดขนในตวกรอง FIR
เราจะใชสมมตฐานวา สญญาณรบกวนแตละตวไมขนแกกน ซงถงแมเปนสมมตฐานทไมถกตอง แตกพอใชได และกท าใหงายตอการวเคราะห เนองจาก จะท าใหการหาก าลงรวมของสญญาณรบกวนท าไดจากการบวกกนของก าลงของสญญาณรบกวนแตละตว ดงน
Pe,total = Pe1 + Pe2 + … + Pe,N-1 (10.26)
Pe,total = NPe (10.27)คา Pe,total ทไดน ถอวาสมประสทธทกตวของตวกรองมคาไมเทากบศนย เพราะถามคาใดท
เปนศนย ทจดนนกไมมการคณ และกจะไมเกดสญญาณรบกวนขน ซงกจะได Pe,total ลดลง
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 191
ในทางปฏบตนยมใชตวบวกทมขนาดจ านวนบตเปนสองเทาของตวคณ เชน ในชพ DSP ทวๆ ไป จะมรจสเตอรทใชบวก หรอ accumulator ทมจ านวนบตเปนสองเทาของปกต และสามารถท าการบวกทจ านวนบตเปนสองเทานได ดงนน ในกรณนจะท าใหไมจ าเปนตองปดเศษทนทหลงการคณแตเอาผลลพธทไดจากตวคณแตละตวมาบวกกนกอน เมอไดผลลพธสดทายของการบวก จงคอยปดเศษใหผลลพธสดทายมจ านวนบตตามตองการ เทคนคนท าใหสญญาณรบกวนจากการคณลดลงเหลอเพยงตวเดยว (เพราะเหลอการปดเศษแคครงเดยว) จะได
Pe,total = Pe (10.28)
นอกจากเปนการลดสญญาณรบกวนจากการคณลงอยางมากมายแลว เทคนคนยงชวยปองกนโอเวอรโฟลทอาจเกดขนจากการคณอกดวย (ในกรณท ตวคณใช N > 1) เพราะโอเวอรโฟลจะเกดขนกตอเมอมการปดเศษ ถาเราไมปดเศษทนททนใด แตบวกผลลพธทกตวกอน กอาจมโอกาสทผลลพธสดทายจะไมเกดโอเวอรโฟล (ซงสามารถปองกนไมใหผลลพธสดทายเกดโอเวอรโฟลไดตามวธการใชตวประกอบการสเกลทไดกลาวมาแลว) และกจะท าใหการเกดโอเวอรโฟลทผลลพธจากตวคณบางตวไมสงผลใด ๆ ตอการค านวณ
การวเคราะหสญญาณรบกวนจากการคณในตวกรอง IIR โครงสราง direct form 1โครงสราง direct form 1 มลกษณะคลายกบตวกรอง FIR โดยส าหรบตวกรองอนดบสองท
แสดงในรปท 10.16 จะมตวคณอย 5 ตว ซงสญญาณรบกวนทเกดจากทกตวสามารถมารวมกนไดเปนetotal(n) ดงแสดงในรป
etotal(n) ทเกดขนในโดรงสราง direct form 1 น ถงแมมองดเหมอนเปนสญญาณรบกวนทเกดขนทขาออกเหมอนกรณตวกรอง FIR แตจรง ๆ แลวไมใช เนองจาก สญญาณรบกวนนจะถกปอนกลบเขามาในระบบอก แตสญญาณรบกวนของกรณตวกรอง FIR ไมถกปอนกลบมาในระบบ และนกเปนเหตผลทท าใหสญญาณรบกวนจากการคณมผลตอตวกรอง IIR มากกวาตอตวกรอง FIR
เราจะท าการหาวาสญญาณรบกวนจากการคณทปรากฏออกมาทสญญาณขาออกจรง ๆ รวมแลวมคาเทาไร สมมตให y(n) คอ สญญาณขาออกขณะไมมสญญาณรบกวนเกดขน และ ye(n) คอสญญาณขาออกในกรณมสญญาณรบกวน โดยท
ye(n) = y(n) + eout(n) (10.29)
สมการผลตางของ ye(n) เขยนไดเปน
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 192
ye(n) = a0x(n) + a1x(n-1) + a2x(n-2) - b1 ye(n-1) - b2 ye(n-2) + etotal(n) (10.30)
เมอแปลง z ทงสมการจะได
Ye(z) 1 + b1 z-1 - b2 z-2 = X(z) a0 + a1 z-1 + a2 z-2 + Etotal(z)
Ye(z) = a z zz z
X z E zz ztotal0
1 1+ a + a
+ b + b +
+ b + b1
-12
-2
1-1
2-2
1-1
2-2( ) ( ) (10.31)
F zb z b z
( ) = 11+ +− −
11
22 a + + 0 a z a z1
12
2− −x(n) y(n)
etotal(n)
z-1
z-1
x(n) yr(n)
-b2
-b1z-1
z-1a2
a1
a0
etotal(n)
รปท 10.16 สญญาณรบกวนจากการคณทเกดขนในตวกรอง IIR โดรงสราง direct form 1
จะได Eout(z) = E zz ztotal ( )
1+ b + b1-1
2-2 = F(z)Etotal(z) (10.32)
นนคอ สญญาณรบกวนทเกดขน จะผานฟงกชน F(z) ออกมาทสญญาณขาออก ดงแสดงในรปท 10.16 สงทเราสนใจกคอ ก าลงของสญญาณ eout(n) เปนเทาไร มกฏวา ถาสญญาณขาเขาของระบบหนงมลกษณะเปนสญญาณรบกวนขาว (white noise) ก าลงของสญญาณขาออกจะมคาเทากบก าลงของสญญาณขาเขาคณดวยผลบวกก าลงสองของผลตอบสนองตออมพลสของระบบ การพสจนกฏนจะตองใชความรเรองสญญาณแรนดม จงไมขอกลาวถงในทน แตจะยกผลมาใชงาน โดยเราสามารถพจารณาวาสญญาณ etotal(n) มลกษณะเปนสญญาณรบกวนขาว ซงจะไดก าลงของสญญาณรบกวนทขาออกเปน
Pe,out = Pe,total f nn
2
0( )
=
∞∑ (10.33)
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 193
โดย f(n) คอ ผลตอบสนองตออมพลสของ F(z) ถาสมประสทธทกตวไมเทากบศนย จะไดก าลงรวมของสญญาณรบกวนเปน Pe,total = 5Pe ซงจะไดก าลงของสญญาณรบกวนทขาออกเปน
Pe,out = 5Pe f nn
2
0( )
=
∞∑ (10.34)
ท านองเดยวกน ถาเราใชตวบวกทมจ านวนบตเปนสองเทาของตวคณ จะได
Pe,out = 5Pe f nn
2
0( )
=
∞∑ (10.35)
คาของ f nn
2
0( )
=
∞∑ สามารถค านวณไดจากโปรแกรมท 10.4 (sum_h2.m) ทเราไดเขยนไว
ส าหรบค านวณ L2 ซง คอ คารากทสองของผลบวกของก าลงสองของผลตอบสนองตออมพลส
การวเคราะหสญญาณรบกวนจากการคณในตวกรอง IIR โครงสราง direct form 2โครงสรางแบบ direct form 2 จะมตวคณสองตวอยทตวบวกดานซาย และสามตวอยทตว
บวกดวนขวา สมมตวา สญญาณรบกวนรวมของดานซาย คอ et1(n) และสญญาณรบกวนรวมของดานขวา คอ et2(n) ดงแสดงในรปท 10.17 เราสามารถหาก าลงของสญญาณรบกวนทขาออกได โดยมองวาet1(n) จะตองผานฟงกชน H(z) สวน et2(n) ไมตองผานอะไร เพราะเกดทขาออกโดยตรง ดงนน จะไดวา
Pe,out = Pt1 h nn
2
0( )
=
∞∑ + Pt2 (10.36)
ถาสมประสทธทกตวไมเปนศนย จะได
Pe,out = 2Pe h nn
2
0( )
=
∞∑ + 3Pe (10.37)
ถาสามารถใชตวบวกทมจ านวนบตเปนสองเทาได ทงตวบวกดานซาย และขวา จะได
Pe,out = Pe h nn
2
0( )
=
∞∑ + Pe (10.38)
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 194
z-1
z-1
x(n) y(n)
-b2 a2
a1
a0
-b1
w(n)et1(n) et2(n)
รปท 10.17 สญญาณรบกวนจากการคณทเกดขนในตวกรอง IIR โดรงสราง direct form 2
ตวอยางท 10.9 ตวกรอง IIR อนดบสองดงในตวอยางท 10.4 และ 10.5 มฟงกชนถายโอนดงน
H zz
( ) = 0.1299z + 0.2597z + 0.1299 - 1.4836z + 0.8309
2
2
จงหาก าลงของสญญาณรบกวนจากการคณทปรากฏทขาออก เปรยบเทยบกนระหวางกรณ direct form1 และ direct form 2 ก าหนดใหมการสเกลเพอปองกนโอเวอรโฟลโดยใชขอบเขต L1, ใชการปดเศษ(rounding) และการประมวลผลใชตวบวกทมจ านวนบตเปนสองเทาของปกต
การวเคราะหสญญาณรบกวนจากการคณ ตองท าหลงจากการปรบคาสมประสทธเพอปองกนโอเวอรโฟลเสมอ ดงนน เราจะใชสมประสทธทเปนค าตอบของตวอยางท 10.4 และ 10.5 มาค านวณในขอน
ส าหรบการปดเศษ ก าลงเฉลยของสญญาณรบกวนทเกดขนแตละตว คอ Pe = Pe,round = Q12
2
กรณ direct form 1 หาสญญาณรบกวนทขาออกไดจากสมการท 10.35 คอ
Pe,out = Pe f nn
2
0( )
=
∞∑ = Q
122
f nn
2
0( )
=
∞∑
คา f nn
2
0( )
=
∞∑ สามารถค านวณไดจากโปรแกรม sum_h2 ใน Matlab ดงน
b = [1 -1.4836 0.8309];sum_h(1,b)^2
ซงไดคาออกมาเทากบ 162.32 เมอแทนคาลงในสมการขางตน จะได
Pe,out = Q12
2(162.32) = 13.53Q2
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 195
กรณ direct form 2 หาสญญาณรบกวนทขาออกไดจากสมการท 10.37 คอ
Pe,out = Pe h nn
2
0( )
=
∞∑ + Pe = Q
122
h nn
2
0( )
=
∞∑ + Q
122
คา h nn
2
0( )
=
∞∑ สามารถค านวณไดจากโปรแกรม sum_h2 ใน Matlab ดงน
a = [0.2689 0.5376 0.2689];b = [1 -1.4836 0.8309];sum_h(a,b)^2
ซงไดคาออกมาเทากบ 162.53 เมอแทนคาลงในสมการขางตน จะได
Pe,out = Q12
2 (162.53) + Q
122
= 13.63Q2
ปรากฏวา คาทไดออกมาของทงสองกรณใกลเคยงกนมาก อยางไรกตาม ส าหรบฟงกชนถายโอนใด ๆ เราไมสามารถบอกไดลวงหนาวา โครงสรางแบบใดจะใหสญญาณรบกวนต ากวา เพราะคาจะขนกบฟงกชนถายโอนนน ๆ ซงตองพจารณาเปนกรณ ๆ ไป
การวเคราะหสญญาณรบกวนจากการคณในโครงสรางอนกรมในทนจะยกตวอยางโครงสรางอนกรมอนดบ 4 ทมโครงสรางยอยอนดบ 2 เปนแบบ direct
form 2 ดงแสดงในรปท 10.18 จะเหนไดวา มสญญาณรบกวนจากการคณเกดขนท 3 ต าแหนง คอก) ทขาเขาของระบบ มาจากตวคณ 2 ตว สญญาณรบกวนนตองผานฟงกชน H(z)ข) ทกงกลางระบบ มาจากตวคณ 5 ตว สญญาณรบกวนนตองผานฟงกชน H2(z)ค) ทขาออกของระบบ มาจากตวคณ 3 ตวดงนน จะไดผลรวมของสญญาณรบกวนทเกดขนทสญญาณขาออก คอ
Pe,out = 2Pe h nn
2
0( )
=
∞∑ + 5 Pe h n
n22
0( )
=
∞∑ + 3 Pe (10.39)
และในกรณทใชตวบวกทมจ านวนบตเปนสองเทา จะไดผลรวมของสญญาณรบกวนเปน
Pe,out = Pe h nn
2
0( )
=
∞∑ + Pe h n
n22
0( )
=
∞∑ + Pe (10.40)
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 196
z-1
z-1
x(n) y(n)
-b2/1 a2/1
a1/1
a0 /1
-b1/1
w1(n)
z-1
z-1-b2/2 a2/2
a1/2
a0/2
-b1/2
w2(n)
H1(z)H(z)
H1(z)
et3(n)et2(n)et2(n)
รปท 10.18 สญญาณรบกวนจากการคณทเกดขนในโดรงสรางอนกรม
การจ าลองการประมวลผลดวยระบบเลขจ านวนเตมใน Matlab
เนองจาก Matlab เปนโปรแกรมทเราท างานดวยเปนสวนใหญ ในการทดสอบ หรอออกแบบอลกอรธมในการประมวลผลสญญาณ ดงนน ถาสามารถจ าลองการประมวลผลดวยระบบเลขจ านวนเตมไดใน Matlab กจะท าใหสะดวกตอการท างานมาก อยางไรกตาม กมขอเสยในการใช Matlab ท าหนาทดงกลาว เนองจาก Matlab แทนตวเลขตาง ๆ ดวยระบบเลของดรรชนขนาด 64 บต และยงไมมทางเลอกใหผใชเลอกเปนระบบเลขจ านวนเตม ดงนน หมายถงวา เราตองจ าลองการค านวณเลขจ านวนเตมดวยเลของดรรชน ซงท าใหการค านวณชาลงกวาการค านวณปกตมาก
ทางเลอกอนส าหรบการค านวณระบบเลขจ านวนเตม ไดแก การใช Fixed-Point Toolbox ของMatlab ซงเปนชดฟงกชนพเศษส าหรบค านวณระบบเลขจ านวนเตมได แตขอเสย คอ ปจจบนชดฟงกชนนเปนฟงกชนทเรยกใชไดใน Simulink เทานน (Simulink เปนสงแวดลอมพเศษใน Matlab ซงใชจ าลองระบบตาง ๆ ไดทงแบบตอเนอง และไมตอเนอง มการตดตอกบผใชแบบกราฟฟก) หรออกทางเลอกหนง คอ การเขยนอลกอรธมดวยภาษาซ และท าใหตดตอกบ Matlab ดวยการเกบสญญาณขาเขาและขาออกเปนไฟล หรอคอมไพลใหเปนไฟลทสามารถเรยกใชไดจาก Matlab เลย (เรยกวา ไฟลMEX) กสามารถท าได
ในทนผเขยนขอแนะน าวธแรกสด คอ การใชการค านวณปกตของ Matlab มาจ าลองเปนการค านวณเลขจ านวนเตม ซงเปนวธทงาย สะดวก และเขาถงกลไกของการค านวณไดดดวย และถาพจารณาถงความเรวอนมหาศาลของไมโครคอมพวเตอรในปจจบน ทางเลอกนกถอวาไมเลวนก
การจ าลองการค านวณเลขจ านวนเตมน เทากบเปนการวเคราะหผลโดยรวมของความคลาดเคลอนทกชนดทกลาวมา ไมวาจะเปนความคลาดเคลอนจากการปดเศษสมประสทธ, โอเวอรโฟล,หรอสญญาณรบกวนจากการคณ เปนการทดสอบทเหมอนกบการทจะน าไปใชงานจรง นอกจากนในกรณทน าไปใชสรางเปนวงจรรวม หรอไอซ ยงสามารถใชการจ าลองนสรางชดสญญาณเพอ
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 197
ทดสอบวงจร (test vector) งาย ๆ ไดอกดวย ซงประกอบดวยสญญาณขาเขาชดหนง และสญญาณขาออกทจะตองไดเมอสญญาณขาเขานเขาไป
เราไดเตรยมพรอมส าหรบการใช Matlab มาจ าลองการค านวณเลขจ านวนเตมมาบางแลว ดวยการเขยนฟงกชนรองรบไวสองฟงกชนในหวขอกอนหนาน ฟงกชนแรก คอ fixpnt.m (โปรแกรมท10.2) ซงเปนฟงกชนส าหรบแปลงคาทวไปใหเปนคาจ านวนเตม ฟงกชนทสอง คอ rndfix.m(โปรแกรมท 10.5) ซงเปนฟงกชนทท าการปดเศษผลลพธหลงการคณ ทงสองฟงกชนใหผลลพธเปนเลขจ านวนเตมทมเครองหมาย เทยบเทากบรปแบบ 2’s complement โดยเราก าหนดคา M และ N ใหกบฟงกชน
หลกการงาย ๆ ของการใช Matlab เพอจ าลองการค านวณเลขจ านวนเตม คอ1) ก าหนดคา M และ N ใหเหมาะสม แลวแปลงสมประสทธของระบบใหเปนจ านวนเตม
โดยใชฟงกชน fixpnt.m2) สญญาณขาเขาตองเปนจ านวนเตม มขนาดตงแต 2-B+1 จนถง 2B-1 (B เปนจ านวนบตทจะ
แทนคาสญญาณ และ B=M+N) ถามสญญาณขาเขาทเปนทศนยม ตองปรบขนาดใหเหมาะสมกอนโดยใชฟงกชน fixpnt.m
3) ในสวนประมวลผล ถามการคณ ตองใชฟงกชน rndfix.m กระท ากบผลลพธของการคณ4) ในสวนประมวลผล ถามการบวก ตองใชฟงกชนตรวจสอบผลลพธวาเกดโอเวอรโฟลหรอ
ไม ในกรณทเปนการบวกสะสม ใหตรวจเฉพาะผลลพธสดทายเทานน ฟงกชนนเรายงไมไดเขยนไวซงสามารถเขยนไดงาย ๆ ดงแสดงในฟงกชน chkovr.m (โปรแกรมท 10.6)
function chkovr(x,B);if max(abs(x)) > 2^(B-1) error('Overflow Error after Adding!');end
โปรแกรมท 10.6 ฟงกชน chkovr.m ส าหรบตรวจจบโอเวอรโฟลจากการบวก
ในการประมวลผลเพอจ าลองระบบจ านวนเตม ถาหากมโอเวอรโฟล โปรแกรมจะหยดการท างาน และแจงใหทราบวาโอเวอรโฟลมาจากฟงกชนใด ซงกจะท าใหรวาเปนโอเวอรโฟลจากสาเหตใด
ในทนจะไดยกตวอยาง การจ าลองการท างานของตวกรอง IIR แบบโครงสราง direct form 1และ direct form 2
การจ าลองตวกรอง IIR โครงสราง direct form 1โปรแกรมท 10.7 เปนฟงกชนทค านวณตวกรอง IIR แบบ direct form 1 โดยฟงกชนจะรบคาก) a และ b ซงเปนเวคเตอรของสมประสทธของเศษ และสวนตามล าดบ
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 198
ข) M และ N ก าหนดรปแบบของจ านวนเตมทจะใชกบ a และ bค) x เปนเวคเตอรของสญญาณขาเขา ซงตองอยในรปแบบจ านวนเตมแลวและจะใหสญญาณขาออกเปนเวคเตอร y ซงกจะอยในรปแบบจ านวนเตมเชนเดยวกบขาเขา
ฟงกชนนเขยนใหสามารถค านวณตวกรองอนดบใด ๆ กไดใหสงเกตตวอกษรทเนนเปนตวเขม ซงเปนสวนทเตมเขามาเพอใหท าให Matlab จ าลองการ
ค านวณแบบจ านวนเตมได ถาตดสวนทเปนตวเขมออก กจะไดโปรแกรมทท าการค านวณตามปกตโดยปราศจากผลของความคลาดเคลอนทมาจากการใชเลขจ านวนเตม
function y = iir1(a,b,x,M,N)B = M+N;a = fixpnt(a,M,N);b = fixpnt(b,M,N);Nx=length(x); Na=length(a); Nb=length(b);xold=zeros(1,Na); yold=zeros(1,Nb);y=zeros(1,Nx);
for i=1:Nx xold(1)=x(i); for j=1:Na y(i) = y(i) + rndfix(a(j)*xold(j),M,N); end for j=2:Nb y(i) = y(i) - rndfix(b(j)*yold(j),M,N); end chkovr(y(i), B); yold(1)=y(i); xold(2:Na) = xold(1:Na-1); yold(2:Nb) = yold(1:Nb-1);end
โปรแกรมท 10.7 ฟงกชน iir1.m ส าหรบค านวณตวกรอง IIR โครงสราง direct form 1
function y = iir1a(a,b,x,M,N)a = fixpnt(a,M,N);b = fixpnt(b,M,N);Nx=length(x); Na=length(a); Nb=length(b);xold=zeros(1,Na); yold=zeros(1,Nb);y=zeros(1,Nx);
for i=1:Nx xold(1)=x(i); for j=1:Na y(i) = y(i) + a(j)*xold(j); end for j=2:Nb y(i) = y(i) - b(j)*yold(j); end y(i) = rndfix(y(i),M,N); yold(1)=y(i); xold(2:Na) = xold(1:Na-1); yold(2:Nb) = yold(1:Nb-1);end
โปรแกรมท 10.8 ฟงกชน iir1a.m เหมอน 10.7 แตจ าลองวาใชตวบวกทมจ านวนบตเปนสองเทาโปรแกรมท 10.8 เปนระบบทจ าลองวามตวบวกทมจ านวนบตเปนสองเทาของปกต เพราะ
ฉะนน ผลลพธจากการคณจะไมถกปดเศษทนท แตจะมาบวกกนกอน แลวคอยปดเศษทผลลพธสดทายแคครงเดยว ใหสงเกตต าแหนงของการใชฟงกชน rndfix ทเปลยนไป
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 199
ตวอยางท 10.10 ศกษาผลของการใชระบบเลขจ านวนเลขจ านวนเตมขนาด 8 บต กบตวกรอง LPF บตเตอรเวรธ ทมความถตดท 0.6π โดยเทยบผลตอบสนองตออมพลส และสเปกตรมของมน
เราจะใชฟงกชนส าเรจรปใน DSP Toolbox ชอ butter เพอหาสมประสทธของตวกรองน ดงน[a,b]=butter(4,0.6) หาสมประสทธของ LPF มอนดบ=4 และความถตด=0.4π
ได a = [ 0.1672 0.6687 1.0031 0.6687 0.1672 ]b = [ 1.0000 0.7821 0.6800 0.1827 0.0301 ]
กรณทไมมความคลาดเคลอน สามารถค านวณหาผลตอบสนองตออมพลสไดโดยใชโปรแกรมท 10.7 (iir1.m) ทตดสวนทเปนตวเขมทไดแสดงไวออก หรอจะใชฟงกชน filter ใน DSPToolbox กได ซงจะไดผลตอบสนองตออมพลส และสเปกตรมของมนดงในรปท 10.19 ก)สเปกตรมของผลตอบสนองตออมพลสในทนกคอ ผลตอบสนองเชงความถของระบบนนเองในกรณทใชระบบเลข 8 บต เราจะใชฟงกชน iir1.m และ iir1a.m ในการค านวณ จาก
สมประสทธในขอนพบวา ทกตวมขนาดไมเกน 1 ยกเวน a(3)=1.0031 ซงเราจะอนโลมปดให a(3)=1 ดงนน สามารถเลอกให M=7 และ N=1 ได เราจะใชค าสงตอไปน ในการหาผลตอบสนองตออมพลส และสเปกตรมของมน (กรณทใช iir1.m)
M=7; N=1;x = [128 zeros(1,79)]; ใหขาเขาเปนอมพลส และเทยบขนาดวา 128 มคาเทากบ 1y = iir1(a,b,x,M,N);y = y/128; หารผลลพธทไดกลบเปนคาปกต เพอน าไปวเคราะหตอfigure(1); plot(y)figure(2); dtft(y)
ผลทไดแสดงในรปท 10.19 ข) และ ค) จะสงเกตไดถงความผดเพยนทเกดขนกบผลตอบสนองตออมพลส และสเปกตรมของมน จดทตองระวง กคอ สเปกตรมของผลตอบสนองตออมพลสในกรณน จะไมไชของผลตอบสนองเชงความถของระบบทเราจะได ทงนเนองจาก ผลของสญญาณรบกวนจากการคณเปนผลทไมเปนเชงเสน การเกดผลทางความถตอผลตอบสนองตออมพลสในลกษณะหนง ไมไดหมายความวา ผลนนจะเหมอนกนเมอสญญาณขาเขาเปนสญญาณอน ดงนน รปของสเปกตรมทไดในรปท 10.19 ข) และ ค) จะใชเพอเปรยบเทยบไดกบรปท 10.19 ก) เทานน ไมสามารถถอไดวาเปนผลตอบสนองเชงความถของระบบทเปลยนไป
h(n) |H|
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 200
รปท 10.19 ผลตอบตออมพลส และสเปกตรมของมนจากตวอยางท 10.10ก) เมอไมมผลของความคลาดเคลอนใด ๆ ข) เมอใชกบระบบเลข 8 บต
ค) เมอใชกบระบบเลข 8 บต แตใชตวบวก 16 บต
ผลในรปท 10.19 ข) มลกษณะทประหลาด คอ ผลตอบไมลเขาสศนย ทงทสญญาณขาเขาเปนศนยไปนานแลว โดยผลตอบจะแกวงเปนคาบ มคา (กอนหารกลบเปนทศนยม) เปน … ,0, -1, 1, 0, -1, 1, 0, -1, 1, 0, … ปรากฏการณน เรยกวา limit cycle oscillation ซงเปนผลจากความคลาดเคลอนจากการคณทเกดขนกบระบบทมการปอนกลบในบางกรณเทานน ในหนงสออางอง [4] ไดแสดงการวเคราะหส าหรบกรณตวกรองอนดบสอง
ในตวอยางท 10.10 น ไมไดท าการลดคาสมประสทธเพอปองกนโอเวอรโฟล ซงบงเอญเราใชสญญาณขาเขาทมคานอย ท าใหไมพบปญหาเกยวกบโอเวอรโฟล ในการทดสอบจรง ๆ เราอาจน า
ก)
ค)
ข)
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 201
ตวอยางของสญญาณขาเขาทใกลเคยงกบการใชงานจรงมาใสใหกบการจ าลอง และกสามารถทดสอบเปลยนคาตวประกอบการสเกลใหเหมาะสม เพอใหปองกนโอเวอรโฟลได
การจ าลองตวกรอง IIR โครงสราง direct form 2
โปรแกรมท 10.9 และ 10.10 (iir2 และ iir2a) เปนฟงกชนทค านวณตวกรอง IIR แบบ directform 2 ซงหลกการ และการใชงานโปรแกรมทงสองกเหมอนกบของกรณโครงสราง direct form 1
จดพเศษทเพมเขามา กคอ โปรแกรม iir2 และ iir2a อนญาตใหเราเลอกใชคา M ทแตกตางกนได ส าหรบสมประสทธของโพลโนเมยลเศษ (ai) และโพลโนเมยลสวน (bi) โดยทโปรแกรมจะรบคาM, N, M2, และ N2 เขาไป โดยท M และ N จะถกใชกบสมประสทธของโพลโนเมยลเศษ สวน M2และ N2 จะถกใชกบสมประสทธของโพลโนเมยลเศษ ถาผใชไมใสคา M2 และ N2 โปรแกรมจะตงใหเทากบ M และ N โดยอตโนมต ค าถาม คอ ท าไมเราจงสามารถใชคา M ทแตกตางกนไดภายในระบบเดยวกน
เนองจาก สมประสทธทกตวในตวกรองจะถกใชส าหรบเปนตวคณ ดงนน จรง ๆ แลวเราสามารถเลอกคา M และ N ส าหรบสมประสทธแตละตว และทกตวไดโดยอสระตอกน ดวยเงอนไขเพยงอยางเดยววา หลงการคณดวยสมประสทธคาหนง ๆ จะตองท าการปดเศษผลลพธทง M บต โดยใชคา M ทสมประสทธนนใชอย ถาเราปดเศษถกตองในลกษณะนจะไดรปแบบของสญญาณขาออก
function y = iir2(a,b,x,M,N,M2,N2)if nargin==5 M2=M; N2=N;endB = M+N;a = fixpnt(a,M,N);b = fixpnt(b,M2,N2);Nx=length(x); Na=length(a); Nb=length(b);Nab=max(length(a),length(b));wold=zeros(1,Nab);y=zeros(1,Nx);
for i=1:Nx wold(1) = x(i); for j=2:Nb wold(1) = wold(1) - rndfix(b(j)*wold(j),M2,N2); end chkovr( wold(1),B );
for j=1:Na y(i) = y(i) + rndfix(a(j)*wold(j),M,N); end chkovr( y(i),B ); wold(2:Nab) = wold(1:Nab-1);end
โปรแกรมท 10.9 ฟงกชน iir2.m ส าหรบค านวณตวกรอง IIR โครงสราง direct form 2function y = iir2a(a,b,x,M,N,M2,N2)if nargin==5 M2=M; N2=N;end
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 202
B = M+N;a = fixpnt(a,M,N);b = fixpnt(b,M2,N2);Nx=length(x); Na=length(a); Nb=length(b);Nab=max(length(a),length(b));wold=zeros(1,Nab);y=zeros(1,Nx);
for i=1:Nx wold(1) = 0; for j=2:Nb wold(1) = wold(1) - b(j)*wold(j); end wold(1) = x(i) + rndfix(wold(1),M2,N2); chkovr( wold(1),B ); for j=1:Na y(i) = y(i) + a(j)*wold(j); end y(i) = rndfix(y(i),M,N); wold(2:Nab) = wold(1:Nab-1);end
โปรแกรมท 10.10 ฟงกชน iir2a.m เหมอน 10.7 แตจ าลองวาใชตวบวกทมจ านวนบตเปนสองเทา
ของตวคณไมเปลยนแปลงจากสญญาณขาเขาดงทไดศกษาไปในเรองการคณระบบเลขจ านวนเตม ดงนน ส าหรบโปรแกรม iir1 และ iir2 จรง ๆ แลว สามารถเลอกสมประสทธทแตกตางกนส าหรบสมประสทธแตละตวได เชน ถามสมประสทธเพยงตวเดยวในระบบมขนาดเกน 1 แตไมเกน 2 เราสามารถใชคา N=2 ส าหรบสมประสทธตวนน ในขณะทใชคา N=1 ส าหรบสมประสทธตวอนได
ส าหรบโปรแกรม iir1a ซงท าการบวกผลลพธจากการคณกอนจงคอยปดเศษ ในกรณน จ าเปนตองใชคา M เทากนส าหรบสมประสทธทกตว เพราะ ตองท าใหผลลพธจากการคณทกตวมรปแบบเหมอนกน สวนโปรแกรม iir2a ซงท าการปดเศษหลงการบวกเชนกน แตโปรแกรมนมการบวก 2แยกกนอยสองสวน คอ บวกผลลพธจากการคณของสมประสทธเศษ (a) สวนหนง และบวกผลลพธจากการคณของสมประสทธสวน (b) อกสวนหนง ดงนน กรณน ตองใชคา M ของสมประสทธเศษทกตวเทากน แตไมจ าเปนตองเทากบคา M ของสมประสทธของสวน ดงทไดแสดงไวแลวในโปรแกรมดงกลาว
ตวอยางการประมวลผลดวยระบบเลขจ านวนเตมในภาษาซ
การน าระบบประมวลผลสญญาณดจตอลไปใชจรง สามารถท าไดโดย การใชฮารดแวร (ท าเปนไอซเฉพาะงาน) หรอ การใชซอฟทแวรรวมกบชพ DSP หรอ CPU ทว ๆ ไป ดงทไดกลาวไวในบทน า ในทนจะขอยกตวอยาง การท าตวกรอง IIR แบบโครงสราง direct form 2 โดยใชภาษาซ ซงเขยนเปนฟงกชน iir2a ดงแสดงในโปรแกรมท 10.11 ฟงกชนนมการท างานเทยบเทากบโปรแกรมiir2a.m ใน Matlab ในหวขอทแลว
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 203
ฟงกชนนจะรบตวแปรเขา คอ x และคนตวแปรออก คอ y โดยท x และ y เปนตวแปรแบบจ านวนเตมในภาษาซ ซงเปนรปแบบ 2’s complement ขนาด 16 บต ตวแปรโกลบอลทฟงกชนนตองใช (ตองมการประกาศคาในโปรแกรมหลก) ไดแก
ก) Order คอ คาอนดบของตวกรองข) a[ ] และ b[ ] คอ คาสมประสทธของตวกรองค) wold[ ] คอ ตวแปรส าหรบเกบคาสญญาณในอดตเพอใชในการประมวลผลฟงกชนนจะท าการบวกผลลพธจากการคณดวยตวบวกขนาด 32 บต ทงน ไดตงตวแปร ชอ
ACC ซงเปน 2’s complement ขนาด 32 บต ส าหรบสะสมคาจากการบวก การปดเศษใหกลบเปน 16บต จะท าหลงจากการบวกครบทกเทอมแลว โดยการปดเศษท าไดโดยการเลอนบตไปทางขวา 15 บต(right shift)
การเลอนบตนเปนการตดเศษทงเลย (ไมมการปดขน) ผลกคอ จะท าใหสญญาณรบกวนจากการคณมากขน แตขอดกคอ จะท าใหเขยนโปรแกรมไดงาย และท างานไดเรวขน ดงนน ในทนจะขออนโลมในการใชวธนกอน การตดเศษทงนใน Matlab ใชค าสงวา floor ดงนน ถาตองการเปรยบเทยบกบผลทไดกบ Matlab กท าไดโดยเปลยนการเรยกใชฟงกชน round ในโปรแกรม rndfix.m ใหมาใชเปนฟงกชน floor แทน
โปรแกรมท 10.12 เปนตวอยางการเรยกใชฟงกชน iir2a ในเทอรโบซ (ของบรษท บอรแลนด)ซงไดใสสญญาณขาเขาเปนตวแปรแบบอะเรยขนาด 10 คา และแสดงคาของสญญาณขาออกทค านวณไดทหนาจอ โปรแกรมนใชคาสมประสทธทค านวณจาก Matlab เปนตวกรองบตเตอรเวรธ LPF ทมความถตดท 0.6π และใช M=15, N=1 ในการแปลงเปนเลขจ านวนเตม ซงโปรแกรมนไดทดสอบแลววาใหผลตรงกบการจ าลองดวยโปรแกรม iira2.m ใน Matlab ทกประการ ในการใชงานจรง เรากเพยงเปลยนให x ไปรบคาจากสญญาณขาเขาจรง ๆ ซงอาจมาจากไฟล หรอจากพอรตอนพตเอาตพตของคอมพวเตอรกได
int iir2a(int x) long int ACC = 0; int i,y;
for (i=1; i<=Order; i++) ACC -= b[i] * wold[i]; wold[0] = x + (ACC >> 15); ACC = 0; for (i=0; i<=Order; i++) ACC += a[i] * wold[i]; y = ACC >> 15;
for (i=Order; i>0; i--) wold[i] = wold[i-1];
return(y);
โปรแกรมท 10.11 ฟงกชน iir2a.c ส าหรบค านวณตวกรอง IIR โครงสราง direct form 2
บทท 10 ความคลาดเคลอนจากการใชระบบเลขจ านวนเ 204
โปรแกรมท 10.13 เปนตวอยางของโปรแกรมภาษาซทเรยกใชฟงกชน iir2a เพอท าการประมวลผลแบบเวลาจรงบนบอรดทดลอง TMS320 DSK ของบรษท เทกซส อนสตรเมนส ในโปรแกรมน การประมวลผลจะกระท าในโปรแกรมยอยตอบสนองอนเทอรรพต ทกครงทมสญญาณขาเขาใหมเขามาท A/D กจะมสญญาณอนเทอรรพตเขาชพ DSP ดงนน การประมวลผลจะเขาจงหวะกบคาของสญญาณขาเขาทเขามา ดวยการประมวลผลแบบเวลาจรงน ท าใหมนท าหนาทเสมอนเปนตวกรองแอนะลอกตวหนง
#include "stdio.h"#define Order 4const long int a[Order+1] = 5478, 21913, 32767, 21913, 5478 ;const long int b[Order+1] = 32767, 25628, 22282, 5986, 987 ;long int wold[Order+1] = 0, 0, 0, 0, 0 ;
void main() int i; int x[10] = 5500,150,-2800,-20000,-25000, -10000,2000,18000,21000,10000 ;
for (i=0; i<10; i++) printf(" %d\n", iir2a(x[i]) );
getch();
โปรแกรมท 10.12 การเรยกใชฟงกชน iir2a.c โดยใชเทอรโบซ
#define Order 4extern void aicinit();int *DRR = (int *) 0x20;int *DXR = (int *) 0x21;const int a[Order+1] = 5478, 21913, 32767, 21913, 5478 ;const int b[Order+1] = 32767, 25628, 22282, 5986, 987 ;int wold[Order+1] = 0, 0, 0, 0, 0 ;
main()
aicinit(); %เรยกโปรแกรมยอยส าหรบตงคาควบคมใหกบไอซ A/D และ D/A for(;;); %วนรออนเทอรรพตจาก A/D
void c_int5(void) %โปรแกรมยอยเพอตอบสนองอนเทอรรพตจาก A/D int x;
x = *DRR >> 2; %รบคาจากรจสเตอรทตดตอกบ A/D *DXR = iir2a(x) << 2; %ประมวลผล และสงคาออกทางรจสเตอรทตดตอกบ D/A
โปรแกรมท 10.13 การเรยกใชฟงกชน iir2a.c ส าหรบประมวลผลแบบเวลาจรงดวย TMS320C50
% x ในทนเปนสญญาณทดสอบ ซงเกบอยเปนแบบตวแปรอะเรย
% วนประมวลผลไปจนหมดทกคาของ x และแสดงผลลพธออกทางหนาจอ
บทท 11 การประมวลผลแบบหลายอตราสม 205
บทท 11การประมวลผลแบบหลายอตราสม
ในบทนเราจะไดศกษาถงระบบทมอตราการสม (fs) หรออตราของขอมลมากกวาหนงอตราในระบบ ซงสงทจ าเปนส าหรบระบบประเภทนกคอ การเปลยนอตราการสมได เราจะไดศกษาวธการในการลด และเพมอตราการสมทถกตอง จากนน ในทายบทกจะเปนการยกตวอยางการใชงานของระบบทใชหลายอตราการสม
การเปลยนอตราการสมโดยแปลงเปนสญญาณแอนะลอกกอน
วธทจะเปลยนอตราการสมของสญญาณอยางงาย ๆ กคอ การแปลงสญญาณนนกลบเปนสญญาณแอนะลอกกอน แลวสมสญญาณแอนะลอกใหมดวยอตราการสมใหมทตองการ ดงแสดงในรปท 11.1 วธนใหอสระในการเปลยนอตราการสมพอสมควร โดยเราสามารถใชอตราการสมใหมเปนเทาไรกได ทงนโดยไมขดแยงกบหลกการของการสมทถกตอง นนกคอ อตราการสมใหมจะตองมากกวาสองเทาของความถสงสดทมอยในสญญาณ
กรณทเปนการเพมอตราการสม จะไมมปญหาเกยวกบ aliasing เนองจาก อตราการสมใหมมากกวาอตราเกา ซงหมายถงวา ยานไนควทซกวางขน ดงนน ถาสญญาณไมตอเนองเดมไมม aliasingสญญาณใหมกจะไมมทางเกด aliasing เชนกน แตในกรณของการลดอตราการสม ซงยานไนควทซจะแคบลง จะตองระวงไมใหความถของสญญาณเดมมากเกนกวาครงหนงของอตราการสมใหม ถาหากมากกวา เราจ าเปนจะตองกรองความถในชวงทมากกวานนทงไป โดยอาจใชตวกรองดจตอล
ส ญญาณแอนะลอก
ร ะ อ ตรา fs1
ต วเปล ยนอ ตราการส ม
ร ะ บา ง า น ท อ ตรา fs2
D/A A/Dส ญญาณไม ต อเน องอ ตรา fs1
ส ญญาณไม ต อเน องอ ตรา fs2
รปท 11.1 การเปลยนอตราการสมโดยการแปลงกลบเปนสญญาณแอนะลอกแลวสมใหม
บทท 11 การประมวลผลแบบหลายอตราสม 206
กรองทงกอนแปลงเปนแอนะลอก หรอใชตวกรองอนาลอกกรองกอนทจะท าการสมใหมกได เรองการปองกน aliasing จากการลดอตราการสมน จะไดกลาวถงอกครง ในเรองการลดอตราการสมในโหมดสญญาณไมตอเนองลวน ๆ ซงมหลกการปองกนคลายกน
วธเปลยนอตราการสมโดยแปลงเปนสญญาณแอนะลอกกอนเชนน เปนวธทไมนยมท า เนองจากมขอเสย คอ
ก) เพมสญญาณรบกวนจากการแบงขนสญญาณ (quantization noise) เขามาในระบบ ในจดทท าการสมใหม
ข) เพมความเพยนจาก aliasing ถาใชตวกรองแอนะลอกท D/A และ A/D ไมคมพอค) ไมสะดวกทจะมวงจรแอนะลอกเพมเขามาในกงกลางของการประมวลผลดงนน เราตองการตวเปลยนอตราการสม ทท างานไดโดยไมตองแปลงสญญาณกลบเปนแอ
นะลอก ซงกเปนไปได ดงจะไดกลาวในหวขอถดไป
เดซซเมเตอร (Decimator)
การลดอตราการสมในโหมดสญญาณไมตอเนองลวน ๆ มองดแลวเหมอนเปนสงงาย ๆ กลาวคอ ถาเราตองการลดอตราลงดวยอตราสวน 1/D หรอ ลดอตราลง D เทา โดยท D เปนจ านวนเตม กสามารถท าไดโดยสรางสญญาณใหมขนมาโดยดงเอาสญญาณเกามา 1 คา แลวเวน D-1 คา ตวอยางเชน ถา D=3 เราจะตองสรางสญญาณใหม y(n) โดยดงเอาคาจากสญญาณเกา x(n) 1 คา แลวเวน 2 คาดงแสดงในรปท 11.2 เราจะไดอตราขอมลของ y(n) นอยลง (หรอชาลง) กวา x(n) 3 เทา หรอถาคดในแงปรมาณของขอมลแลว เรากจะไดวาจ านวนขอมลของ y(n) นอยลงกวา x(n) 3 เทา
ในโดเมนความถ การลดอตราการสมลง 3 เทา จะท าใหยานไนควทซแคบลงเปน 1/3 ของเดมนนคอ อาจคดไดวาสญญาณใหมจะมความถ π ยายมาอยทความถ π/3 ของเดม ดงแสดงในรปท 11.3ปญหาจะเกดขนถาหากวาสญญาณเดมมองคประกอบความถทสงกวา π/3 อยดวย เพราะเมอลดอตราการสมแลว จะท าใหเกดการซอนทบของสเปกตรมขน หรอเกด aliasing นนเอง ซงเปนหลกการเดยวกบทไดศกษามาแลวในบทท 2 ดงนน ถาสญญาณองคประกอบความถทสงกวา π/3 อยดวย การลดอตราการสมทถกตอง จะตองกรองสญญาณความถสงนทงไป โดยใชตวกรองดจตอลผานต าทมความถตดท π/3
ขอใหสงเกตวา ในรปท 11.2 และ11.3 พยายามวาดเพอแสดงใหเหนความสมพนธระหวางสญญาณกอน และหลงการลดอตราการสม ในเชงเวลา และความถ ดงนน จงวาดโดยใชสเกลในแกนนอนทมไมเทากน
โดยสรป กระบวนการลดอตราการสมลง D เทาโดยไมท าใหสญญาณใหมเกด aliasing ขน ซงเราจะเรยกวา “เดซซเมเตอร” จะประกอบดวย (แสดงในรปท 11.4)
บทท 11 การประมวลผลแบบหลายอตราสม 207
1. ตวกรองดจตอลแบบ LPF อยกอนหนาการลดอตราการสม โดยตวกรองดจตอลทใชมความถตดท π/D ดงแสดงในรปท 11.4 ตวกรองนบางทกเรยกวา ตวกรองเดคซเมชน (DecimationFilter) ซงนยมใชเปนตวกรองแบบ FIR
2. ตวลดอตราการสม (down-sampler) ขอนยามสญลกษณของตวนเปน ↓ D ซงตวลดอตราการสมท าหนาทดงเอาสญญาณขาเขามา 1 คา เวน D-1 คา สลบกนไป ตามทไดกลาวมาแลว
y(n)
x(n)
n
n
รปท 11.2 สญญาณทางเวลากอน และหลงการลดอตราการสมลง 3 เทา
ω'0 π3 π 2π
ω'0 4π2π 6π
รปท 11.3 สเปกตรมของสญญาณกอน และหลงการลดอตราการสมลง 3 เทา (กรณทไมเกด aliasing)
↓ D เท าต วกรองด จ ตอล
LPFy(n)x(n)
ความถ ต ด = π/D
รปท 11.4 สวนประกอบของเดซซเมเตอร
โปรแกรมท 11.1 ท าหนาทเปนตวลดอตราการสมลง D เทา โปรแกรมนเมอใชรวมกบตวกรองดจตอล กจะท าหนาทเปนตวเดซซเมเตอรทตองการได ใน Matlab DSP Toolbox มฟงกชนชอdecimate ซงไดรวมหนาทของโปรแกรมน กบตวกรองดจตอลเขาไวดวยกน แตเพอใหเกดความยด
|X(ejω′)|
|Y(ejω′)|
บทท 11 การประมวลผลแบบหลายอตราสม 208
หยนในการใชงาน (เพราะในบางครงเราไมตองการใชรวมกบตวกรองดจตอลแบบ LPF) จงไดแยกเขยนเปนฟงกชน downsam.m ตางหาก
function y = downsam(x,D);n=1:D:length(x);y=x(n);
โปรแกรมท 11.1 ฟงกชน downsam..m ส าหรบลดอตราการสมของสญญาณลง D เทา
อนเตอรโพเลเตอร (Interpolator)
เชนเดยวกนกบการลดอตรากการสม คอ เราสามารถเพมอตราการสมของสญญาณขนได Iเทา โดยท I เปนจ านวนเตม สมมตวา ใช I=3 หมายถงวา สญญาณใหม y(n) จะมอตราขอมลเพมขนจากสญญาณเกา x(n) 3 เทา หรอถาคดในแงของการประมวลผลแบบไมเปนเวลาจรง กจะไดวา y(n)จะมจ านวนขอมลมากขน 3 เทา
ส าหรบการเพมอตราการสมกรณ I=3 เราจะไดยานไนควทซเพมขนจากเดมสามเทา ดงนนaliasing จะไมเปนปญหาทตองค านงถงเหมอนในกรณของการลดอตราการสม แตปญหาใหมกคอ การสรางสญญาณ y(n) ขนมานน จะตองน าสญญาณ x(n) มา แลวแทรกขอมลใหมเพมลงไป 2 จดในระหวางทก ๆ จดของ x(n) เพอใหมอตราขอมลเพมขนสามเทา ปญหาคอ เราจะหาขอมลใหมเหลานมาไดอยางไร โดยเงอนไขของขอมลใหมทจะเตมลงไป คอ มนตองเปนตวเฉลยทถกตองระหวางขอมลทมนเขาไปแทรก โดยไมท าใหสเปกตรมเดมของสญญาณผดเพยนไป
ปรากฏวา ถาเราลองท าการแทรกศนยลงไป 2 จดในระหวางคาของสญญาณเกาทก ๆ จดเรยกสญญาณใหมนวา w(n) ดงแสดงในรปท 11.5 จะไดวา อตราขอมลของ w(n) มากขนเปนสามเทาจรง แตเหนไดชดวา ศนยทแทรกเชาไปไมใชคาเฉลยทดแนนอน เพราะท าใหรปรางสญญาณผดเพยนไปเลย แตลองมาพจารณาดกอนวา ในภาคความถเกดอะไรขนกบสญญาณ w(n) ซงขอเรมตนทการพจารณาการแปลง z ของ w(n) ดงน
W z( ) = w(n)z- nn = 0
∞∑
ถาสญญาณ w(n) เรมตนท w(0) = x(0) จะไดวาคา w(n) ทไมเทากบศนย คอ w(3), w(6), w(9), … โดยท w(3) = x(1), w(6) = x(2), … เปนเชนนไปเรอย ๆ หรอเขยนเปนสตรไดวา w(n) = x(n/3) จะได
W z( ) = w(n)z
= x(n / 3)z
- nn = 0,3,6,9,...
- nn = 0,3,6,9,...
∞
∞
∑
∑
บทท 11 การประมวลผลแบบหลายอตราสม 209
แทน n ดวย 3n จะไดตวชทเรยงล าดบเปนปกต คอ n=0,1,2,3, … ดงน
W z( ))
= x(n)z = X(z
-3nn = 0
3
∞∑
แทน z=ejω′ จะไดความสมพนธระหวางสเปกตรมของ x(n) กบ w(n) ดงน
W(ejω′) = X(ej3ω′) (11.1)
w(n)
x(n)
n
n
y(n)
n
รปท 11.5 สญญาณทางเวลากอน และหลงการเพมอตราการสมขน 3 เทา
0 ω'π3
π 5π 2π3
0 ω'3π3
π2π 4π 5π 2π3 3
0 ω'π3
π 5π 2π3
รปท 11.6 สเปกตรมของสญญาณกอน และหลงการเพมอตราการสมขน 3 เทา
|X(ejω′)|
|W(ejω′)|
|Y(ejω′)|
บทท 11 การประมวลผลแบบหลายอตราสม 210
จะไดวา สเปกตรมของ w(n) คอ สเปกตรมของ x(n) ทถกบบใหแคบลง 3 เทา ดงแสดงในรปท 11.6 ยานความถในชวง 0 ถง π เดมของ x(n) จะถกบบใหอยในชวงความถ 0 ถง π/3 ของ w(n) ซงชวงความถน คอสงทเราตองการ สวนความถในชวง π/3 ถง π จะมส าเนาของความถเดมของ x(n)ปนเขามา ซงคอสงทเราไมตองการ และตองตดทงโดยใชตวกรองดจตอล
ฉะนน ตวเพมอตราการสมทถกตอง ซงจะเรยกวา อนเตอรโพเลเตอร (แสดงในรปท 11.7) จะตองประกอบดวย
1.) ตวเพมอตราขอมลขน I เทา (up-sampler) ซงจะขอแทนดวยสญลกษณ ↑ I ตวเพมอตราขอมลนท าหนาทแทรกศนย I-1 ตวลงไปในระหวางขอมลของสญญาณขาเขา ดงไดกลาวมาแลว
2.) เราจะใชตวกรองดจตอลแบบ LPF ทมความถตดท π/3 เพอกรองส าเนาความถของ x(n)ทเกดขนจากการแทรกศนยทงไป ตวกรองนมชอเรยกวา ตวกรองอนเตอรโพเลชน (InterpolationFilter)
สญญาณขาออกของอนเตอรโพเลเตอร คอ y(n) เปนสญญาณทเทยบเทากบสญญาณ x(n) และมอตราการสมเพมขนสามเทา ขอใหดการเปรยบเทยบรปในทางเวลา และความถของ y(n) กบ w(n)และ x(n) ในรปท 11.5 และ 11.6
โปรแกรมท 11.2 ใชส าหรบแทรกศนยเพอเพมอตราการสมขน I เทา โปรแกรมนเมอใชรวมกบตวกรองดจตอล กจะท าหนาทเปนตวอนเตอรโพเลเตอรทตองการได ใน Matlab DSP Toolbox มฟงกชนชอ interp ซงไดรวมหนาทของโปรแกรมน กบตวกรองดจตอลเขาไวดวยกน
↑ I เท า ต วกรองด จ ตอลLPF
y(n)x(n)
ความถ ต ด = π/I
w(n)
รปท 11.7 สวนประกอบของอนเตอรโพเลเตอร
function y = upsam(x,I);Ny = length(x)*I;y=zeros(1,Ny);n=1:I:Ny;y(n)=x;
โปรแกรมท 11.2 ฟงกชน upsam.m ส าหรบเพมอตราการสมของสญญาณขน I เทา (โดยแทรกศนย)
บทท 11 การประมวลผลแบบหลายอตราสม 211
การเปลยนอตราการสมดวยอตราสวนทไมเปนจ านวนเตม
ทผานมาเราไดเหนแลววา การเปลยนอตราการสมโดยไมตองแปลงสญญาณกลบเปนแอนะลอกกอนสามารถท าได แตดวยขอจ ากดวา สามารถเพม หรอลดอตราการสมดวยจ านวนเทา ทเปนจ านวนเตมเทานน ในงานบางอยาง ตองใชการเปลยนอตราการสมดวยอตราสวนทไมเปนจ านวนเตมเชน สญญาณเสยงทเกบในแผน CD ใชอตราขอมลเทากบ 44.1 kHz ถาตองการจดเกบในเทป DAT(Digital Audio Tape) ซงใชอตราขอมลเทากบเทากบ 48 kHz จ าเปนจะตองเปลยนอตราสมใหมากขนเทากบ 48/44.1 = 1.088.. เทา ซงเปนอตราสวนทไมเปนจ านวนเตม
เราสามารถเปลยนอตราสมดวยคาทไมเปนจ านวนเตมนได โดยใชเทคนคแปลงใหคา 48/44.1เปนเศษสวนของเลขจ านวนเตม ซงในทนจะได
48441.
→ 480441
→ 160147
ดงนน หมายถงวา ถาเพมอตราการสมขนไปกอน 160 เทา จากนนลดอตราสมลงมา 147 เทาเราจะไดคาของอตราสวนทเปลยนไปโดยรวมเทากบ 48/44.1 ตามทตองการ ดงแสดงในแผนภาพทวไปในรปท 11.8 จะเหนไดวาตวกรองส าหรบเพมอตราการสม และลดอตราการสมจะตออนกรมกนพอด ดงนน เราสามารถรวมตวกรองทงสองเปนตวเดยวกนไดดงแสดงในรป และใชความถตดทต าทสดระหวางตวกรองทงสอง ในทน I=160 และ D=147 ดงนน ใช π/160 ซงเปนคาทต ากวาเปนความถตดของตวกรอง
↑ I เท าx(n) InterpolationLPF
DecimationLPF
↓ D เท า y(n)
↑ I เท า LPF ↓ D เท า y(n)
ω π' C I= ω π' C D
=
x(n)
ω' C = ค าน อยท ส ดระหว างπ πI
กบ D
รปท 11.8 การเปลยนอตราสมทมอตราสวนไมเปนจ านวนเตม อตราสวนทเปลยน=I/D
คณ 10 ทงเศษและสวน
ตดเศษ และสวนใหเปนจ านวนเตมทต าทสด
บทท 11 การประมวลผลแบบหลายอตราสม 212
วธเปลยนอตราการสมแบบน มองดคอนขางเปนวธทขวานผาซาก แตกท างานไดด ขอเสยกคอ ถาอตราสวนทไดเปนจ านวนเตมทมคามาก เราจะตองใชการประมวลผลทมาก เนองจาก ตวกรองดจตอลทใชจะตองท างานท I เทาของอตราการสมของสญญาณขาเขา ยง I มากเทาไรมนกจ าเปนตองท างานเรวขนเทานน ในทน I=160 และ fs ขาเขา = 44.1 kHz ดงนน ตวกรองดจตอลนตองท างานทอตราสมของขอมลเทากบ 7056 kHz ซงถอวา คอนขางมาก และไมเหมาะกบระบบทตองการตนทนทต า ทางแกกคอ อาจเปลยนโครงสรางของระบบแทนทจะเพมอตราสมทเดยว 160 เทา กคอย ๆ เพมและคอย ๆ ลดสลบกนไป ดงทจะไดอธบายในหวขอถดไป และทางเลอกอกทางกคอ แปลงใหเปนสญญาณแอนะลอกแลวสมใหม
การเปลยนอตราการสมแบบหลายขนตอน
การเปลยนอตราสมดวยอตราสวนทมคามาก จะท าใหตองใชตวกรองทมอนดบสง และท างานทอตราขอมลทสงดวย ซงกจะท าใหมนตองการการประมวลผลทมาก โดยทอตราการประมวลผลของตวกรอง FIR จะแปรผนตรงกบจ านวนสมประสทธของตวกรอง (N) และอตราการสม (fs) ดงน
อตราการประมวลผล = Nfs MAC / วนาท (11.2)
อตราการประมวลผลนสามารถลดได โดยการเแบงการปลยนอตราสมเปนหลาย ๆ ขน แตละขนมการเปลยนทละนอย ๆ เชน ในการลดอตราการสมลง D เทา ถาเราสามารถแยกตวประกอบของD ไดเปน
D = D1 D2 D3 … DM (11.3)
จะไดวา เราสามารถแบงการเปลยนอตราการสมไดเปน M ขน โดยขนทหนงมการลดอตราการสมลง D1 เทา ขนทสอง D2 เทา เชนนไปเรอย ๆ จนถงขนท M แตละขนนนจะมตวกรองดจตอลเปนสวนประกอบดวยหนงตว สมมตวา ขนท i ใชตวกรองทมจ านวนสมประสทธเทากบ Ni และท างานทอตราขอมล fs,i เราจะไดอตราการประมวลผลโดยรวมเปน
↓ D1 y(n)x(n)
ωc′= π/D1
LPF1 ↓ D1ωc′= π/D1
LPF1 ↓ D1ωc′= π/D1
LPF1
ข นท 1, อ ตราส ม = fs1 ข นท 2, อ ตราส ม = fs2 = fs1/D1 ข นท 3, อ ตราส ม = fs3 = fs2/D2
รปท 11.9 การลดอตราการสมแบบสามขน
บทท 11 การประมวลผลแบบหลายอตราสม 213
อตราการประมวลผลโดยรวม = N fi s ii
M,
=∑1
MAC / วนาท (11.4)
โดยท Nifsi เปนอตราการประมวลผลของตวกรองในขนท i จะเหนไดวาทขนทสงขน อตราขอมลกจะลดลง ดงแสดงในรปท 11.9 ซงอตราขอมลนแปรผนโดยตรงกบอตราการประมวลผล ดงนน จงเปนไปไดวาอตราการประมวลผลในกรณแตกเปนขนยอย ๆ นจะนอยกวากรณท าทเดยว นอกจากน ล าดบของการจดเรยก Di กมผลตออตราการประมวลผลเชนกน โดยพบวา อตราการประมวลผลจะนอยทสด ถาจดให D1 > D2 > D3 > … > DM ขอใหศกษาจากตวอยางท 11.1 ซงจะแสดงถงอตราการประมวลผลทนอยลงเมอแตกเปนขนยอย ๆ และแสดงถงวธการออกแบบตวกรองทจะใชในเดซซเมเตอร ส าหรบอนเตอรโพเลเตอรกมหลกการแตกระบบเปนขนยอย ๆ และหลกการออกแบบตวกรองทตองใชในท านองเดยวกน
ตวอยางท 11.1 สญญาณ x(n) มอตราการสม 96 kHz ตองการลดอตราการสมลงเหลอ 1 kHz จงออกแบบตวกรองดจตอลเดคซเมชนทใชโดยใชวธหนาตางไคเซอร ก าหนดใหความพลวของตวกรองในชวงแถบไมเกน 0.01 และแถบหยดไมเกน 0.001 (δp ≤ 0.01 และ δs ≤ 0.001) สมมตใหสญญาณทตองการอยในชวงความถ 0 ถง 450Hz ใหหาอนดบของตวกรองทตองใช, หนวยความจ าทตองใชเกบสมประสทธ, และประมาณ MAC ทตองใชค านวณ ส าหรบกรณลดอตราสมทเดยว 96 เทา และกรณแยกเปน 2 ขน
กรณท 1 ลดทเดยว 96 เทา จาก fs1 = 96 kHz เปน fs2 = 1 kHz (M=96)จากทฤษฎ (รปท 11.4) จะไดวา เราตองการตวกรอง LPF ทมความถตดท π/96 หรอตรงกบ
ความถแอนะลอกท 500 Hz แตเมอพจารณาวา อตราการสมสดทายคอ 1 kHz ซงมชวงไนควทซคอ 0 ถง 500 Hz และโจทยก าหนดวายานความถทตองการคอ 0 ถง 450 Hz ดงนน ชวงความถ 450ถง 500 Hz เปนชวงวางทสามารถใชเปนยานแถบเปลยนของตวกรอง decimation ไดจรง ๆ แลวเราสามารถเลอกใชตวกรองทมแถบเปลยนในชวง 450 ถง 550 Hz กยงได ถาไม
สนใจวาชวงความถ 450 ถง 500 Hz ทขาออกจะม aliasing หรอไม (สญญาณชวง 500 ถง 550 Hzทหลดผานตวกรองมา จะกลายเปน aliasing ทขาออกในชวงความถ 450 ถง 500 Hz) แตในทนขอยดหลกอนรกษนยม โดยเลอกใชแถบเปลยนของตวกรองเปนชวง 450 ถง 500 Hz ซงจะไมมaliasing ทสญญาณขาออก
จะได ∆f = 500 - 450 = 50 Hz∆f′ = 50/fs1 = 50/96k
บทท 11 การประมวลผลแบบหลายอตราสม 214
จากโจทยวา δs ≤ 0.001 ซงเปนขอก าหนดทแรกกวา δp
ดงนน A = -20logδp = 60 dB
จากสตรการหาคาอนดบของวธหนาตางไคเซอร จะได
N = A - 7.9514.36 f
+ 1∆ ′
= 6960.3 → เลอก N = 6961
ดงนน ตองใชหนวยความจ าเพอเกบคาสมประสทธ เทากบ 6961 ต าแหนงจ านวน MAC ทตองค านวณ เทากบ Nfs1 = (6961)(96k) ≈ 668 × 106 MAC/วนาท
กรณท 2 แบงการลดอตราสมเปนสองขน ขอเลอกใชวา ขนท 1 ลดจาก fs1 = 96 kHz เปน fs2 = 3kHz (M1=32) และขนทสองจาก fs2 = 3 kHz เปน fs3 = 1 kHz (M2=3)ขนท 1 จาก fs1 = 96 kHz เปน fs2 = 3 kHz (M1=32)ตามทฤษฎเราตองการความถตดท π/32 ซงตรงกบความถแอนะลอกท 1500 Hz เชนเดยวกน
คอสามารถวเคราะหไดวา สญญาณทตองการอยในชวง 0 ถง 450 Hz เทานน ดงนน ชวงความถ450 ถง 1500 Hz เปนชวงทสามารถใชเปนยานความถตดของตวกรองได เนองจาก สญญาณขาออกของขนนเปนสญญาณกงกลาง ซงจรง ๆ แลวยานความถ 500 ถง 1500 Hz จะไมผานไปจนถงสญญาณออกสดทาย (จะถกกรองทงไป ในขนการลดอตราสมในขนทสอง) ดงนน เราสามารถยอมใหยานความถ 500 ถง 1500 Hz นม aliasing ไดโดยไมเปนปญหาอะไร แถบเปลยนของตวกรองในขนทหนงทเหมาะสมจงควรเปนชวง 500 ถง 2500 Hz (สญญาณในชวง 1500 ถง 2500 Hzจะท าใหเกด aliasing ในชวง 500 ถง 1500 Hz ทขาออก)
จะได (∆f)1 = 2500 - 500 = 2000 Hz(∆f′ )1 = 2000/fs1 = 2k/96k = 1/48
A ยงคงเทากบ 60 dB เหมอนในกรณแรก และเมอใชสตรการหาคาอนดบของวธหนาตางไคเซอร จะได
N1 = A - 7.9514.36( f )
+ 11∆ ′
= 175.0 → เลอก N1 = 175
ขนท 2 จาก fs2 = 3 kHz เปน fs3 = 1 kHz (M2=3)ตามทฤษฎตวกรองตองการความถตดท π/3 ซงตรงกบความถแอนะลอกท 500 Hz คราวน
การวเคราะหจะเหมอนกบกรณท 1 คอ ตวกรองในขนนควรมความถตดในชวง 450 ถง 500 Hz
บทท 11 การประมวลผลแบบหลายอตราสม 215
จะได (∆f)2 = 500 - 450 = 50 Hz(∆f′ )2 = 50/fs2 = 50/3k
A ยงคงเทากบ 60 dB และเมอใชสตรการหาคาอนดบของวธหนาตางไคเซอร จะได
N2 = A - 7.9514.36( f )
+ 12∆ ′
= 218.5 → เลอก N2 = 219
ดงนน ตองใชหนวยความจ าเพอเกบคาสมประสทธทงหมด เทากบ N1 + N2 = 394 ต าแหนงจ านวน MAC ทตองค านวณ เทากบ การประมวลผลในตวกรองทงสองขน
= N1fs1 + N2fs2 = (175)(96k) + (219)(3k) ≈ 17.46 × 106 MAC/วนาท
เหนไดชดวา เมอแบงการประมวลผลเปนสองขน เราสามารถลดอนดบโดยรวม และการประมวลผลโดยรวมลงไปไดมาก เราซงอาจท าใหดขนกวานไดอก โดยแบงการประมวลผลใหมากขนกวาน แตการแบงมากเกนไปบางครงกไมท าใหดขน หรออาจแยลง (ดงแสดงใน [2]) ดงนน ในทางปฏบตจงตองค านวณ และวเคราะหใหดกอนน าไปใช ขอใหผอานลองน าตวอยางนไปวเคราะหดตอวา การแบงเปน 3 ขน, 4 ขน, หรอ 2 ขน แตใชอตราสวนทแตกตางจากทไดท ามา จะใหผลด หรอแยลงอยางไร
การลดการประมวลผลของตวเปลยนอตราสม
ถาลองสงเกตดจากแผนภาพทผานมาจะพบวา ตวกรองดจตอลทใชอยในเดซซเมเตอร และอนเตอรโพเลเตอร ลวนแลวแตท างานอยในต าแหนงทมอตราขอมลสงทงสน ยกตวอยางเชน เดซซเมเตอรจาก 96 kHz เปน 3kHz ใชตวกรองดจตอลท างานอยทอตรา 96 kHz และเชนเดยวกน อนเตอรโพเลเตอรจาก 3 kHz เปน 96 kHz กใชตวกรองดจตอลท างานทอตรา 96 kHz ถาเราสามารถท าใหตวกรองดจตอลท างานท 3 kHz ได กจะท าใหอตราการประมวลในตวอยางนลดลงไดถง 32 เทา ซงจรง ๆแลวกมเทคนคทท าไดงายมากในการท าใหตวกรองดจตอลมาท างานอยทอตราขอมลต าได
ส าหรบเดซซเมเตอร ซงมแผนภาพทใชโครงสรางของตวกรอง FIR ปกตดงแสดงในรปท11.10 ก) เราสามารถลดอตราการประมวลผลไดงายมาก โดยการดงเอาตวลดอตราสมรวมเขาไปกบโครงสรางของตวกรอง FIR ดงแสดงในรปท 11.10 ข) หรอ อกนยหนงกคอ การค านวณสญญาณขาออกเทาทจ าเปนส าหรบอตราขาออกเทานน ยกตวอยางเชน การลดอตราขอมลจาก 96 kHz เปน 3 kHzหรอ ลดลง 32 เทา กท าไดโดยค านวณขาออกของตวกรอง FIR 1 คา แลวกขามไป 31 คา ไปค านวณคาถดไปเลย (แตเกบคาสญญาณขาเขาไวเหมอนปกต)
บทท 11 การประมวลผลแบบหลายอตราสม 216
x(n)
z-1
z-1
z-1
h(0)↓ D
h(1)
h(2)
h(N-1)
y(n)
:
x(n)
z-1
z-1
z-1
h(0)↓ D
h(1)
h(2)
h(N-1)
y(n)
:
↓ D
↓ D
↓ D
ก) โครงสรางปกต ข) โครงสรางทลดอตราการประมวลผลลง
รปท 11.10 การลดอตราการประมวลผลส าหรบเดซซเมเตอร
ส าหรบอนเตอรโพเลเตอร ซงมแผนภาพทใชโครงสรางของตวกรอง FIR ปกตดงแสดงในรปท 11.11 ก) ใชเทคนคทซบซอนกวาเดซซเมเตอร เนองจาก เราไมสามารถยายตวเพมอตราการสม (ตวแทรกศนยนนเอง) ไปไวหลงตวคณในตวกรองไดทนท จ าเปนทจะตองปรบโครงสรางของตวกรองFIR กอน ซงพบวา โครงสรางแบบทรานโพสด (transposed structure) สามารถท าใหบรรลวตถประสงคได
โครงสรางแบบทรานโพสดแสดงดงในรปท 11.11 ข) ซงสามารถพสจนไดไมยากวา ใหผลตอบเหมอนกบโครงสรางแบบปกต โครงสรางมขอเสยกวาโครงสรางปกตตรงทตองใชตวบวกสะสมหลายตว ดงนน โดยปกตจงไมมการน ามาใชงาน แตการใชโครงสรางทรานสโพสดในทนท าใหเราสามารถยายตวเพมอตราการสมไปไวหลงตวคณได ดงแสดงในรปท 11.11 ค) และท าใหลดอตราการประมวลผลลงได I เทา เหมอนอยางกรณของเดซซเมเตอร
x(n)
z-1
z-1
z-1
h(0)↑ I
h(1)
h(2)
h(N-1)
y(n)
:
รปท 11.11 ก)โครงสรางปกต
บทท 11 การประมวลผลแบบหลายอตราสม 217
x(n)h(0)
↑ I
h(N-1)
y(n)
:
z-1
z-1
h(1)
z-1
h(2)
x(n)h(0)
↑ I
h(N-1)
y(n)
:
z-1
z-1
h(1)
z-1
↑ I
↑ I
h(2)↑ I
ข) ใช FIR เปนโครงสรางแบบทรานสโพสด ค) โครงสรางทลดอตราการประมวลผลลง
รปท 11.11 การลดอตราการประมวลผลส าหรบอนเตอรโพเลเตอร
การประยกตใชงาน
การประยกตใชงานโดยตรงของตวแปลงอตราการสม กคอ การเชอมตอระบบประมวลผลสองระบบทมอตราสมของขอมลไมเทากน ดงทไดยกตวอยางไปในเรองการแปลงอตราสมของสญญาณเสยง นอกจากการประยกตใชในเรองนแลว การเปลยนแปลงอตราการสมยงมทใชงานอกอยางกวางขวาง ในทนจะขอยกตวอยางทส าคญ 2 เรอง กคอ การใชในตวแปลงระหวางดจตอลกบแอนะลอก และการใชในการประมวลผลทมการแยกยานความถยอย
ตวแปลงแอนะลอกเปนตจตอลแบบอตราสมสง (Oversampling A/D) [1],[11]
อปกรณแปลงสญญาณแอนะลอกเปนดจตอลนอกจากจะมความคลาดเคลอนจากการแบงขนสญญาณตามทไดกลาวไปแลวในบทท 10 ยงมความคลาดเคลอนของวงจรทเกดมาจากกระบวนการผลตชพ เพราะวงจรเหลานเปนวงจรแอนะลอกซงตองขนกบคาความตานทาน และคาการเกบประจทไมสามารถท าใหแมนย า 100% ได ท าใหวงจรมความคลาดเคลอนจากทตงไว และตวสดทายกคอความคลาดเคลอนทเกดจาก aliasing ในกรณทเราใชตวกรองปองกน aliasing ทไมคมพอ
ในงานบางอยางตองการตวแปลงแอนะลอกเปนดจตอลทมคณภาพสง จงตองลดความคลาดเคลอนตาง ๆ เหลานลง ความคลาดเคลอนจากการแบงขนสญญาณลดลงไดดวยการเพมจ านวนบตสวนความคลาดเคลอนจากวงจร และ aliasing สามารถชดเชยไดดวยเทคนคการใชอตราสมทสงเกนจ าเปน (oversampling)
บทท 11 การประมวลผลแบบหลายอตราสม 218
x(t) Anti-aliasinganalog LPF
x(n) A/D ↓DDecimationLPFเดคซ เมเตอร fs = 2Dfmax
รปท 11.12 แผนภาพของตวแปลงแอนะลอกเปนดจตอลแบบอตราสมสง
0 fs/2 f
ต วกรองป องก น aliasingท ต องใช สเปกตร ม
ส ญญาณ
0 fmax fs/2 f
สเปกตร มส ญญาณ
ต วกรองป องก น aliasingท ต องใช
รปท 11.13 ตวกรองปองกน aliasing ทตองใชในตวแปลงแอนะลอกเปนดจตอล
จากททราบมาแลววาตวแปลงสญญาณแอนะลอกเปนดจตอลโดยทวไปจะม ตวกรองปองกนaliasing ทขาเขา ซงมความถตดท fs/2 ถาหากวาเราใชอตรา fs เทาทจ าเปน คอ ประมาณสองเทาของความถสงสงในสญญาณ (fmax) หรอมากกวาเลกนอย จะไดวา จะตองใชตวกรองปองกน aliasing ทมความคมมากดงแสดงในรปท 11.13 ก)
แผนภาพในรปท 11.12 แสดงตวแปลงสญญาณแอนะลอกเปนดจตอล ซงสมสญญาณดวยอตราทสงกวาจ าเปน D เทา จากนนใชตวเดซซเมเตอรลดอตราสมลงมา D เทา จะไดสญญาณขาออกมอตราสมเทากบในกรณแรก และจะมคณภาพของสญญาณขาออกดขน ดวยเหตผลคอ
1. เมออตราสมสญญาณสงขนกวาทจ าเปน เราจะสามารถใชตวกรองปองกน aliasing ทมความคมต าได ดงแสดงในรปท 11.13 ข) ซงมคา D=4 ซงตวกรองนจะออกแบบงาย และราคาถกกวากรณแรกมาก
2. เมออตราสมสญญาณสงขนกวาทจ าเปน เราจะสามารถได SNR ทดขนได เนองจากสญญาณรบกวนจากการแบงขนสญญาณจะกระจายอยในยานความถทงหมด ดงนน ถาพจารณาเฉพาะยานความถทเราสนใจ คอ 0 ถง fmax ในกรณน จะมก าลงของสญญาณรบกวนนอยกวากรณแรก D เทา
3. ตวกรองดจตอลในเดซซเมเตอร ท าหนาทส าคญ คอ กรองสญญาณทสงกวาความถทสนใจทง ซงอาจประกอบดวย aliasing และสญญาณขาเขาทสงเกน fmax นอกจากน ยงท าหนาทเฉลยสญญาณใหไดนยทส าคญมากขน (จ านวนบตมากขน) ดวย ผลตอบของ FIR ถาไมปดเศษทง จะมจ านวนบตมากเกนจากสญญาณขาเขาอยแลว (จากบทท 10) แตโดยปกตเราจะปดเศษทงใหมจ านวน
ก) ใชอตราสมเทาท จ าเปน
ข) ใชอตราสมสงกวา ทจ าเปน 4 เทา
บทท 11 การประมวลผลแบบหลายอตราสม 219
บตเทากบสญญาณขาเขา ในทนเนองจาก เรามนใจวาสญญาณขาเขาม SNR ดกวาปกต ดงนน สามารถปดเศษใหสญญาณขาออกทมจ านวนบตทมากกวาปกตได โดยสามารถพสจนไดวา การสมดวยอตราสงขน 4 เทาจะสามารถให SNR ทดขนเทยบเทากบการใชจ านวนบตมากขน 1 บต[11]
ถาเราใชอตราสมของ A/D สงมากขน ๆ เราจะสามารถลดจ านวนบตทตองใชท A/D ใหนอยลงได แลวใชเดซซเมเตอรเปนตวลดอตราสมลง พรอมกบเพมจ านวนบตขนไปดวย ในกรณสดโตงทสด ซงปรากฏวาเปนกรณทใหผลดทสด คอ การใช A/D ขนาด 1 บต ทอตราสมสงมาก ๆ โดยใชA/D 1 บต ทสรางโดยวธเดลตา-ซกมามอดเลเตอร (Delta-Sigma Modulator) ซงมคณสมบตพเศษ คอจะท าใหสญญาณรบกวนจากการแบงขนถกเลอนขนไปอยในยานความถสงได (ท าให SNR ในยานความถของสญญาณทตองการดขนไปอก) นอกจากน การใช A/D 1 บตยงมขอด คอ สรางไดงาย และความคลาดเคลอนของวงจรแทบมผลตอการท างานนอยมาก เพราะสญญาณขาออกเปนเพยงแคหนงบตตอหนงจด ส าหรบตวกรองปองกน aliasing กสามารถใชเปนวงจร RC อนดบหนงงาย ๆ กพอ
ตวแปลง A/D ทใชเดลตา-ซกมามอดเลเตอร รวมกบ เดซซเมเตอรนรวมเรยกวา ตวแปลง A/Dแบบเดลตา-ซกมา (Delta-Sigma A/D Converter) ซงปจจบนมในทองตลาดมากมายในรปแบบของไอซส าเรจรป รปท 11.14 แสดงตวอยางของ A/D ชนดนของบรษทโมโตโรลลา ซงสมสญญาณดวยความถสงถง 6.4 MHz และสามารถใหสญญาณดจตอลขาออกไดสองแบบ คอ 12 บตทอตรา 400 kHzหรอ 16 บต ทอตรา 100 kHz
Analogin
Delta-SigmaModulator
Outputselect
↓ 16LPFN=4095
เดคซ เมเตอร 16 เท า
digitalout
LPFN=15
เดคซ เมเตอร 4 เท า1 บ ต/จ ด6.4 MHz
12 บ ต/จ ด400 kHz ↓ 4
16 บ ต/จ ด100 kHz
MUX
รปท 11.14 ตวอยางของ A/D แบบเดลตา-ซกมา (Motorola DSP56ADC16)
ตวแปลงดจตอลเปนแอนะลอกแบบอตราสมสง (Oversampling D/A) [1],[11]
กระบวนการแปลงดจตอลเปนแอนะลอกแบบใชอตราสมสง กเปนกระบวนการยอนกลบของการแปลงแอนะลอกเปนดจตอล โดยมหลกการในสวนตาง ๆ เหมอนกน การใชอตราสมสงเกนกวาทจ าเปนใน D/A จะชวงลดผลของความคลาดเคลอนของวงจร และความผดเพยนของส าเนาความถของสญญาณทเกดขนอนเนองมาจากความไมเปนอดมคตของตวกรองปองกนส าเนา (anti-imaging filter)หรอ ตวกรองสรางสญญาณคน (reconstruction filter)
บทท 11 การประมวลผลแบบหลายอตราสม 220
รปท 11.15 แสดงตวแปลง D/A ทใชอตราสมสง ซงประกอบดวยอนเตอรโพเลเตอรเพอเพมอตราการสมของสญญาณใหสงขน พรอม ๆ กบอาจจะลดจ านวนบตลงดวย จากนนใชตวแปลง D/Aแปลงเปนสญญาณแอนะลอกทมลกษณะเปนขนบนได แลวใชตวกรองแอนะลอกกรองส าเนาความถทเหลออยออกไปเสย กจะไดสญญาณแอนะลอกทสมบรณ
การใชอนเตอรโพเลเตอรจะท าใหส าเนาความถแยกออกจากกน (มชวงวางระหวางความถทกวางออก) ท าใหสามารถใช D/A ทมจ านวนบตต าลงได และใชตวกรองแอนะลอกทมอนดบต าลงไดเชนกน จะเหนไดวามเหตผลทคลายคลงกบในกรณของ A/D และเชนเดยวกน ในกรณสดโตงจะเพมอตราสมใหสงมากจนสามารถใชแค 1 บตตอจด แลวใชวงจรเดลตา-ซกมามอดเลเตอรท าหนาทเปนD/A 1 บต แปลงสญญาณเปนแอนะลอก กรณนกจะเรยกวา ตวแปลง D/A แบบเดลตา-ซกมา
x(t)Anti-imaginganalog LPF
x(n) D/A↑ I InterpolatioLPF
อ นเตอร โพเลเตอร fs = 2 I fmax
รปท 11.15 แผนภาพของตวแปลงดจตอลเปนแอนะลอกแบบอตราสมสง
การประมวลผลโดยแยกยานความถยอย[3]
การประมวลผลสญญาณในงานบางอยาง สามารถใหผลทดขนได โดยแยกสญญาณทจะประมวลผลเปนสญญาณในยานความถยอย ๆ แลวประมวลผลในแตละยานความถแยกจากกน (หรออาจใชผลในแตละยานความถมาประมวลผลรวมกนทหลงกได) ดงแสดงในรปท 11.6 เปนการแยกสญญาณออกเปน 4 ยานความถ ซงหลงจากประมวลผลแลวกจะน าสญญาณทงสมารวมกนเปนสญญาณขาออก
เครองมอทใชส าหรบแยกยานความถ กคอ ตวกรองดจตอล 4 ตวทเปนแบบผานยานความถตวละยาน บางทเรยกตวกรองเหลานรวมวา แผงตวกรอง (filter bank) เมอสญญาณถกแยกออกเปน 4ยานยอยแลว เนองจากแตละยานจะมแถบความถเปน 1/4 ของแถบความถเดม ดงนน เราสามารถลดอตราขอมลของแตละยานลงใหเหลอเพยง 1/4 ของอตราเดมไดดวยโดยทไมเกด aliasing ซงจะท าใหอตราการประมวลผลทตองการลดลงมาก
0
ยาน 1 ยาน 2 ยาน 3 ยาน 4
π ω'
|X(z)|
บทท 11 การประมวลผลแบบหลายอตราสม 221
ยาน 4
BPFBPFBPFBPF
M MMMM
ยาน 2
ยาน 1
ยาน 3
DSP MMM
BPFBPFBPFBPF
x(n)y(n)
รปท 11.16 แผนภาพของการประมวลผลแบบแยกยานความถยอย (4 ยานความถ)
ตวกรองทเราใชกรองยานความถทงสออกมา จงท าหนาทเปนตวกรองเดคซเมชนไปดวยในตว ซงส าหรบการลดอตราการสมส าหรบยานท 1 จะท าไดเหมอนโดยตรง แตการลดอตราสมส าหรบยานอน ๆ ซงไมไดมความถเรมตนทศนยกสามารถท าได โดยมอดเลต (หรอคณดวยสญญาณความถเดยวคาหนง) ใหสญญาณทกยานมาอยเรมตนทความถศนยกอน
หลกจากประมวลผลเสรจเรยบรอยแลว ส าหรบการประมวลผลทตองการสญญาณขาออกจะกแปลงใหแตละยานมอตราสมเทาเดม โดยใชอนเตอรโพเลเตอร 4 ตว ดงแสดงในรปท 11.16 จากนนจงมอดเลตสญญาณแตละยานใหกลบสยานความถเดม แลวน ามาบวกกน กจะไดสญญาณขาออก
การประมวลผลแบบแบงเปนยานความถยอย ไดมผประยกตใชในงานหลายอยาง เชน- การเขารหสเสยง (speech coding)- การรจ าเสยง (speech recognition)- การวเคราะหสเปกตรม- ตวกรองแบบปรบตวได (adaptive filter)- การแปลงเวฟเลต (wavelet transform)
บทท 12 ตวอยางการประยกตใชงาน 222
บทท 12ตวอยางการประยกตใชงาน
เราไดเหนการประยกตใชงานไปบางแลวในบททผานมา ไดแก การท าตวกรองแอนะลอกจากตวกรองดจตอล การเปลยนแปลงอตราการสม และการท าเครองวเคราะหสเปกตรมโดยใชการแปลงFFT ในบทนจะไดกลาวถง การประยกตใชตวกรองดจตอลในงานตาง ๆ รวมทง แนะน าการประยกตใชงานในขนสงขน ไดแก ตวกรองแบบปรบตวได เพอใหผอานไดมองเหนภาพของการประมวลผลสญญาณดจตอลทกวางขน และเพอเปนแนวทางในการศกษาในขนสงตอไป
การปรบแตงลกษณะของเสยง
เสยงเปนสญญาณทเหมาะส าหรบน ามาประมวลผลอยางยง เนองจาก ยานความถของเสยงจดวาอยในยางความถทต า กลาวคอ เสยงคนพดสามารถสมไดคณภาพดดวยอตรา 8 kHz และเสยงดนตรสามารถสมไดดวยอตรา 44 kHz ซงเปนอตราทตวแปลง A/D และ D/A มราคาถก และการประมวลผลกสามารถกระท าไดโดยชพ DSP ทวไป ในหองสตดโอสมยใหม ปจจบนจะท าการประมวลผลเสยงในโหมดดจตอลอยางครบวงจร ทงการผสมเสยง การเตมเสยงพเศษ และการปรบแตงลกษณะของเสยง จนกระทงถง การจดเกบในรปของแผนซด และดวด เพอสงขายไปยงผบรโภค เสยงทเกบกอยในรปของดจตอลแทบทงสน
นอกจากน เสยงยงเปนสงทละเอยดออนมาก เพราะมนษยสามารถสมผสไดดวยการฟง และแยกแยะลกษณะบางอยางจากเสยงทไดยนได เชน เปนเสยงทมหรอแหลม, มทศทางของเสยงมาจากทศใด, ใครคอผพด, และค าพดทอยในเสยงคอค าวาอะไร เปนตน ซงลกษณะเหลาน ไดถกน ามาจ าลอง และวเคราะหดวยการประมวลผลสญญาณดจตอล ซงความเขาใจในลกษณะเหลาน บางอยางกอยในขนทคอนขางสมบรณแลว แตบางอยางกยงอยในขนทตองวจยเพมเตมตอไป
อควอไลเซอรเสยง (Audio Equalizer)[1]
อควอไลเซอรเปนอปกรณส าหรบปรบลกษณะทางความถของเสยง การท าอควอไลเซอรดวยการประมวลผลสญญาณดจตอล เราจะใชตวกรองดจตอลแบงเสยงออกเปนยานความถหลาย ๆ ยานและใหผใชปรบคาอตราขยายในแตละยานได ขอยกตวอยางของอควอไลเซอรทม 5 ยานความถ โดยใชอตราสมเทากบ 44.1 kHz และตวกรองทใชในแตละยานความถมความถตด คอ
บทท 12 ตวอยางการประยกตใชงาน 223
1) H1(z) ผานยานความถ 0 - 3 kHz2) H2(z) ผานยานความถ 3 - 7 kHz3) H3(z) ผานยานความถ 7 - 11 kHz4) H4(z) ผานยานความถ 11 - 15 kHz5) H5(z) ผานยานความถ 15 - 22.05 kHzตวกรองทง 5 สามารถสรางโดยใชตวกรอง FIR หรอ IIR กได โดยตองออกแบบใหผลรวม
ของฟงกชนถายโอนทงหมดรวมแลวเปนตวกรองแบบผานตลอด (all pass filter) ทมอตราขยายคงทตลอดทกความถ การออกแบบนท าไดงายมากโดยใชตวกรองแบบ FIR โดยใหความถตดของตวกรองมคาเทากบจดความถปลายของความถ ซงจะไดผลตอบสนองเชงความถของแตละยานความถดงแสดงในรปท 12.1 สงเกตวา แถบเปลยนของยานความถทอยตดกนจะมลกษณะทสมมาตรกน คอขณะทผลตอบสนองทางความถของยานหนงลาดลง ผลตอบสนองในยานทตดกนกจะลาดขนในลกษณะทสมมาตรกน ซงกจะท าใหผลตอบสนองความถรวมเปนหนง
ตวกรองทใชมอนดบเทากบ 50 ออกแบบโดยใชวธหนาตางแฮมมง ตวทหนงเปน LPF, ตวทสองถงสเปน BPF, และตวทหาเปน HPF ซงมผลตอบสนองตออมพลส คอ
h1(n) = w(n) sin( ((′
ωπ1 nn
- M))- M)
h2(n) = w(n) sin( ( sin( ((
′ ′
ω ωπ
2 1n nn
- M)) - - M))- M)
h3(n) = w(n) sin( ( sin( ((
′ ′
ω ωπ
3 2n nn
- M)) - - M))- M)
(12.1)
h4(n) = w(n) sin( ( sin( ((
′ ′
ω ωπ
4 3n nn
- M)) - - M))- M)
h5(n) = w(n) δ ωπ
( ) sin( ((
n M nn
- - - M))- M)
′
4
โดยท M=25 และ ωi′ = 2πfi/fs เมอ f1, f2, f3, และ f4 เทากบ 3, 7, 11, 15 kHz ตามล าดบสงเกตไดวา ผลบวกของ hi(n) ทกตว จะไดเปนตวกรองแบบผานตลอด ทสญญาณขาออกลา
หลงสญญาณขาเขา M จด เขยนเปนสมการไดวา
h1(n) + h2(n) + h3(n) + h4(n) + h5(n) = δ(n-M) (12.2)
แปลง z ไดเปน H1(z) + H2(z) + H3(z) + H4(z) + H5(z) = z-M (12.3)
บทท 12 ตวอยางการประยกตใชงาน 224
ซงท าใหเราสามารถเขยนฟงกชนถายโอนของตวกรองตวทหาไดเปน
H5(z) = z-M - H1(z) - H2(z) - H3(z) - H4(z) (12.4)
จะไดวา Y5(z) = z-MX(z) - Y1(z) - Y2(z) - Y3(z) - Y4(z)และสมการทางเวลา คอ y5(n) = x(n-M) - y1(n) - y2(n) - y3(n) - y4(n)
ดงนน เราสามารถประหยดโดยไมจ าเปนตองประมวลผลในสวนของ H5(z) จรง ๆ แตวาสามารถหา y5(n) ไดโดยใชสญญาณขาเขาดงใหลาหลงลง M จด แลวลบออกดวยสญญาณขาออกจากตวกรองอนอกสตว โครงสรางของอควอไลเซอรนแสดงดงในรปท 12.1
ผลตอบจากตวกรองทงหมด จะน ามาผานตวคณทปรบคาไดโดยผใช และน าผลคณทงหมดมาบวกกนเปนผลลพธสดทาย จะไดวาฟงกชนถายโอนรวมของระบบน คอ
Htotal(z) = G1H1(z) + G2H2(z) + G3H3(z) + G4H4(z) + G5H5(z) (12.5)
H1(z)
z-M
x(n) y(n)
H2(z)
H3(z)
H4(z)
G5
G4
G3
G2
G1
+-
f (kHz)
H1(z) H2(z) H3(z) H4(z) H5(z)
รปท 12.1 โครงสรางของอควอไลเซอรเสยง 5 ชอง และผลตอบสนองเชงความถของตวกรองทใช
บทท 12 ตวอยางการประยกตใชงาน 225
การใชตวกรอง FIR ในงานนมขอด คอ ออกแบบสมประสทธของตวกรองไดงาย และใหเฟสทเปนเชงเสนทสมบรณในทกยานความถ อยางไรกตาม มขอเสย คอ มนจะตองการการประมวลผลทคอนขางมาก เพราะตองค านวณตวกรอง FIR อนดบ 40 ถง 4 ตว ดงนน ถาหากมขอจ ากดในเรองทรพยากรในการประมวลผลอาจตองพยายามออกแบบใหเปนตวกรองแบบ IIR ซงจะท าไดยากกวาเพราะ ผลตอบสนองเชงความถของตวกรอง IIR ไมสมมาตรกนในชวงแถบเปลยนเหมอนตวกรองFIR ใน [4] ไดเสนอวธการออกแบบอควอไลเซอรทใชตวกรอง IIR หลาย ๆ ตวมาตออนกรมกนแทนทจะเปนการตอขนานกน สวนใน [17] ไดเสนอการใชตวกรอง IIR หลาย ๆ ตวมาขนานกนเพอท าอควอไลเซอรในอปกรณชวยไดยน
เสยงสะทอน (Echo)การสรางเอฟเฟคเสยงสะทอน เปนการเปลยนเสยงขาเขาทเปนเสยงโมโนปกต ใหมลกษณะ
คลายเปนเสยงทมการสะทอนเหมอนจากผนงของหองโถง หรอผนงในถ า การท าเสยงสะทอนท าไดงาย ๆ โดยใชตวกรอง FIR ทมคาผลตอบสนองตออมพลสดงในรปท 12.2 ข) คา h(n) ท n=0 เปรยบเสมอนเปนเสยงทไดยนโดยตรงจากตนก าเนดเสยง และคา h(n) ท n=D เปนสวนของเสยงทมาจากการสะทอนของวตถแลวกลบมาไดยนอกครงหนง ซงความดงของเสยงกจะลดลงกวาเสยงทเขามาโดยตรงจากแหลงก าเนด ดงนน จะใชคาสมประสทธ h(D) = α โดยท α < 1
คา D จะแปรตามระยะทางจากผฟงถงวตถทสะทอนเสยง ถาใชคา D มากขนกเปนการจ าลองวา วตถทสะทอนอยไกลขน โดยเราอาจค านวณประมาณคา D ไดดงน
สมมตวาตองการสรางเสยงสะทอนทเกดจากวตถทอยไกลออกไป 30 เมตร จะไดวา เสยงตองเดนทางไปกลบจากวตถทสะทอนเปนระยะทาง = 60 เมตรเนองจาก เสยงมความเรวประมาณ 335 เมตรตอวนาท ฉะนน ระยะเวลาทเสยงตองใชในการ
เดนทาง = 60/335 = 0.1791 วนาท นนคอ D จะตองลาหลงจากจดเรมตนเทากบ 0.1791 วนาทเทยบ D ใหเปนจ านวนจดสญญาณ (sample) โดยใชคาอตราการสมมาค านวณ เชน สมมตวา
ใชอตราการสม = 8 kHz จะไดวาเวลา 0.1791 วนาทน มคาเทยบเทากบจ านวนจดของสญญาณ คอ0.1791 × 8000 = 1430 จด ดงนน ตองใช D = 1430ถงแม D มคามากถง 1430 ซงหมายความวา อนดบของตวกรองนเทากบ 1430 แตตวกรองน
ไมไดมการค านวณทมากมายถงขนาดนน เนองจากสมประสทธทจดอน ๆ ของ h(n) มคาเปนศนยเพราะฉะนน สมการผลตางของระบบน จะเหลอเพยงแค
y(n) = x(n) + α x(n - D) (12.6)
บทท 12 ตวอยางการประยกตใชงาน 226
เพยงใชระบบงาย ๆ แคนเรากจะไดตวก าเนดเสยงสะทอนอยางงายแลว แตเสยงทไดอาจฟงดไมเหมอนจรงนก เนองจาก โดยปกตเสยงทสะทอนจากวตถ ถาวตถไมไดเรยบสนท หรอมวตถใกลเคยงในละแวกนนอก เสยงมกไมไดสะทอนกลบมาทเวลาเดยวดงทไดวเคราะห ดงนน เพอใหเหมอนจรงมากขน เราจะใหเสยงสะทอนกลบมาหลาย ๆ ครง และมาถงผฟงดวยเวลาตาง ๆ กน และดวยขนาดทเบาลง ๆ ตวอยางของผลตอบสนองตออมพลสทตองการใชในกรณน แสดงดงในรปท 12.2 ค)
แตการท าเสยงสะทอนน เปนตวอยางของการใชผลทางภาวะชวคร (transient) ของระบบใหเกดปรากฏการณทพสดารขนมา ซงตางจากการใชงานระบบเปนตวกรองความถทเราไดศกษามาเพราะการใชงานแบบนนเราสนใจผลทางสภาวะอยตว (steady state) ของระบบ นนกคอ ผลตอบสนองเชงความถของระบบนนเอง
แหล งก าเน ด
ผ ฟ งว ตถ สะท อน
h(n)
0 D n
⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅
h(n)
0 D n⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅
รปท 12.2 การเกดเสยงสะทอน และผลตอบสนองตออมพลสของระบบทสรางเสยงสะทอน
เสยงจ าลองการสะทอนของหอง (Reverberation)[1],[4]
การจ าลองเสยงสะทอนของหอง บางทกเรยกวา เสยงเซอรราวด (surround) จะแปลงเสยงปกตใหเปนเสยงทมการสะทอนกกกองเสมอนเสยงนนเกดขนในหองขนาดใหญ ประโยชนของมนไดแก การใชในการเลนเสยงดนตรในบาน แลวจ าลองใหเหมอนกบวงดนตรก าลงเลนอยในโรงแสดงดนตรขนาดใหญ โดยใชเพยงแคล าโพงหนาคเดยวเทานน หรอการฉายภาพยนตในบานแลวใหความรสกเหมอนชนภาพยนตรอยในโรงขนาดใหญ ในปจจบนไดมการประยกตไปใชในสนามกฬากลางแจง
ก)
ข)
ค)
บทท 12 ตวอยางการประยกตใชงาน 227
ขนาดใหญ เพอใชแสดงคอนเสรต โดยท าใหเสยงทออกมาเสมอนเปนการเลนอยในโรงแสดงคอนเสรต หรออาจใชในขณะมการแขงขนกฬา โดยท าใหเสยงเชยรกฬาของผด กกกองเสมอนเชยรอยในสนามกฬาในรมกได
หลกการของการท าเสยงสะทอนของหอง กเหมอนกบการท าเสยงสะทอนจากวตถดงทไดกลาวมา แตคราวนเสยงสะทอนจะเกดขนดวยจ านวน และความหนาแนนทมากกวามาก เพราะเกดจากการสะทอนจากผนง และเพดานรอบตวผฟง ดงแสดงในรปท 12.3 องคประกอบหลกของเสยงทผฟงไดยน คอ เสยงทมาตรงจากแหลงก าเนด จากนน กจะตามดวยเสยงสะทอนในระยะเรมแรก (earlyreflection) ซงเกดจากการสะทอนของผนงทอยใกลแหลงก าเนด การสะทอนในระยะเรมแรกมความหนาแนนทนอย แตมขนาดใหญ หลกจากนนกเปนการสะทอนในระยะทาย (late reflection) ซงมาจากการสะทอนของผนงทอยไกลออกไป และการสะทอนมากกวา 1 ทอดกอนมาถงผฟง ซงการสะทอนระยะทายนมความหนาแนนมาก แตมขนาดเลก ระยะเวลาของการเกดเสยงสะทอนทงหมดจนผพดไมไดยนอาจกนเวลามากถง 2 ถง 4 วนาท เราสามารถจ าลองขนาดของเสยงทสะทอนใหนอยลง ๆ ทเวลาผานไปไดดดวยฟงกชนเอกซโปเนนเชยล
ผ ฟ งearly
late
direct
h(n)
0
direct
n
earlylate
รปท 12.3 การเกดเสยงสะทอนในหอง และผลตอบสนองตออมพลสของระบบ
ฟงกชนถายโอนทจ าลองการเกดเสยงสะทอนในหองมหลายแบบ ในทนจะยกตวอยางโมเดลทเสนอโดย Schroeder ในป 1985 โดยใชฟงกชนถายโอนแบบ IIR 2 ชนดมาตอกน เพอท าใหเกดผลตอบสนองตออมพลสทยาวไปจนถงเวลาเปนอนนต ฟงกชนถายโอน 2 ชนดน ไดแก
1) ตวก าเนดเสยงสะทอนแบบพนฐาน (echo generator หรอ plane reverberator) เปนตวสรางเสยงสะทอนทยาวไปจนถงเวลาเปนอนนต โดยแตละเสยงหางกน D จด และมขนาดลดลงดวยอตราสวน an โดยท a นอยกวา 1 จะไดผลตอบสนองตออมพลสดงแสดงในรปท 12.4 ซงมสมการคอ
h(n) = δ(n) + aδ(n-D) + a2δ(n-2D) + … (12.7)
แปลง z ได H(z) = 1 + az-D + a2z-2D + … (12.8)โดยใชอนกรมเลขาคณตกบสมการท 12.7 จะไดวา H(z) ลเขาสฟงกชนทเปน IIR ดงน
บทท 12 ตวอยางการประยกตใชงาน 228
H(z) = 1 + az-R + (az-R)2 + (az-R)3 + … H(z) = 11 - az-D (12.9)
ตวก าเนดเสยงสะทอนแบบพนฐานน มโพลอย D ต าแหนงโดยทไมมศนยอยเลย ท าใหผลตอบสนองเชงความถมลกษณะทเปนยอดแหลมตามต าแหนงของโพล ดงแสดงในรปท 12.4 การใชต าก าเนดเสยงสะทอนแบบนโดด ๆ จะท าใหไดเสยงทฟงดไมเปนธรรมชาตนก
รปท 12.4 โครงสราง และผลตอบสนองตออมพลสของตวก าเนดเสยงสะทอนแบบพนฐาน
2) ตวก าเนดเสยงสะทอนแบบผานทกความถ (all-pass reverberator) ตวก าเนดเสยงสะทอนนมลกษณะพเศษ คอ มผลตอบสนองเชงความถทผานทกความถเทากบ 1 เทากน ( |H(ejω′)| = 1 ) มฟงกชนถายโอน คอ
H(z) = - + z- az
-D
-Da1
(12.10)
โครงสราง direct form 2 ของระบบน รวมทงผลตอบสนองตออมพลสแสดงดงในรปท 12.5ซงเราสามารถวเคราะหหาสมการของ h(n) ได โดยแตก H(z) ในสมการท 12.10 ออกเปนผลหาร และเศษของการหารได ดงน
D=15,
n
D
ππ
|H(ejω′)|
z-D
x(n) y(n)
a
บทท 12 ตวอยางการประยกตใชงาน 229
H(z) = A + B1 - az-D , โดย A = -
a1 และ B = 1 - a
a
2
(12.11)
จะได h(n) = (A+B)δ(n) + Baδ(n-D) + Ba2δ(n-2D) + … (12.12)
จะเหนไดวา h(n) มลกษณะคลาย ๆ กบตวก าเนดเสยงสะทอนแบบแรก เพยงแตมอมพลสลกแรกเปนคาตดลบ
z-D
x(n) y(n)
a
-a
รปท 12.5 โครงสราง และผลตอบสนองตออมพลสของตวก าเนดเสยงสะทอนแบบผานทกความถ
ส าหรบตวก าเนดเสยงสะทอนในหองของ Schroeder ใชตวก าเนดเสยงสะทอนในขอ 1 และ 2มาตอกนเปนโครงสรางดงในรปท 12.6 ซงถาเลอก ai, Gi, และ Di ทเหมาะสม กจะท าใหเกดเสยงสะทอนเสมอนอยในหองแสดงดนตรขนาดใหญได ตวอยางของผลตอบสนองตออมพลสของระบบนแสดงอยในรปเดยวกน โดยไดใชคาพารามเตอรตาง ๆ ดงน
D1 = 29, D2 = 37, D3 = 44, D4 = 50, D5 = 27, และ D6 = 31G1 = 1, G2 = 0.9, G3 = 0.8, และ G4 = 0.7a1 = a2 = a3 = a4 = a5 = a6 = 0.8
ตวก าเนดเสยงสะทอนในหอง สามารถสรางดวยตวกรอง FIR กได ซงถงแมมขอเสย คอ ตองใชอนดบของตวกรองสง ท าใหใชการประมวลผลทมาก แตกมขอด คอ สามารถควบคมคาของ h(n)แตละคาไดโดยอสระตอกน ไมยดตดกบโมเดลเหมอนการใชตวกรอง IIR ท าใหเราสามารถใชผล
D=15,
n
D
บทท 12 ตวอยางการประยกตใชงาน 230
ตอบสนองตออมพลสจรง ๆ ของโรงแสดงดนตรตนแบบทตองการมาเปน h(n) ของตวประมวลผลไดเพอใหไดเสยงเสมอนอยโรงแสดงดนตรตนแบบจรง ๆ
ผลตอบสนองตออมพลสของโรงแสดงดนตรตนแบบนน สามารถหาไดโดยการท าการทดลองวดมาจากโรงแสดงดนตรนนจรง ๆ (มขนตอนวธเหมอนการหาผลตอบสนองตออมพลสของเสยงสามมต ซงจะไดอธบายในตอนตอไป) หรอใชซอฟทแวรพเศษจ าลองโรงดนตรทตองการขนมาทงขนาด, รปราง, และสมประสทธการสะทอนเสยง แลวค านวณหาผลตอบสนองตออมพลสทจะเกดขนได การสรางเสยงสะทอนในหองโดยใชตวกรอง FIR น ปจจบนไดมผท าไดโดยใชอนดบของตวกรองถง 262,144 โดยใชอตราการสมเทากบ 48 kHz[22] นนหมายถง สามารถจ าลองผลตอบสนองตออมพลสไดยาวถงประมาณ 5 วนาทครงทเดยว
x(n) y(n)z-D
a5
z-D
a1
z-D
z-D
z-D
z-D
a6G3
G2
G1
G4
a3
a4
a2
-a5 -a6
รปท 12.6 โครงสราง และผลตอบสนองตออมพลสของตวจ าลองเสยงสะทอนในหอง
n
บทท 12 ตวอยางการประยกตใชงาน 231
เสยงคอรส (Chorus)[1],[4]
คอรสเปนการจ าลองการประสานเสยง สมมตวาเรามเสยงเพลงซงเลนดวยเครองดนตรเพยงชนเดยว (เลนคนเดยว) เราสามารถจ าลองเสยงประสานใหเหมอนเปนการเลนเครองดนตรชนดเดยวกน และเพลงเดยวกนดวยคนหลาย ๆ คนพรอมกนได
โครงสรางงาย ๆ ของตวก าเนดเสยงคอรสแสดงดงในรปท 12.7 ซงเปนการจ าลองเครองดนตรทเลนโดยคนสามคน สมประสทธของการลาหลงของคนเลนคนทสอง และสาม คอ D1 และ D2
เปนคาไมคงท โดยจะเปลยนแปลงชา ๆ ตามเวลา เราจงเขยนแทนวาเปน D1(n) และ D2(n) เพอบอกวาคาทงสองเปนตวแปรทแปรตาม n การทเรามการลาหลงทไมคงทเตมใหกบเสยงของผเลนคนทสอง และสามเชนน เปนการจ าลองใหเหมอนกบวา ผเลนทงสามคนนเลนเพลงไมพรอมกนทเดยว แตมความชาเรวเหลอมกนบางตลอดเวลา ท าใหไดเสยงทออกมาคลายเสยงประสานทไพเราะได
z-D1(n)
x(n) y(n)a1
z-D2(n)a2
รปท 12.7 ตวอยางโครงสรางของตวก าเนดเสยงคอรส
เสยงสามมต (3-Dimemsional Sound)[20],[21]
หวขอนเปนหวขอสดทายของการปรบแตงคณลกษณะของเสยง และกเปนการประยกตใชงานทพสดารทสด วตถประสงคกคอ เราตองการปรบเสยงทเปนโมโนธรรมดา ใหกลายเปนเสยงทเหมอนมาจากทศทางใดทศทางหนง ซงไมเพยงเฉพาะ ทศทาง 360 องศาในแนวราบเทานน แตรวมถงมมทมาจากทศทางดานบน และดานลางตวเราดวย สงทพเศษ กคอ เราจะสรางเสยงสามมตนโดยใชเพยงแคล าโพงหนาคเดยว หรอใชหฟง (headphone) เทานน ไมมการใชล าโพงเซอรราวด (ล าโพงหลง) เหมอนในระบบดอรบในโรงภาพยนตแตอยางใด ๆ การท าเสยงสามมตไดในทกทศทางเชนนไดท าใหภาพยนตรสามมต ซอฟทแวรเกมส และซอฟทแวรอน ๆ สามารถเลยนแบบสถานการณในสงแวดลอมไดเหมอนจรงยงขน ซงเทคโนโลยพวกนเรยกกนเปนศพทเทคนควา virtual reality
ความเปนไปไดของการท าเสยงสามมตเกดจาก แนวความคดวา เนองจากคนเราสามารถแยะแยะทศทางของเสยงได โดยใชห (ซงเปรยบเสมอนเปนเซนเซอรรบเสยง) เพยงสองขางเทานน ดงนนเรากนาจะสามารถจ าลองการเกดเสยงทมาจากทศทางใด ๆ ไดโดยใชเพยงแคสองล าโพงเชนกน ซงค ากลาวน จรง ๆ แลวกมไดขดแยงกบกฏของฟสกส หรอทางไฟฟาแตอยางใด
บทท 12 ตวอยางการประยกตใชงาน 232
การทคนเราสามารถแยกแยะทศทางของเสยงไดสามมต ทงทมเพยงแคสองห (ไมไดมหหนาหลง หรอบนลางดวย) แสดงวายงองคประกอบบางสงบางอยางทท าใหชวยเราใหมสมผสในการแยกแยะทศทางได องคประกอบเหลาน ไดแก การตอบสนองของใบห และหวคนตอเสยงทเขามา และสงแวดลอมอน ๆ รอบตวทเรารบรไดจากทางอน เชน การไดเหนรวมดวย ตวอยางของการตอบสนองของหวคนตอเสยงในทศทางตาง ๆ ทเราเขาใจไดงาย ๆ ไดแก
ก) ความแตกตางของความดงของเสยงทมาถงหแตละขาง (Interaural Intensity Differenceหรอ IID) เชน เสยงทมาทางดานซายจะกระทบหซายดวยความดงมากกวาเสยงทกระทบหขวา
ก) ความแตกตางของเวลาทเสยงมาถงหแตละขาง (รวมถงเฟสทแตกตางกนดวย) (InterauralTime Difference หรอ ITD) เชน เสยงทมาทางดานซายจะกระทบหซายกอนหขวา หรอการทคนรบรทศทางของเสยงความถต ายากกวา กเนองจากเสยงความถต า จะมความยาวคลนมาก ท าใหความแตกตางของเฟสทรบรทหทงสองนอยลง
ถงแมเราจะมความเขาใจถงการรบรทศทางมากขน แตกยงไมถงขนทจะสามารถสรปเปนสมการคณตศาสตร หรอฟงกชนออกมาไดวาเสยงทมาจากทศทางตาง ๆ เปนอยางไร แตอยางไรกตามความเขาใจทยงไมสมบรณกไมใชปญหาทกดกนเทคโนโลยของการสรางเสยงสามมต เนองจาก เราสามารถท าการทดลองวดฟงกชนถายโอนของเสยงทมาจากทศทางตาง ๆ ได แลวเกบสงทวดไดเปนฐานขอมลทสามารถเรยกออกมาใชเพอก าเนดเสยงสามมตในทศทางตาง ๆ ตอไป
กอนอนตองมความเขาใจเกยวกบฟงกชนถายโอนทจะท าการวดกอน สมมตวาเราอยในหองทดลองทไมมเสยงอนใด นอกจากเสยงจากแหลงก าเนดททดลองเทานน ถาตงแหลงก าเนดเสยงไวททศทางใดทศทางหนงของผฟง เสยงทผฟงไดยนทหซาย และหขวา จะสามารถโมเดลไดวา เกดจากการน าเสยงจากแหลงก าเนดผานฟงกชนถายโอน HR(z) ไดเปนเสยงทไดยนทหขวา และผาน HL(z)ไดเปนเสยงทไดยนทหซาย ดงแสดงในรปท 12.8 ฟงกชนทงสองน จะรวมเอารายละเอยดเกยวกบการไดยนในทศทางนน ๆ ไวทงหมด ซงไดแก IID กบ ITD ทไดกลาวมาแลว และปฏสมพนธทเสยงกระท ากบหว และใบหของผฟง เปนตน ไดมการตงชอฟงกชนนวา ฟงกชนถายโอนอนเนองมาจากหวคน (Head-Related Transfer Function หรอ HRTF)
HR(z) HL(z)โมเดล
ห ขวา ห ซ าย
รปท 12.8 แนวความคดของฟงกชนถายโอนเนองมาจากหวคน (HRTF)
บทท 12 ตวอยางการประยกตใชงาน 233
เราจะโมเดลให HRTF เปนตวกรองแบบ FIR ทมสมประสทธคงท และสามารถท าการทดลองเพอวดคาสมประสทธของ HRTF ทมมของแหลงก าเนดเสยงตาง ๆ ได โดยน าเอาไมโครโฟนสองตวไปตดทในรหทงสองขางของหน หรอคนทจะเปนแบบ จากนนสงเสยงทเตรยมไวจากแหลงก าเนดททศทางทตองการ และระหวางทเลนเสยงนนกบนทกเสยงจากไมโครโฟนทงสอง เมอไดเสยงทบนทกไว กคอ เรารทงสญญาณขาเขา และขาออกของ HRTF แลว กสามารถใชเทคนคทางการประมวลผลสญญาณ เพอวเคราะหหาสมประสทธของ HRTF ได
ในการจ าลองสรางเสยงสามมตขนมา กเพยงแตน าเอาเสยงโมโนปกต ผานตวกรอง HL(z)และ HR(z) เสยงทเปนสญญาณขาออกกเปนเสยงทพรอมจะไปเลนออกทล าโพงซาย และขวาตามล าดบ เพอใหเกดเปนเสยงทเสมอนมาจากทศทางทตองการได
หลกการวดเพอหา HRTF นถงแมจะงายมาก แตการวดจรงกมขอปลกยอยทตองระวง และควบคมใหดเพอใหไดคาทถกตอง เปนโชคดทเราอาจไมจ าเปนตองไปท าการทดลองวด HRTF เองเพราะทผานมาไดมผเคยทดลองวด HRTF แลว และบางทกไดเผยแพรคาสมประสทธทวดไดแกสาธารณชน ทแพรหลายมากกคอ การวดโดยใชหนรปหวคนโดยหองปฏบตการ MIT Media ในป 1994ซงมรายละเอยดของการวด และคาสมประสทธทวดไดใน [20]
อปกรณชวยไดยน (Hearing Aids)[17],[18]
อปกรณนใชกบผปวยทมปญหาในการไดยน โดยจะรบเสยงจากภายนอก จากนนขยายและสงไปยงหฟงทเสยบอยทหของผปวย ซงนอกจากท าหนาทขยายเสยงธรรมดาแลว หนาททส าคญกวานนกคอ การปรบแตงสญญาณเสยงใหมความเหมาะสมตอการไดยนของผปวยแตละราย การปรบแตงทส าคญ ไดแก
1. การลดสญญาณรบกวน ในภาวะทมสญญาณรบกวน อปกรณชวยไดยนควรจะสามารถลดสญญาณรบกวนนนได เนองจากอปกรณชวยไดยนสวนใหญเนนทการรบเสยงคนพด จงอาจใชอลกอรธมเพอพยายามลดสญญาณรบกวนทไมใชเสยงพดออก ซงกควรเปนอลกอรธมแบบปรบตวได(adaptive) เพราะเราไมทราบลกษณะทแนนอนของสญญาณลวงหนา
2. การขยายแบบปรบคาไดอตโนมต (Automatic Gain Control) อปกรณชวยไดยนควรมความสามารถในการปรบอตราขยายไดเองโดยอตโนมต โดยมอตราขยายสงในชวงขนาดสญญาณขาเขาต า และเมอขนาดสญญาณขาเขาใหญเกนระดบทตงไวกจะลดอตราขยายลงเพอไมใหสญญาณขาออกเกดความเพยน
3. การปรบสเปกตรมของเสยง (Frequency Shaping) ท าหนาทเหมอนกบอควอไลเซอรเสยงทไดอธบายมาในหวขอกอนหนาน เนองจากผปวยจะมความสามารถในการไดยนในแตละความถแตกตางกน ซงแพทยสามารถตรวจสอบ และวดระดบการไดยนของผปวยทความถตาง ๆ ออกมาได
บทท 12 ตวอยางการประยกตใชงาน 234
เปนกราฟทเรยกวา ออดโอแกรม (audiogram) ซงกราฟนกจะแตกตางกนระหวางหซาย และขวา และแตกตางกนในผปวยแตละคน เราจะใชอควอไลเซอร 2 ตวแยกกนส าหรบหซาย และขวา เพอปรบระดบการไดยนในแตละยานความถใหอยในระดบทเหมาะสม ซงอาจใชตวกรองแบบ FIR หรอ IIRกไดดงทไดกลาวมาแลว การใชตวกรองดจตอลส าหรบหนาทนมขอดทเหนไดชด คอ เราสามารถใชฮารดแวรเดยวกนส าหรบผปวยทก ๆ คนได โดยเพยงแตปรบคาสมประสทธของอควอไลเซอรใหเหมาะสมกบออดโอแกรมของผปวยแตละรายเทานน ท าใหสะดวก และรวดเรวตอการใชงานมาก
0 250 500 1k 2k 4k 8k f(Hz)
ระด บเส ยงท ได ย น(dB)
อ ตราขยาย
0 250 500 1k 2k 4k 8k f(Hz)
ออด โอแกรม อ ควอไลเซอร
รปท 12.9 ตวอยางของออดโอแกรม และผลตอบสนองเชงความถของอควอไลเซอรทตองการ
การกรองสญญาณฮารมอนกใน UPS[19]
ปญหาของ UPS หรอแหลงจายก าลงไมหยดชะงก (uninterruptible power supply) เมอน าไปจายโหลดทไมเปนเชงเสน กคอ โหลดนนจะดงกระแสทท าใหมความถฮารมอนกเกดขนในสาย ซงถาหากไมก าจดทง กระแสฮารโมนกเหลานกอาจไปท าความเสยหายใหกบอปกรณอน ๆ ได
UPS ในปจจบนสวนใหญมสวนประกอบของแบตเตอร และวงจรอนเวอรเตอรส าหรบแปลงไฟตรงเปนไฟสลบ ซงจะท างานจายกระแสเฉพาะเมอไฟฟาดบ สวนในภาวะปกตตวอนเวอรเตอรจะไมไดใชงาน ดงนน ในภาวะปกตเราสามารถน าเอาอนเวอรเตอรนมาก าเนดกระแสฮารมอนก (IH) เพอชดเชยเขาไปในไฟฟาจากสาย (IS) ดงแสดงในรปท 12.10 ซงถากระแส IH นตรงกบสวนของฮารมอนกในกระแสทไปยงโหลด (IR) กจะท าใหกระแสทมาจากสาย คอ IS เปนรปคลนซายนสมบรณ หรอไมมความถฮารมอนกหลงเหลออย ซงเปนภาวะทเราตองการ
เทคนคทท าใหตวอนเวอรเตอรก าเนดกระแสฮารมอนกออกมาไดพอดกบทโหลดดงไป ท าไดโดยการสมคากระแสจากโหลดแลวแปลงไปเปนดจตอล ซงกระแสโหลดทไดวดไดนจะประกอบดวยความถพนฐาน (50 เฮรตซ) และ ความถฮารมอนกปนกนอย จากนนใชตวกรองดจตอลแบบตดความถ (digital notch filter) กรองเอาเฉพาะความถพนฐานออก เหลอเพยงสญญาณฮารมอนกซงจะน าไปใชควบคมวงจรอนเวอรเตอรใหก าเนดกระแสฮารมอนกทตองการออกมาได การเลอกใชตวกรองดจตอลเพอตดความถพนฐานในทนมขอดกวาการใชตวกรองแอนะลอก คอ
บทท 12 ตวอยางการประยกตใชงาน 235
1. เราตองการใหกระแส IH ตรงพอดกบสวนของฮารมอนกทมอยในกระแส IR นนหมายความวา ตวกรองตดความถทใชตองมความคมทด และมเฟสทเปนเชงเสนสมบรณ เพอไมใหสญญาณขาออกของตวกรองมความผดเพยนทางรปราง (หรอทางเฟสนนเอง) ตวกรองชนดนท าไดงาย และแมนย าโดยใชตวกรองดจตอลแบบ FIR แตจะท าไดยาก และแพงกวาดวยตวกรองแอนะลอก[19]
2. ในปจจบน UPS มกมสวนควบคมทท าดวยดจตอลอยแลว เชน การควบคมวงจรอนเวอรเตอร (ดวยสญญาณ PWM), การควบคมการชารตแบตเตอร, การควบคมการตดตอสอสารกบอปกรณภายนอกผานพอรตอนกรม, การควบคมระดบแรงดนไฟ, และการควบคมคยกบจอแสดงผล (ถาม) ซงถาหากใชตวประมวลผลสญญาณส าหรบท าตวกรองดจตอลแลว ฟงกชนทางดจตอลเหลานกสามารถรวมใหท าโดยตวประมวลผลสญญาณได และกจะสงผลใหตนทนของ UPS มราคาถก
Full BridgeInverter
DigitalNotch Filter
Vin
IS IR
IH
แบตเตอร
ไปยงโหลด
ไฟฟาจากสาย
รบกระแสโหลดแปลงเปนดจตอล
รปท 12.10 การกรองสญญาณฮารมอนกใน UPS โดยใชการประมวลผลสญญาณดจตอล
การสรางสญญาณ (Waveform Generators)[1],[23]
ตวกรองดจตอล IIR สามารถน ามาท าเปนออสซลเลเตอรดจตอลได ดวยหลกการคลายคลงกบระบบแอนะลอก กลาวคอ เมอตวกรองอยในสภาวะเสถยรภาพแบบวกฤต (critically stable) ผลตอบสนองตออมพลสของมนจะไมลลงสศนย และกจะไมใหญขนจนเปนอนนต แตจะคงรปรางสญญาณทเปนคาบอยางหนงไวไปเรอย ๆ เชน สญญาณซายน เปนตน สภาวะเสถยรภาพแบบวกฤตของตวกรองดจตอลกคอ สภาวะทโพลของระบบมขนาดเทากบหนงนนเอง
ขอยกตวอยางโครงสรางของตวกรองแบบ direct form ทก าเนดสญญาณซายนทความถ ω0′ซงกคอ ตวกรองทมผลตอบสนองตออมพลสเปนสญญาณซายนทความถดงกลาวนนเอง เขยนเปนสมการของผลตอบสนองตออมพลสไดวา
h(n) = sin(ω0′n) (12.13)ซงเมอแปลง z จะไดฟงกชนถายโอน คอ
บทท 12 ตวอยางการประยกตใชงาน 236
H zz
z z ( )
sin( )( )
= - 2cos + 1
ωω
02
20
′′ (12.14)
จะเหนไดวา ตวกรองนมอนดบสอง และมโพลทมขนาดเทากบ 1 สองตวอยทความถ ±ω0′ดงแสดงต าแหนงของโพลในรปท 12.11 เมอวเคราะหตอไปจะไดวาสมการผลตางของตวกรองน คอ
y(n) = a0x(n) - b1y(n-1) - y(n-2) (12.15)โดยท a0 = sin(ω0) และ b1 = -2cos(ω0)
จะเหนไดวา มเทอมของสญญาณขาเขาเพยงเทอมเดยว คอ a0x(n) และสมประสทธ a0 กมใชอยทต าแหนงเดยวน นนคอ a0 เปนเหมอนตวสเกลขนาดของสญญาณขาเขา ดงนนมนเปนคาทก าหนดขนาดของสญญาณขาออกดวย (เนองจากระบบเปนเชงเสน) สวน b1 ถกใชเปนสมประสทธทคณตวปอนกลบ เพราะฉะนน b1 จะเปนตวก าหนดต าแหนงของโพล ซงกคอ ก าหนดความถในการแกวงของสญญาณขาออกนนเอง
′ω0
′ω0
z-1
z-1
x(n) y(n)
-2cosω0
sinω0
+
รปท 12.11 ต าแหนงโพล และ แผนภาพโครงสราง direct form 1 ของตวก าเนดสญญาณซายน
ขอดของออสซลเลเตอรสญญาณซายนแบบนกคอ ท าไดงาย เพราะตองการตวคณแตตวเดยวเทานน (ตวคณ a0 ทสญญาณ x(n) นน ไมจ าเปนตองใช เพราะ เราจะใช x(n) เปนสญญาณอมพลสซงมคาท n=0 จดเดยว ดงนน a0x(n) จะใชเปนเพยงคาเรมตนทใชกระตนระบบเทานน) อกทงยงสามารถเปลยนแปลงขนาด และความถไดงาย โดยเปลยนคาสมประสทธเพยงสองคาเทานน เราสามารถค านวณคาสมประสทธทจะใชก าเนดความถตาง ๆ ไวลวงหนากอนแลวเกบไวในตาราง จากนน ตอนใชงานกดงคาเหลานมาโปรแกรมใหกบออสซลเลเตอร ท าใหสามารถสรางเปนตวออสซลเลเตอรทปรบความถไดตามตองการ
บทท 12 ตวอยางการประยกตใชงาน 237
แตออสซลเลเตอรชนดนกมปญหาทส าคญ คอ เรองความคลาดเคลอนเมอน าไปใชกบระบบเลขจ านวนเตม ซงถาหากวาความคลาดเคลอนมมาก จะสามารถท าใหความถทออกมาคลาดเคลอนไปได หรอท าใหระบบเสยเสถยรภาพกเปนไปไดเชนกน ใน [23] ไดวเคราะหความคลาดเคลอนออสซลเลเตอรชนดนในภาวะการท างานทจ านวนบตตาง ๆ และพบวามนสามารถท างานไดด โดยใหก าเนดสญญาณซายนทมความเพยนต า ในชวงความถกลาง ๆ คอ ตงแต ω0′= 0.1π ถงความถประมาณ 0.8πแตจะมความเพยนมาในชวงความถต า ๆ และ สง ๆ
นอกจากสญญาณซายน เรายงสามารถก าเนดสญญาณดจตอลรายคาบใด ๆ ได โดยใชตวกรองIIR ทมฟงกชนถายโอนดงตอไปน
H z z b z b z b zz
D DD D
D( ) ... = b + + + +-
0 11
2 12
1
−− − (12.16)
ระบบนมอนดบเทากบ D ซงมโพลอย D คาทมขนาดเทากบหนงเชนกน อยรอบวงกลมหนงหนวย ระบบนจะใหผลตอบสนองตออมพลสทเปนรายคาบโดยทคาใน 1 คาบ คอ
h(n)1 คาบ = [ b0 b1 b2 ... bD-1 ] (12.17)
ขอพสจนโดยการยกตวอยาง ระบบทม D=4 ซงจะมฟงกชนถายโอน ดงน
H z z b z z b zz
( ) = b + + b +-
04
13
22
34 1
หรอ H z b z z b z( ) = b + + b + - z
0 11
22
33
41
− − −
− (12.18)
Y(z) [1-z-4] = X(z) [b0 + b1z-1 + b2z-2 + b3z-3]
จะไดสมการผลตางของระบบ คอ
y(n) = y(n-4) + b0x(n) + b1 x(n-1) + b2 x(n-2) + b3 x(n-3) (12.19)
บทท 12 ตวอยางการประยกตใชงาน 238
ในทนเราจะวเคราะหหา h(n) โดยการแทนคาให x(n) ในสมการนเปนอมพลส δ(n) และใหy(n) เปน h(n) ซงในกรณนจะงายกวาวธการแปลง z ผกผน จะไดสมการท 12.19 กลายเปน
h(n) = h(n-4) + b0δ(n) + b1 δ(n-1) + b2 δ(n-2) + b3 δ(n-3) (12.20)
ทเวลา 4 ขนแรก จาก n=0 ถง n=3 สญญาณ h(n-4) ซงคอ ขาออกของระบบยอนหลงไป 4 ขนเวลาจะยงไมมคา ดงนน สญญาณขาออกเปนผลจากสญญาณขาเขาอยางเดยว สมการผลตางใน(12.20) จะกลายเปน
h(n) = b0δ(n) + b1 δ(n-1) + b2 δ(n-2) + b3 δ(n-3) (12.21)
ซงจะท าใหไดผลตอบตออมพลสใน 4 ขนเวลาแรกเปน [b0 b1 b2 b3 ]ส าหรบในเวลาเรมตนจาก n=4 เปนตนไป คราวนคา δ(n), δ(n-1), δ(n-2), และ δ(n-3) จะ
กลายเปนศนยแทน สวนคา h(n-4) จะไมเปนศนย ดงนน สมการผลตางจะกลายเปน
h(n) = h(n-4) (12.22)
นนคอ ผลตอบสนองตออมพลสจะซ ากบคาเดมของมนกอนหนานน 4 คา คอ h(4)=h(0), h(5)=h(1), h(6)=h(2), ... เปนเชนนไปเรอย ๆ จนถงเวลาอนนต ดงนน จะเหนไดวา h(n) จะเกดเปนคาบขนหลงเวลา n=4 ดงแสดงในรปท 12.12
b0b1
b2b3
b0b1
b2b3
b0b1
b2b3
b0b1
b2b3
. . .0 1 2 3 4 5 6 7 8 9 10 ... n
h(n) = h(n-3)h(n)
รปท 12.12 การเกดคาบของ h(n) ของระบบตามสมการท 12.18
บทท 12 ตวอยางการประยกตใชงาน 239
ตวกรองปรบตวได (Adaptive Filters)[2], [10]
เราไดเหนมาแลววา ตวกรองความถทว ๆ ไป เปนตวกรองแบบมสมประสทธคงท หรอ เปนแบบไมแปรตามเวลา ส าหรบตวกรองแบบปรบตวไดจะเปนตวกรองแบบทมสมประสทธปรบเปลยนตลอดเวลา โดยอาศยเงอนไขทางสถตของสญญาณ และของโมเดลของสงแวดลอมทสรางขนในการค านวณหาคาสมประสทธ ตวกรองแบบปรบตวไดนท าใหขอบเขตของการประยกตใชการประมวลผลสญญาณดจตอลขยายวงออกไปกวางมาก ขอยกตวอยาง ภาวะทเราไมสามารถใชตวกรองดจตอลธรรมดาได หรอใชไดแตจะใหผลทไมดนก ซงจะใหผลทดขนไดถาใชตวกรองแบบปรบตวได เชน
1. เมอสญญาณรบกวน และสญญาณทเราตองการอยในยานความถเดยวกน เชนในรปท12.13 ซงกคอนขางชดเจนวาถาใชตวกรองความถแบบธรรมดากรอง และตองการใหสญญาณรบกวนสวนใหญหมดไป จะท าใหพลงงานสวนใหญสญญาณทตองการสญหายไปดวย
2. เมอไมรลกษณะทแนนอนของสญญาณรบกวน เชน ไมรวาสญญาณรบกวนอยในยานความถใด หรอไมรวาสญญาณรบกวนเขามาในทศทางใดในกรณของสายอากาศแบบอะเรย เปนตน
3. เมอสญญาณทตองการมความผดเพยนทไมรลกษณะทแนนอน เชน กรณของโมเดม หรอโทรศพทมอถอ ทมการสงสญญาณผานชองสญญาณ สญญาณทตวรบไดรบจะถกท าใหผดเพยนไปดวยฟงกชนถายโอนของชองสญญาณทไมรคาแนนอน และอาจมคาแปรตามเวลาดวย ซงเราตองการใชตวกรองเพอกรองเอาความผดเพยนนออกไป
f
ส ญญาณรบกวน
ส ญญาณท ต องการ
รปท 12.13 ตวอยางของสเปกตรมของสญญาณรบกวนทอยในยานเดยวกบสญญาณทตองการ
FIRx(n) ! ( )x n2
y(n) = s(n) + x2(n)
Adaptivealgorithm
h(n)
-+
e(n) = !( )s n
รปท 12.14 โครงสรางพนฐานของตวกรองแบบปรบตวได
บทท 12 ตวอยางการประยกตใชงาน 240
รปท 12.14 แสดงโครงสรางพนฐานของตวกรองแบบปรบตวได ซงประกอบดวยตวกรองแบบ FIR ซงมคาสมประสทธปรบเปลยนได โดยรบคาสมประสทธมาจากการประมวลผลของอลกอรธมในการปรบตว (adaptive algorithm) ซงกมดวยกนหลากหลายวธในการค านวณหาคาสมประสทธน การศกษาถงอลกอรธมเหลาน รวมอยในสาขาของการประมวลผลสญญาณดจตอลขนสง ซงบางครงกเรยกวา การประมวลผลสญญาณทางสถต (statistical signal processing) หรอ การประมวลผลสญญาณแบบปรบตวได (adaptive signal processing) หรอ ทฤษฎการประมาณคา(estimation theory)
ส าหรบการท าความเขาใจโดยละเอยดถงการท างานของอลกอรธมในการปรบตวตาง ๆ นนจ าเปนทผศกษาตองมความเขาใจในทฤษฎทางสถต ทฤษฎเกยวกบสญญาณแรนดอม (random signal)และทฤษฎคณตศาสตรของเมตรกซ และพชคณตเชงเสน ซงเกนขอบเขตทหนงสอเลมนจะกลาวถงไดในทนจะไดอธบายในเชงแนะน าถง อลกอรธมในการปรบตวชนดหนงทชอวา วธ LMS (Least MeanSquare) ซงเปนอลกอรธมทงายทสดเมอเทยบกบตวอน ๆ แตกมการใชงานอยางกวางขวาง ซงหวงวาคงจะพอใหเปนแนวทาง และเปนแรงกระตนใหผทสนใจไดศกษาตอไปได
สถานการณแวดลอมของโครงสรางพนฐานของตวกรองปรบตวไดในรปท 12.14 เปนดงน1. เราสามารถวดสญญาณมาไดสองสญญาณ คอ x(n) และ y(n) โดยท y(n) เปนสญญาณท
ผสมกนระหวาง s(n) กบ x2(n) วตถประสงคของตวกรองกคอ ตองการแยก s(n) ออกจาก x2(n) โดยไมจ าเปนตองรยานความถ หรอลกษณะทางสถตของสญญาณทงสองลวงหนา
2. เงอนไขทจ าเปน คอ s(n) นนตองไมมความสมพนธกบ x2(n) ในทางสถต (statisticalindependent) หรอสมพนธกนนอยมาก เชน เปนสญญาณเสยงทมแหลงก าเนด 2 แหลงทไมเกยวของกน สวน x(n) ซงเปนสญญาณอกสญญาณหนงทวดไดนน ตองมความสมพนธกบ x2(n)
3. เราโมเดลความสมพนธระหวาง x(n) กบ x2(n) วา สมพนธกนดวยฟงกชนถายโอนของตวกรอง FIR ตวหนงทไมรคาสมประสทธ ไมรคาอนดบ และสมประสทธอาจเปลยนแปลงตามเวลาไดอยางชา ๆ โดยท x(n) เปนสญญาณขาเขาของตวกรองน และ x2(n) เปนขาออกดงแสดงในรปท 12.15โมเดลนนอกจากงายตอการค านวณแลว ยงเปนโมเดลทดส าหรบสงแวดลอมหลาย ๆ อยาง เชน ใชเปนโมเดลของชองสญญาณตาง ๆ ทเสยง หรอคลนแมเหลกไฟฟาเดนทางผาน ฯลฯ
?x(n) x2(n)
โมเดลเป น FIR ท ไม ร ค าส มประส ทธ และส มประส ทธ อาจเปล ยนแปลงตามเวลาได ด วย
รปท 12.15 โมเดลความสมพนธระหวางสญญาณ x(n) กบ x2(n)
บทท 12 ตวอยางการประยกตใชงาน 241
4. เราจะน า x(n) ผานตวกรอง FIR ทสรางขนซงมสมประสทธ h(n) และอนดบเทากบ N ใหสญญาณขาออกของตวกรอง คอ ! ( )x n2 ถาหากวา เราสามารถปรบสมประสทธ h(n) ใกลเคยงกบสมประสทธทเปนโมเดลระหวาง x(n) กบ x2(n) ได ! ( )x n2 กจะเปนสญญาณทใกลเคยงกบ x2(n) และเมอน า ! ( )x n2 ลบออกจาก y(n) ตามรปท 12.14 สญญาณทเหลออยซงจะเรยกวา สญญาณความคลาดเคลอน e(n) กจะมคาใกลเคยงกบ s(n) นนคอ เราสามารถแยก x2(n) ออกจาก s(n) ไดส าเรจ
ตวทจะค านวณหาสมประสทธ h(n) กคอ อลกอรธมปรบตวได ซงรบคา e(n) และ x(n) จากนนค านวณ h(n) ปอนใหกบตวกรอง FIR และจะปรบคา h(n) ไปเรอย ๆ ทก ๆ ขนเวลา จนกระทง h(n)ลเขาสคาทถกตอง
อลกอรธม LMS และเงอนไขการท างานของมน
เมอพจารณาสญญาณความคลาดเคลอน e(n) จากรปท 12.14 จะไดวา
e(n) = y(n) - ! ( )x n2 = s(n) + x2(n) - ! ( )x n2 (12.23)
พจารณาวาทกสญญาณเปนสญญาณแรนดอม เมอหาคาคาดหวง (หรอคาเฉลยทางสถต) ของก าลงสองของทงสมการจะได
E[e2(n)] = E[(s(n) + x2(n) - ! ( )x n2 )2] (12.24)
ขอละตวชเวลา n เพอใหสมการงายตอการมอง ดงน
E[ e2 ] = E[ (s + x2 - !x2 )2 ] (12.25)
กระจายเทอมก าลงสองดานขวามอของสมการออกมาจะได
E[ e2 ] = E[ s2 + 2 s (x2 - !x2 ) + (x2 - !x2 )2 ]E[ e2 ] = E[ s2 ] + 2E[ s x2 ] - 2E[ s !x2 ] + E[ (x2 - !x2 )2 ] (12.26)
เนองจาก s กบ x2 และ s กบ !x2 ไมมความสมพนธกน จากทฤษฎทางสถตทวาคาคาดหวงของผลคณของสองสญญาณทไมสมพนธกนจะเทากบศนย จะไดวา เทอมทสอง และสามของฝงขวาของสมการเปนศนย ดงนน สมการท 12.26 จะลดเหลอเพยง
บทท 12 ตวอยางการประยกตใชงาน 242
E[ e2 ] = E[ s2 ] + E[ (x2 - !x2 )2 ] (12.27)
ใชความรทวา คาคาดหวงของก าลงสองของสญญาณ กคอ คาก าลงเฉลยของสญญาณ สมการนจะตความไดวา ก าลงเฉลยของสญญาณ e(n) เทากบก าลงเฉลยของสญญาณ s(n) บวกกบก าลงเฉลยของผลตางระหวาง x2(n) กบ ! ( )x n2 เราตองการใหเทอมสดทายนมคานอยทสดเทาทจะท าได เพราะนนจะหมายถงวา สญญาณ x2(n) กบ ! ( )x n2 มความแตกตางกนนอยทสดเทาทจะท าได และกจะท าใหตวกรองท างานไดตามทตองการ
สญญาณ ! ( )x n2 นนขนกบคา h(n) เพราะ เปนขาออกของตวกรอง FIR โดยสมมตวา อนดบของตวกรองเทากบ N จะได
! ( )x n2 = h0(n)x(n) + h1(n)x(n-1) + ... + hN-1(n)x(n-N+1) (12.28)
ในการวเคราะหทางคณตศาสตรของตวกรองปรบตวได นยมเขยนสญญาณใหอยในรปของเวคเตอร และเมตรกซเพอใหมองดกระชบ ดงนน ขอนยามเวคเตอรของสมประสทธทเวลา n คอ(h n( ) และเวคเตอรของสญญาณขาเขาทเวลา n คอ (x n( ) ซงมคาดงตอไปน
()
h n
nn
n
( )
( )( )
( )
=
hh
h
0
1
N-1
และ ()
x n
nn
n
( )
( )( )
( )
=
xx -1
x - N +1
(12.29)
ทงสองเวคเตอรมขนาด N แถว 1 คอลมน สงเกตวา (x n( ) คอ เวคเตอรทประกอบขนจากสญญาณขาเขาปจจบน และสญญาณขาเขาทยอนหลงไป N ตว เมอเราไดนยามดงนแลว จะสามารถเขยนสมการท 12.29 ไดใหมในรปแบบการคณกนของเวคเตอร คอ
! ( ) ( )x n x n2 = h(n) T( ( (12.30)
ส าหรบสญญาณ e(n) กขนกบ h(n) เพราะเปนผลตางของ y(n) กบ ! ( )x n2 สวนสญญาณ s(n)นนเปนขาเขาทไมขนกบ h(n) ดงนน สมการท 12.27 มเฉพาะเทอม E[ e2 ] และเทอม E[ (x2 - !x2 )2 ]เทานนทขนกบคา h(n) ดงนน ถารคาพารามเตอรตาง ๆ ของระบบทงหมด เราจะสามารถแกสมการหาคา h(n) ทจะท าให E[(x2 - !x2 )2] มคาต าสดเทาทจะท าได ซงกจะคอจดเดยวกบทคา E[ e2 ] มคาต าสดเทาทจะท าได เขยนเปนสมการไดวา
บทท 12 ตวอยางการประยกตใชงาน 243
E[ e2 ]ต าสดจากการปรบคา h(n) = E[ s2 ] + E[ (x2 - !x2 )2 ]ต าสดจากการปรบคา h(n) (12.31)
การแกสมการนเพอหาคา h(n) โดยใชเงอนไขวา เปน h(n) ทท าใหคา E[ e2 ] ต าสด จะงายกวาใชเงอนไขวา ใหคา E[(x2 - !x2 )2] ต าสด ซงผลตอบของการแกสมการนเปนทรจกกนโดยทวไปในชอวา ตวกรองวนเนอร (Wiener Filter) ในทนจะขอไมกลาวถงการแกสมการน และผลตอบทได แตขอใหผอานมความเขาใจวา ตวกรองวนเนอรนจะใชคา h(n) ทดทสดทก ๆ คาเวลา n แตปญหาของตวกรองวนเนอรกคอ คา h(n) นมการค านวณทยงยาก และจ าเปนตองรคาพารามเตอรทางสถตของสญญาณ x(n) และ y(n) ดวย ซงในทางปฏบตมกจะไมทราบคาแนนอน ดวยเหตผลน ท าใหตวกรองวนเนอรแทบจะไมมทน ามาใชงานไดในทางปฏบต
อยางไรกตาม ตวกรองวนเนอรนมประโยชนมากในแงทฤษฎ เพราะมนคอเปาหมายทตวกรองปรบตวไดแบบอน ๆ ตองการไปถง อลกอรธมปรบตวไดทเปนทนยมไดแก LMS, RLS, และKalman ลวนแลวแตมผลตอบทสามารถพสจนไดวา ลเขาสผลตอบของตวกรองวนเนอรทงสน กลาวคอ อลกอรธมเหลานไมไดใหผลตอบทเหมอนกบผลตอบของตวกรองวนเนอรทก ๆ ขนเวลา แตถาถกใชในสภาวะทลกษณะทางสถตของสญญาณขาเขาเปลยนแปลงไมเรวนก เมอเวลาผานไปสกระยะหนงมนจะสามารถใหผลตอบทลเขาสผลตอบของตวกรองวนเนอรได
ลกษณะส าคญของการค านวณสมประสทธดวยอลกอรธมเหลาน ทปรบปรงจากตวกรองวนเนอร คอ
1. ไมจ าเปนตองรคาพารามเตอรทางสถตของสญญาณขาเขา2. มการค านวณทสามารถปรบไปใชในการค านวณแบบเวลาจรงได
ขอยกตวอยางอลกอรธมแบบ LMS หรอ Least Mean Square ทถกคดคนขนเมอป ค.ศ. 1960โดยวโดรว และฮอฟฟ (Widrow and Hoff) มทมาโดยตรงจากตวกรองวนเนอร และการแกสมการโดยวธ steepest descent ซงท าโดยการสมมตผลตอบ (คาสมประสทธ) เรมตนขนมาเปนคาอะไรกไดจากนน ทก ๆ ขนเวลา เมอไดสญญาณขาเขาใหม กจะค านวณหาทศทางทจะเปลยนคาสมประสทธนนใหเขาใกลกบผลตอบทถกตอง แลวเปลยนคาสมประสทธตามทศทางนน ซงวธน ปรากฏวาท าใหการค านวณงายกวาการค านวณหาสมประสทธโดยตรงมาก ซงทศทางทดทสดทจะใชเปลยนคาสมประสทธตามวธ LMS น คอ
( (∆ = 2 e(n) x(n) (12.32)
เราจะหาคาสมประสทธใหมส าหรบเวลา n+1 จากคาสมประสทธปจจบน และเวคเตอรทศทางไดดวยการค านวณอยางตรงไปตรงมา ดงน
บทท 12 ตวอยางการประยกตใชงาน 244
( ( (h(n +1) = h(n) + µ∆ (12.33)
โดยทคา µ คอ ตวทควบคมวา สมประสทธจะมคาเปลยนแปลงตามเวคเตอรทศทางเรวมากนอยแคไหน โดยทวไป µ มคาประมาณ 0.001 ถง 0.1 ถาคา µ มคานอยเกนไปกจะสงผลใหสมประสทธลเขาสคาทถกตองชา แตถาคา µ มคามากเกนไปกอาจท าใหสมประสทธไมสามารถลเขาสคาทถกตองได หรอถงแมจะลไดแตกอาจจะเปลยนแปลงไปมา ไมคงตวอยทภาวะสมดลทดทสด ดงนนการเลอกคา µ ทเหมาะสมมผลตอประสทธผลการท างานของระบบมาก
เมอรวมเอาสมการท 12.32 และ 12.33 เขาดวยกน กจะไดสมการส าหรบค านวณหาคาสมประสทธทเวลาใด ๆ คอ
( ( (h(n +1) = h(n) + 2µe n x n( ) ( ) (12.34)
เราสามารถสรปกระบวนการท างานของตวกรองปรบตวได ทใช LMS เปนตวค านวณคาสมประสทธ ไดดงรปท 12.16
ต งค าเร มต นให ก บ( *h n( ) และ x(n)
ร บค า x(n) ก บ y(n) ใหม และเปล ยนค า
(x n( )
คานวณขาออกของ FIR! ( ) ( ) ( )x n n x nT
2 = h( (
คานวณส ญญาณ e(n)e(n) = y(n) - ! ( )x n2
คานวณส มประส ทธ ใหม ( ( (h(n +1) = h(n) + 2µe n x n( ) ( )
รปท 12.16 แผนภาพแสดงการท างานของตวกรองปรบตวได
()x n( ) =
x(n)x(n -1)
x(n - N + 1)
คาใหม
ทงคาเกาสด คอ x(n-N)
บทท 12 ตวอยางการประยกตใชงาน 245
โปรแกรมท 12.1 เปนฟงกชนทใชค านวณตวกรองปรบตวได โดยจะรบคาของเวคเตอรสญญาณ x(n), สญญาณ y(n), คา µ , และคาอนดบ จากนนประมวลผลตามแผนภาพในรปท 12.16แลวคนคาสมประสทธ และเวคเตอรของสญญาณ e(n) โดยสมประสทธจะคนคาเปนเมตรกซทมจ านวนแถวเทากบขนาดของเวคเตอร (x n( ) และมจ านวนคอลมนเทากบขนาดของเวคเตอร (h n( )โดยทแตละแถวเปนคาสมประสทธ (h n( ) ทแตละเวลา ตงแตเวลาเรมตนจนถงคาเวลาสดทายของการประมวลผล ซงท าใหเราสามารถน าไปวเคราะหตอไปไดวา สมประสทธทหาไดมการเปลยนแปลงตามเวลาอยางไร
ส าหรบโปรแกรมท 12.2 เปนตวอยางของการเรยกใชฟงกชน lms (โปรแกรมท 12.1) โดยสมมตใหสญญาณ x(n) และ s(n) เปนสญญาณแบบ white gaussian ซงสรางโดยใชฟงกชน randn ในMATLAB จากนนสมมตคาสมประสทธของสงแวดลอม คอ เวคเตอร h_env แลวสรางสญญาณ x2
(n) ดวยการน าสญญาณ x(n) ผานตวกรอง FIR ทมคาสมประสทธน เราจะสมมตวาเราวดไดเฉพาะสญญาณ y(n) และ x(n) โดยผานสญญาณทงสองใหกบฟงกชน LMS เพอแยกเอา s(n) ออกมาจาก y(n) คาทฟงกชนคนกลบมา คอ เมตรกซ h และเวคเตอร err ซงถาตวกรองท าหนาทของมนไดส าเรจจะไดวา h มแถวสดทายใกลเคยงกบคาสมประสทธของสงแวดลอม และ err กมคาใกลเคยงกบ s(n)
วธทจะวเคราะหใหเหนชดจะตองดความแตกตางระหวางสมประสทธท LMS หาไดทเวลาตาง ๆ เทยบกบสมประสทธของสงแวดลอม เราจะนยามคาความแตกตางนเปนคาพารามเตอรตวเดยวทแตละเวลา n เรยกคานวา คานอรมของความแตกตางสมประสทธ (coefficient error norm) ซงเปนคาผลรวมของก าลงสองความแตกตางของสมประสทธ นอรแมลไลซดวยผลรวมก าลงสองของสมประสทธสงแวดลอม ดงน
h_norm(n) =
( ( ) _ ( ))
_ ( )
h n h env n
h env n
i ii
order
ii
order
−=
=
∑
∑
2
0
2
0
-1
-1 (12.35)
function [h,err]=lms(x,y,mu,order);h(1,:)=zeros(1,order);xvec=zeros(1,order);
for i=1:length(x) xvec(2:order) = xvec(1:order-1);
xvec(1)=x(i); % รบคา x(n) ใหมใสในเวคเตอร x2_est = h(i,:)*xvec'; err(i) = y(i) - x2_est; h(i+1,:) = h(i,:) + 2*mu*xvec*err(i);end
h(i+1,:)=[];
โปรแกรมท 12.1 ฟงกชน lms.m ส าหรบค านวณตวกรองปรบตวไดแบบ FIR
บทท 12 ตวอยางการประยกตใชงาน 246
mu=0.005;order=9;h_env=[0.1054,0.1839,0.2596,0.2500,0.1558,0.0613,0.0151,0.005,0.002];
% สมมต w นเปนสมประสทธของสงแวดลอมN=500; % จ านวนจดทจะจ าลองการท างานx=randn(1,N); % สมมต x(n) เปนสญญาณประเภท white gaussianx2=filter(h_env,1,x); % x(n) ผานสงแวดลอมซงเปน FIR มสมประสทธ h ไดขาออกเปน x2(n)s = 0.5*randn(1,N); % สมมต s(n) เปนสญญาณประเภท white gaussian เชนกนy = s + x2;[h,err] = lms(x,y,mu,order);
hend = h(N,:);h_norm = (h-ones(N,1)*h_env).^2;h_norm = sum(h_norm');hh = h_env*h_env';h_norm = h_norm/hh;plot(h_norm)
โปรแกรมท 12.2 โปรแกรม runlms.m ตวอยางการเรยกใชงานฟงกชน lms.m
สวนสดทายของโปรแกรมท 12.2 จะค านวณหาคา h_norm น แลววาดออกมา ซงจะท าใหเหนไดวา คานมการเปลยนแปลงตามเวลาอยางไร ถาคา h_norm ลเขาสศนยกแสดงวา สมประสทธทLMS หาไดจะลเขาสคาสมประสทธของสงแวดลอม นนคอ ตวกรองปรบตวไดสามารถท างานส าเรจไดตามทเราตองการ
การหกลางเสยงสะทอน (Echo Cancellation) [2], [10]
การประยกตใชงานทส าคญอนหนงของตวกรองปรบตวได คอ การหกลางเสยงสะทอนซงมทใชงานอยในหลายสถานการณ ในทนขอยกตวอยางสถานการณทส าคญ 2 สถานการณดวยกน คอ
1. เสยงสะทอนทเกดขนในระบบโทรศพททางไกล เสยงสะทอนนเกดจากวงจรหมอแปลงไฮบรด (hybrid transformer) ทอยทชมสายโทรศพท ซงท าหนาทแยกสญญาณเสยงขาไป และกลบซงอยในสายคเดยวกน (สายจากชมสายไปยงบานของผใช หรอ local loop) เพอสงไปกบสาย 2 คทเปนสายเชอมชมสาย (trunk) ส าหรบโทรทางไกล สาเหตทตองแยกชองสญญาณสงและรบออกจากกนเนองจากการสงระยะไกลตองการการขยายสญญาณ หรอไมกตองการสงเปนแบบดจตอลซงตองกระท ากบแตละชองสญญาณแยกกน ในรปท 12.17 แสดงระบบกรองเสยงสะทอนทฝงของผใช กเนองจากวงจรไฮบรดมความไมเปนอดมคต จงท าใหเสยงของผใช ข บางสวนหลดลอดผานวงจรกลบไปสผใช ข ซงถาหากไมกรองทง ผใช ข กจะไดยนเสยงของเขาเองสะทอนกลบมา ท าใหเกดความร าคาญได
2. เสยงสะทอนทเกดขนในระบบโทรศพทแบบไมยกห (speakerphone) หรออปกรณประเภทประชมผานวดโอทางไกล (video conference) การสอสารเหลานใชอปกรณทมไมโครโฟนรบเสยงของผพดซงเปนไมโครโฟนทรบเสยงไดกวางโดยผใชไมตองพดจออย ทต าแหนงของ
บทท 12 ตวอยางการประยกตใชงาน 247
ไมโครโฟน ขณะเดยวกนกมล าโพงเพอสงเสยงของผพดอกฝงหนงใหดงออกมา ดงนน เสยงทดงออกมาจากล าโพงกสามารถเลดลอดไปเขาไมโครโฟนได และบางสวนกสะทอนสงตาง ๆ กอนเขาไมโครโฟน ดงแสดงในรปท 12.18
FIRปรบตวได
Hybri
d
Hybri
d
เสยง ก
เสยง ข
ผใช กผใช ข
y(n)=s(n)+x2(n)
x(n)
S(n)+
_
^
s(n)x2(n)
x2(n)
รปท 12.17 การกรองเสยงสะทอนในระบบโทรศพททางไกล
FIRปรบตวได
ผใช ก
x(n)
+
_
s(n)
สะทอน
.s(n)
x2(n)
x2(n)
y(n) =s(n)+x2(n)
^
^
รปท 12.18 การกรองเสยงสะทอนในโทรศพทแบบไมยกห
ในทงสองสถานการณ เราสามารถโมเดลเสยงทสะทอนกลบ (x2(n)) ไดวา เปนเสยงของผใชอกฝงหนง (x(n)) ทผานตวกรอง FIR ทไมรคาสมประสทธตวหนง จากนนกใชตวกรอง FIR ปรบตวไดทไดกลาวถงในหวขอทแลว เพอหกลางเสยงสะทอนนทงเสย
บทท 12 ตวอยางการประยกตใชงาน 248
สญญาณขาเขาของตวกรองปรบตวได คอ 1) สญญาณทมาจากผใช ข (x(n)) และ 2) สญญาณทมาจากผใช ทถกผสมกบเสยงทสะทอนกลบ (y(n) = s(n) + x2(n)) ตวกรองปรบตวไดจะค านวณหา! ( )x n2 เพอมาหกลางกบ x2(n) ดงนน จะไดสญญาณขาออก คอ e(n) มคาประมาณเทากบ s(n) ซงคอเสยงของผใช ก อยางเดยวเพอสงไปหาผใช ข
ในทางปฏบต ยงมเทคนคเพมเตมอกจากการใช LMS ปกตอก เพอท าใหไดผลดยงขน ไดแก1) การใชอลกอรธม Normalized LMS แทน LMS ปกต เพอชดเชยผลของการทสญญาณเสยง
มก าลงงานทเปลยนแปลงตามเวลาซงไมเหมาะกบการใช LMS ปกต2) การใชเทคนคให LMS ท างานค านวณหาคาสมประสทธเฉพาะเมอเวลาไมมเสยงพดมา
จากผใช ก และให LMS หยดท างานโดยคางคาสมประสทธเดมไวถามเสยงพดจากผใช ก มา เทคนคนชวยปองกนการทเสยงบางสวนของผใช ก จะถกหกลางไปดวยในการใช LMS ปกต
ภาคผนวก ก การใชงาน Matlab 249
ภาคผนวก กการใชงาน Matlab
ในสวนนจะไดแนะน าการใช Matlab ส าหรบผเรมตน โดยค าสงตาง ๆ ทใชนไดทดลองกบMatlab for Windows เวอรชน 4.2 ผทเคยมประสบการณบางกบการเขยนโปรแกรมภาษาสงตาง ๆเชน ปาสคาล หรอ ซ จะพบวา การเขยนโปรแกรมใน Matlab ท าไดงายมาก
บรรทดทมเครองหมาย >> (ซงเปนตวแทนเครองหมาย prompt ใน Matlab) หมายถง ค าสงทจะตองพมพปอนให Matlab สวนบรรทดทมการยอหนาลกเพมเขาไปอกเลกนอยกคอผลลพธทMatlab ตอบสนองออกมา
เรมรจกกบ Matlab ในฐานะเปนเครองคดเลข
เราเรมตนมอง Matlab อยางงาย ๆ ในฐานะเปนเหมอนเครองคดเลข หรอเปนโตะทดลองทางคณตศาสตรตวหนงทมฟงกชน และการกระท าทางคณตศาสตรครบถวน สญลกษณล าหรบการกระท าทางคณตศาสตรเบองตน ไดแก + บวก, - ลบ, * คณ, / หาร, และ ^ ยกก าลง สมมตวาเราตองการค านวณ 3(2+4) สามารถพมพเขาไปไดทนทดงน
>> 3*(2+4) ซง Matlab จะตอบออกมาในบรรทดตอมาวา .. ans = 18ซงจะเหนวาลกษณะการเขยนประโยคทางคณตศาสตรกเหมอนกบภาษาสงทว ๆ ไป โดยจะ
กระท าในวงเลบกอน แลวคอยท าขางนอก ถาไมมวงเลบ Matlab จะเรยงล าดบการกระท าดงน1. ยกก าลง2. คณ และ หาร3. บวก และ ลบ
เชน ถาสงวา 3^2*5/4/2+1 จะมคาเทากบ 32 4 5
2
⋅ ⋅ + 1 ซงไดคาเทากบ 6.625 เปนตนส าหรบรปแบบตวเลขทางวทยาศาสตรทมการคณดวยก าลงของสบ เชน 3x10-11 กสามารถ
ปอนเขาไปไดโดยใชวา 3e-11
ภาคผนวก ก การใชงาน Matlab 250
การใชตวแปรใน Matlab
เราสามารถเกบคาตาง ๆ ไวในตวแปรไดโดยใชเครองหมาย = และสามารถเรยกใชตวแปรนนตอไปไดอยางสะดวก ตวอยางเชน
>> a=2 เกบ 2 ไวในตวแปร a a = 2>> b=3*(a+4) เกบผลลพธไวในตวแปร b b = 18ถาเราไมตองการให Matlab แสดงคาตอบสนองออกมา ใหใสเครองหมายเซมโคลอน (;) ไว
ทายค าสง เชน ถาสงวา>> a = 2; จะใหผลเหมอนกบการสงขางตน เพยงแตไมแสดงผลตอบสนองออกมาเราสามารถตงตวแปรขนมาใชไดไมจ ากดจ านวน (จ ากดอยทหนวยความจ าของเครอง
คอมพวเตอร) การตงชอตวแปรสามารถใชตวอกษร a ถง z และ A ถง Z, ตวเลข 0 ถง 9, และสญลกษณ _ โดยมขอแมวาจะตองใชตวอกษรอยางนอย 1 ตวน าหนาเสมอ เชน a11_79 เปนตน
ถาตองการดวาขณะนนมตวแปรอะไรอยบางใหใชค าสง who และถาตองการดวาตวแปรหนงๆ เกบคาอะไรอย กใหพมพชอตวแปรนนแลวกด enter เชน
.>> who ขอดวามตวแปรอะไรบาง Your variables are: a b>> a ขอดวา a เกบคาอะไรอย a = 1ตวแปรทสรางไวจะไมหายไปจนกวาจะปดโปรแกรม Matlab การลบตวแปรทงท าไดโดยใช
ค าสง clear โดยการสง clear เฉย ๆ จะเปนการลบตวแปรทงหมดทง ถาตองการลบเฉพาะบางตวกใหสง clear แลวตามตวชอของตวแปร เชน
>> clear a b จะลบเฉพาะตวแปร a และ b เทานน
การเรยกค าสงเกามาใชใหม
ค าสงเกาทเคยพมพแลว สามารถเรยกกลบขนมาใหมไดโดยไมตองพมพใหม ดวยการกดปมลกศรขน และลง เมอเจอค าสงทตองการแลวกสามารถกดปมลกศรซายและขวาเพอเขาไปแกไขไดลกษณะเชนเดยวกบการใช doskey ใน DOS
ภาคผนวก ก การใชงาน Matlab 251
เมตรกซ และเวคเตอร
การปอนคาเมตรกซใน Matlab สามารถกระท าไดงายมาก เชน ถาตองการสรางตวแปร a ให
เกบเมตรกซ 1 2 34 5 67 8 9
สามารถสงได ดงน
>> a = [1 2 3; 4 5 6; 7 8 9];หรอ a = [1, 2, 3; 4, 5, 6; 7, 8, 9] กไดสรปวา เครองหมายคอมมา (,) หรอ วรรค ใชแบงระหวางคอลมน และ เครองหมายเซมโค
ลอน (;) ใชแบงระหวางแถว (สงเกตวาการเตมวรรคมากนอยไมมผลตอ Matlab)สวนเวคเตอรกคอ เมตรกซทมแถวเดยว (เรยกวา เวคเตอรแถว) หรอเมตรกซทมคอลมนเดยว
(เรยกวา เวคเตอรคอลมน) ซงสามารถปอนคาไดโดยวธเดยวกนเชน>> a = [1 2 3 4 5 6 7]; เวคเตอรแถว>> a = [1; 2; 3; 4; 5; 6; 7]; เวคเตอรคอลมนส าหรบการสรางเวคเตอรแถวทมคาเปนเชงเสน สามารถท าไดอยางสะดวกอกวธหนงโดยใช
เครองหมายโคลอน (:) เชน>> a = 1:9 (หรอ a=[1:9] ) จะใหคา a = [1 2 3 4 5 6 7 8 9]>> a = 1 : 0.5 : 5 จะใหคา a = [1 1.5 2 2.5 3 3.5 4 4.5 5]>> a = 3 : -2 : -10 จะใหคา a = [3 1 -1 -3 -5 -7 -9]สรปวา รปแบบการใชคอ [คาแรก : คาทเพมขน : คาสดทาย] โดยสามารถละ [ ] ได และถา
ละคากลางกจะถอวา คาทเพมขนเปน 1
การกระท าทางเมตรกซ (Matrix operations)
การบวกลบคณหาร และยกก าลงของเมตรกซ สามารถกระท าไดโดยใชสญลกษณเหมอนการกระท ากบคาสเกลาปกต ขอควรระวง คอ ขนาดของเมตรกซทมากระท ากนตองถกตองตามกฏของการกระท านน ๆ เชน ถาเอา a*b โดย a และ b เปนเมตรกซ จะไดวาจ านวนแถวของ a จะตองเทากบจ านวนคอลมนของ b เสมอ และ ถาเอา a^2 จะตองใช a ทเปนเมตรกซจตรส (square) เสมอ เปนตน
การกระท าทจะขอแนะน าเพมเตมในทน คอ transpose ซงท าไดโดยใชสญลกษณเครองหมายค าพดขดเดยว ( ' ) ดงน
>> b=a' ใหเมตรกซ b เปน transpose ของเมตรกซ a
ภาคผนวก ก การใชงาน Matlab 252
หมายเหต ถาสมาชกใน a เปนจ านวนเชงซอน การกระท านจะเปน conjugate transpose คอนอกจาก transpose แลว ยงแปลงสมาชกทกตวใน a เปนคาคอนจเกตดวย (เปลยนเครองหมายของคาจนตภาพ) ถาตองการ transpose ธรรมดาโดยไมมคอนจเกตใหใชเครองหมาย .' แทน ดงน
>> b=a.'
การกระท าทเขาถงสมาชกทกตวในเมตรกซ (Array operations)
สมมตมเวคเตอร (หรอเมตรกซ) ทขนาดเทากน ดงน>> a = [1 2 3];>> b = [4 5 6];และตองการหาเวคเตอร ทมสมาชกเปนผลคณของสมาชกแตละตวทต าแหนงตรงกนของ a
กบ b ท าไดโดยใชเครองหมาย .* ดงน>> a.*b ans = [4 10 18]การกระท ากบสมาชกตรง ๆ ไดนมประโยชนมากในการประมวลผลสญญาณ ซงนอกจาก .*
แลว ยงมการกระท าในท านองนอก คอ>> a./b เอาสมาชกแตละตวของ a กบ b มาหารกน>> a.^b เอาสมาชกแตละตวของ a ยกก าลงดวยสมาชกแตละตวของ b>> a.^3 เอาสมาชกแตละตวของ a ยกก าลงดวย 3>> a+3 เอาสมาชกแตละตวของ a บวกดวย 3 (ลบกท าไดเชนเดยวกน)สงเกตวา ไมมการกระท า .+ และ .- เพราะ การบวกลบเมตรกซเปนการกระท ากบสมาชกแต
ละตวอยแลวส าหรบฟงกชนของคาสเกลาตาง ๆ เมอน ามากระท ากบเมตรกซ กจะมผลเปนการกระท ากบ
สมาชกแตละตวในเมตรกซ และใหผลลพธเปนเมตรกซขนาดเทาเดม เชน>> sin(a) หาคา sin ของสมาชกแตละตวของ a
การอางถงสมาชกภายในเมตรกซ (หรอเวคเตอร)
ถามเมตรกซ a = 1 2 34 5 67 8 9
ภาคผนวก ก การใชงาน Matlab 253
เราสามารถอางถงสมาชกแตละตวใน a ไดโดยใชรปแบบ a(แถว, คอลมน) เชน a(2,3) จะไดคาเปน 6 เปนตน ทพเศษไปกวานนกคอ Matlab อนญาตใหเราอางคาในเมตรกซไดหลาย ๆ คาพรอมๆ กนเพอสรางเปนเมตรกซ หรอเวคเตอรใหมได เชน
>> a([1 2] , [2 3]) หรอ a(1:2 , 2:3) อางถงแถวท 1 กบ 2 และ คอลมนท 2 กบ 3
ans =
6532
>> a(2 , [1 3]) อางถงแถวท 2 และ คอลมนท 1 กบ 3 ans = [ 4 6 ]>> a(2 , :) อางถงแถวท 2 ทงแถว ans = [ 4 5 6 ]
>> a(: , 2) อางถงคอลมนท 2 ทงคอลมน (สงเกตการใช :)
ans = 258
โดยสรปกคอ เราสามารถใช "เวคเตอรเปนตวช" ได แทนทจะใชสเกลาเฉย ๆ ส าหรบการอางคาในเวคเตอรกสามารถท าไดในท านองเดยวกน เพยงแตใชตวชเพยงตวเดยว เชน
>> a = [1 2 3 4 5 6 7 8 9];>> a(3) อางถงคาท 3 ans = 3>> a(2:5) หรอ a([2:5]) อางถงคาท 2 ถง 5 ans = [2 3 4 5]>> a(1:2:9) อางถงคาท 1, 3, 5, 7, และ 9 ans = [1 3 5 7 9]
จ านวนเชงซอน
Matlab สามารถค านวณระบบจ านวนเชงซอนได โดยใชรปแบบเชนเดยวกบการค านวณปกตโดยไมตองเปลยนแปลงใด ๆ และคาเชงซอนกสามารถเปนสมาชกของเมตรกซได ขอส าคญทตองรจงอยทรปแบบการปอนคาจ านวนเชงซอนใหกบ Matlab เทานน
ภาคผนวก ก การใชงาน Matlab 254
Matlab ใชสญลกษณ i และ j เปนตวแปรพเศษภายในทแทนคา -1 ซงเปนตวคณของสวนจนตภาพของจ านวนเชงซอน ในวศวกรรมไฟฟาเราคนเคยกบการใชสญลกษณ j มากกวา i ดงนน จะขอยกตวอยางโดยใช j ดงน
>> a = 2 + j*2; ใหคา a เปนจ านวนเชงซอนเทากบ 2 + j2>> b = 3 + j*4;>> a*b ans = -2.0000 +14.0000iอยางไรกตาม ในการแสดงค าตอบ Matlab จะใช i เปนตวคณของสวนจตภาพเสมอซงไมเปน
ปญหาตอการใชงานของเราแตอยางใด มขอควรระวงอยางหนง คอ ถาหากเราใช j เปนตวคณของคาจตภาพ จะตองไมใช j เปนชอของตวแปรอนใดทงสน มฉะนน j จะหมดคาของ -1 ไป
การปอนคาเปนรปแบบโพลา สามารถท าไดโดยใชฟงกชน exp( ) ซงเปนฟงกชนเอกโปเนนเชยล และใช pi ซงเปนตวแปรพเศษมคาเปน π ดงน
>> a = 2*exp(j*pi/4) ใหคา a เปนจ านวนเชงซอนเทากบ 2ejπ/4 หรอ 2∠ 45o
a = 1.4142 + 1.4142iฟงกชนทเกยวของกบจ านวนเชงซอน ไดแก>> real(a) ใหคาสวนจรงของ a>> imag(a) ใหคาสวนจนตภาพของ a>> abs(a) ใหคาขนาดของ a>> angle(a) ใหคามมของ a (เปนเรเดยน)>> conj(a) ใหคาคอนจเกตของ a
ฟงกชนภายใน
Matlab มฟงกชนพนฐานอยมากมาย และกมวธใชบอกไวดวยในซอฟทแวร เราสามารถดวามฟงกชนชออะไรอยบาง และใชท าอะไร โดยใชเมาสเลอก Help ทเมน หรอพมพ help กได โดยฟงกชนตาง ๆ ไดจดไวเปนหมวดหมอยางด ในกรณทเรารชอฟงกชนแตจ าวธใชไมได กสามารถเรยกดวธใชไดโดยพมพ help แลวตามดวยชอฟงกชน เชน
>> help plot ขอดวธใชฟงกชน plotในทนขอสรปฟงกชนทส าคญบางสวนไว ดงตอไปน (ใหดวธใชโดยละเอยดจาก help)ฟงกชนเกยวกบการสรางเมตรกซ>> zeros(n,m) ใหเมตรกซทมสมาชกเปน 0 หมด ขนาด n x m>> ones(n,m) ใหเมตรกซทมสมาชกเปน 1 หมด ขนาด n x m
ภาคผนวก ก การใชงาน Matlab 255
>> eye(n) ใหเมตรกซ identity ขนาด n x n>> rand(n,m) ใหเมตรกซมคาแรนดอม 0 ถง 1ขนาด n x m>> randn(n,m) ใหเมตรกซมคาแรนดอมแบบเกาสเซยนขนาด n x mฟงกชนของสเกลาsin, cos, tan, asin, acos, atan, atan2 ฟงกชนตรโกณมตsinh, cosh, tanh, asinh, acosh, atanh ฟงกชนไฮเปอรโบลกexp (เอกโปเนนเชยล), log (ลอกการธมฐาน e), log10 (ลอกกาลธมฐานสบ)abs (หาขนาด), sign (หาเครองหมาย), rem (หาเศษจากการหาร)round (ปดทศนยม), floor (ปดทศนยมทง), ceil (ปดทศนยมขน)sqrt (หารากทสอง)ฟงกชนของเวคเตอรmax (หาคามากทสด), min (หาคานอยทสด), length (หาจ านวนสมาชก)mean (หาคาเฉลย), median (หาคากลาง), std (หาคาเบยงเบนมาตรฐาน)sum (หาผลรวม), sort (เรยงล าดบคาจากนอยไปมาก)roots (หาคารากของโพลโนเมยล)ฟงกชนของเมตรกซsize (หาขนาด), eig (หาคา eigen), det (หาคา determinant)
โปรแกรมสครปต (Script programs)
เราสามารถสงให Matlab ท างานหลาย ๆ ค าสงไดทเดยว โดยการเขยนค าสงเหลานนไวในเทกซไฟล แลวเกบชอไฟลนนใหมนามสกล .m จากนนเรยกชอไฟลนน (โดยไมตองใส .m) ทprompt ของ Matlab โปรแกรมกจะท างานตงแตค าสงแรกถงค าสงสดทายเลย
โปรแกรมประเภทนเรยกวา โปรแกรมสครปต ซงการท างานของโปรแกรมสครปตจะเทยบเทากบการกดค าสงเขาไปใน Matlab โดยตรง ดงนน ตวแปรตาง ๆ ทมเรยกใชในโปรแกรมกตองเปนตวแปรทมการตงไวกอนเรยกโปรแกรมใหท างาน หรอตวแปรทมการตงเพมเตมในโปรแกรม กจะยงคงคางอยในหนวยความจ าหลงจากโปรแกรมท างานเสรจแลว
ส าหรบการเขยน หรอแกไขไฟลสครปตจะใชโปรแกรมทแกไขเทกซไฟล (text editor) ใด ๆกได นอกจากน ยงสามารถเรยกโปรแกรมเพอแกไขไฟลไดจากเมนของ Matlab โดยตรง โดยเลอกทFile -> New หรอ File -> Open M-file โปรแกรมท Matlab เรยกใชในการเปดไฟล คอ notepadส าหรบผทถนดใชโปรแกรมตวอน กสามารถแกให Matlab ไปเรยกโปรแกรมทตองการได โดยเลอกทเมน Options -> Editor Preference
ภาคผนวก ก การใชงาน Matlab 256
ขอควรระวง ผทใชโปรแกรม notepad ทอยใน Windows 95 ส าหรบเขยนโปรแกรมสครปตอาจพบปญหาวา ไมสามารถเกบไฟลทมนามสกลเปน .m ได เนองจาก notepad จะเตมนามสกล .txtใหโดยอตโนมต อาจแกไขไดโดยใชเครองหมายค าพดลอมรอบชอไฟลในการตงชอไฟลส าหรบการsave ครงแรก (เชน “abc.m”) หรออาจให Matlab ไปเรยกใชโปรแกรมเขยนเทกซไฟลอน เชน PFE(Programmer File Editor) ซงหาไดทวไปในอนเตอรเนท
โปรแกรมสครปตทจะเรยกใชได จะตองอยในไดเรกทอรปจจบน หรอไดเรกทอรทคนหาได(search path) ขอใหอานรายละเอยดในหวขอ การจดการเกยวกบไดเรกทอร และไฟล
ค าสงเกยวกบการวนลป และเปรยบเทยบ
Matlab มค าสงส าหรบการวนลป และเปรยบเทยบเชนเดยวกบภาษาสงทว ๆ ไป ค าสงเหลานมประโยชนมากในการเขยนในโปรแกรมสครปต ซงไดแก
ค าสง if มรปแบบการใช คอif <เงอนไข> <ค าสง>elseif <เงอนไข> (elseif จะมหลายครงกได) <ค าสง>else <ค าสง>end
<ค าสง> ประกอบดวย ค าสง หรอการเรยกฟงกชน หลาย ๆ ค าสงกได<เงอนไข> คอ ประโยคทเปรยบเทยบเพอใหคา 0 ถาเปนเทจ และใหคา 1 ถาเปนจรง เชน
if a == b & ok ถา a เทากบ b และ ok เทากบ 1 a = a+1; ใหเพมคา a ขนหนงelse ถาไมเชนนน a = a-1; ใหลดคา a ลงหนงend
การกระท าทใชส าหรบเปรยบเทยบมอยหลายตว สรปไดดงน== เทากบ ~= ไมเทากบ< นอยกวา > มากกวา<= นอยกวาหรอเทากบ >= มากกวาหรอเทากบ
ภาคผนวก ก การใชงาน Matlab 257
และการกระท าทใชเชอมเงอนไข ไดแก& และ (and) | หรอ (or)~ ไม (not)
การกระท าทงสองหมวดน จรง ๆ แลวยงมวธการใชเหมอนกบการใชการกระท าบวก/ลบทไดกลาวมาแลว เพยงแตจะใหผลลพธเปน 0 กบ 1 เทานน เชน
การเปรยบเทยบเมตรกซกบคาคงท>> a = [1 2 3 4] > 2 a = [0 0 1 1]จะเอาคาสมาชกทกตวเปรยบเทยบวามากกวา 2 หรอไม สรางเปนเมตรกซใหมซงเปนผลลพธ
ของการเปรยบเทยบ (ถาการเปรยบเทยบเปนจรงใหคาเทากบหนง ถาเปนเทจใหคาเทาศนย)หรอ การเปรยบเทยบเมตรกซ กบเมตรกซ>> a = [1 2 3 4] == [1 4 3 5] เปรยบเทยบสมาชกทต าแหนงตรงกนวาเทากนหรอไม a = [1 0 1 0]
ค าสง while มรปแบบการใช คอwhile <เงอนไข> <ค าสง>end
เชน i = 10; a=1;while i > 1 a = a*i; i = i - 1;end
โปรแกรมนจะหาคาสดทายของ a เปน 10! (10 แฟคทอเรยล) ซงเทากบ 10*9*8* … 1
ค าสง for มรปแบบการใช คอfor ตวแปรลป = คาตน: คาทเพม: คาสดทาย <ค าสง>end
เชน a=1;for i = 1:10 a = a*i;end
ภาคผนวก ก การใชงาน Matlab 258
เชนเดยวกน โปรแกรมนจะหาคา 10! เชนกน ขอสงเกตความแตกตางจากการใช while โดยปกตถาเรารคาเรมตน และคาสนสดของการวนลป การใช for จะสะดวกกวา
เทคนค ถาตองการหยดการท างานของลป หรอของโปรแกรมขณะทมนก าลงท างานอย ใหกด ctrl-C
โปรแกรมฟงกชน (Function programs)
นอกจากฟงกชนภายในของ Matlab แลว เรายงสามารถเขยนฟงกชนไวใชงานเองไดดวย โดยเขยนเปนเทกซไฟส และตงชอไฟลใหมนามสกล .m เชนเดยวกบการเขยนโปรแกรมสครปต จดทแตกตางจากโปรแกรมสครปต คอ
1. ฟงกชนมการรบคาตวแปร และคนคาตวแปร2. ตวแปรทสรางเพอใชในฟงกชนเปนตวแปรแบบภายในทงสน เมอโปรแกรมท างานเสรจตวแปรเหลานนจะหายไป ยกเวนตวแปรทคนคาเทานน
บรรทดแรกของโปรแกรมฟงกชน จะตองมรปแบบ ดงนfunction ตวแปรทคน = ชอฟงกชน (ตวแปรทรบมา)
สมมตเราตองการเขยนฟงกชนเพอหาคาแฟคทอเรยลของคาใด ๆ อาจเขยนไดดงน
function out = fact(x)out = 1;for i = 2 : x out = out*i;end
เกบไฟลนในชอ fact.m จากนนทดสอบการท างานของฟงกชนนโดยเรยกท Matlab ดงน>> fact(5) ans = 120>> fact(0) ans = 1โปรแกรมนใหผลถกตองตามทตองการ สงเกตวาตวแปร i และ x เปนตวแปรภายในซงจะไม
มผลใด ๆ ตอตวแปรขางนอกถงแมจะมชอซ ากน และจะเหนวาการใชงานฟงกชนทสรางขนเองเหมอนกบการใชงานฟงกชนภายในของ Matlab เองทกประการ ลองมาดตวอยางของฟงกชนทยากขน ซงมการรบคา และคนคามากกวาหนงตว
ภาคผนวก ก การใชงาน Matlab 259
function [t, out] = gensine(f, fs, N)%This function generates a sin wave output.% usage [t, out] = gensine(f, fs, N)% or [out] = gensine(f, fs, N)%where f : frequency, fs : sampling rate, N : number of samples% t : time vector, out : output vector
if nargin==2 N=100; end % set default N
t = [0:N-1]/fs; % t is time vector.out = sin(2*pi*f*t); % out is sine wave vector.
if nargout==1 t = out; end % if there is only only 1 output, then% return "out" as "t".
ฟงกชนนสรางเวคเตอรทเปนสญญาณซายนโดยการระบความถ (f), อตราสม (fs), และจ านวนจด (N) ทตองการ ฟงกชนจะคนคาเปนเวคเตอรสองตว คอ t กบ out สงเกตวา t กบ out ตองอยในเครองหมาย [ ] ซงเราสามารถเรยกฟงกชนนใชไดโดย
>> [t,x] = gensine(200, 1e5, 200);เมอไดเวคเตอร t คอเวคเตอรคาเวลา และ x คอเวคเตอรของคาซายน กสามารถน าไปวาด
กราฟ หรอประมวลผลตอไปได ในฟงกชนนมการตรวจสอบวา ถาผใชใสตวแปรเขามาแคสองตวแทนทจะเปนสามตวกจะให N=100 เองโดยอตโนมต และถาผใชมตวแปรรบแคตวเดยว คาทจะสงออกจากฟงกชนจะเปนเวคเตอรตวแรกเสมอ ในทน คอ t โปรแกรมกจะท าการสลบให t=out ซงจะท าใหคาทออกมาเปนเวคเตอรของคาซายน แทนทจะเปนเวคเตอรคาเวลา ดงนน ถาเราไมตองการใชเวคเตอรเวลา และยอมรบคา N ท 100 กสามารถเรยกใชฟงกชนนไดแบบสนลง เชน
>> x = gensine(200, 1e5);ตวแปรพเศษทใชตรวจสอบวา ผใชเรยกใชฟงกชนโดยมตวแปรขาเขา และขาออกกตว กคอ
nargin และ nargout ตามล าดบ (ยอมาจาก number of arguments in และ number of arguments out)โปรแกรมนยงไดแนะน าสญลกษณพเศษอกอนหนง คอ % ซงใชน าหนาสวนทเปนค าอธบาย
ของโปรแกรม ส าหรบค าอธบายทอยตอนตนของโปรแกรม ยงมลกษณะพเศษคอ จะปรากฏออกมาเมอผใชขอด help ลองพมพค าสงนด
>> help gensine
ภาคผนวก ก การใชงาน Matlab 260
การจดการเกยวกบไดเรกทอร และไฟล
ใน Matlab มค าสงทจดการกบเกยวกบไดเรกทอร และไฟลบางค าสงทคลายกบ DOS ไดแกpwd หรอ cd ดวาตอนนอยทไดเรกทอรอะไรcd <path> ยายไดเรกทอรปจจบนdir ขอดไฟลในไดเรกทอรtype <file> แสดงขอความในไฟลdelete <file> ลบไฟลpath ด และเพมเตม ไดเรกทอรส าหรบคนหาโปรแกรม (search path)Matlab จะสามารถเรยกโปรแกรมสครปต หรอฟงกชน ทอยในไดเรกทอรปจจบน หรอในได
เรกทอรส าหรบคนหาเทานน สามารถดไดวาตอนนไดเรกทอรส าหรบคนหามอะไรบางโดยใชค าสงpath เฉย ๆ และสามารถเตมไดเรกทอรส าหรบคนหาไดโดยใชค าสง path ดงน
>> path(path, 'c:\data\myfunc')ค าสงนจะท าให Matlab เรยกใชโปรแกรมทอยในไดเรกทอร c:\data\myfunc ไดโดยไมตอง
ยายเขาไป แตวธนจะเปนการเตมชวคราว ถาปด Matlab กจะหายไป วธเตมถาวรสามารถท าไดโดยเตมค าสงนลงไปในไฟล startup.m (อยใน \matlab\bin) ซงเปนโปรแกรมทจะถกเรยกใหท างานโดยอตโนมตทกครงทเปด Matlab หรอใชวธแกไขไฟล matlabrc.m (อยใน \matlab) กได
การวาดกราฟ
กราฟกลาวไดวาเปนสงทส าคญทสดในการวเคราะห และแสดงผล Matlab สามารถวาดกราฟไดหลายชนดทงสองมต และสามมต กราฟทแสดงในหนาปกของหนงสอนกวาดจาก Matlab ในทนจะขอแนะน าเฉพาะการวาดกราฟสองมตเทานน
สมมตวาเรามเวคเตอร t, x, y ซงเกดจากฟงกชน gensine ทเขยนไวในหวขอเรองโปรแกรมฟงกชน ดงน
>> [t,x] = gensine(50,1000);>> [t,y] = gensine(20,1000);
เราตองการวาดกราฟของ x และ y ในรปเดยวกนโดยม t เปนแกนนอน สามารถท าไดดงน>> plot(t, x) วาดโดยใช t เปนแกนนอน และ x เปนแกนตง>> hold on คางรปเอาไว (การวาดครงตอไป จะวาดซอนบนรปเดม)>> plot(t, y, 'b-.') วาด y โดยคราวนใชสน าเงน และเปนเสนปะขดสลบจด
ภาคผนวก ก การใชงาน Matlab 261
>> grid วาดเสนกรด>> axis( [0 0.1 -1.5 1.5] ) ปรบชวงของการแสดงผลใหแกนนอนอยระหวาง 0 ถง
0.1 และแกนตงอยระหวางคา -1.5 ถง 1.5>> xlabel('time (sec)') เขยนค าอธบายแกนนอน>> ylabel('signal (V)') เขยนค าอธบายแกนตง>> title('Samples of Sine Waves') เขยนค าอธบายบนหวรป>> hold off ยกเลกการคางรป (การวาดครงตอไป จะลบรปเกาทงกอน)รปท ก.1 แสดงผลลพธของรปทไดจากค าสงเหลาน
สรปวาค าสง plot ตองการตวแปรเขา 3 ตว คอplot( เวคเตอรของแกนนอน, เวคเตอรของแกนตง, รปแบบของสและลายเสน)โดยอยางนอยเราตองใสคาเวคเตอรของแกนตงเสมอ เชน ลองสง plot(x) ด จะพบวา Matlab
ใชคา 1, 2, 3, … เปนแกนนอน ส าหรบรปแบบของสและลายเสนใหใสเปนขอความภายในเครองหมาย ' ' โดยอกษรตวแรกเปนตวก าหนดส และตวตอไปก าหนดลายเสน โดยมความหมาย คอ
b สน าเงน, r สแดง, k สด า, w สชาว, y สเหลอง, m สมวง, c สฟา, g สเขยว- เสนปกต, : เสนปะไขปลา, -- เสนปะขด, -. เสนปะขดสลบจด,. จด, * จดดอกจน, + จดกากบาท, x จดกากบาท, o จดวงกลมการวาดกราฟหลาย ๆ เสนในรปเดยวกนนอกจากท าโดยใชค าสง hold แลว ยงสามารถสงให
plot ทเดยวหลาย ๆ เสนไดเลย โดยค าสงตอไปนซงมผลเหมอนขางตน>> plot(t, x, t, y, 'b-.')
รปท ก.1 ตวอยางของกราฟทวาดจาก Matlab
ภาคผนวก ก การใชงาน Matlab 262
รปท ก.2 ตวอยางของการใช subplot
ค าสงอนทเกยวกบการวาดกราฟทส าคญไดแกwhitebg เปลยนสพนของรปเปนสขาว มประโยชนมากถาจะพมพรปออกเครองพมพ ค า
สงนสงครงเดยวตอนเปด Matlab ซงเราอาจใสไวใน \matlab\bin\startup.m เลยกไดstem ใชแทน plot ส าหรบวาดรปเปนจด และมขดแกนตงใหดวยsemilogx และ semilogy ใชแทน plot ส าหรบวาดรปทแกนนอน หรอตงเปนสเกลลอกfigure เปดรปใหม (ในหนาตางใหม)clf ลบรปปจจบนzoom ขยายรปทแสดงผลอย โดยหลงจากใชค าสง zoom แลว ใหกดปมซายของเมาสคาง
ไวแลวลากเมาสเพอตกรอบภายในบรเวณของรปกราฟ เมอปลอยปมเมาส รปในกรอบกจะถกขยายถาตองการหดรปเหมอนเดมใหกดปมขวาของเมาสทบรเวณรปนน
subplot(n,m,i) หรอ subplot(nmi) แบงรปยอยในหนาตางเดยวกน ใหม n x m รปยอยและชทรปท i ตวอยางเชน subplot(231) แบงเปนรปยอย 6 รป และชทรปท 1 ดงแสดงในรปท ก.2รปยอยแตละรปมการตงคาตาง ๆ แยกอสระตอกนเหมอนเปนคนละรป ซงเราตองใชค าสง subplotระบ หรอใชเมาสคลกทรปยอยหนง ๆ เพอยายไปกระท ากบรปยอยนน
subplot(231)
subplot(235) subplot(236)
subplot(233)
subplot(234)
subplot(232)
ภาคผนวก ก การใชงาน Matlab 263
การวดประสทธภาพของโปรแกรม
การวดประสทธภาพ หรอความเรวของการท างานของโปรแกรม หรอฟงกชน สามารถท าไดโดยใชค าสง tic และ toc ดงน tic; เรยกโปรแกรม; toc เชน
>> tic; fft(1:1024); toc วดเวลาของการค านวณ FFT 1024 จด elapsed_time = 0.0600 ใชเวลา 0.06 วนาทถาตองการวดละเอยดเปนจ านวนของ flops (floating-point operation) ทใช กสามารถท าได
โดยใชค าสง flops ดงน flops(0); เรยกโปรแกรม; flops เชน>> flops(0); fft(1:1024); flops ans = 31050 ใช 31050 flops
การเกบตวแปร
เมอปด Matlab ตวแปรทเราตงขนใชงานจะหายไปหมด ถาตองการเกบสถานะของตวแปรทกตวไวเพอใชงานคราวตอไป ใหใชค าสง save และ load ดงน
>> save จะเกบตวแปรทกตวไวในไฟล matlab.mat ในไดเรกทอรปจจบนลอง clear แลวสง who ด จากนนใชค าสง load ดงน>> load จะเรยกตวแปรออกจากไฟล matlab.matเราสามารถเกบตวแปรไวในไฟลชออนไดโดยใช save แลวตามดวยชอไฟล การใช load ก
ท าไดในท านองเดยวกน นอกจากนค าสง save ยงใชเกบเฉพาะบางตวแปรไดดวย เชน>> save myvar a b เกบตวแปร a และ b ในไฟล myvar.mat>> load myvar เรยกตวแปรทกตวในไฟล myvar.mat กลบออกมา
การจดการเกยวกบขอความ (string)
ทผานมาไดกลาวเฉพาะการจดการเกยวกบตวเลข จรง ๆ แลว Matlab ยงสามารถจดการเกยวกบขอความไดดวยในระดบหนง โดยขอความใน Matlab จะตองอยในเครองหมาย ' ' เสมอ เชน
>> a='hello' ตง a เปนตวแปรทเกบขอความ 'hello'เราสามารถเขาถงตวอกษรแตละตวใน a ได โดยมองเหมอน a เปนเวคเตอรทมสมาชกเปนตว
อกษร นนคอ a(1) = 'h', a(2) = 'e', … เปนตน ค าสงอน ๆ ทเกยวของกบการจดการขอความ คอdisp แสดงขอความ หรอคาของตวแปรทางหนาจอabs แปลงตวอกษร หรอขอความเปนตวเลขทเปนรหสแอสกของมน
ภาคผนวก ก การใชงาน Matlab 264
eval แปลงขอความเปนตวเลข และหาคา เชน eval('1+1') = 2num2str, int2str แปลงตวเลขเปนขอความfprintf เขยนขอความออกจอ หรอลงไฟล โดยมการจดรปแบบเหมอนฟงกชน printf ใน
ภาษาซ ขอใหลองศกษาไดจากคมอภาษาซทว ๆ ไปsprintf ใหคาขอความโดยมการจดรปแบบเชนเดยวกบ fprintf ซงขอความนสามารถเกบเปน
ตวแปร หรอใชเปนคาทปอนใหกบฟงกชนอนไดfscanf, sscanf อานขอความโดยมการจดรปแบบจากไฟล หรอจากตวแปรinput ใหผใชใสขอความจากคยบอรดผทสนใจขอใหดรายละเอยดการใชงานจากค าสง help ในทนจะยกตวอยางโปรแกรมสครปต
งาย ๆ ทรบตวเลขจากผใช แลวหาคายกก าลงสองของเลขนนเพอแสดงใหเหนการท างานของค าสงฟงกชน input และ fprintf
answer = 'y';while answer == 'y' a = input('Please input a number : '); fprintf(1, '%7.2f square is %7.2f\n', a, a^2); answer = input('Continue (y/n) ? ', 's');end
printf ในค าสงนใสคา id ของไฟลเปน 1 ซงจะหมายถงการเขยนขอความออกทางหนาจอ
ค าสงเกยวกบเสยง
ถาเรามการดเสยง (sound card) ตออยกบคอมพวเตอร Matlab จะสามารถเปนโตะทดลองทดในการประมวลผลสญญาณเสยง เพราะมค าสงในการอานไฟลเสยงทมนามสกล .wav และเลนเสยงอยในตว ไดแก ค าสง wavread, wavwrite, และ sound ตวอยางการใชงานเชน
>> [x, fs] = wavread('c:\windows\tada.wav');จะท าการอานไฟล tada.wav เขามาเกบในเวคเตอร x และอตราการสมของสญญาณเกบใน fs
ซง x จะเปนเวคเตอรทมความยาวเทากบจ านวนตวอยางในไฟล tada.wav เราสามารถน า x ไปประมวลผลตอไปได หรอเลนเสยงฟงจาก Matlab โดยตรงกได โดยใชค าสง ดงน
>> sound(x, fs)ส าหรบค าสง wavwrite จะท าการเกบเวคเตอรใน Matlab ไปเปนไฟลเสยงได ตวอยางของค า
สงตอไปนเปนการสรางสญญาณ DTMF ของการกดปม 1 มความยาวครงวนาท ซงสญญาณน
ภาคผนวก ก การใชงาน Matlab 265
ประกอบดวยความถ 697 Hz ผสมกบความถ 1209 Hz ซงสรางโดยฟงกชน gensine ทเขยนไวในหวขอกอนหนาน จากนน เลนเสยงออกทางล าโพง แลวเกบเสยงนในไฟลชอ press1.wav
>> fs=11025; f1=697; f2=1209;>> x = gensine(f1, fs, 5500) + gensine(f2, fs, 5500);>> sound(x, fs)>> wavwrite(x, fs, 'press1.wav') เกบ x เปนไฟลเสยงชอ press1.wav ในไดเรกทอรปจจบน
การท ากราฟทเคลอนไหวได
เรองนอาจจะเกนในสวนเบองตนไปสกหนอย แตเปนเรองทไมยากนกถาศกษาจากตวอยางและมประโยชน (และเพลดเพลน) มากในการใชดผลการทดลองทมการเปลยนแปลงตามเวลา
เทคนคการท าภาพเคลอนไหวใน ท าไดโดยการวาดรปใหมทบลงไปในรปเดม แตเราจะไมใชค าสง plot ตอ ๆ กน เพราะรปทไดจะกระพรบ และดไมนมนวล เราจะใชค าสง plot เพยงครงเดยวแลวใชตวแปรชนดพเศษ เรยกวา handle เปนตวเขาถงรปทวาดโดยค าสง plot น (การเขาถงนท าไดโดยใชค าสง set เพอเปลยนแปลงคาของ property ตาง ๆ ของตวแปร) จากนนจะท าการวาดรปทบโดยการเปลยน property ชอ Ydata ของตวแปร handle น
ตวอยางของโปรแกรมสครปตขางลางนจะท าการวาดรปสญญาณซายนวงจากขวาไปซาย
n=0:99;x=zeros(1,100);h = plot(n, x, 'EraseMode', 'xor', 'color', 'c');axis([0 100 -1 1]); grid on;
for i=1:1000 x(1:99) = x(2:100); x(100) = sin(0.1*i); set(h, 'Ydata', x); ตง x ใหเปนคาใน property Ydata ของ h pause(0);end
> เปลยนรปรางของ x เปนรปทเวลาตอไป
ตง h เปนตวแปรเกบhandle ของ plot
ภาคผนวก ข ฟงกชนใน Matlab DSP Toolbox 266
ภาคผนวก ขฟงกชนใน Matlab DSP Toolbox
DSP Toolbox หรอ Signal Processing Toolbox เปนชดฟงกชนพเศษซงเพมเตมเขามาในMatlab (ซงผใชตองซอเพมเตมเอง) ฟงกชนเหลานเกยวของกบการประมวลผลสญญาณทงในการวเคราะห และออกแบบ ในทนจะขอสรปฟงกชนทส าคญซงส าหรบใชในการประมวลผลสญญาณขนพนฐานเทานน โดยอางองกบ DSP Toolbox เวอรชน 3.0
ฟงกชนส าหรบค านวณ และวเคราะหตวกรองSinc ฟงกชนซงคconv คอนโวลชนfftfilt คอนโวลชนแบบเรวโดยวธ overlap-addfilter ตวกรองดจตอลfreqz วาดผลตอบสนองเชงความถของระบบgrpdelay หาความเรวกลมของระบบimpz หาผลตอบสนองตออมพลสของระบบunwrap ปรบเวคเตอรทเปนคาเฟสทถกจ ากดอยใน -π ถง π ใหขยายออกนอกยานนไดzplane วาดแผนภาพโพล/ศนย
ฟงกชนทใชจดรปแบบของฟงกชนถายโอนresiduez กระจายฟงกชนเปนเศษสวนยอยsos2tf แปลงจากรปแบบผลคณของเทอมอนดบสอง เปนรปแบบเศษสวนรวมsos2zp แปลงจากรปแบบผลคณของเทอมอนดบสอง เปนรปแบบกระจายคาโพลและศนยtf2zp แปลงจากรปแบบเศษสวนรวม เปนรปแบบผลคณของเทอมอนดบสองzp2sos แปลงจากรปแบบกระจายคาโพลและศนย เปนรปแบบผลคณของเทอมอนดบสองzp2tf แปลงจากรปแบบกระจายคาโพลและศนย เปนรปแบบเศษสวนรวม
ฟงกชนส าหรบออกแบบตวกรองแบบ IIRbutter ออกแบบตวกรอง Butterworthcheby1 ออกแบบตวกรอง Chebyshev type Icheby2 ออกแบบตวกรอง Chebyshev type IIellip ออกแบบตวกรอง Elliptic
ภาคผนวก ข ฟงกชนใน Matlab DSP Toolbox 267
yulewalk ออกแบบตวกรอง Yule-Walkerbuttord หาอนดบของตวกรอง Butterworthcheb1ord หาอนดบของตวกรอง Chebyshev type Icheb2ord หาอนดบของตวกรอง Chebyshev type II filterellipord หาอนดบของตวกรอง Elliptic filter
ฟงกชนส าหรบออกแบบตวกรองแบบ FIRfir1 ออกแบบโดยวธหนาตางfir2 ออกแบบโดยวธสมความถremez ออกแบบโดยวธ Parks-McClellanremezord หาอนดบของตวกรองโดยวธ Parks-McClellan
ฟงกชนการแปลงfft การแปลง FFTfftshift สลบผลตอบครงบนของ FFT มาเปนครงลางhilbert การแปลง Hilbertifft การแปลง FFT ผกผนpsd หา Power Spectral Densityxcorr หา Cross-correlationspecgram หา Spectrogrambilinear การแปลง Bilinear
ฟงกชนหนาตางbartlett หนาตาง Bartlettblackman หนาตาง Blackmanboxcar หนาตางสเหลยมchebwin หนาตาง Chebyshevhamming หนาตาง Hamminghanning หนาตาง Hanningkaiser หนาตาง Kaisertriang หนาตาง Triangular
ฟงกชนการแปลงอตราการสมdecimate decimatorinterp interpolatorresample แปลงอตราการสมดวยอตรา I/D เทา
ภาคผนวก ข ฟงกชนใน Matlab DSP Toolbox 268
ฟงกชนเพอหาตวกรองแอนะลอกตนแบบbesselap ตวกรองตนแบบ Besselbuttap ตวกรองตนแบบ Butterworthcheb1ap ตวกรองตนแบบ Chebyshev type Icheb2ap ตวกรองตนแบบ Chebyshev ty[pe IIellipap ตวกรองตนแบบ Ellipticlp2bp การแปลง LPF เปน BPFlp2bs การแปลง LPF เปน BSFlp2hp การแปลง LPF เปน HPFlp2lp การแปลง LPF เปน LPF
ฟงกชนพเศษเพอแสดงการใชงานfiltdemo แสดงการออกแบบตวกรองดจตอลsosdemo แสดงการลกษณะของฟงกชนถายโอนยอยอนดบสอง
ภาคผนวก ค ประมวลศพทเทคนค 269
ภาคผนวก คประมวลค าศพทเทคนค
ศพทเทคนคในหนงสอน ไดพยายามใชตามทไดมบญญตไวในหนงสอประมวลศพทเทคนคของสมาคมวศวกรรมสถานฯ[16] อยางไรกตาม มบางค าทไมไดใชตามทบญญตไว ซงไดระบไวดวยเครองหมาย ** ทายค าศพท และศพทอกสวนหนง คอ ศพททยงไมไดมบญญตไว ไดระบไวดวยเครองหมาย * ทายค าศพท
หมวดการสมสญญาณanalog แอนะลอกdigital ดจตอลsampling** การสม, การสมตวอยางsampling rate**, sampling frequency อตราการสม, ความถในการสมaliasing** aliasing (อานวา เอ-เลยด-ซง)anti-aliasing filter* ตวกรองปองกน aliasingreconstruction* การสรางสญญาณคนreconstruction filter* ตวกรองสรางสญญาณคนquantization* การแบงขนสญญาณquantize* แบงขนสญญาณimage** ส าเนา
หมวดสญญาณ และระบบpulse พลสimpulse อมพลสsinc** ซงคdiscrete , discrete-time* ไมตอเนองcontinuous , continuous-time* ตอเนองspectrum สเปกตรมreal time เวลาจรงstability เสถยรภาพstable เสถยรcausality* ความเปนคอซล
ภาคผนวก ค ประมวลศพทเทคนค 270
causal* คอซลnon-causal* ไมเปนคอซลanticausal* คอซลแบบตรงขามdifference equation** สมการผลตางimpulse response ผลตอบสนองตออมพลส, ผลตอบสนองตอสญญาณอมพลสtransfer function ฟงกชนถายโอนpole โพลzero ศนยfrequency response ผลตอบสนองเชงความถnormalized frequency ความถนอรแมลไลซtransient response ผลตอบสนองชวครsteady-state response ผลตอบสนองสถานะอยตวharmonic frequency ความถฮารมอนก
หมวดการกระท า และการแปลงตาง ๆFourier transform การแปลงฟรเยรDiscrete-Time Fourier Transform* การแปลงฟรเยรแบบเวลาไมตอเนอง, การแปลง DTFTDiscrete Fourier Transform* การแปลงฟรเยรแบบไมตอเนอง, การแปลง DFTFast Fourier Transform* การแปลง FFTFourier series อนกรมฟรเยรLaplace transform การแปลงลาปลาซz transform การแปลง zinverse z transform* การแปลง z ผกผนregion of convergence (ROC)* บรเวณของการลเขาconvolution คอนโวลชนlinear convolution* คอนโวลชนแบบเชงเสนcircular convolution* คอนโวลชนแบบวงกลมdecimator* เดซซเมเตอรinterpolator* อนเตอรโพเลเตอรdown-sampler* ตวลดอตราสมup-sampler* ตวเพมอตราสม
หมวดตวกรองดจตอลorder* อนดบlow-pass filter ตวกรองผานต า (LPF)high-pass filter ตวกรองผานสง (HPF)band-pass filter ตวกรองผานแถบความถ (BPF)
ภาคผนวก ค ประมวลศพทเทคนค 271
band-stop filter* ตวกรองตดแถบความถ (BSF)cutoff frequency ความถตดripple ความพลวripple factor ตวประกอบความพลวattenuation การลดทอนpass band แถบผานstop band แถบหยดtransition band* แถบเปลยนwindow function* ฟงกชนหนาตางrectangular window* หนาตางแบบสเหลยมHamming window* หนาตางแฮมมงKaiser window* หนาตางไคเซอรbilinear transform* การแปลงไบลเนยรadaptive filter* ตวกรองแบบปรบตวได
อน ๆrandom signal** สญญาณแรนดอมfixed-point** ระบบเลขจ านวนเตมfloating-point ระบบเลของดรรชนmantissa แมนทสซาexponent ตวชก าลงoverflow โอเวอรโฟล
หนงสออางอง 272
หนงสออางอง
[1] S. J. Orfanidis, Introduction to Signal Processing, Prentice Hall, Englewood Cliffs, NJ, 1996.[2] E. C. Ifeachor, and B. W. Jervis, Digital Signal Processing: A Practical Approach, Addison-Wesley, New
York, 1993.[3] J. G. Proakis, and D. G. Manolakis, Digital Signal Processing: Principles, Algorithms, and Applications, 3rd ed., Prentice Hall, NJ, 1996.[4] S. K. Mitra, Digital Signal Processing A Computer-Based Approach, McGraw-Hill, Singapore, 1998.[5] R. Kuc, Introduction to Digital Signal Processing, McGraw-Hill, Singapore, 1982.[6] A. V. Oppenheim and R. W. Schafer, Digital Signal Processing, Prentice Hall, Englewood Cliffs, NJ, 1975.[7] V. K. Ingle, J. G. Proakis, Digital Signal Processing Using Matlab V.4, PWS Publishing Company, Boston, 1997.[8] W. W. Smith, and J. M. Smith, Handbook of Real-Time Fast Fourier Transforms, IEEE Press, Piscataway, NJ, 1995[9] R. G. Lyons, Understanding Digital Signal Processing, Addison Wesley, Reading, MA, 1997[10] S. Haykin, Adaptive Filter Theory, 3rd ed., Prentice Hall, Upper Saddle River, NJ, 1996.[11] D. Johns and K. Martin, Analog Intergrated Circuit Design (Chapter 14 Oversampling Converters), John
Wiley and Sons, Toronto, 1997[12] K. Sigmon, Matlab Primer, 2nd ed., University of Florida, Gainesville, 1992 (เอกสารนมแจกฟรใน อนเตอรเนตท ftp://ftp.mathworks.com/pub/doc/primer/ หรอ ftp://ftp.ee.mut.ac.th/ pub/Matlab/)[13] TMS320C5x DSP Starter Kit User’s Guide, Texas Instruments, Dallas, TX, 1994[14] TMS320C3x User’s Guide, Texas Instruments, Dallas, TX, 1997[15] TMS320C5x User’s Guide, Texas Instruments, Dallas, TX, 1993[16] ศพทเทคนควศวกรรมอเลกทรอนกส, ศพทเทคนควศวกรรมไฟฟาสอสาร, และศพทเทคนควศวกรรม คอมพวเตอร, สมาคมวศวกรรมสถานแหงประเทศไทย, มนาคม 2539[17] H. McAllister, N. Black, and N. Waterman, “Hearing aids - a development with digital signal processing
devices,” Computer and Control Engineering Journal, 1995, vol. 6, pp.283-291[18] N. Magotra and S. Sirivara, “Real-time digital speech processing strategies for the hearing impaired,” IEEE
International Conference on Acoustics, Speech, and Signal Processing, 1997, vol. 2, pp. 1211 -1214.[19] Y. Qin and S. Du, “A DSP based active power filter for line interactive UPS,” Proceedings of the 1995 IEEE
IECON 21st, 1995, vol. 2, pp. 884-888.[20] B. Gardner and K. Martin, “HRTF Measurements of a KEMAR Dummy-Head Microphone,” MIT Media
Lab Perceptual Computing - Technical Report #280, 1994
หนงสออางอง 273
[21] Aureal Home Page, http://www.aureal.com/, 1998.[22] A. Reilly and D. Mcgrath, “Convolution Processing for Realistic Reverberation,” Lake DSP Technical
Paper, 1995. (http://www.lakedsp.com/)[23] พรชย ภววงษศกด และนลน สดาหาว, “การวเคราะหความคลาดเคลอน และการใชงานออสซลเลเตอรดจตอล
แบบ IIR,” การประชมวชาการทางวศวกรรมไฟฟา ครงท 21, 1998, หนา 433-436