281
การประมวลผลสัญญาณดิจิตอลเบื ้องตน Introduction to Digital Signal Processing Revision 1.0 พรชัย ภววงษศักดิ์ frequency (Hz) time (sec)

DSP_R10

Embed Size (px)

DESCRIPTION

dsp

Citation preview

Page 1: DSP_R10

การประมวลผลสญญาณดจตอลเบองตนIntroduction to Digital Signal Processing

Revision 1.0

พรชย ภววงษศกด

frequency (Hz) time (sec)

Page 2: DSP_R10
Page 3: DSP_R10

I

ค าน า

เทคโนโลยทางดานวศวกรรมไฟฟา และคอมพวเตอรในปจจบนไดกาวหนาไปอยางรวดเรวและบทบาทส าคญของความกาวหนาเหลานนกมาจากการเปลยนแปลงของเทคโนโลยหลายอยางทเคยท าดวยวงจรแอนะลอกมาเปนวงจรดจตอล เรามกจะไดยนคนพดเสมอถงเทคโนโลยในโลกปจจบนวาเปน "ยคแหงดจตอล" หรอ "โลกดจตอล" ซงผพดสวนใหญกมกมองจากสนคาทนสมยตาง ๆ ทออกมาในทองตลาด เชน การมคอมพวเตอรทมความเรวสงขน การมระบบมลตมเดยดจตอลทดขน การเชอมตอของระบบคอมพวเตอรผานเครอขายอนเตอรเนต การมอปกรณสอสาร เชน โทรศพทมอถอและเพจเจอรทดขน และอปกรณอน ๆ อกมากมาย ซงแนนอนวาอปกรณตาง ๆ เหลานมพนฐานมาจากทฤษฎของอเลกทรอนกส และคอมพวเตอร แตยงมทฤษฎอกเรองหนงทเปนพนฐาน และสวนประกอบทส าคญของเทคโนโลยเหลาน นนกคอ การประมวลผลสญญาณดจตอล

วศวกรไทยมกมองวาการประมวลผลสญญาณดจตอลเปนทฤษฎขนสง และเปนเรองไกลตวซงกมาจากการทเรายงไมมการสอนเรองการประมวลผลสญญาณดจตอลในระดบชนปรญญาตรกนเทาไรนก บางมหาวทยาลยมสอนเปนวชาเลอก ซงกไมคอยมผเลอกเรยกมากนก เนองจากมองวาเปนวชาทยาก ซงเตมไปดวยคณตศาสตร กบทฤษฎทมองไมเหนภาพ แตจรง ๆ แลว การประมวลผลสญญาณดจตอลเปนวชาทมการประยกตใชงานอยางกวางขวางมาก ถาหากการสอนเนนใหเหนถงการประยกตใชมากขน หรอมการทดลองประกอบ กจะท าใหผเรยนมความรสกสนก และเขาใจในเนอหาวชามากขน ในปจจบนการประมวลผลสญญาณดจตอลเปนสวนส าคญทเสรมกบเทคโนโลยในสาขาวชาตาง ๆ ทงวศวกรรมอเลกทรอนกส วศวกรรมโทรคมนาคม วศวกรรมควมคม วศวกรรมไฟฟาแรงสง และวศวกรรมคอมพวเตอร ดงนน วศวกรในระดบชนปรญญาตรจงควรมความเขาใจในระดบพนฐานเกยวกบการประมวลผลสญญาณดจตอล

หนงสอ “การประมวลผลสญญาณดจตอลเบองตน” เลมน สงสมมาจากประสบการณในการสอนวชาการประมวลผลสญญาณดจตอล ทภาควชาวศวกรรมอเลกทรอนกส มหาวทยาลยเทคโนโลยมหานครเปนเวลาเกอบ 3 ป และประสบการณในการเปดอบรมระยะสนใหกบบคคลภายนอกซงจดโดยภาควชาวศวกรรมอเลกทรอนกสเชนเดยวกน ผเขยนมไดมงหวงใหหนงสอเลมนมความสมบรณครบถวนในเนอหา เนองจาก ทฤษฎของการประมวลผลสญญาณดจตอลมมากมาย และมรายละเอยดมากโดยเฉพาะในขนสง แตผเขยนมงหวงวา หนงสอเลมนจะเปนคมอทดส าหรบผทเรมตนศกษาวชาน เนองจาก หนงสอทางดานการประมวลผลสญญาณเปนภาษาองกฤษแทบทงสน และมกจะเตมไปดวยสมการทางคณตศาสตรมากมาย ซงท าใหยากล าบากส าหรบผทเรมตนศกษา ผเขยนไดพยายามลดความซบซอนเหลานนลงเพอใหเหมาะส าหรบผเรมตน อยางไรกตาม เพอใหเขาใจทฤษฎอยางถกตองผอานจ าเปนตองมความเขาใจในคณตศาสตรพนฐานบาง ไดแก การแกสมการ, โพลโนเมยล, จ านวนเชงซอน, และเวคเตอร เปนตน และควรมประสบการณดานการเขยนโปรแกรมคอมพวเตอรมาบางไม

Page 4: DSP_R10

II

วาจะเปนภาษาอะไรกตาม นอกจากน ผอานทเคยศกษาในบางวชาของสาขาวศวกรรมไฟฟา เชน วงจรไฟฟา, สญญาณและระบบ, ไมโครโปรเซสเซอร และวงจรดจตอล กจะพบวา จะสามารถท าความเขาใจในบทเรยนตาง ๆ ไดดมากยงขน

การศกษาตามหนงสอเลมนจะใหผลดทสดกตอเมอผอานไดมการปฏบตตามไปดวย ซงซอฟทแวรทเหมาะสมทสดส าหรบทดลองประมวลผลสญญาณดจตอล กคอ MATLAB (ของบรษทMathworks ประเทศสหรฐอเมรกา) ซงไดแนะน าวธใชใวในภาคผนวก ก ไฟลตาง ๆ ทแสดงในหนงสอเลมน รวมทงขอมลเพมเตมอน ๆ ทเกยวของ สามารถดาวนโหลดไดจากอนเตอรเนตทhttp://www.ee.mut.ac.th/home/pornchai/ นอกจากน คมอปฏบตการการประมวลผลสญญาณดจตอลโดยภาควชาวศวกรรมอเลกทรอนกส มหาวทยาลยเทคโนโลยมหานคร กเปนแหลงขอมลทดส าหรบการท าการทดลองเพอเสรมความเขาใจ โดยเปนการทดลองทใช MATLAB และการทดลองแบบเวลาจรงโดยใชชพ DSP (TMS320C5x)

ผเขยนขออทศหนงสอนใหผอานทมความสนใจทวไป ผอานสามารถท าส าเนาไดโดยอสระตราบใดทไมเปนไปเพอการคา ไมมการแกไขเนอหาในหนงสอ และมการรวมค าน านอยในส าเนาดวยความดทงหลายหากมอย ขอมอบใหภาควชาวศวกรรมอเลกทรอนกส มหาวทยาลยเทคโนโลยมหานคร ซงเปนแหลงทไดใหความร และการสนบสนนในการเขยนหนงสอเลมน หากมขอผดพลาดประการใด ผเขยนขออภยไว ณ ทนดวย และยนดรบค าแนะน าเพอมาปรบปรงแกไขตอไป (กรณาสงจดหมายอเลกทรอนกสไปท [email protected]) อยางไรกตาม ผเขยนไมรบผดชอบหากมความเสยหายใด ๆ เกดขนจากการใชความร หรอขอมลทไดรบจากหนงสอเลมน

พรชย ภววงษศกดเนอหาแกไขเมอ 12/1999ค าน าแกไขเมอ 10/2000

Page 5: DSP_R10

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

Page 6: DSP_R10

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

Page 7: DSP_R10

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

Page 8: DSP_R10

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

Page 9: DSP_R10

บทท 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 สญญาณตอเนอง และสญญาณไมตอเนอง (โปรดสงเกตหนวยของแกนนอนดวย)

Page 10: DSP_R10

บทท 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 สญญาณไมตอเนอง กคอ ล าดบของขอมลนนเอง

Page 11: DSP_R10

บทท 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

Page 12: DSP_R10

บทท 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 น เปนสมการของตวกรองแบบผาน

Page 13: DSP_R10

บทท 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 อยางไรกตาม ระบบทมการประมวลผลแบบเวลาจรงไมจ าเปนตองมสญญาณขาเขา และออกเปนสญญาณแอนะลอกทงคเสมอไป ยกตวอยางเชน การถอดรหสสญญาณเสยงทถกบบอดขอมลมา ในกรณนสญญาณขาเขาเปนดจตอล ซงคอขอมลเสยงทบบอดมาแลว สวนสญญาณขาออก คอ สญญาณเสยงแอนะลอกทตองสงออกทล าโพง ดงนน การประมวลผลจะตองเกดทอตราสมจรงของสญญาณเสยงขาออก อนนกถอวา เปนการประมวลผลแบบเวลาจรง

Page 14: DSP_R10

บทท 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) ซงคอ ไมโครโปรเซสเซอรทถกออกแบบมาส าหรบงานประมวลผล

Page 15: DSP_R10

บทท 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

Page 16: DSP_R10

บทท 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 มต) ตวอยางของการประยกตใชงาน ไดแก การบบอดสญญาณวดโอ, การ

Page 17: DSP_R10

บทท 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 แตไมสามารถน ามาใชไดในเวลานน เนองจากมความซบซอนของการ

Page 18: DSP_R10

บทท 1 บทน า 10

ค านวณมากท าใหไมคมคากบการน ามาใช กปรากฏวา อลกอรธมเหลานนกลบน ามาใชงานไดจรงในปจจบน ทงนเปนผลโดยตรงจาก ความกาวหนาของเทคโนโลยคอมพวเตอร และ VLSI

ขดจ ากดของการประมวลผลสญญาณดจตอล

ทกอยางทมขอด กมกจะมขดจ ากดดวยเสมอ เทคโนโลยของดจตอลทมขอดตาง ๆ มากมายตามทกลาวมากเชนเดยวกน ขดจ ากดของการใชการประมวลผลสญญาณดจตอลพอจะแจกแจงได ดงน

1. สญญาณแอนะลอกทมแถบความถ (bandwidth) สงมาก ๆ ไมสามารถใชกบการประมวลผลสญญาณดจตอลได เนองจากสญญาณพวกนตองการอตราการสมทสงมากเพอแปลงเปนดจตอลท าใหตองการตวประมวลผลทเรวมากจนไมคมคาตอการใชงาน นอกจากน ขดจ ากดทอาจส าคญมากกวาตวประมวลผล กคอ การทตองมตวแปลงสญญาณระหวางแอนะลอกกบดจตอลทมความเรวสงมาก ซงปจจบน เทคโนโลยของการแปลงสญญาณแอนะลอกเปนดจตอลสามารถท าไดทอตราสมสงสดประมาณ … MHz ซงหมายความวา เราไมสามารถประมวลผลสญญาณมแถบความถสงกวา …MHz ได (ครงหนงของอตราการสม)

2. งานทตองการการกนก าลงไฟทต ามาก ๆ อาจจะตองท าดวยวงจรแอนะลอกอย ในปจจบนถงแมชพ VLSI จะกนก าลงไฟต าลงมากเมอเทยบกบอดต ประกอบกบเทคโนโลยของแบตเตอรทกาวหนาไปมาก ท าใหอปกรณพกพาหลาย ๆ อยางทม DSP เปนสวนประกอบ เชน โทรศพทมอถอมขนาดเลกกระทดลดลงมาก และแถมยงใชงานไดนานขนอก แตอยางไรกตาม การประมวลผลกยงจดเปนกระบวนการทกนก าลงไฟพอสมควร อปกรณทตองการใหมขนาดเลกมาก ๆ ทไมตองการใสแบตเตอรขนาดใหญลงไป เชน อปกรณชวยไดยน กจะมขอไดเปรยบของการออกแบบเปนชพแอนะลอก ในดานทจะสามารถกนก าลงไฟไดต ากวา

3. อปกรณบางอยาง ถงแมท าไดดกวาดวยเทคโนโลยดจตอล แตกดวยตนทนทสงกวา จงมตลาดทจ ากดอยเฉพาะผใชทมก าลงซอ อปกรณเหลานจงยงคงมใชอยทงแบบดจตอล และแอนะลอกเชน โทรทศนดจตอล กบโทรทศนแอนะลอก, เครองเลน DVD กบเครองเลนวดโอเทป, และออสซลโลสโคปดจตอล กบออสซลโลสโคปแอนะลอก, ฯลฯ เปนตน

4. ขดจ ากดในขอท 1 ถง 3 จะคอยนอยลง ๆ ตามความเจรญของเทคโนโลยคอมพวเตอร และVLSI ดงทไดกลาวมาแลว แตอยางไรกตาม มวงจรบางประเภททตองสรางดวยเทคโนโลยแอนะลอกเสมอ (ถงแมในอนาคตกตาม) และจรง ๆ แลวระบบประมวลผลสญญาณดจตอลกตองพงพาวงจรเหลานดวย นนคอ วงจรขยายสญญาณตาง ๆ, ตวแปลงสญญาณแอนะลอกเปนดจตอล, ตวแปลงสญญาณดจตอลเปนแอนะลอก, ตวกรองแอนะลอกในสวน front-end (กอนตวแปลงแอนะลอกเปนดจตอล)และ ตวกรองแอนะลอกในสวน back-end (หลงตวแปลงดจตอลเปนแอนะลอก) เปนตน

Page 19: DSP_R10

บทท 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 ซงถงแมเราจะไมใชสญญาณนในลกษณะเปนสญญาณแอนะลอกแตการมองนกเพอการวเคราะหในเชงความถของสญญาณ ซงจะมประโยชนในการบอกถงขดจ ากดของกระบวนการสมได

Page 20: DSP_R10

บทท 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) นทงความหมายของเวลาแบบแอนะลอกไปเรยบรอยแลว กลายเปนเหมอนล าดบของขอมลเฉย ๆ ในบทตอ ๆ ไปเราจะท างานกบสญญาณประเภทน และจะเหนตอไปวา ตวประมวลผลสญญาณดจตอลกไมจ าเปนตองร

Page 21: DSP_R10

บทท 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)

Page 22: DSP_R10

บทท 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

Page 23: DSP_R10

บทท 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|

Page 24: DSP_R10

บทท 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

Page 25: DSP_R10

บทท 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)

Page 26: DSP_R10

บทท 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

ข)

ค)

ง)

ก)

Page 27: DSP_R10

บทท 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)

Page 28: DSP_R10

บทท 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

Page 29: DSP_R10

บทท 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

Page 30: DSP_R10

บทท 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)

Page 31: DSP_R10

บทท 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, ...

Page 32: DSP_R10

บทท 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

Page 33: DSP_R10

บทท 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

Page 34: DSP_R10

บทท 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) ตวเดยวกนกบสญญาณขาเขา

Page 35: DSP_R10

บทท 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) เขาไปในระบบ จะไดผลตอบคอ

Page 36: DSP_R10

บทท 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) ทดสอบวาเปนเชงเสนหรอไม ?

Page 37: DSP_R10

บทท 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

Page 38: DSP_R10

บทท 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 ทมาของการหาผลตอบของระบบโดยวธคอนโวลชน

Page 39: DSP_R10

บทท 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+∞ กมคาเทยบเทากบ ∞ จะไดวา สมการนกลายเปน

Page 40: DSP_R10

บทท 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 กได ซงแตละแบบกมขอดขอเสยแตกตางกนไป

Page 41: DSP_R10

บทท 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 ตวไมเทากบศนย

Page 42: DSP_R10

บทท 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 จากตวอยางถดไป

Page 43: DSP_R10

บทท 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 เปนบวกเทานน และเรากลาววา

Page 44: DSP_R10

บทท 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 ตวอยางผลตอบสนองตอสญญาณอมพลส ของระบบทไมเปนคอซล

Page 45: DSP_R10

บทท 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 ใด ๆ ใหกระจายออกรอบตวมน ยงผลใหถามการเปลยนแปลงทฉบพลนในสญญาณขาเขา การเปลยนแปลงนนกจะถกดดซบไปในบรเวณรอบ ๆ หรอจะบอกวาระบบนเปนตวกรองแบบผานต าชนดหนงกได

Page 46: DSP_R10

บทท 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) สองค านไมเกยวของกน การประมวลผลแบบเวลาจรงอาจม หรอไมมการลาชาของสญญาณกได

Page 47: DSP_R10

บทท 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) ลเขาสศนยหรอ

Page 48: DSP_R10

บทท 3 ระบบแบบไมตอเนอง 40

ไม เมอ n มคามากขน ๆ ส าหรบระบบแบบ FIR จะมเสถยรภาพเสมอ เนองจาก h(n) มความยาวจ ากด ดงนน h(n) เปนศนยแนนอนท n เปนอนนต

ในทางปฏบตระบบสวนใหญทเราใชเปนระบบทเสถยร แตระบบทไมเสถยรกมการน ามาใชประโยชนไดบาง เชน ในวงจรก าเนดสญญาณ ซงเปนระบบทท างานทภาวะคาบเสนเสถยรภาพ ถาระบบเมอสญญาณขาเขาเปนอมพลส ท n=0 จะใหสญญาณขาออกเปนสญญาณทตองการสราง เชนสญญาณซายนทมความยาวไมจ ากดกได

Page 49: DSP_R10

บทท 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 ซงจะพจารณาทงกรณทสญญาณเปนแบบคอซล, แบบคอซลตรงขาม, และแบบสองดาน

Page 50: DSP_R10

บทท 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)

Page 51: DSP_R10

บทท 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

Page 52: DSP_R10

บทท 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 ต าแหนงกอน โดย

Page 53: DSP_R10

บทท 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

Page 54: DSP_R10

บทท 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 เปนคาคงท

Page 55: DSP_R10

บทท 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)

Page 56: DSP_R10

บทท 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) อยในรปตอไปน

Page 57: DSP_R10

บทท 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

Page 58: DSP_R10

บทท 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)

Page 59: DSP_R10

บทท 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)

Page 60: DSP_R10

บทท 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

ก) สญญาณ ขาเขา

ข) สญญาณ ขาออก

ค) ผลตอบสนอง ชวคร

ง) ผลตอบสนอง สถานะอยตว

Page 61: DSP_R10

บทท 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

− − −

− +

.

Page 62: DSP_R10

บทท 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* ในขอน) และจะไดสมประสทธของการกระจายเศษสวนยอย ทเปนคคอนจเกต

Page 63: DSP_R10

บทท 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 กรณ ดงน

ผลตอบสนองชวคร ผลตอบสนองสถานะอยตว

Page 64: DSP_R10

บทท 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

ถาพจารณาฟงกชนถายโอนซงประกอบดวยโพลหลาย ๆ ตว จะสามารถเขยนใหอยในรปตอไปน

Page 65: DSP_R10

บทท 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 ทกตวตองลเขาสศนย นนกคอ โพลทกตวจะตองมขนาดนอยกวาหนง ขอนเปนจรงกบโพลทเปนจ านวนเชงซอนดวย และเปนจรงกบโพลทอนดบมากกวาหนงดวย (โพลซ ากนมากกวาหนงตว)

Page 66: DSP_R10

บทท 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 กขอใหเขาใจเฉพาะแบบทเปนคอซลกพอ ซงกจะพจารณาเสถยรภาพไดงาย ๆ โดยดเพยงวา โพลทกตวของระบบมขนาดนอยกวาหนงหรอไมเทานน

Page 67: DSP_R10

บทท 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)

Page 68: DSP_R10

บทท 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

Page 69: DSP_R10

บทท 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 ตวอยางสเปกตรมของสญญาณแบบไมตอเนองและการเทยบคาความถดจตอล ไปเปนความถแอนะลอก

ประเดนทส าคญอกอยางหนงกคอ การเทยบคาจากความถดจตอลไปเปนความถแอนะลอกเนองจากในการวเคราะหสญญาณแบบไมตอเนองในเชงความถเราจะยงเกยวกบ ω′ และไมจ าเปนตองรเกยวกบคาความถแอนะลอกเลย แตในการมองออกไปทสญญาณแอนะลอก (ทขาเขากอนการสมหรอขาออกหลงจากสรางสญญาณคน) เราจ าเปนตองรวาสญญาณทเราจะประมวลผล ซงมความถในรปความถดจตอล สามารถเทยบออกไปเปนคาความถแอนะลอกไดในยานไหน

Page 70: DSP_R10

บทท 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 ขนเวลาสญญาณมการเปลยนแปลงไปกรอบ หรอกเรเดยน และคาบของสญญาณจะนบเปนหนวยขนเวลา คอ

Page 71: DSP_R10

บทท 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 มคารอบวงกลมหนงหนวย หรอ เขยนเปนรปสมการไดเปน

Page 72: DSP_R10

บทท 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ω′ ลงในฟงกชนถายโอน จะไดผลตอบสนองเชงความถของระบบเปน

Page 73: DSP_R10

บทท 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 ถง π

Page 74: DSP_R10

บทท 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π

(เรเดยน)

Page 75: DSP_R10

บทท 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 ซงตดอยในรปสมการ ใหกลายเปนคาผลลพธทเปนตวเลข

Page 76: DSP_R10

บทท 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 ในการแปลงแอนะลอกเปนดจตอล และความผดเพยนจากส าเนาความถในการแปลงดจตอลเปนแอนะลอกได

หมายเหต หนงสอหลายเลมใชสญลกษณ ω แทนความถดจตอล ขอใหระวงดวยในการอานอางองเพมเตมจากหนงสอเลมอน

Page 77: DSP_R10

บทท 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 การแปลงแบบตาง ๆ กบคณลกษณะของสญญาณทเกยวของ

Page 78: DSP_R10

บทท 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 เทานนทมทงสญญาณในเชงเวลา และในเชงความถเปนแบบไมตอเนอง จดนเปนจดทส าคญมาก เพราะมนบงบอกวา เราสามารถจะกระท าการแปลงนไดโดยใชการค านวณ (การคณ และบวก) ทางดจตอลได ซงสามารถประยกตไดสะดวกมากในคอมพวเตอร หรอในฮารดแวรโดยตรงกได การแปลงแบบอนมสญญาณแบบตอเนองเกยวของดวยซงท าใหการแปลงตองใชวธอนทเกรตซงยงยากกวามาก

Page 79: DSP_R10

บทท 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

Page 80: DSP_R10

บทท 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 นนเอง

... .........

......

Page 81: DSP_R10

บทท 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 คาบ

สมในเชงความถ

สมในเชงเวลา

ก)

ข)

ค)

ง)

Page 82: DSP_R10

บทท 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

Page 83: DSP_R10

บทท 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 ทวา“ก าลงเฉลยในทางเวลา จะเทากบก าลงเฉลยในทางความถ” ซงเขยนเปนสตรส าหรบสญญาณไมตอเนอง ไดวา

Page 84: DSP_R10

บทท 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)

Page 85: DSP_R10

บทท 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 เปนคได ดงน

Page 86: DSP_R10

บทท 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

จด

Page 87: DSP_R10

บทท 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)

Page 88: DSP_R10

บทท 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 จด

ตวแปรชวคราว

Page 89: DSP_R10

บทท 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

Page 90: DSP_R10

บทท 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] ซงเปนกรณสวนใหญทเราใชงาน

Page 91: DSP_R10

บทท 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)

Page 92: DSP_R10

บทท 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*ลงไปจะได

ค านวณตามแผนภาพผเสอ

สลบล าดบของสญญาณขาเขา เปนล าดบทสลบบตซายขวา

Page 93: DSP_R10

บทท 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 ก)

Page 94: DSP_R10

บทท 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 ก) ใหผลลพธพอใชได แตเรายงมวธปรบปรงรปรางของสเปกตรมใหดขน (ชดขน และใกลเคยงความเปนจรงมากขน) โดยใชสองวธ ดงตอไปน

ก) แบบ ธรรมดา

ข) แบบ หาคาเฉลย ของหลาย ๆ บลอก

Page 95: DSP_R10

บทท 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)

Page 96: DSP_R10

บทท 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

Page 97: DSP_R10

บทท 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)

Page 98: DSP_R10

บทท 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 ใหเทากน

Page 99: DSP_R10

บทท 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

Page 100: DSP_R10

บทท 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) อก ดงนน ในกรณนจะท าใหการค านวณลดลงเหลอ

Page 101: DSP_R10

บทท 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-

Page 102: DSP_R10

บทท 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 ตอวนาทผลลพธทไดนสามารถน าไปประมาณวา จ าเปนจะตองใชตวประมวลผลทมความเรวแคไหน

จงจะสามารถท างานได

Page 103: DSP_R10

บทท 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)

Page 104: DSP_R10

บทท 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 ส าหรบแสดงตวอยางของสญญาณขาออกของระบบทมเฟสเชงเสน และไมเชงเสน

Page 105: DSP_R10

บทท 7 ตวกรองแบบ FIR 97

ธย

Tp

รปท 7.1 ผลลพธของโปรแกรมท 7.1

ในงานบางอยาง ไมจ าเปนทจะตองมการลาหลงทางเฟส (Tp) คงท แตตองการเพยงแคมการลาหลงของกลม (group delay) คงท ซงความลาหลงของกลมมสตร คอ

Tgroup = dd

θω′

(7.4)

เงอนไขนเปนเงอนไขทเบากวา และระบบใดทมการลาหลงทางเฟสคงทกจะมการลาหลงของกลมคงทดวย เรากลาววา ระบบทมความลาหลงของกลมคงทเปนระบบทมเฟสเชงเสน ซงจะไดสมการทวไปของผลตอบสนองทางเฟสของระบบทมเฟสเชงเสน คอ

θ = -aω′ + b (7.5)

โดยท a และ b เปนคาคงททไมแปรตามความถ

n

n

n

ก) สญญาณขาเขา

ข) สญญาณขาออกของ ระบบทมเฟสเชงเสน

ค) สญญาณขาออกของ ระบบทมเฟสไมเชงเสน

Page 106: DSP_R10

บทท 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ω∑

Page 107: DSP_R10

บทท 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 องศาอยในผลตอบสนองทางเฟสดวย

Page 108: DSP_R10

บทท 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 จะได

Page 109: DSP_R10

บทท 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 ดงแสดงในรป

Page 110: DSP_R10

บทท 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) ไดโดยใชทฤษฎบทของโลปตล จะไดวา

Page 111: DSP_R10

บทท 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)

Page 112: DSP_R10

บทท 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)

Page 113: DSP_R10

บทท 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 เปนจ านวนคกท าไดเชนกน แตขอละไวไมกลาวถงในทน

Page 114: DSP_R10

บทท 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)| ผลตอบสนอง

เชงควมถในอดมคต

แถบเปลยน

Page 115: DSP_R10

บทท 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 ก)

Page 116: DSP_R10

บทท 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|

Page 117: DSP_R10

บทท 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

Page 118: DSP_R10

บทท 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|

Page 119: DSP_R10

บทท 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)

Page 120: DSP_R10

บทท 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

Page 121: DSP_R10

บทท 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)

Page 122: DSP_R10

บทท 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 - -( ( ) / )( )

αα

Page 123: DSP_R10

บทท 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

Page 124: DSP_R10

บทท 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)

Page 125: DSP_R10

บทท 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 จ ด

Page 126: DSP_R10

บทท 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ω′)|

Page 127: DSP_R10

บทท 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 จะได

Page 128: DSP_R10

บทท 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 ผลตอบสนองตออมพลส และผลตอบสนองเชงความถทไดจากวธสมความถ

Page 129: DSP_R10

บทท 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 เมออาศยคณสมบตการสมมาตร

Page 130: DSP_R10

บทท 7 ตวกรองแบบ FIR 122

และโดยอาศยวธคอนโวลชนแบบเรวทเราไดศกษามาในบทท 6 กสามารถใชแทนคอนโวลชนปกตเพอใชสรางตวกรองแบบ FIR ได ดงในรปท 7.16

x(n) จ ด block(overlap ก น) FFT IFFT

FFT

ต ดส วนเก นรวม block

y(n)

h(n)

รปท 7.16 แผนภาพการสรางตวกรองแบบ FIR โดยวธคอนโวลชนแบบเรว

Page 131: DSP_R10

บทท 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)

Page 132: DSP_R10

บทท 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)

Page 133: DSP_R10

บทท 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 จะไดฟงกชนทเปนการแปลง

ระหวางความถแอนะลอกไปเปนความถดจตอล ดงน

Page 134: DSP_R10

บทท 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 ถง π เทานน ดงนน ถาใชฟงกชนเชงเสนกคงจะไดชวงแถบผานหดลดเหลอเลกนดเดยว

Page 135: DSP_R10

บทท 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

หรอ เขยนไดวา

ω(เรเดยน/วนาท)

ω′(เรเดยน)

Page 136: DSP_R10

บทท 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

3 π, ± 46π

4 ± 58π, ± 7

5 π, ± 610π , ± 8

10π

6 ± 712π, ± 9

12π , ± 11

12π

7 π, ± 814π , ± 10

14π , ± 12

14π

ตารางท 8.1 มมของโพลของตวกรองบตเตอรเวอรธ (โพลมคาเทากบ ejθ )

Page 137: DSP_R10

บทท 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

Page 138: DSP_R10

บทท 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

ซงจะได

Page 139: DSP_R10

บทท 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−

Page 140: DSP_R10

บทท 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

Page 141: DSP_R10

บทท 8 ตวกรองแบบ IIR 133

3) หาตวกรองแอนะลอกตนแบบ

จาก N = 3 ใชตาราง 8.1 จะไดโพล คอ p1= ej4

, p1*= ej− 4

, และ 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 (เรเดยน)

Page 142: DSP_R10

บทท 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ω′ ลงในสมการของการแปลงไบลเนยรในคอลมนทสองนนเอง ในกรณทเรารผลตอบสนองเชง

Page 143: DSP_R10

บทท 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 หมายถง ความถตดดจตอลดานต าและดานสงของแบนดตามล าดบ)

Page 144: DSP_R10

บทท 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

Ω (เรเดยน/วนาท)

ω′(เรเดยน)

Page 145: DSP_R10

บทท 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

โดยทโพลม 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

Page 146: DSP_R10

บทท 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 ยกเวน ระบบทตองการออกแบบเปนตวก าเนดสญญาณซายน

Page 147: DSP_R10

บทท 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

Page 148: DSP_R10

บทท 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

Page 149: DSP_R10

บทท 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)

Page 150: DSP_R10

บทท 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 การพสจนทมาของแผนภาพนท าไดโดย สมมตสญญาณขนใหมสญญาณหนงเรยก

Page 151: DSP_R10

บทท 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 กสามารถท า

ได แตอาจสงผลกระทบเรองความคลาดเคลอนของระบบ และเสถยรภาพ โดยทวไปมกนยมแตกให

Page 152: DSP_R10

บทท 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 โดยใชโครงสรางแบบขนาน

Page 153: DSP_R10

บทท 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 ดงน

Page 154: DSP_R10

บทท 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

Page 155: DSP_R10

บทท 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 ความคลาดเคลอนนสงผลถงลกษณะตาง ๆ ของระบบจากทออกแบบไว เชน ความถตด, รปรางของผลตอบสนองความถ,และรวมถงเสถยรภาพของระบบดวย

Page 156: DSP_R10

บทท 8 ตวกรองแบบ IIR 148

ขอดของตวกรอง IIR เมอเทยบกบตวกรอง FIR1. ใหผลตอบสนองเชงความถทดกวามากในดานความคม (ขนาดของแถบเปลยนเลกกวา และ

ความพลวต ากวา) ทขนาดอนดบเทา ๆ กบตวกรอง FIR นนหมายถงวา โดยทวไปเราไมจ าเปนตองใชตวกรอง IIR ทมอนดบสง ๆ เหมอน FIR ดงนน ตวกรอง IIR จงมความตองการดานความเรวของตวประมวลผลทนอยกวา

2. สามารถออกแบบโดยองจากตวกรองตนแบบแอนะลอกได ถามตวกรองแบบแอนะลอกทเคยใชงานอยแลว

Page 157: DSP_R10

บทท 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 คอ จ านวนบตทอยหลงจดทศนยม หรอเขยนเปนสญลกษณวา

Page 158: DSP_R10

บทท 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 บต

Page 159: DSP_R10

บทท 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

Page 160: DSP_R10

บทท 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 บต

Page 161: DSP_R10

บทท 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 บต

Page 162: DSP_R10

บทท 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 บอกดวยวาในแตละกรณสามารถแทนคาเลขไดในชวงใด

Page 163: DSP_R10

บทท 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

Page 164: DSP_R10

บทท 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 ไดผลลพธผด!

+

+

+ +

+

+

Page 165: DSP_R10

บทท 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

+

+

+

+

+

++

+

Page 166: DSP_R10

บทท 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 เสมอ และในท านองเดยวกน กรณของเลขลบ เราสามารถเขยนรปแบบของเลขทจะแทนคาเปนเลของดรรชน โดยแบงเปนกรณ

Page 167: DSP_R10

บทท 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) ทง

Page 168: DSP_R10

บทท 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

Page 169: DSP_R10

บทท 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 แทนแมนทสซา และรป

Page 170: DSP_R10

บทท 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 ดง

Page 171: DSP_R10

บทท 9 ระบบตวเลขในการประมวลผล 163

แสดงในรปท 9.2 ม 32 ขนในชวงบวก และ32 ขนในชวงลบเชนกน เมอ e มากขน ๆ ขนาดของขนกจะใหญขนทละสองเทาตวเรอยไปจนถงคา e ตวสดทาย

จะเหนไดวา การแบงขนของระบบเลของดรรชนมลกษณะทฉลาดกวา เนองจาก มการปรบนยส าคญของเลขทใชแทนใหเหมาะสมตามคาขนาดของตวเลข กลาวคอ ทคาของตวเลขมาก ๆ ขนาดของขนกจะกวาง สวนทคาตวเลขนอย ๆ ขนาดของขนกมคาเลกลง การท าเชนน ท าใหระบบเลของดรรชนทจ านวนบตมากพอสมควร จะมความสามารถในการแทนตวเลขไดในชวงทกวางกวาระบบแบบจ านวนเตมมาก และแทนไดดแมนย ากวา เพราะมนยส าคญทเหมาะสมกบขนาดของตวเลข โดยทวไป ระบบเลของดรรชนกจะใหความคลาดเคลอนในการประมวลผลทต ากวาดวย

การใชระบบเลของดรรชน มขอเสยในดานตนทนทแพงกวา เพราะ วงจรทใชในการประมวลผลของเลของดรรชนท าไดยากกวาเลขจ านวนเตม นอกจากน วงจรของระบบเลของดรรชนยงใหญกวา, ท างานไดชา, และกนไฟมากกวาดวย โดยทวไป เราจะทดสอบการท างานของระบบกบระบบเลขจ านวนเตมกอนวาสามารถใชไดหรอไม ถาไมไดจงคอยลองระบบเลของดรรชน ซงระบบเลของดรรชนจะท างานไดดกวามากในระบบทมสญญาณทงคาสง ๆ และต า ๆ และเราตองการรกษานยส าคญของสญญาณทมคาต า ๆ ไว

Page 172: DSP_R10

บทท 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 เปรยบเทยบการแบงขนของระบบเลขจ านวนเตม และเลของดรรชน

Page 173: DSP_R10

บทท 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)

Page 174: DSP_R10

บทท 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) เปน

Page 175: DSP_R10

บทท 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 ซง

Page 176: DSP_R10

บทท 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 เองในทางปฏบตกจะมความคลาด

Page 177: DSP_R10

บทท 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

Page 178: DSP_R10

บทท 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 ซงถอวาอยในระดบทดมาก

Page 179: DSP_R10

บทท 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)

Page 180: DSP_R10

บทท 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 เสมอ

Page 181: DSP_R10

บทท 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π

Page 182: DSP_R10

บทท 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)

+ +

Page 183: DSP_R10

บทท 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)

Page 184: DSP_R10

บทท 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 แนวทาง คอ

Page 185: DSP_R10

บทท 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)

Page 186: DSP_R10

บทท 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 ….] แลวค านวณผล บวกจากสญญาณขาออกจนกระทงขาออกลเขาสศนย

Page 187: DSP_R10

บทท 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

Page 188: DSP_R10

บทท 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) ไมมสมประสทธทเปนตวคณไมขางหนา

Page 189: DSP_R10

บทท 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

Page 190: DSP_R10

บทท 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 ทไดอธบายไปแลว

Page 191: DSP_R10

บทท 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);

Page 192: DSP_R10

บทท 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 สงสด

Page 193: DSP_R10

บทท 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 บต การคณในกรณนถอวาการเกดโอเวอรโฟลจากการคณขน ซงท าใหใชงานไมไดในระบบประมวลผล

×

Page 194: DSP_R10

บทท 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มฉะนน เปนโอเวอรโฟล

ผลลพธหลงปดเศษ

×

Page 195: DSP_R10

บทท 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 จะไดคาดงน

××

Page 196: DSP_R10

บทท 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 คอ

Page 197: DSP_R10

บทท 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)

Page 198: DSP_R10

บทท 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 ลดลง

Page 199: DSP_R10

บทท 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) เขยนไดเปน

Page 200: DSP_R10

บทท 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)

Page 201: DSP_R10

บทท 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)

Page 202: DSP_R10

บทท 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

Page 203: DSP_R10

บทท 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)

Page 204: DSP_R10

บทท 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 มาจ าลองเปนการค านวณเลขจ านวนเตม ซงเปนวธทงาย สะดวก และเขาถงกลไกของการค านวณไดดดวย และถาพจารณาถงความเรวอนมหาศาลของไมโครคอมพวเตอรในปจจบน ทางเลอกนกถอวาไมเลวนก

การจ าลองการค านวณเลขจ านวนเตมน เทากบเปนการวเคราะหผลโดยรวมของความคลาดเคลอนทกชนดทกลาวมา ไมวาจะเปนความคลาดเคลอนจากการปดเศษสมประสทธ, โอเวอรโฟล,หรอสญญาณรบกวนจากการคณ เปนการทดสอบทเหมอนกบการทจะน าไปใชงานจรง นอกจากนในกรณทน าไปใชสรางเปนวงจรรวม หรอไอซ ยงสามารถใชการจ าลองนสรางชดสญญาณเพอ

Page 205: DSP_R10

บทท 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 ซงเปนเวคเตอรของสมประสทธของเศษ และสวนตามล าดบ

Page 206: DSP_R10

บทท 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 ทเปลยนไป

Page 207: DSP_R10

บทท 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|

Page 208: DSP_R10

บทท 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 น ไมไดท าการลดคาสมประสทธเพอปองกนโอเวอรโฟล ซงบงเอญเราใชสญญาณขาเขาทมคานอย ท าใหไมพบปญหาเกยวกบโอเวอรโฟล ในการทดสอบจรง ๆ เราอาจน า

ก)

ค)

ข)

Page 209: DSP_R10

บทท 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

Page 210: DSP_R10

บทท 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 ในหวขอทแลว

Page 211: DSP_R10

บทท 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

Page 212: DSP_R10

บทท 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 และแสดงผลลพธออกทางหนาจอ

Page 213: DSP_R10

บทท 11 การประมวลผลแบบหลายอตราสม 205

บทท 11การประมวลผลแบบหลายอตราสม

ในบทนเราจะไดศกษาถงระบบทมอตราการสม (fs) หรออตราของขอมลมากกวาหนงอตราในระบบ ซงสงทจ าเปนส าหรบระบบประเภทนกคอ การเปลยนอตราการสมได เราจะไดศกษาวธการในการลด และเพมอตราการสมทถกตอง จากนน ในทายบทกจะเปนการยกตวอยางการใชงานของระบบทใชหลายอตราการสม

การเปลยนอตราการสมโดยแปลงเปนสญญาณแอนะลอกกอน

วธทจะเปลยนอตราการสมของสญญาณอยางงาย ๆ กคอ การแปลงสญญาณนนกลบเปนสญญาณแอนะลอกกอน แลวสมสญญาณแอนะลอกใหมดวยอตราการสมใหมทตองการ ดงแสดงในรปท 11.1 วธนใหอสระในการเปลยนอตราการสมพอสมควร โดยเราสามารถใชอตราการสมใหมเปนเทาไรกได ทงนโดยไมขดแยงกบหลกการของการสมทถกตอง นนกคอ อตราการสมใหมจะตองมากกวาสองเทาของความถสงสดทมอยในสญญาณ

กรณทเปนการเพมอตราการสม จะไมมปญหาเกยวกบ aliasing เนองจาก อตราการสมใหมมากกวาอตราเกา ซงหมายถงวา ยานไนควทซกวางขน ดงนน ถาสญญาณไมตอเนองเดมไมม aliasingสญญาณใหมกจะไมมทางเกด aliasing เชนกน แตในกรณของการลดอตราการสม ซงยานไนควทซจะแคบลง จะตองระวงไมใหความถของสญญาณเดมมากเกนกวาครงหนงของอตราการสมใหม ถาหากมากกวา เราจ าเปนจะตองกรองความถในชวงทมากกวานนทงไป โดยอาจใชตวกรองดจตอล

ส ญญาณแอนะลอก

ร ะ อ ตรา fs1

ต วเปล ยนอ ตราการส ม

ร ะ บา ง า น ท อ ตรา fs2

D/A A/Dส ญญาณไม ต อเน องอ ตรา fs1

ส ญญาณไม ต อเน องอ ตรา fs2

รปท 11.1 การเปลยนอตราการสมโดยการแปลงกลบเปนสญญาณแอนะลอกแลวสมใหม

Page 214: DSP_R10

บทท 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)

Page 215: DSP_R10

บทท 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ω′)|

Page 216: DSP_R10

บทท 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,...

Page 217: DSP_R10

บทท 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ω′)|

Page 218: DSP_R10

บทท 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 เทา (โดยแทรกศนย)

Page 219: DSP_R10

บทท 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 ทงเศษและสวน

ตดเศษ และสวนใหเปนจ านวนเตมทต าทสด

Page 220: DSP_R10

บทท 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 การลดอตราการสมแบบสามขน

Page 221: DSP_R10

บทท 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

Page 222: DSP_R10

บทท 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

Page 223: DSP_R10

บทท 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 คา ไปค านวณคาถดไปเลย (แตเกบคาสญญาณขาเขาไวเหมอนปกต)

Page 224: DSP_R10

บทท 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 ก)โครงสรางปกต

Page 225: DSP_R10

บทท 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)

Page 226: DSP_R10

บทท 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 เทา

Page 227: DSP_R10

บทท 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)

Page 228: DSP_R10

บทท 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)|

Page 229: DSP_R10

บทท 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)

Page 230: DSP_R10

บทท 12 ตวอยางการประยกตใชงาน 222

บทท 12ตวอยางการประยกตใชงาน

เราไดเหนการประยกตใชงานไปบางแลวในบททผานมา ไดแก การท าตวกรองแอนะลอกจากตวกรองดจตอล การเปลยนแปลงอตราการสม และการท าเครองวเคราะหสเปกตรมโดยใชการแปลงFFT ในบทนจะไดกลาวถง การประยกตใชตวกรองดจตอลในงานตาง ๆ รวมทง แนะน าการประยกตใชงานในขนสงขน ไดแก ตวกรองแบบปรบตวได เพอใหผอานไดมองเหนภาพของการประมวลผลสญญาณดจตอลทกวางขน และเพอเปนแนวทางในการศกษาในขนสงตอไป

การปรบแตงลกษณะของเสยง

เสยงเปนสญญาณทเหมาะส าหรบน ามาประมวลผลอยางยง เนองจาก ยานความถของเสยงจดวาอยในยางความถทต า กลาวคอ เสยงคนพดสามารถสมไดคณภาพดดวยอตรา 8 kHz และเสยงดนตรสามารถสมไดดวยอตรา 44 kHz ซงเปนอตราทตวแปลง A/D และ D/A มราคาถก และการประมวลผลกสามารถกระท าไดโดยชพ DSP ทวไป ในหองสตดโอสมยใหม ปจจบนจะท าการประมวลผลเสยงในโหมดดจตอลอยางครบวงจร ทงการผสมเสยง การเตมเสยงพเศษ และการปรบแตงลกษณะของเสยง จนกระทงถง การจดเกบในรปของแผนซด และดวด เพอสงขายไปยงผบรโภค เสยงทเกบกอยในรปของดจตอลแทบทงสน

นอกจากน เสยงยงเปนสงทละเอยดออนมาก เพราะมนษยสามารถสมผสไดดวยการฟง และแยกแยะลกษณะบางอยางจากเสยงทไดยนได เชน เปนเสยงทมหรอแหลม, มทศทางของเสยงมาจากทศใด, ใครคอผพด, และค าพดทอยในเสยงคอค าวาอะไร เปนตน ซงลกษณะเหลาน ไดถกน ามาจ าลอง และวเคราะหดวยการประมวลผลสญญาณดจตอล ซงความเขาใจในลกษณะเหลาน บางอยางกอยในขนทคอนขางสมบรณแลว แตบางอยางกยงอยในขนทตองวจยเพมเตมตอไป

อควอไลเซอรเสยง (Audio Equalizer)[1]

อควอไลเซอรเปนอปกรณส าหรบปรบลกษณะทางความถของเสยง การท าอควอไลเซอรดวยการประมวลผลสญญาณดจตอล เราจะใชตวกรองดจตอลแบงเสยงออกเปนยานความถหลาย ๆ ยานและใหผใชปรบคาอตราขยายในแตละยานได ขอยกตวอยางของอควอไลเซอรทม 5 ยานความถ โดยใชอตราสมเทากบ 44.1 kHz และตวกรองทใชในแตละยานความถมความถตด คอ

Page 231: DSP_R10

บทท 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)

Page 232: DSP_R10

บทท 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 ชอง และผลตอบสนองเชงความถของตวกรองทใช

Page 233: DSP_R10

บทท 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)

Page 234: DSP_R10

บทท 12 ตวอยางการประยกตใชงาน 226

เพยงใชระบบงาย ๆ แคนเรากจะไดตวก าเนดเสยงสะทอนอยางงายแลว แตเสยงทไดอาจฟงดไมเหมอนจรงนก เนองจาก โดยปกตเสยงทสะทอนจากวตถ ถาวตถไมไดเรยบสนท หรอมวตถใกลเคยงในละแวกนนอก เสยงมกไมไดสะทอนกลบมาทเวลาเดยวดงทไดวเคราะห ดงนน เพอใหเหมอนจรงมากขน เราจะใหเสยงสะทอนกลบมาหลาย ๆ ครง และมาถงผฟงดวยเวลาตาง ๆ กน และดวยขนาดทเบาลง ๆ ตวอยางของผลตอบสนองตออมพลสทตองการใชในกรณน แสดงดงในรปท 12.2 ค)

แตการท าเสยงสะทอนน เปนตวอยางของการใชผลทางภาวะชวคร (transient) ของระบบใหเกดปรากฏการณทพสดารขนมา ซงตางจากการใชงานระบบเปนตวกรองความถทเราไดศกษามาเพราะการใชงานแบบนนเราสนใจผลทางสภาวะอยตว (steady state) ของระบบ นนกคอ ผลตอบสนองเชงความถของระบบนนเอง

แหล งก าเน ด

ผ ฟ งว ตถ สะท อน

h(n)

0 D n

⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅

h(n)

0 D n⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅ ⋅⋅⋅⋅

รปท 12.2 การเกดเสยงสะทอน และผลตอบสนองตออมพลสของระบบทสรางเสยงสะทอน

เสยงจ าลองการสะทอนของหอง (Reverberation)[1],[4]

การจ าลองเสยงสะทอนของหอง บางทกเรยกวา เสยงเซอรราวด (surround) จะแปลงเสยงปกตใหเปนเสยงทมการสะทอนกกกองเสมอนเสยงนนเกดขนในหองขนาดใหญ ประโยชนของมนไดแก การใชในการเลนเสยงดนตรในบาน แลวจ าลองใหเหมอนกบวงดนตรก าลงเลนอยในโรงแสดงดนตรขนาดใหญ โดยใชเพยงแคล าโพงหนาคเดยวเทานน หรอการฉายภาพยนตในบานแลวใหความรสกเหมอนชนภาพยนตรอยในโรงขนาดใหญ ในปจจบนไดมการประยกตไปใชในสนามกฬากลางแจง

ก)

ข)

ค)

Page 235: DSP_R10

บทท 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 ดงน

Page 236: DSP_R10

บทท 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

Page 237: DSP_R10

บทท 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

Page 238: DSP_R10

บทท 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

Page 239: DSP_R10

บทท 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

ความเปนไปไดของการท าเสยงสามมตเกดจาก แนวความคดวา เนองจากคนเราสามารถแยะแยะทศทางของเสยงได โดยใชห (ซงเปรยบเสมอนเปนเซนเซอรรบเสยง) เพยงสองขางเทานน ดงนนเรากนาจะสามารถจ าลองการเกดเสยงทมาจากทศทางใด ๆ ไดโดยใชเพยงแคสองล าโพงเชนกน ซงค ากลาวน จรง ๆ แลวกมไดขดแยงกบกฏของฟสกส หรอทางไฟฟาแตอยางใด

Page 240: DSP_R10

บทท 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)

Page 241: DSP_R10

บทท 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) ท าหนาทเหมอนกบอควอไลเซอรเสยงทไดอธบายมาในหวขอกอนหนาน เนองจากผปวยจะมความสามารถในการไดยนในแตละความถแตกตางกน ซงแพทยสามารถตรวจสอบ และวดระดบการไดยนของผปวยทความถตาง ๆ ออกมาได

Page 242: DSP_R10

บทท 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) กรองเอาเฉพาะความถพนฐานออก เหลอเพยงสญญาณฮารมอนกซงจะน าไปใชควบคมวงจรอนเวอรเตอรใหก าเนดกระแสฮารมอนกทตองการออกมาได การเลอกใชตวกรองดจตอลเพอตดความถพนฐานในทนมขอดกวาการใชตวกรองแอนะลอก คอ

Page 243: DSP_R10

บทท 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 จะไดฟงกชนถายโอน คอ

Page 244: DSP_R10

บทท 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) จะใชเปนเพยงคาเรมตนทใชกระตนระบบเทานน) อกทงยงสามารถเปลยนแปลงขนาด และความถไดงาย โดยเปลยนคาสมประสทธเพยงสองคาเทานน เราสามารถค านวณคาสมประสทธทจะใชก าเนดความถตาง ๆ ไวลวงหนากอนแลวเกบไวในตาราง จากนน ตอนใชงานกดงคาเหลานมาโปรแกรมใหกบออสซลเลเตอร ท าใหสามารถสรางเปนตวออสซลเลเตอรทปรบความถไดตามตองการ

Page 245: DSP_R10

บทท 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)

Page 246: DSP_R10

บทท 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

Page 247: DSP_R10

บทท 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 โครงสรางพนฐานของตวกรองแบบปรบตวได

Page 248: DSP_R10

บทท 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)

Page 249: DSP_R10

บทท 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 จะลดเหลอเพยง

Page 250: DSP_R10

บทท 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 ] มคาต าสดเทาทจะท าได เขยนเปนสมการไดวา

Page 251: DSP_R10

บทท 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 จากคาสมประสทธปจจบน และเวคเตอรทศทางไดดวยการค านวณอยางตรงไปตรงมา ดงน

Page 252: DSP_R10

บทท 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)

Page 253: DSP_R10

บทท 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

Page 254: DSP_R10

บทท 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) การสอสารเหลานใชอปกรณทมไมโครโฟนรบเสยงของผพดซงเปนไมโครโฟนทรบเสยงไดกวางโดยผใชไมตองพดจออย ทต าแหนงของ

Page 255: DSP_R10

บทท 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 ปรบตวไดทไดกลาวถงในหวขอทแลว เพอหกลางเสยงสะทอนนทงเสย

Page 256: DSP_R10

บทท 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 ปกต

Page 257: DSP_R10

ภาคผนวก ก การใชงาน 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

Page 258: DSP_R10

ภาคผนวก ก การใชงาน 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

Page 259: DSP_R10

ภาคผนวก ก การใชงาน 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

Page 260: DSP_R10

ภาคผนวก ก การใชงาน 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

Page 261: DSP_R10

ภาคผนวก ก การใชงาน 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 เทานน

Page 262: DSP_R10

ภาคผนวก ก การใชงาน 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

Page 263: DSP_R10

ภาคผนวก ก การใชงาน 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

Page 264: DSP_R10

ภาคผนวก ก การใชงาน 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

การกระท าทใชส าหรบเปรยบเทยบมอยหลายตว สรปไดดงน== เทากบ ~= ไมเทากบ< นอยกวา > มากกวา<= นอยกวาหรอเทากบ >= มากกวาหรอเทากบ

Page 265: DSP_R10

ภาคผนวก ก การใชงาน 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

Page 266: DSP_R10

ภาคผนวก ก การใชงาน 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 เองทกประการ ลองมาดตวอยางของฟงกชนทยากขน ซงมการรบคา และคนคามากกวาหนงตว

Page 267: DSP_R10

ภาคผนวก ก การใชงาน 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

Page 268: DSP_R10

ภาคผนวก ก การใชงาน 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 โดยคราวนใชสน าเงน และเปนเสนปะขดสลบจด

Page 269: DSP_R10

ภาคผนวก ก การใชงาน 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

Page 270: DSP_R10

ภาคผนวก ก การใชงาน 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)

Page 271: DSP_R10

ภาคผนวก ก การใชงาน 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 แปลงตวอกษร หรอขอความเปนตวเลขทเปนรหสแอสกของมน

Page 272: DSP_R10

ภาคผนวก ก การใชงาน 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 มความยาวครงวนาท ซงสญญาณน

Page 273: DSP_R10

ภาคผนวก ก การใชงาน 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

Page 274: DSP_R10

ภาคผนวก ข ฟงกชนใน 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

Page 275: DSP_R10

ภาคผนวก ข ฟงกชนใน 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 เทา

Page 276: DSP_R10

ภาคผนวก ข ฟงกชนใน 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 แสดงการลกษณะของฟงกชนถายโอนยอยอนดบสอง

Page 277: DSP_R10

ภาคผนวก ค ประมวลศพทเทคนค 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* ความเปนคอซล

Page 278: DSP_R10

ภาคผนวก ค ประมวลศพทเทคนค 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)

Page 279: DSP_R10

ภาคผนวก ค ประมวลศพทเทคนค 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 โอเวอรโฟล

Page 280: DSP_R10

หนงสออางอง 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

Page 281: DSP_R10

หนงสออางอง 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