eeet0485 ปฏิบัติการ...
TRANSCRIPT
Mahanakorn University of Technology
ภาควชาวศวกรรมอเลกทรอนกส
มหาวทยาลยเทคโนโลยมหานคร
EEET0485 ปฏบตการ
การประมวลผลสญญาณดจตอล
EEET0485 Digital Signal Processing
Laboratory
EEET0485 Digital Signal Processing Electronic Engineering Department
I Mahanakorn University of Technology
คานา
ค มอปฏบตการการประมวลผลสญญาณดจตอลเลมน� เปนสวนหน" งของวชาการประมวลผลสญญาณดจตอล (EEET0485) ซ" งจะใหความรและประสบการณแกผเรยนดวยโปรแกรม LabVIEW ซ" งเปนการเขยนโปรแกรมโดยใชรปในการพฒนา (Graphical-based Programming) เพ"อใชในการจาลองสญญาณและวเคราะหสญญาณในเชงดจตอลได คณะผจดทาหวงวา คมอฉบบน�จะทาใหผเรยนไดมความเขาใจในเน�อหาทางทฤษฎไดดข�น และมความรสกสนกกบการทดลอง หากพบขอผดพลาด หรอมขอแนะนาเพ"อปรบปรงประการใด กรณาแจงตออาจารยผสอนจกเปนพระคณอยางสง
หองปฏบตการอเลกทรอนกสข�นสง
ภาควชาวศวกรรมอเลกทรอนกส มหาวทยาลยเทคโนโลยมหานคร
EEET0485 Digital Signal Processing Electronic Engineering Department
II Mahanakorn University of Technology
สารบญ
หนา การทดลองท" 1
Introduction to LabVIEW การทดลองท" 2
การสรางและวเคราะหสญญาณ I การทดลองท" 3
การสรางและวเคราะหสญญาณ II การทดลองท" 4
การชกตวอยางสญญาณ (Sampling) การทดลองท" 5
การแปลง DTFT/ DFT การทดลองท" 6
การแปลง FFT การทดลองท" 7
ตวกรอง FIR การทดลองท" 8
การประยกตใชงานตวกรองแบบ FIR การทดลองท" 9
การประยกตใชงานตวกรองแบบ FIR และ IIR การทดลองท" 10
การประมวลผลสญญาณหลายอตราชกตวอยาง การทดลองท" 11
Fixed-point Experiments with LabVIEW
การทดลองท" 12 ดทเธอร (Dither)
การทดลองท" 13 Noise Shaping with LabVIEW I
การทดลองท" 14 Noise Shaping with LabVIEW II
1
19
37
42
55
59
65
69
72
80
85
104
121
138
EEET0485 Digital Signal Processing Electronic Engineering Department
1 Mahanakorn University of Technology
1. Introduction to LabVIEW
บทนา
การประมวลผลสญญาณดจตอล หรอ Digital Signal Processing (DSP) จะเปนการศกษาความเขาใจทางทฤษฏและโครงสรางการทางานของหลกการตางๆ ซ< งจะอยบนพAนฐานทางคณตศาสตร เพ<อจะนาไปสการสรางอลกอรธมเพ<อประยกตใชงานไดอยางมประสทธภาพ โดยในสวนของงาน DSP นAนจะอยในรปแบบของการใชเปนตวประมวลผล เชนงานเกบขอมล (Data Acquisition), การวเคราะหสญญาณทAงทางเวลาและความถ< หรอการดงลกษณะสาคญของขอมล (Feature Extraction), การเขารหส (coding) และถอดรหส (decoding), การลดขนาดขอมล (Compression) เปนตน โดยซอฟทแวรท<จะสามารถ Simulation และสามารถแสดงผลทางหนาจอท<สวยงาม และมเมนโตตอบกบผใชท<เรยกวา Human Machine Interface หรอ HMI ท<สะดวกและเขาใจงาย อกทAงมฟงกชนทาง DSP ท<หลากหลาย ซอฟทแวรนAนคอ LabVIEW โดยมขอดท<สามารถนามาใชงานทางดาน DSP ไดดงนA 1. มหนาจอ User Interface ท<งายตอการพฒนาโปรแกรม LabVIEW จะมหนาจอท<ทาหนาท<ส<อสารกบผใชงานโดยเฉพาะ หนาจอนA เรยกวา Front
Panel โดยมกลมอปกรณท<เรยกวา “Control” ใหเลอกใช 2. การเขยนโปแกรมเปนกราฟฟกและดบกงาย การเขยนโปรแกรมใน LabVIEW จะเปนแบบกราฟฟก ในรปของบลอกไดอะแกรมและสญลกษณ โดยฟงกชนบลอกจะทางานบนหนาจอ Block Diagram ซ< งหนาจอนA จะทางานรวมกบหนาจอ Front panel อยตลอดเวลา การทางานของโปรแกรม LabVIEW ใชหลกการท<เรยกวา การ
ไหลของขอมลหรอ “Data Flow Programming” ทาใหการดบกโปรแกรมงาย เพราะแตละขAนตอนการทางานจะแสดงเปนเสนทางเดนของลกบอลสแดงว<งไปตามเสนทางเช<อมตอระหวางบลอกเพ<อแสดงการไหลของขอมลในขณะนAน 3. การเช<อมตอกบอปกรณไดหลากหลาย LabVIEW สามารถ “คย” กบอปกรณหลายชนด มฟงกชนบลอกท<ใหเลอกใชงานกบโปรโตคอลและมาตราฐานตางๆ เชน Serial, Parallel, GPIB, TCP/IP และ VISA กบ VXI รวมถงการใชสภาพแวดลอมท<เปน .NET และระบบฐานขอมล (Database) ดวย
EEET0485 Digital Signal Processing Electronic Engineering Department
2 Mahanakorn University of Technology
4. มเคร<องมอชวยดาน DSP ใน LabVIEW ม Toolset เก<ยวกบ DSP มากมายเชน บลอกการสรางสญญาณ, บลอกการทา Convolution, FFT, Digital Filter Design, Linear Algebra, Wavelet Analysis, Joint Time-Frequency Analysis ทาใหงานท<เก<ยวกบการวเคราะหสญญาณนAนเปนไปไดอยางสะดวกรวดเรว ดวยคณสมบตขางตน ทาใหเราสามารถใช LabVIEW มาพฒนางาน DSP ท<ใชไดจรง ดงตวอยางในรปท< 1.1 ซ< งเปนตวอยางงานทาง DSP ท<ทาการสรางและวเคราะหสญญาณท<มหนาจอ HMI ท<สมบรณและสวยงาม
รปท* 1.1 ตวอยางของงาน DSP ท<พฒนาดวย LabVIEW
เร*มตนใชงาน LabVIEW
เร<มตนใชงาน LabVIEW 8.2 เราจะพบหนาจอดงในรปท< 1.2 ซ< งเม<อเสรจการ initialization แลว จะปรากฏหนาจอ Getting started ดงรปท< 1.3
EEET0485 Digital Signal Processing Electronic Engineering Department
3 Mahanakorn University of Technology
รปท* 1.2 หนาจอของ LabVIEW 8.2
รปท* 1.3 หนาจอ Getting Started
ใน LabVIEW ตAงแตเวอรชน 8.0 เปนตนมา จะสามารถคอนฟกใหสภาพแวดลอมในการทางานเปนแบบ Project ซ< งเหมาะกบการทางานพฒนางานแอพพลเคชนขนาดใหญท<มไฟลท<เก<ยวของจานวนมาก ซ< งเปนรปแบบสภาพแวดลอมแบบเดยวกบ Visual Basic, Visual C++ หรอ
EEET0485 Digital Signal Processing Electronic Engineering Department
4 Mahanakorn University of Technology
Visual อ<นๆ แตในการทดลองนA เราจะเลอกการทางานในรปแบบของ “เคร*องมอเสมอน” หรอ “Virtual Instrument” หรอ VI โดยจากหนาจอ Getting Started เม<อเลอก New >> Blank VI จะปรากฏจอ Front Panel และ Block Diagram ของ VI ดงแสดงในรปท< 1.4
รปท* 1.4 หนาจอ Front Panel และชด Controls
Front Panel นAนเปนเสมอนหนาตางท<โตตอบกบผใชงานผานทางชดอปกรณท<มใหเลอกหลากหลาย เชน อปกรณคอนโทรล (Controls) เชน ลกบด, สวทซ, สไลเดอร, เรดโอบทตอน เปนตวรบคาจากผใช หรอ อปกรณแสดงคา (Indicators) เชน หลอดไฟ, มเตอร, เกจ, text box, กราฟ, ชารท และอ<นๆ หนาจอท<ปรากฏขAนมาดวยคอ หนาตาง Block Diagram ดงแสดงในรปท< 1.5 นAนเปนหนาจอท<เราจะใชเขยนโปรแกรม โดยอาศยบลอกการทางานตางๆ ท<เรยกวาฟงกชน ซ< งถกแบงออกเปนกลมๆ ตามลกษณะของการทางาน เชน กลมโปรแกรมม<ง ท< มกลมยอยเชน บลอกคณตศาสตร เชน บวก, ลบ, คณ, หาร กลมบลอกบลน กลมบลอกเปรยบเทยบ และกลมบลอกโครงสรางโปรแกรม เชน การ For loop, While loop หรอ กลมบลอก Signal Processing ท<เก<ยวของกบงาน DSP
EEET0485 Digital Signal Processing Electronic Engineering Department
5 Mahanakorn University of Technology
รปท* 1.5 หนาจอ Block Diagram และชด Function
การเลอกดอปกรณทAงคอลโทรล, อนดเคเตอร หรอ ฟงกชนบลอก วามอะไรบางนAน ทาไดงายๆ เพยงคลกเมาสปมขวาเทานAน และเม<อพบอปกรณท<ตองการแลว กเพยงแคลากมาวางไวในหนาจอท<ตองการเทานAนกสามารถใชงานไดทนท ในการทางาน DSP ดวย LabVIEW นAน ไดมเคร<องมอท<รองรบการทางานดาน DSP ไวอยางครบครนในรปแบบของเคร<องมอชวยหรอ Tools ซ< งอยในบลอกฟงกชน Signal Processing ซ< งรวบรวมฟงกชนท<จาเปนทAงในดานโดเมนเวลา เชน Waveform generation ตA งแตสญญาณมาตราฐานไซน จนกระท<งสญญาณท<เปนมลตโทน (multitone), Waveform Measure เชน การวด
EEET0485 Digital Signal Processing Electronic Engineering Department
6 Mahanakorn University of Technology
คาเฉล<ย คาทรานเชA ยนตของรปคล<น และฟงกชนในโดเมนความถ< เชน การหาเพาเวอรสเปคตรม, การแปลงฟรเยร การทาตวกรองดจตอลแบบตางๆ ตวอยางแสดงในรปท< 1.6
รปท* 1.6 ฟงกชนบลอก Signal Processing
แตในการทดลองนA เรามาลองดการใชงาน LabVIEW เพ<องานทางดาน DSP ดวยตวอยางการทางานแบบงายๆ กนกอน คอการทางาน arithmetic ของตวเลขสองจานวน
การทดลองท* 1.1 การสราง VI เบ@องตน ในตวอยางงายๆ เบAองตน สาหรบการใชงาน LabVIEW กคอตองการ VI ท<ทาหนาท<บวกเลขสองจานวนคอ A, B พรอมทAงแสดงผลลพธ C ออกทางหนาจอดวย ดงนAนส<งท<เราตองการกคอ VI ท<ทาสมการ A+B = C การรบคาตวเลขจากหนาจอจะตองใช Control ท<เปน Numeric สวนการแสดงผลจะตองใช
อนดเคเตอรท<เปน Numeric เชนกน โดยเราเลอกตวคอนโทรลแบบ Numeric คอ จาก
Numeric >> Numeric Control แสดงดงรปท< 1.7 เม<อวาง ลงใน Front panel แลวจะ
ปรากฏฟงกชนบลอก ในหนาจอบลอกไดอะแกรม ดงรปท< 1.8
EEET0485 Digital Signal Processing Electronic Engineering Department
7 Mahanakorn University of Technology
รปท* 1.7 Numeric Control จาก Controls
รปท* 1.8 Front panel เม<อวาง Numeric Control และฟงกชนบลอกในหนาจอ Block Diagram
EEET0485 Digital Signal Processing Electronic Engineering Department
8 Mahanakorn University of Technology
จากนAนทาซA าอกครA งสาหรบ Numeric Control อกหน< งตวสาหรบตวแปร B แตสาหรบผลลพธ C
นAนเราจะใชอนดเคเตอร โดยเลอกเปนบลอก หลงจากนAนกทาการเปล<ยน label ของทAง Numeric Control และ Indicator ใหเปนตวอกษรท<มความหมายเชน A, B และ C เพ<อท<โปรแกรมจะทางานใหเปนไปตามสมการ A + B = C ซ< งทาไดโดยการคลกท< label แลวเปล<ยนเปนตวอกษรท<ตองการ
รปท* 1.9 Numeric Control และ Indicator
ตอไปกเลอกฟงกชนการบวก ไดจาก Function >> Numeric >> Add
รปท* 1.10 ฟงกชน Add จาก Programming
EEET0485 Digital Signal Processing Electronic Engineering Department
9 Mahanakorn University of Technology
จากนAนนาฟงกชน ไปวางไวในหนาจอบลอกไดอะแกรม ซ< งจะเปนสวนของการเขยนโปรแกรมของเรา จากนAนทาการลากสายเช<อมตอระหวางบลอกทAงหมด ดงแสดงในรปท< 1.11
รปท* 1.11 หนาจอ Block Diagram เม<อเช<อมตอสายระหวางบลอก
จะได VI ท<เสรจสมบรณแลว โดย VI ท<ไดนA คอโปรแกรมท<ทาหนาท<บวก A และ B เพ<อจะ
ไดคา ผลลพธเปน C การรนโปรแกรมกเพยงคลกปม Run หรอ ระบบกจะสามารถทาการบวกให โดยผใชสามารถเปล<ยนแปลงคาของ A และ B ไดจากคอนโทรล A และ B ซ< งสามารถใสคาลงในชองไดโดยตรงหรอ การกดเล<อนคาจากปมลกศรจากตวคอนโทรล จากนAน save โดยใชช<อโปรแกรมวา “simple.vi” โดยในหนาจอ Front panel นAนเราสามารถตกแตงเพ<มเตม เพ<อใหงายแกการใชงานมากขAน
รปท* 1.12 หนาจอ “simple.vi” ท<ตกแตงเพ<อใหเขาใจไดงาย
การรนโปรแกรมสามารถทาไดโดยกดปมไอคอน หรอ กด Ctrl + R โดยเราสามารถทดลองรน “simple.vi” ไดทนท พรอมกบทดลองเปล<ยนคาของ A และ B เพ<อดผลลพธ C
EEET0485 Digital Signal Processing Electronic Engineering Department
10 Mahanakorn University of Technology
ขณะโปรแกรมกาลงรนอย ไอคอน จะเปล<ยนรปรางเปน และหากตองการใหหยด
การรน กจะตองคลกปม STOP ( ) แตตอนนAการรนโปรแกรมจะเกดขAนเพยงครA งเดยว หรอรอบ
เดยว หากตองการใหโปรแกรมสามารถรนไดตอเน<อง กจะตองเลอก โปรแกรมจะรนตอเน<องไดหากมการเขยนตวควบคมการรน เชนการใส While loop ดงแสดงในหวขอถดไป
การทดลองท* 1.2 การเพ*ม While loop หากตองการใหโปรแกรมสามารถรนไดอยางตอเน<องนAน บลอกท<ทาหนาท<คอนโทรลการ
รน โดยสวนมากเราใช While loop ซ< งมความหมายวาเปนการ “รนโปรแกรมไปจนกวาจะพบ
เง*อนไขการหยดท*ถกตอง” เง<อนไขการหยดท<วาอาจเกดจากการทางานของโปรแกรมเอง หรอจากการรบคาส<งจากผใชงาน เชน การกดปมยกเลกการทางาน
บลอก While loop ใน LabVIEW จะใชไอคอนเปน จาก Programming >>
Structure >> While Loop ในโปรแกรมท<เปน Text ทAงหลายจะใช “While” และ “end” ครอบสวนของโปรแกรมท<ตองการ หรอ While [เง<อนไข] [โปรแกรม] end วธการใช While loop ใน
LabVIEW กคอการใชบลอก ครอบลงไปในสวนบลอกท<เราตองการ เชนเดยวกบในการ
เขยนโปรแกรมแบบ Text น<นเอง ดวธการใส ใน VI ไดจากรปท< 1.14
รปท* 1.13 การเลอก While loop
EEET0485 Digital Signal Processing Electronic Engineering Department
11 Mahanakorn University of Technology
รปท* 1.14 การใส While loop
จากรปสงเกตวา หากไมใสเง<อนไขการหยดทางานใหกบ While loop แลว จะเกดความ
ผดพลาดหรอ Error ขAน ท<แสดงดวยไอคอน ซ< งหากคลกเขาไปด LabVIEW จะแสดงเหตผลของ Error ท<เกดขAน โดย Error ท<เกดขAนในตอนนA เกดเน<องจากตวแสดงเง<อนไข Loop condition ท<แสดงดวย นAน ยงไมไดรบการกาหนดเง<อนไข หนาจอแสดง Error แสดงในรปท< 1.15 การแกไข Error นAกเพยงแคใส Control เพ<อแสดงเง<อนไขการทา While loop ซ< งเราเลอกเปนปมกดตดปลอยดบช<อ Stop ( ) ท<ไดมาจาก Control >> Boolean >> Stop Button ดงในรปท< 1.16 จากนAนเรากจะลากบลอก ซ< งเปน Boolean นAนลงมาในสวนของ Front panel แลวลากสายใหเช<อมตอกบเง<อนไขยกเลกการทา While loop
EEET0485 Digital Signal Processing Electronic Engineering Department
12 Mahanakorn University of Technology
รปท* 1.15 หนาจอแสดงรายการ Error
รปท* 1.16 Stop button
EEET0485 Digital Signal Processing Electronic Engineering Department
13 Mahanakorn University of Technology
รปท* 1.17 simple.vi ท<ม while loop ท<มเง<อนไขการหยด
เทานA เรากจะไดโปรแกรมการบวกท<สามารถรน เรยบรอยแลว เม<อกดปม กจะปรากฏการรน
ตอเน<อง ขAน จนกวาจะยกเลกดวยการกดปมยกเลก หรอ stop บนเมน ในรปท< 1.17 จะปรากฏวามบลอกการตAงเวลาการทางานใน While loop ดวย โดยสญลกษณ
ของฟงกชนบลอกเปน โดยไดมาจาก Function >> Programming >> Timmimg >> Wait
until next multiple สาเหตท<ตองใชบลอกตAงเวลากคอวา ใน While loop นAนจะทางานตอเน<องจาก loop เกาไป loop ถดไปโดยไมมชวงหยดพก ซ< งจะทาใหโปรแกรมนAจองเวลาของ CPU เตมท<จนไมมเวลาไปทางานอ<นๆ ไดเลย ดงนAนจงควรจะมสวนของการตAงคาหนวงเวลาของการวนแตละ loop ดวย โดยการตAงเวลาทาไดจาก การใสอนพทเปนคาคงท<ซ< งมบลอกเปน โดยมหนวย มลลวนาท
ซ< งเขยนเปนชดบลอกท<เปนมาตราฐานเชน นAนหมายความวา เราตAงคาใหมการรอเปนเวลา 200 มลลวนาท กอนท< loop ถดไปจะเร<มทางาน
EEET0485 Digital Signal Processing Electronic Engineering Department
14 Mahanakorn University of Technology
การทดลองท* 1.3 การเพ*มตวเลอกดวย Case structure จากโปรแกรม simple.vi สามารถทา operation ทางคณตศาสตร ไดมากกวาเพยงแคการบวก กคอการลบ (subtract) และการคณ (multiply) ดวย โดยผใชงาน หรอ user สามารถปรบเปล<ยน operation ท<ตองการ ระหวางการบวก การลบ การคณ ไดจากหนาจอโดยตรง การกาหนดท<ใหผใชสามารถเลอกวาจะใช operation ใดนAน กคอการท<ตองมกรณการเลอกไวดวย ซ< งในท<นA เราใชการเลอก “กรณการทางาน” หรอ Case Structure ซ< งเปนตวเลอก วธการ operation ระหวาง A และ B
ใน LabVIEW จะใชตว Case Structure การเลอกใช กทาเชนเดยวกบการทา While loop โดยเลอกให Case Structure นAครอบโปรแกรมสวนท<ตองการ ซ< งในท<นA กคอเฉพาะสวนฟงกชนการบวก ซ< งเม<อเพ<ม Case Structure แลวเราจะได VI ท<มลกษณะดงรปท< 1.18 สงเกตวา Case Structure นAนมการรบคาเง<อนไขผานทางจดเขาของ Case Structure ซ< งแสดงดวยเคร<องหมาย
คาถาม โดยคาดฟอลตจะเปน Boolean ซ< งหมายถงคา True-False แตสามารถเปล<ยนให Case Structure นA รบเง<อนไขเปนแบบหมายเลข เชน 0, 1, 2... ได ขAนกบชนดของ Control
รปท* 1.18 การเพ<ม Case Structure
EEET0485 Digital Signal Processing Electronic Engineering Department
15 Mahanakorn University of Technology
เน<องจากโครงสรางของ Control ท<เราใชเปนการเลอก การบวก คณ และลบ เราจะใชตวเลอกท<
เรยกวา Text ring box ซ< งใหการตอบสนองตอการเลอก Ring เปน Numeric จะไดจาก Control >> Moderns >> Ring & Enum >> Text Ring
รปท* 1.19 หนาจอเม<อใส Text ring แสดง operation
ซ< งเม<อเราคลกขวาท< Text Ring และเลอก Edit Items เพ<อใสคาแทนความหมายของ Ring โดยการกาหนดคาตวเลข (value) เปน 0, 1 และ 2 สาหรบ Add, Multiply และ Subtract ตามลาดบ เพ<อนาไปเปนเง<อนไขการทางานของ Case Structure การกาหนดพารามเตอรแสดงในรปท< 1.20 เม<อกาหนด
พารามเตอรให Ring แลว การลากสายจากบลอก ท<ใหเอาทพตเปน Numeric เขาท< Case
Structure ณ จด จะเปล<ยนเง<อนไขการรบคาของ Case Structure จาก Boolean เปน Numeric โดยอตโนมตดงแสดงในรปท< 1.21
EEET0485 Digital Signal Processing Electronic Engineering Department
16 Mahanakorn University of Technology
รปท* 1.20 การกาหนดพารามเตอรของ Text Ring
รปท* 1.21 การเช<อมสายของ Text ring เขากบ Case structure
สงเกตวา Add เปน case “1” ซ< งเราสามารถจดโครงสราง case นA ใหเปน case “0” หรอ
“default” ไดโดยการคลกขวาท< case แลวใชเมน Make this case 0, default
EEET0485 Digital Signal Processing Electronic Engineering Department
17 Mahanakorn University of Technology
ทาการเพ<มสวนท<เปนกรณของการคณ และลบดวย แตเน<องจากวาในขณะนA Case Structure มอยเพยง 2 กรณสาหรบคาอนพตท<เปน 0 (Add) และ 1 (Multiply) เทานAน ตองทาการเพ<มอก1 กรณสาหรบการรบคา 2 (Subtract) ดวยการคลกขวาท< Case แลวเลอกเมน Add Case After เทานAนกจะได Case เพ<มขAนมาเพ<อรองรบกรณของการลบแลว แตเม<อคลกดใน Case ท< 1 และ 2 นAน จะพบวายงไมมการสราง operation ใดๆ เลย แตเราสามารถสราง operation รองรบในทAงสอง Case นA ไดงายๆ โดยการเพ<มบลอก และ สาหรบ Case 1 และ Case 2 ตามลาดบ จากนAนทาการเช<อมโยงสายอนพตและเอาทพตเชนเดยวกบท<ทากบบลอกบวก ดงรปท< 1.22
(a) (b)
รปท* 1.22 (a) Case 1 สาหรบการ Multiply (b) Case 2 สาหรบการ Subtract ทาการตกแตงหนาตาของโปรแกรมใหดสวยงาม ดวยเคร< องมอในชด Control >>
Decoration ตามใจชอบ
EEET0485 Digital Signal Processing Electronic Engineering Department
18 Mahanakorn University of Technology
รปท* 1.23 โปรแกรม “simple.vi” ท<เสรจสมบรณ
สรป
ในการทดลองนA เราพบวา LabVIEW นAนเปนชดพฒนาแอพพลเคชน ท<มความสามารถในการแสดงหนาจอท<สวยงาม มเมนการโตตอบกบผใช HMI ท<สะดวกและเขาใจงาย อกทAงมฟงกชนทาง DSP อยครบครน สวนตวอยางใน Lab นA เราใช LabVIEW สรางโปรแกรมพAนฐานอยางงายๆ เพ<อใหเหนวธการใชงานเพ<อเปนพAนฐานสาหรบการใช LabVIEW ในการทางาน DSP ท<ซบซอนมากขAนในตอนตอๆไป เอกสารอางอง
1. เอกสาร “Getting Started with LabVIEW” สามารถดาวนโหลดไดจาก http://www.ni.com/pdf/manuals/373427a.pdf
EEET0485 Digital Signal Processing Electronic Engineering Department
19 Mahanakorn University of Technology
2. การสรางและวเคราะหสญญาณ I
วตถประสงค
1. เพ�อใหเขาใจกระบวนการสรางและวเคราะหสญญาณแบบไมตอเน�องทางเวลา 2. เพ�อใหสามารถประยกตการสรางและวเคราะหสญญาณแบบไมตอเน�องทางเวลาในการใช
งานจรงได
การสรางและการแสดงผลสญญาณไซน
ส�งสาคญท�สดในเร�องการประมวลผลสญญาณ กคอ “สญญาณ” น�นเอง และสญญาณท�มความเปนพ2นฐานมากท�สดกคอ สญญาณไซน (Sinusoidal Signal) LabVIEW Signal Processing VIs มบลอกสาหรบทาหนาท�สรางสญญาณไซนถง 5 บลอก แตละบลอกทาหนาท�คลายๆกน แตมความแตกตางกนบางในรายละเอยด บลอกท2งหมดแสดงในรปท� 2.1
สญญาณออกเปน Signal Out สญญาณออกเปน Waveform Out
รปท2 2.1 บลอกท�ทาหนาท�สรางสญญาณไซนใน LabVIEW บลอกตางๆ เหลาน2 สามารถแบงออกตามลกษณะของสญญาณท�ออกจากบลอกไดสองประเภทคอ Signal Out และ Waveform Out ความแตกตางของขอมลท�มาจาก Signal Out และ Waveform Out มดงน2 คอ สญญาณในแบบ Signal Out น2นใหคาเฉพาะขอมลของสญญาณเปนคาเลขดบเบ2ล (Double) เปนแบบอารเรย (Array) แบบ 1 มต สวนแบบท�สองคอ Waveform Out น2น
EEET0485 Digital Signal Processing Electronic Engineering Department
20 Mahanakorn University of Technology
จะใหขอมลของสญญาณซ� งเปนขอมลผสมตางชนดกน เชน ขอมลสญญาณ, เวลาเร�มตน และระยะเวลาในการแซมปล2งของสญญาณ รวมอยในอารเรยแบบ 1 มต ท�มรปแบบเฉพาะท�เรยกวา คลสเตอร (cluster) เราสามารถสงเกตความแตกตางของขอมลแบบดบเบ2ลและแบบคลสเตอรไดจากรปรางและสของเสน โดยขอมลท�เปน Signal จะเปน “สสม” ในขณะท�สญญาณแบบ Waveform จะเปน “สน2าตาล” และสามารถดจากการเปรยบเทยบตารางในรปท� 2.2
บลอกไดอะแกรม ชนดของขอมลออก ฟรอนพาเนล
ขอมลเปนอารเรยแบบหน� งมต (1-D array) มเสนเปนสสม
ใหสญญาณออกเปนคลสเตอร (cluster) ของขอมลเสนเปนสน2าตาล
รปท2 2.2 เปรยบเทยบลกษณะสญญาณจากบลอก sine wave.vi และ waveform.vi
สรางสญญาณไซนดวย Signal Wave VI
ในตวอยางน2 จะใชบลอกท�สรางสญญาณออกมาในรปแบบ Signal Out จากชดเคร�องมอสาหรบงานดาน Signal Processing ใน LabVIEW จาก Function >> Signal Processing
>> Signal Generation >> Sine Wave.vi
EEET0485 Digital Signal Processing Electronic Engineering Department
21 Mahanakorn University of Technology
รปท2 2.3 ไดเรกทรอรของ Signal Generation
คลกเลอก (Sine Wave) แลวนาไปวางไวในโปรแกรมซ� งเปนหนาตางบลอกไดอะแกรม(Block Diagram) และสวนแสดงผลในหนาตางของฟรอนพาเนล (Front Panel) ดวย โดยใชบลอก
(Waveform Graph) เปนตวแสดงผลโดยเลอกจาก Modern >> Graph >>
Waveform Graph ในหนาตางฟรอนพาเนล ทาการเช�อมตอสายระหวางบลอก sine wave และ waveform graph และส�ง Run จะปรากฏสญญาณไซนท�ฟรอนทพาเนล ดงรปท� 2.4
รปท2 2.4 แสดงการสรางและแสดงสญญาณไซน ดวยบลอก Sine wave และบลอก Waveform graph
EEET0485 Digital Signal Processing Electronic Engineering Department
22 Mahanakorn University of Technology
จากรป กราฟท�ไดซ� งเปนสญญาณไซน ถกแสดงไว 1 รปคล�น โดยมตาแหนงสดทายท� 128 ซ� งเปนจานวนแซมเป2 ลของสญญาณ (Sample) ท� LabVIEW กาหนดไวต2งแตเร�มตนหรอคา ดฟอลท (Default) เชนเดยวกบคาขนาด (Amplitude) ของสญญาณ ท�กาหนดไวใหเปน 1 มเฟส (phase) เปน 0 และจานวนรปคล�น (cycles) เปน 1 ซ� งเราสามารถหาคาความถ� (frequency) ของสญญาณน2ไดจาก อตราสวนของจานวนไซเคลตอแซมเป2 ล โดยคาแซมเป2 ลจากรปคล�นเปน 128 แซมเป2 ล ตอหน� งรปคล�น หรอคาความถ�ท�ไดเทากบ 1/128 = 7.8125E-3 (f = 0.0078125 Hz) ทาการเปล�ยนแปลงคาพารามเตอรตางๆของบลอก sine wave เชน จานวนแซมเป2 ลของกราฟ หรอขนาดของสญญาณ หรอเฟส สามารถทาไดโดยการวางเมาสไวท�ตาแหนงเทอรมนลของ
sample ของบลอก sine wave กจะปรากฏขอความวา “samples” จากน2นใหคลกขวาท�เทอรมนลน2น แลวเลอก Create >> Control กจะมคอรโทรลแบบตวเลข (Numeric Control) มคา
128 บนฟรอนทพาเนลข2 นมา ทา เ ชนเดยวกนกบเทอรมนลของ “amplitude”
และ “frequency” ท�หนาตางฟรอนทพาเนล หากตองการเปล�ยนรปแบบของการคอนโทรลและอนดเคเตอรเปนแบบอ�นๆท�แตกตางกน ทาไดโดยคลกขวาท�ตวคอนโทรลน2นแลวเลอกเมน Replace ซ� งจะปรากฏหนาจอของคอนโทรลตางๆ ใหเลอก เชนจากคอนโทรลแบบเดมเปนแบบตวเลข
ตองการใหเปนแบบปมหมน (Knob) และเปล�ยนคาความถ�ใหมต2งแต 0 – 127 แซมเป2 ลตอรปคล�น
EEET0485 Digital Signal Processing Electronic Engineering Department
23 Mahanakorn University of Technology
รปท2 2.5 การเปล�ยนรปรางของคอนโทรลโดยใชเมน Replace
ทาการเลอกคาคอนโทรลตางๆใหกบ sine wave VI ดงแสดงในรปท� 2.6
รปท2 2.6 ฟรอนพาเนลแสดงสวน HMI ของโปรแกรมสรางสญญาณไซน
EEET0485 Digital Signal Processing Electronic Engineering Department
24 Mahanakorn University of Technology
ตองการใหโปรแกรมสามารถรนไดอยางตอเน�อง โดยเราจะใช เพ�อสรางลปการ
ทางานจนกวาจะมการส�งยกเลกโปรแกรมดวยการส�งงานผานทางคอนโทรล (stop) และทา
การหนวงเวลาในการวนแตละรอบของ While loop ดวยการเพ�มบลอก (wait until next ms) ในวงรอบของ While loop โดยใหมการหนวงเปน 100 มลลวนาท ดวยการใชคาคงท� 100 เปน
อนพตของบลอก ดงแสดงในรปท� 2.7
รปท2 2.7 บลอกไดอะแกรมของโปรแกรมสรางสญญาณไซน
ความถ�ของสญญาณ (frequency) ท�สรางจาก Sine wave VI น2นมหนวยเปนจานวนรปคล�น (Cycles) ตอจานวนแซมเป2 ล หรอเปนคาหนวยแบบนอรมลไลซ (Normalized) ของสวนกลบของจานวนแซมเป2 ลใน 1 รปคล�น โดยคาดฟอลทของความถ�เม�อเร�มใชบลอก Sine wave VI คอ 0.0078125 รปคล�นตอแซมเป2 ล ซ� งคาน2ไดมาจากการท�จานวนแซมเป2 ลมคาดฟอลทเทากบ 128 แซมเป2 ลตอ1 รปคล�น ดงน2นเทากบ 1/128 = 0.0078125 รปคล�นตอแซมเป2 ล แตส�งท�เราตองการคอ การแสดงคาของหนวยท�เปน “รปคล�น” แทนท�จะเปน “ รปคล�นตอแซมเป2 ล” เพราะเวลาเราดรปคล�นจากกราฟเราจะเหนจานวนรปคล�นท�แสดง ไมใชสวนกลบของมน ในรปท� 2.8 น2นเปนการเปรยบเทยบใหเหนวา การแปลงหนวยของความถ�ท�แสดงบนคอนโทรล “Frequency” น2นใหเปน “รปคล�น” สามารถทาไดโดยการนาเอาคาจากคอนโทรล “sample” ไปหารคาของคอนโทรล “Frequency” เพ�อใหไดการแสดงหนวยเปน “รปคล�น” ซ� งทาใหไดโครงสรางโปรแกรมดงแสดงในรปท� 2.7 ขางตน
EEET0485 Digital Signal Processing Electronic Engineering Department
25 Mahanakorn University of Technology
โครงสราง VI ความถ2 ผลลพธ
(1/128 = 0.0078125)
รปคล�นตอแซมเป2 ล
รปคล�น
รปท2 2.8 วธการปรบหนวยความถ�จาก “รปคล�นตอแซมเป2 ล” ใหเปน “รปคล�น” สงเกตอกวาในรปท� 2.7 เราเปล�ยนการแสดงไอคอน (Icon) ท2งหมดใหเหลอแตเปน “สญลกษณ” ท�ใชพ2นท�นอยกวา เพราะสญลกษณจะแสดงเฉพาะชนดของขอมล (data type) เทาน2น เชนไอคอน
ท�เปนจานวนแซมเป2 ลน2นถกแทนดวยสญลกษณ ซ� งตวอกษร “I32” กคอชนดของ
ขอมลแบบ 32-bit signed integer numeric และ ไอคอน ถกเปล�ยนเปน โดย “DBL” กคอเลข Double-precision floating-point numeric การเปล�ยนไอคอนเปนสญลกษณน2นกเพ�อประหยดเน2อท�ของโปรแกรมและทาใหอานไดงาย การเปล�ยนไอคอนเปนสญลกษณทาไดโดยคลกเมาสขวาท�ไอคอนท�ตองการ เอาเคร�องหมายถก (�) หนา View As Icon ออก กจะสามารถเปล�ยนไอคอนใหเปนสญลกษณได การเพ2มขอมลตางๆใหกบสญญาณ
สงเกตวาสญญาณท�ออกมาจากบลอก น2นจะมเพยงคาขอมลของสญญาณในลกษณะของอารเรย 1 มตเทาน2น หากตองการเพ�มขอมลอ�นๆ เชนคาเวลา เราอาจจะเลอกใชบลอกสรางสญญาณท�ให Waveform Out เชน Basic Function Generatot.vi และ Sine Waveform.vi หรอเราอาจจะใชบลอกท�ใหขอมลเปน Signal Out และ เพ�มขอมลโดยการใชฟงกชน Build Waveform กได
ตวอยาง การเพ�มขอมลของชวงหางแตละแซมเป2 ลของสญญาณ หรอ dt ใหแกสญญาณท�ไดจาก
บลอก จากรปกราฟท�แสดงในรปท� 2.6 ท�แกน x จะแสดงเปนจานวนแซมเป2 ล ซ� งในท�น2 คอ 128 แซมเป2 ล ซ� งเปนการไมสะดวกเม�อตองแปลงคา 128 แซมเป2 ลใหเปนคาเวลา ซ� งในทางปฎบตแลว การแสดงผลสญญาณจะนยมแสดงคาของแกน x เปนเวลา (time) แกไขโดยการใชบลอกตว
EEET0485 Digital Signal Processing Electronic Engineering Department
26 Mahanakorn University of Technology
สรางสญญาณ Build Waveform ท�ไดมาจาก Waveform >> Build Waveform
โดยสงเกตวาตอนวางบลอกลงไปน2นจะแสดงเพยงแคสญญาณ Y เทาน2น แตเราสามารถเพ�มพารามเตอรท�เก�ยวของเชน ชวงหางแตละแซมเป2 ล (dt) หรอเวลาเร�มตนสญญาณ (t0) ลงไปได โดยคาพารามเตอรน2 รวมเรยกวา แอทรบวต (Attribute) ในการเพ�มแอทรบวตโดยการคลกแลวลากขอบลางของบลอก Build Waveform เพ�อคลกเลอกแอทรบวต dt ดงแสดงในรปท� 2.9 คาของ dt จะใช
หนวยเปนวนาท ดงน2น คอ 1 มลลวนาท สญญาณท�ออกจากตวบลอก จะกลายเปนชนดท�เรยกวา waveform ท�มลกษณะคลายกบท�ไดจากบลอกท�ใชขอมลเปนแบบ waveform ระยะหางของแตละแซมเป2 ลน2นเราสามารถเลอกจากการคลกท� dt
รปท2 2.9 การเพ�มสวนของคาเวลาระยะหางแตละแซมเป2 ล (dt) ใหกบสญญาณ
จากรปท� 2.10 (a) จะเหนการแสดงผลเปนหนวยวนาท โดย 1 แซมเป2 ลจะมคา 0.001 วนาท ดงน2น 1 รปคล�นม 128 แซมเป2 ล มคาเทากบ 128 * 0.001 = 0.128 วนาท ดงแสดงในรปท� 2.10(b)
(a)
EEET0485 Digital Signal Processing Electronic Engineering Department
27 Mahanakorn University of Technology
(b)
รปท2 2.10 บลอกไดอะแกรมและฟรอนทพาเนลของการสรางสญญาณไซนดวยบลอก Sine wave
การแสดงผลหลายสญญาณในหน2งกราฟ
จากเดมท�เราแสดงผลเฉพาะรปคล�นไซน แตถาตองการเพ�มสญญาณในการแสดงข2นอก เชนสญญาณส� เหล�ยม โดยใหแสดงผลอยในกราฟเดยวกนเพ�อเปรยบเทยบ และสามารถเลอกใหแสดงหน� งหรอสองสญญาณพรอมกนไดอก ซ� งมประโยชนมากโดยเฉพาะเม�อเวลาทาฟงกชนการวเคราะหสญญาณ
ทาไดโดยสรางเง�อนไขเพ�อเลอกการทางานใน LabVIEW โดยใช (Case Structure) เพ�อเลอกกรณในการทางานวาจะใหแสดงผลสญญาณไซน หรอไม ดวยการเลอก “case
true” หรอ “case false” โดยจะใชปมคอนโทรล (Button) ซ� งแสดงในโปรแกรมดวย
สวนท�เปนจดตอท�จะลากสญญาณออกมาจาก case เรยกวา Output tunnel
EEET0485 Digital Signal Processing Electronic Engineering Department
28 Mahanakorn University of Technology
(a)
(b)
รปท2 2.11 แสดงบลนท�เปนตวเลอก case วาจะใหแสดงผลสญญาณไซนหรอไม และการใชคา default ใน “case False”
กรณท�เปน “case True” น2นโครงสรางกจะเปนดงรปท� 2.11 (a) สวนกรณท�เปน “case False” แสดงในรปท� 2.11 (b) หากเราไมตองการใหโปรแกรมทางานใดๆ ใน “case False” เชนไมตองการใหมการปรากฏสญญาณใดๆบนกราฟน2น กสามารถปลอย “case False” ใหวางไวกได แตเราตองส�งงานใหโปรแกรมให “case False” มเอาทพตในรปแบบดฟอลทดวย ซ� งทาไดงายๆเพยงคลกขวาท�บรเวณจดตอท�สญญาณออกจากเคทท�เรยกวา Output tunnel เพ�อแสดงเมนและเลอกเมน Use Default If Unwired เพ�อบอกวาเราจะใชคาดฟอลทซ� งเปนคา 0.0 เพราะขอมลขณะน2 เปนแบบ Double-precision
EEET0485 Digital Signal Processing Electronic Engineering Department
29 Mahanakorn University of Technology
รปท2 2.12 ฟรอนพาเนลแสดงการเพ�มปมแสดงผล
จากน2นกเพ�มสญญาณส� เหล�ยม (Square wave) ท�ไดจากบลอก เพ�อแสดงผลบนกราฟเดยวกนกบสญญาณไซน ส�งท�เราตองทาตอกคอ การรวมสญญาณท2งสองเขาดวยกน โดยปกตแลวสญญาณใดๆท�สรางข2 นมาน2น LabVIEW จะมองวาอยในรปของขอมลท�เปนอารเรย (array) ซ� งขอมลชนดน2 ทาใหเราสามารถจะใชบลอก (Build Array) เปนตวรวมขอมลได และการแปลงขอมลใหอยในรปแบบอารเรย มขอดคอ ทาใหใชประโยชนจากบลอกอารเรยของ LabVIEW ไดอกหลายฟงกชน ไมวาจะเปนการหาคาสงสด ต�าสดของอารเรย (Max-Min) หรอการสรางคาเทรชโฮลด (Threshold) ความสะดวกของการสรางอารเรยใน LabVIEW ทาใหเราสามารถทาการจดการกบสญญาณไดอยางหลากหลาย
EEET0485 Digital Signal Processing Electronic Engineering Department
30 Mahanakorn University of Technology
(a)
(b)
รปท2 2.13 บลอกไดอะแกรมและฟรอนทพาเนลแสดงการสรางสญญาณไซนและส�เหล�ยม จดการรปแบบหนาตางท�ฟรอนทพาเนล ในสวนของการคอนโทรลตางๆใหดสวยงาม
EEET0485 Digital Signal Processing Electronic Engineering Department
31 Mahanakorn University of Technology
แอลเอส (Alias)
จากการทดลองขางตน เม�อเราทาการหมนปรบความถ�ของสญญาณเพ�มข2นเปน 64 หรอมากกวา เม2อปรบใหความถ2เพ2มขbน ความถ2ของสญญาณมขนาดลดลง ซ� งดไดจากจานวนแซมเป2 ลท�มากข2นตอรปคล�น ย�งเพ�มความถ�จาก 64 จนเขาใกล 128 (ซ� งเปนความถ�แซมปล2ง)น2น ความถ�ของสญญาณกย�งลดลงเร�อยๆ หรอ จานวนแซมเป2 ลตอรปคล�นมากข2นเร�อยๆ หรอเสมอนวาเกดการพบ
กลบดานของสเปกตรม เหตการณท�เกดข2นน2 เรยกวา แอลเอส (Alias) ทฤษฏการสมสญญาณของไนควสต (Nyquist sampling theorem) น2นบอกวา สญญาณท�ถก
สมน2น หากตองการใหกคนกลบมาใชงานไดตองมความถ2ไมเกนคร2งหน2งของความถ2แซมปลbง มฉะน2นจะทาใหเกดแอลเอสข2น และท� ณ ความถ�ท�เปนคร� งหน�งของความถ�แซมปล2งน2นคอ ความถ�ไนควสต (Nyquist frequency) ดงน2น ในกรณน2ความถ�แซมปล2งเปน 128 ดงน2น 0.5 เทาของความถ�แซมปล2ง หรอความถ�ไนควสตจงเปน 64
เราสามารถใชบลอกการวเคราะหสญญาณซ� งใน LabVIEW มอยมากมาย เพ�อดสเปคตรม (spectrum) ของสญญาณแอลเอส โดยบลอกท�ถอเปนหลกกคอบลอกการวเคราะหสเปคตรม ซ� งใชหลกการการแปลงฟรเยรแบบเรว (Fast Fourier Transform) หรอเรยกยอวา FFT ในท�น2 เราจะมาดกนวา เราจะใชการวเคราะหสญญาณน2 ชวยในการหาคาของแอลเอสไดอยางไร
ท�หนาตางบลอกไดอะแกรมเลอกท�ฟงกชนของ Signal Processing เลอกบลอกสเปคตรม
ในน2นจะมโครงสรางของการวเคราะหสเปคตรมแบบตางๆ เลอกใชบลอก หรอ Power Spectrum ท�ใชหลกการของ FFT และแสดงสเปคตรมเปนแบบสองดาน (Two-sided) สงเกตวาในกลมของบลอกสเปคตรมน2นมบลอกการคานวณสเปคตรมท�คลายกบ Power Spectrum
กคอแบบ (Auto Power Spectrum) ดวยซ� งใหผลคานวณแบบสเปคตรมดานเดยว (One-sided) คอ จากศนยถงความถ�ไนควสต แตส�งท�เราตองการกคอ การแสดงสเปคตรมแบบสองดาน เพ�อจะไดแสดงการเกดแอลเอสใหเหนไดชดเจน กคอจะใชบลอก Power Spectrum
เร�มจากการนาเอาบลอก ไปวางในสวนโปรแกรมของ “เคส true” และลาก
สายเช�อมตอเขากบสญญาณเอาทพตจากบลอกไซน และจดการทาใหสวนของ Use Default If Unwired หรอการเลอกท�จะใชการออกแบบใชเปนคาดฟอลลทสาหรบกรณ “เคส false” จากน2นลากสายออกจากเคสผานทาง Output tunnel เพ�อการแสดงผลดวยบลอกกราฟ ท�มช�อวา “Power Spectrum” ดงรปท� 2.14
EEET0485 Digital Signal Processing Electronic Engineering Department
32 Mahanakorn University of Technology
รปท2 2.14 การเพ�มสวนวเคราะหสเปคตรมดวย Power Spectrum
และทาเชนเดยวกนกบสญญาณส�เหล�ยม หลงจากน2นใชอารเรยในการรวมสญญาณเพ�อแสดงผลดงรปท� 2.15
(a)
(b)
รปท2 2.15 การทางานของ Power Spectrum ของสญญาณไซนและส�เหล�ยม
EEET0485 Digital Signal Processing Electronic Engineering Department
33 Mahanakorn University of Technology
สเปคตรมของสญญาณท�เปนไซนน2นจะแสดงใหเหนสองยอดความถ� คอ ความถ�ดานต�ากวาคร� งหน� งของความถ� สมและดานสงกวา ในขณะท�สญญาณแบบส� เหล�ยมน2นจะมหลายยอดความถ� โดยแตละความถ�จะเปน ความถ2ท2เปนเลขค2 1, 3, 5, 7,... เทา ของความถ2หลก หรอท2เรยกวา
ฮารโมนกเลขค2 (Odd Harmonics) สงเกตวาการแสดงผลจะเปนลกษณะของสเปคตรมท�มสองดาน คาความถ�ของการแปลงสเปคตรมจะเทากบจานวนแซมเป2 ลของการแสดงผลรปคล�น ความถ�แซมปล2งซ� งในท�น2 คอ 128 ถาหากถอวาความถ� 128 น2นเปนความถ�นอรมลไลซ (Normalized frequency) แลวคอจะแปลงคร� งหน�งของความถ�จะเรยกวาเปน ไนควสท เม�อปรบใหความถ�เปน 64 เราจะพบวาเราไดคาความถ�ตรงตาแหนงของ 64 พอด
ความถ2 สเปคตรม
ความถ� 8
ความถ� 64
ความถ� 120 เกดแอลเอส
รปท2 2.16 สเปคตรมของสญญาณส�เหล�ยม ท�ปรบความถ�จาก 8, 64 จนเปน 120
EEET0485 Digital Signal Processing Electronic Engineering Department
34 Mahanakorn University of Technology
ทดลองเล�อนความถ�ของไซนไปเร�อยๆ จนกระท�งถง 64 เราจะพบวาส�งท�นาสนใจเกดข2นกคอ เร�มมการ “หมนกลบดาน” ของสเปคตรมเกดข2น กคอ ย2งหมน knob ปรบความถ2เพ2มขbนสเปคตรมจะ
เคล2อนกลบเขาใกลศนย ปรากฎการณน2 เปนส�งบอกถงการเกดแอลเอสข2น อนเน�องมาจากความถ�ของสญญาณน2นมากเกนกวาคร� งหน�ง (64) ของความถ�แซมปล2ง (128) ซ� งเปนการฝาฝนกฎการสม องคประกอบความถ�ท�พบกลบดานน2 อาจจะมองวาเปนการสะทอนความถ2จากความถ2แซมปลbง ตวอยางเชน เม�อความถ�เปน 120 ระยะหางของความถ�น2 จากความถ�แซมปล2ง 128 เทากบ 128 - 120 = 8 ทาใหไดองคประกอบความถ�เหมอนกบกรณความถ�เปน 8 องคประกอบความถ2 แมวาเราจะทราบแลววาสญญาณรายคาบเชน สญญาณส� เหล�ยมน2น มองคประกอบท�เปนสญญาณความถ�หลายความถ�ประกอบกนอย ดงท�เหนดงรป แตอยางไรกตามการจะช2 ชดลงไปวา สญญาณน2 มองคประกอบเชงความถ�เทาใดบางน2น กตองอาศยการคาดคะเนดจากกราฟ วามยอดสญญาณท�ใดบาง โดยมหลกอยวาหากยอดของรปคล�นตรงกบตาแหนงความถ�เทาใด น�นกคอคาขององคประกอบทางความถ�ของสญญาณ ใน LabVIEW มบลอกการทาการตรวจจบยอด (peak detection) ซ� งจะทาใหเราได
องคประกอบความถ�ท�มอยในสญญาณไดชดเจนข2น อยในไดเรกทอร�ของ (Waveform
Measurement) เลอกท�บลอก จะมบลอก (Waveform Peak Detection)
จากบลอก ดคาของเอาทพต โดยเลอกท�ตาแหนง Locations คลก
ขวาเลอก Create แลวเลอก Indicator แลวเปล�ยนช�อใหเขาใจงายเปน Hamonics of Square Wave จากน2นไปท�หนาตางฟรอนทพาเนล สงเกตวาตวอนดเคเตอรท�ไดเปนอารเรยชองเดยว เราสามารถแสดงผลไดโดยการดงจานวนชองใหมากข2นไดดงรปท� 2.17
→
→
รปท2 2.17 การเพ�มจานวนชองของอนดเคเตอร โดยการลากขยายชอง
EEET0485 Digital Signal Processing Electronic Engineering Department
35 Mahanakorn University of Technology
(a)
(b)
รปท2 2.18 การใชบลอกตรวจจบยอด เพ�อแสดงฮารโมนก
จากรป สงเกตวาเม�อเปล�ยนความถ�ของสญญาณส� เหล�ยมเปน 8 ทาใหเราไดคาฮาโมนกสามอนดบแรก (1,3,5) เปน 8, 24 และ 40 ตามลาดบ โดยในท�น2 เราใชเทรชโฮลด (threshold) ของบลอก
เปน 0.01
EEET0485 Digital Signal Processing Electronic Engineering Department
36 Mahanakorn University of Technology
สเปกตรมลกเกจ (Spectral leakage)
นกศกษาบางทานอาจมขอสงเกตเพ�มเตมกคอ จะเกดอะไรข2นเม�อเราเปล�ยนความถ�ของสญญาณเปนคาท�ไมเปนเลขจานวนเตมเชน 4.1, 5.4 หรอ 7.3 เปนตน คาตอบกคอ การทาใหอตราสวนของจานวนแซมเป2 ลในหน�งรปคล�นไมลงตว สงผลใหการแซมเป2 ลไมลงพอดคาบรปคล2น จงทาใหมการเกดข2นของความถ�พลงงานนอยๆ ข2นระหวางความถ�ฮารโมนก เราเรยกปรากฎการณน2 วาการร�วไหลของสเปคตรมหรอ สเปคตรมลกเกจ (Spectral Leakage) ซ� งหากเปนองคประกอบความถ�ท�สงเกนกวาความถ�ไนควทส องคประกอบเหลาน2 กจะพฒนากลายเปนแอลเอสข2นได ซ� งมความรนแรงตามระดบพลงงานของมน ซ� งเปนเร�องท�ตองพจารณาใหด ในการออกแบบระบบ
ความถ2 4
ไมเกดสเปคตรมลกเกจ
ความถ2 4.1
เกดสเปคตรมลกเกจ
เอกสารอางอง
1. LabVIEW 8.2 Help Topics: Signal analysis, Signal Processing VIs.
EEET0485 Digital Signal Processing Electronic Engineering Department
37 Mahanakorn University of Technology
3. การสรางและวเคราะหสญญาณ II
วตถประสงค
1. เพอใหเขาใจกระบวนการสรางและวเคราะหสญญาณแบบไมตอเนองทางเวลา 2. เพอใหสามารถประยกตการสรางและวเคราะหสญญาณแบบไมตอเนองทางเวลาในการใช
งานจรงได
บทนา
ในการทดลองน. จะเปนการวเคราะหสญญาณคลนไฟฟาหวใจ Electrocardiogram (ECG) ซ งขอมลทไดจะอยในรปของจานวนแซมเป. ล โดยในการทดลองเราจะทาการแปลงขอมลใหสามารถดเทยบเปนเวลาหรอความถได
ภาพจาก http://www.cvphysiology.com/Arrhythmias/A009.htm
การทดลอง
1. ทดลองความแตกตางของ Graph และ Chart
2. เลอก Uniform noise.vi จาก Signal Generation และลองใช waveform chart เปรยบเทยบกบ waveform graph สาหรบใชแสดงผลสญญาณออกจาก Uniform noise.vi อะไรคอสงทแตกตางของการแสดงผลท.งสองแบบ
EEET0485 Digital Signal Processing Electronic Engineering Department
38 Mahanakorn University of Technology
3. ทดลองดการประยกตใชการแสดงผลและการวเคราะหสญญาณในการแสดงคาความถของ Electrocardiogram (ECG) signal หรอสญญาณคลนไฟฟาหวใจ ดงแสดงในรป
ภาพจาก www.phy.bris.ac.uk/people/fletcher_j/ecg.html
4. นาสญญาณ ECG ทไดใน http://www.eegrad.mut.ac.th/home/peerapol/dsp_lec.html save แลว เลอก ecg_noisefree.vi แลวเปดข.นมาจะได ฟรอนทพาเนลดงรป
EEET0485 Digital Signal Processing Electronic Engineering Department
39 Mahanakorn University of Technology
5. ลากไอคอน ไปวางไวในโปรแกรมวางๆ
6. ในนกศกษาทาการสรางการแสดงสญญาณ ดวยกราฟ 7. สญญาณ ECG ทไดมาน.นเปนสญญาณทไมมการรบกวน และ เนองจากสญญาณ ECG น. ม
จานวน 1500 แซมเป. ล ดงน.นสญญาณรบกวนน. จงตองมจานวน 1500 แซมเป. ลดวย
8. ใหทาการบวกสญญาณรบกวนจาก ในขอท 1 และแสดงคาดวย Waveform Graph 9. สงเกตวาการแสดงกราฟของสญญาณท.งสองน.นแสดงเปนคาจานวนแซมเป. ลและยงไมม
คาเวลา โดยสญญาณ ECG น.นมอตราการเตนของหวใจทมความถประมาณ 1 Hz โดยถอวาในจานวนแซมเป. ล 1500 น.น มรปคลน EGC อย 5 รปคลน
10. ใหนกศกษาคานวณ วาหากตองการใหสญญาณมความถ 1 Hz จะตองทาใหระยะหางของแตละแซมเป. ลสญญาณ (dt) มคาเทาไร และจากน.น จะทาใหเราคานวณคาความถสม (sampling frequency) ได เพราะคาความถสมมคาแปรผกผนกบระยะหางของแตละแซมเป. ลสญญาณ (dt)
11. หากตองการ ECG ทมความถ 1 Hz จะใชบลอก Build waveform สรางสญญาณ ECG + Noise ใหไดดงรป
EEET0485 Digital Signal Processing Electronic Engineering Department
40 Mahanakorn University of Technology
Tip บลอกไดอะแกรมสวนการสรางสญญาณสามารถทาไดดงน.
12. ใหแสดงสเปคตรมของสญญาณ ECG + Noise สงเกตวาสญญาณทไดน.นมสเปคตรมเปน
อยางไร
(ไดจากบลอก Signal Processing >> Waveform Measurements >> FFT Power Spec.) 13. ในการใชงานจรง การวดอาจจะมสญญาณความถ 50 Hz เขามารบกวนไดดวย ดงน.น ใหทา
การเพมสญญาณไซน Sine wave.vi อกหนงสญญาณ แลวนามารวมกนกบอกสองสญญาณกอนหนาน. รวมเปนสามสญญาณ โดยใชบลอก compound Arithmetic
(อยท Programming >> Numeric >> Compound Ar…) เพอรวมสญญาณท.งสาม
14. กาหนดความถของสญญาณไซนท 50 Hz มจานวนแซมเป. ล 1500 โดยใชการสรางความถดงรปขางลาง
EEET0485 Digital Signal Processing Electronic Engineering Department
41 Mahanakorn University of Technology
15. ทาการเปรยบเทยบวากราฟทแสดงในขอท 11 (ECG + Noise) และขอท 15 (ECG + Noise + 50Hz) แตกตางกนอยางไรบาง และอธบายวาการวเคราะหสเปคตรมใหประโยชนอยางไรบางสาหรบการวเคราะหสญญาณ
16. ในรายงานทได จะตองแสดงรปของ VI ท.งรปฟรอนทพาเนล และรปบลอกไดอะแกรมทสามารถรนไดอยางถกตอง
EEET0485 Digital Signal Processing Electronic Engineering Department
42 Mahanakorn University of Technology
4. การชกตวอยางสญญาณ (Sampling)
วตถประสงค
1. เพอใหเขาใจกระบวนการชกตวอยางสญญาณแบบไมตอเนองทางเวลา 2. เพอใหสามารถประยกตการสรางและวเคราะหการชกตวอยางสญญาณในการใชงานจรงได
การชกตวอยางสญญาณ (Sampling)
การชกตวอยางสญญาณคอ กระบวนการแปลงสญญาณทเปนแบบตอเน#องทางเวลา
(Continuous-time) หรอ สญญาณแอนะลอก (Analogue) ใหเปนสญญาณแบบ ไมตอเน#องทางเวลา
(Discrete-time) หรอเรยกทบศพทวา ดสครตไทม ซ งจะเปนสญญาณเชงดจตอลทเราสามารถใชตวประมวลผลตางๆ เชน โปรเซสเซอรในการจดการประมวลผลได
เมอป 1928 เฮนร ไนควสต (Henry Nyquist) เปนผพบวา ในการชกตวอยางเพอเกบสญญาณนJน เราไมจาเปนจะตองเกบสญญาณมาทJงหมด เพยงแตดงมาเฉพาะบางสวนกสามารถนามาสรางคนเปนสญญาณดJงเดมได มเพยงขอแมอยางเดยวกคอ แคอตราการชกตวอยางเกบขอมล
น7นตองมคามากกวาหรอเทากบสองเทาของแบนดวท (Bandwidth) ของสญญาณเทาน7น ตอจากนJนในป 1949 คลาวด อ แชนนอน (Claude E. Shannon) ผใหกาเนดสาขาวชา
Information Theory ทฤษฏทพลกโลกสยคสอสารดจตอล ไดทาการพสจนทฤษฏดงกลาวทางคณตศาสตร ในบทความทชอวา Communication in the presence of noise จนแงมมทJงหมดของทฤษฏการชกตวอยางไดรบการเปดเผยอยางไมมขอโตแยงใดๆ ซ งผลลพธกลายเปนทฤษฎทมชอเสยง ทใชกนอยในปจจบน คอ ทฤษฎการชกตวอยางไนควสต-แชนนอน (Nyquist-Shannon
Sampling Theorem) หรอเรยกสJนๆ วา ทฤษฎการชกตวอยาง
a) b)
รปท# 4.1 a) เฮนรไนควสต b) คลาวด อ แชนนอน
EEET0485 Digital Signal Processing Electronic Engineering Department
43 Mahanakorn University of Technology
ระบบชกตวอยางสญญาณ
สวนทเปนการ Sampling ในระบบ DSP จะเปนสวนทเรยกวา Sample and Hold
รปท# 4.2
สญญาณทไดจากการชกตวอยางนJน จะมลกษณะเปนดงรป คอมการชกตวอยางสญญาณทกๆ ชวงเวลา T วนาท
รปท# 4.3
เราสามารถกาหนดชวงเวลาชกตวอยางไดงายๆ สาหรบ LabVIEW ไดจากการใชบลอก Build
Waveform เชน เราตองการสรางสญญาณทมความถชกตวอยางอยท 1kHz ซ งสามารถทาไดดวยบลอก Build Waveform ทสามารถสรางสญญาณทมระยะหางของแตละแซมเปJ ล dt เปน 0.001 หรอ สรางไดโดยการหารคา 1000 ดวย กอนทจะนาไปใสในคา dt
การเกด Copy ของสเปคตรมทกๆ Fs
ผลของการชกตวอยางสญญาณนJนจะทาใหเกด การซJ าคาสเปคตรมทกๆ ความถชกตวอยาง Fs หรอคลายๆ กบม copy ของสเปคตรมเกดขJน ณ ตาแหนงความถ Fs เราลองมาดการพสจนตามขJนตอนดงแสดงขางลาง สมมตวา เรามแซมเปJ ลของสญญาณไซน 7 แซมเปJ ล เปน
EEET0485 Digital Signal Processing Electronic Engineering Department
44 Mahanakorn University of Technology
( )( )( )( )( )( )( ) 06
866.05
866.04
03
866.02
866.01
00
=
−=
−=
=
=
=
=
x
x
x
x
x
x
x
ซ งทาใหไดลกษณะสญญาณเปนดงรปท 4 a) หากลองจนตนาการ ลากเสนเชอมระหวางจดๆ ตอกน ไดดงรปท 4 b) แตในขณะเดยวกนหลายคนอาจจะไดจดเชอมตอนJนเปนดงรปท 4 c) สงเกตวาเราไดกราฟอกเสนทมความถมากกวา ของใครถกกนแน??? คาตอบกคอ ถกทJงค เพราะเมอไรกตาม หากมแซมเปJ ลทมาจากการชกตวอยางขอมลเมอไร กจะตอง ปรากฏวามสญญาณมากกวาหน#งความถ#สอดคลองกบแซมเป7 ลเหลาน7นเสมอ เราลองมาดวาสญญาณเหลานJนมความถทใดบาง
รปท# 4.4
สมมตใหมสญญาณ ( ) ( )tftx 02sin π=
EEET0485 Digital Signal Processing Electronic Engineering Department
45 Mahanakorn University of Technology
ทาการแซมปลJงดวยความถ Fs แซมเปJ ลตอวนาท หรอ มชวงเวลาชกตวอยางเปน sF
T1
= วนาท
ดงนJนสญญาณ ( )nx ทไดมาจากการแทน t ใน ( )nx ดวย nT จงเขยนไลลาดบตามคา n ดงนJ
( ) ( )( ) ( )( ) ( )
( ) ( )nTfnx
Tfx
Tfx
Tfx
0
0
0
0
2sin
22sin2
12sin1
02sin0
π
π
π
π
=
=
=
=
⋮
แตเราทราบวาสญญาณไซนนJน มการซJ าคาทกๆ 2π เรเดยน
( ) ( )mπφφ 2sinsin += โดยท m คอเลขจานวนเตม ดงนJน เราเขยนสญญาณไซนไดใหมเปน
( ) ( )( )mnTf
nTfnx
ππ
π
22sin
2sin
0
0
+=
=
เมอจดสมการใหมได ( ) ( )( )
+=
+=
nTnT
mf
mnTfnx
0
0
2sin
2sin
π
π
ทนJกาหนดให m เปนคาจานวนเทาของ n m = kn
ดงนJนอตราสวนของเลขจานวนเตมดงกลาว
n
mk =
จงได
( )
( )( )nTkFf
nTT
kfnx
s+=
+=
0
0
2sin
2sin
π
π
ทาใหเทยบเคยงกบสมการดJงเดมของ ( )nx ไดเปน
( ) ( )( ) ( )( )nTkFfnTfnx s+== 00 2sin2sin ππ
EEET0485 Digital Signal Processing Electronic Engineering Department
46 Mahanakorn University of Technology
ซ#งแปลวาการชกตวอยางสญญาณจะทาใหเกดสญญาณไซนท#ความถ# f0 และท#หลายความถ#ท#หาง
จาก f0 เปนจานวน k เทาของ Fs หรอเม#อ k = …,-2, -1, 0, 1, 2,… หรอพดงายๆ กคอเกด
องคประกอบความถ#เกดข7นทกๆ เทาของ Fs
ดงนJนหากมการชกตวอยางสญญาณใดๆ องคประกอบของสญญาณ กอนและหลงชกตวอยางจะเปนดงนJ
รปท# 4.5
สรปวาการชกตวอยางสญญาณแอนะลอกนJน ทาใหเกดมคาของสเปคตรมททกๆ คาความถเทากบ
ความถแซมปลJง (Fs)
แอลแอส (Alias)
ปรากฏการแอลแอส หรอเกดการซอนทบของสเปคตรมจะเกดขJน เมอความถชกตวอยาง
(Fs) มคานอยกวา 2 เทาของแบนดวทของสญญาณแอนะลอก (B) ทจะถกชกตวอยาง แสดงดงรปท
4.6
EEET0485 Digital Signal Processing Electronic Engineering Department
47 Mahanakorn University of Technology
รปท# 4.6
การกคนสญญาณ (Recontruction)
วธการในการกคนสญญาณทถกชกตวอยางไปนJน เราใชเพยงตวกรอง Lowpass Filter กรองเอาแตเฉพาะ copy ของสเปคตรมทตองการ กจะไดสญญาณกลบคนมา ในกรณทไมเกดแอลแอสในระบบ ไดผลดงรปท 4.7
รปท# 4.7
ในกรณทเกดแอลแอส สญญาณสเปคตรมทได จะเกดการซอนทบ ทาใหมการบวกรวมของสเปคตรมเปนดงรปท 4.8
รปท# 4.8
จงทาใหไมสามารถกคนสญญาณทแซมปลJงไปแลวไดเหมอนเดม ดวยการใช Lowpass Filter ไดดงแสดงในรปท 4.9
รปท# 4.9
EEET0485 Digital Signal Processing Electronic Engineering Department
48 Mahanakorn University of Technology
การนอรมลไลซ
ในทางปฎบตเราจะนอรมลไลซคาความถ Fs ใหมคาเทากบ 1 ซ งวธการนJ เราเรยกวา การ
นอรมลไลซดวยความถ#ชกตวอยาง ซ#งมหนวยเปน Hz ดงนJนเมอคดความถไนควสตแลว เราพบวาจะได ความถคร งหน งของความถนอรมลไลซนJน คอ 0.5 จะเรยกวาเปน ความถ#ไนควสต (Nyquist Frequency) สวนทความถนอรมลไลซเปน 1 เรยกวา อตราไนควสต (Nyquist rate) การนอรมลไลซความถนJ ใหความสะดวกในการปรบเปลยนความถชกตวอยาง เอกสารอางอง [1] Richard G. Lyons, Understanding Digital Signal Processing, Pearson Education, 1st edition [2] Nasser Kehtarnavaz and Namjin Kim, Digital Signal Processing System-Level Design Using LabVIEW, Newnes; Pap/Cdr edition
การทดลอง 1) ใหสรางสญญาณดสครตเปนไซนตาม VI ดงรป แลวใหชอวา discrete_sin.viโดยใหสญญาณมจานวนแซมเปJ ล 10 มความถชกตวอยาง(fs) 1000 Hz สญญาณเขาจะถกนอรมลไลซ (Normalised) เชงความถเทยบกบความถชกตวอยาง โดยใหความถทเทากบความถชกตวอยางมคาเปน 1 สงเกตวาเราใช cosine wave แทนทจะเปน sine wave ซ งเราสรางไดโดยใชคาคงท 90 องศาตอทเฟสเทอรมนลของ sinewave.vi
.
EEET0485 Digital Signal Processing Electronic Engineering Department
49 Mahanakorn University of Technology
เปลยนรปสญญาณทแสดงใหเปนแบบดสครต โดยใชเมาสคลกขวาไปท แลว
เลอก Common Plot เลอก และคลกขวาอกท เลอก Point Style เลอก [ ] 1. จากนJนเราจะสรางสญญาณแอนะลอก โดยปกตสญญาณแอนะลอกทแทจรงไมสามารถ
สรางไดบนคอมพวเตอร แตเราสามารถประมาณสญญาณแอนะลอก จากสญญาณดสครตไดโดยการเพมจานวนแซมเปJ ลใหมากๆ ใหกบสญญาณดสครตดงรป
น คอการจาลองสญญาณแอนะลอกโดยจะทาใหไดกราฟทมลกษณะเหมอนสญญาณแอนะลอก สราง VI ตามรปบลอกไดอะแกรมขางลางนJ แลว save ในชอวา analogue_sin.vi โดยใหมการเพมจานวนแซมปลJงเปน 100 เทา เมอเทยบกบกรณสญญาณดสครต
EEET0485 Digital Signal Processing Electronic Engineering Department
50 Mahanakorn University of Technology
ซ งเมอพลอตแลวจะทาใหไดลษณะดงรป
2. รวมทJงสอง VI จากขอ 1 และ 2 เขาดวยกน เพอเปน VI ใหม แลวใหชอวา sampling1.vi จะ
ไดกราฟทผสมกนดงรป
EEET0485 Digital Signal Processing Electronic Engineering Department
51 Mahanakorn University of Technology
3. สรางสญญาณแอลแอสดงรปแลวใหชอเปน alias.vi โดยใชโครงสรางดงรป โดยมหลกการ
ทวา หากสญญาณทเขามามความถนอรมลไลซเกน 0.5 (ซ งกคอความถไนควสต) จะเกดแอลอแอส และความถแอลแอสจะแสดงเปนเสนประ หากความถนอรมลไลซสญญาณเขาไมถง 0.5 ไมตองแสดงความถแอลแอส (คอแสดงหนาจอกราฟวางๆ)
(ทดลองเขยนบลอก)
EEET0485 Digital Signal Processing Electronic Engineering Department
52 Mahanakorn University of Technology
สวนเคส False ใหทาวางๆ ไวและอยาลม set ให output tunnel เปน “use default if unwired” ดวย
คาถาม จงอธบายความหมายตรงบรเวณจด A และจด B โดย A = การลบคาความถจาก 1 B = การเปรยบเทยบความถกบ 0.5
4. จากนJนนาเอาสวน สรางแอลแอสในขอท 4 ไปเขารวมกบทไดมาจากขอท 3 เพอแสดงผลรวมของสญญาณทJ งสาม (Continuous, Discrete และ Aliased) โดยใหชอวา sampling_alias.vi ดงรปท 4.10
EEET0485 Digital Signal Processing Electronic Engineering Department
53 Mahanakorn University of Technology
ไมเกดแอลแอส เกดแอลแอส
รปท# 4.1
TIP: วธการเพมพJนท ใน while loop ทาโดยกด Ctrl คางแลว ลากเมาส ตามตองการ (เพมไดหดไมได)
จากนJน เอาเฉพาะเสนประของการทดลองในขอ 4 ไปวางไว
LED ไมตด LED ตด
มความถแอลแอส
EEET0485 Digital Signal Processing Electronic Engineering Department
54 Mahanakorn University of Technology
รายงาน
ให นศ เขยนรายงาน แสดง Front Panel และ Block Diagram ของการทดลองทกๆ ขอ และอธบายตามความเขาใจ โดยละเอยด
(ทดลองเขยนบลอก)
EEET0485 Digital Signal Processing Electronic Engineering Department
55 Mahanakorn University of Technology
5. การแปลง DTFT / DFT
วตถประสงค
1. เพ�อใหเขาใจถงหลกการและขดจากดของการแปลง DTFT และ DFT 2. เพ�อใหเขาใจถงสเปกตรมของสญญาณแบบไมตอเน�อง
การทดลองท� 5.1 DTFT (Discrete Time Fourier Transform)
ในการทดลองน+ จะเปนการเขยนฟงกช�นเพ�อทาการแปลง DTFT กบสญญาณไมตอเน�อง
โดยฟงกช�นรบคา x และทาการแปลง DTFT โดยใชนยาม คอ ( ) ( )∑∞
−∞=
′−′=
n
njj enxeX ωω โดยสมมต
วาสญญาณ x(n) เปนสญญาณแบบ causal น�นคอ ฟงกชนจะเร�มตนท� n = 0 ดงน+ ถาสมมตวา ( ) [ ]…4321 xxxxnx = จะได ( ) ⋯++++=
′′′′ ωωωω jjjj exexexxeX 4321
โดยจะทาการวาดกราฟของ ฟงกช�นของ ( )ω′jeX ซ� งเปนฟงกช�นตอเน�องของ ω′ ซ� ง ω′ ม
คาไดต+งแต −∞ ถง ∞ แตในโปรแกรมน+กาหนดใหหาคา X จากแค 0 ถง f = fs / 2
1. ในสวนของ Front Panel ตอตามรป
2. ในสวน Block diagram ตอตามรป
EEET0485 Digital Signal Processing Electronic Engineering Department
56 Mahanakorn University of Technology
• MathScript Node ท� (Mathematic>>Scripts&Formulas) เม�อเขยนฟงกช�นลงไปใน MathScript แลวใหทาการ add input และ add output โดยการวางเมาสไวท�กรอบสฟาแลวคลกขวาและกาหนดช�อของโหนดตางๆ ตามรป
3. ทาการเปล�ยนชนดขอมลของสญญาณเอาทพต Y และ fx โดยใชเมาสวางลงบนโหนด Y แลว
คลกขวาเลอกตามรป (ทาท�โหนด fs เหมอนกน)
EEET0485 Digital Signal Processing Electronic Engineering Department
57 Mahanakorn University of Technology
4. นาสายสญญาณเอาตพตท� Y และ fx มาพลอตเทยบจดกนดวย Build XY Graph (เลอกท�หนาตาง Front Panel)
5. เม�อวางสวนประกอบตางๆครบแลว ทาการตอสายเช�อมตอตามรป บนทกช�อไฟล DTFT.vi ใสคาความถ� f = 25 แลว run สงเกตผลของสญญาณท�ได
6. ทาการแกไขคาของ fend เปน fend = fs; และเปล�ยนคาความถ� f = 30 สงเกตผลของสญญาณท�ได
7. และท�ความถ�เดมทาการแกไขคาของ fend เปน fend = fs*2; สงเกตผลของสญญาณท�ได คาถาม จากการทดลองขอท� 5 ถง 7 เม�อทาการเปล�ยนคา fend ไป ผลของสเปกตรมท�ไดแตกตางกนอยางไร จงอธบาย 8. ลองเปล�ยนสญญาณเปนส�เหล�ยมจาก Square Wave ท� (Signal Processing>>Signal
Generation) แทนสญญาณไซน (แกความถ� fend กลบเปนคาเดมท� fend =
fs/2;) แกไขคา N เปน 200, fs เปน 500 และคาความถ� f ท� 20 สงเกตผลของสญญาณท�ได
การทดลองท� 5.2 DFT (Discrete Fourier Transform)
ถงแม DTFT จะใชหาคาสเปกตรมของสญญาณได แตกไมเหมาะสมท�จะนามาใชในทางปฎบต เพราะสญญาณในเชงความถ�ท�ไดเปนสญญาณแบบตอเน�อง ซ� งจดการดวยลาบาก การแปลงท�สามารถเปนตวแทนของ DTFT ไดกคอ DFT ซ� งใหผลลพธเปนสญญาณแบบไมตอเน�องท�มจานวนจดจากดท+งในเชงเวลาและความถ� จากความจรงท�วา
“ DFT กคอ การสมคาความถ�ของ DTFT ท�ความถ� 1,,1,0 ,2 −==′ NkNk …πω ”
ซ� งไดนยามใหมคอ ( ) ( )1
2
0
Nj kn N
n
X k x n e π−
−
=
=∑
1. ในสวนของ Front Panel ตอตามรป
EEET0485 Digital Signal Processing Electronic Engineering Department
58 Mahanakorn University of Technology
2. ในสวนของ block diagram ตอตามรป
• สมการท� MathScript Node
3. ท�โหนด c เปนโหนดอนพตท�ไดจากการคานวณสมการ N
jc
π2=
4. เม�อวางสวนประกอบตางๆครบแลว ทาการตอสายเช�อมตอตามรป บนทกช�อไฟล DFT.vi แลว
run สงเกตผลของสญญาณท�ไดเปรยบเทยบกบผลท�ไดจากการแปลง DTFT วาเหมอนหรอแตกตางกนอยางไร
EEET0485 Digital Signal Processing Electronic Engineering Department
59 Mahanakorn University of Technology
6. การแปลง FFT วตถประสงค
1. เพอใหเขาใจถงหลกการของการแปลง FFT 2. เพอใหเขาใจถงสเปกตรมของสญญาณแบบไมตอเนองและการนา FFT ไปใชงาน
บทนา
FFT (Fast Fourier Transform) คอ DFT ทคานวณไดเรวข0น เพราะลดความซ0 าซอนในการคานวณเลขเชงซอนลง ในการทดลองน0 จะเปนการนา Block FFT ทชอวา FFT.vi ทมอยใน
LabVIEW มาใช
การทดลองท+ 6.1 1. ในสวนของ Front Panel ตอตามรป
EEET0485 Digital Signal Processing Electronic Engineering Department
60 Mahanakorn University of Technology
2. ในสวนของ block diagram ตอตามรป
คอการหา Power Spectrum จากสมการ
{ }2
2
n
XFS xx =
3. เมอตอตามรปเรยบรอยแลว ใหบนทกชอเปน FFT_2sided.vi 4. ทาการต0งคาของ sampling freq = 1000 และ # of samples = 100 และ run โปรแกรม หมน
ปรบคา frequency (Hz) สงเกตผลทเกดข0น 5. กาหนดคา frequency (Hz) ไปท 100
คาถาม ท sampling freq ท 1000 คาความถสงสดควรมคาเทาไร คาถาม สเปกตรมท 100 และ 900 คออะไร
6. เปลยน frequency (Hz) = 480 บนทกรป อธบายผลของสเปกตรมท+เกดขFน
7. เปลยน frequency (Hz) = 520 บนทกรป อธบายผลของสเปกตรมท+เกดขFน
EEET0485 Digital Signal Processing Electronic Engineering Department
61 Mahanakorn University of Technology
การทดลองท+ 6.2 จากการทดลองตอนท 6.1 เปนการดสเปกตรมทชวงความถ fs แตถาตองการดแคชวงไนควสตหรอชวง fs/2 เทาน0น สามารถแกไขไดดงน0
1. ตอเพมในสวนทกาหนดตามรปแลวบนทกชอ FFT_1sided.vi และ run โปรแกรม
บนทกรป อธบายผลของสเปกตรมท+เกดขFน
การทดลองท+ 6.3 การนาเอา FFT ไปใชสาหรบหาคาสเปกตรมของสญญาณทมความยาวมากๆ ตอเนองกน อาจตองแบงสญญาณเปนบลอกๆ แลวนาแตละบลอกมาหา FFT ซ งกจะไดสเปกตรมเฉพาะของบลอกน0 นๆ แตวธน0 ยงผลใหเกดความผดพลาดจากสเปกตรมจรงของสญญาณ เพราะการนาสญญาณแตละบลอกมาหา FFT น0น เปนการสมมตวาสญญาณนอกบลอกเปนศนยท0งหมด ดงเชน การหาสเปกตรมของสญญาณไซน ซ งในการทดลองใชจานวนจด 100 จด (# of samples) เสมอนวาเรากาลงหาสเปกตรมของสญญาณดงรปขางลาง แทนทจะเปนสญญาณซายนทยาวตอเนองกนไป
จนถง ∞
ซ งกเปนสาเหตททาใหสเปกตรมของสญญาณน0 มองคประกอบของความถอนรวมอยดวย (ไมเปน ความถเดยว) เรยกความถทเกนน0นวา side lobe เราสามารถลด side lobe ซ งเกดจากการคดสเปกตรมของบลอกของสญญาณไดโดยการคณสญญาณขาเขาดวยฟงกชนหนาตาง (windows) กอนการทา FFT ซ งฟงกชนหนาตางเปนฟงกชนประเภททมความสมมาตร จะมคามากตรงจดกงกลาง และคาลนอยลงในดานขาง ฟงกชนหนาตางมอยหลายชนด แตละชนดกมขอดแตกตางกน
EEET0485 Digital Signal Processing Electronic Engineering Department
62 Mahanakorn University of Technology
ซ งจะกลาวถงอกคร0 งในเร องการออกแบบตวกรอง FIR โดยในการทดลองน0 เราจะใชฟงกชนหนาตางแฮมมง (Hamming windows) ซ งมอยแลวใน Function ของ LabVIEW 1. ทดลองตดสญญาณไซนออกเปนชวง ดวยบลอก square wave ดงรป
2. ทาการ run ดรปสญญาณทได 3. นาสญญาณทไดมาวเคราะหสเปกตรม โดยต0งคาทบลอก Waveform Graph ของสญญาณ
สเปคตรม คลกเมาสขวาเลอก Y Scale → Mapping → Logarithmic
4. ทาการเพมฟงกชนหนาตางแฮมมงดงรป แลวดสเปคตรม ลงไป run โปรแกรม สงเกตผลของ
สญญาณสเปกตรมทไดเปลยนไปอยางไร
Square Waveform ท (Signal Processing >> Waveform Generation)
Hamming Window ท (Signal Processing>>Windows)
EEET0485 Digital Signal Processing Electronic Engineering Department
63 Mahanakorn University of Technology
การทดลองท+ 6.4 การหาสเปกตรมของสญญาณเสยง (ไฟล . wav) 1. ทาการอานไฟลเสยง .wav มาพลอตรปสญญาณ
• Front Panel
• ท (Express >> Text Control >> File Path Ctrl)
• Block Diagram
• Simple Read ท (Programming >> Graphics&Sound >> Sound >> Files)
• Index Array ท (Programming >> Array)
• Get Waveform ท (Programming >> Waveform)
• ลองเปดไฟลเสยงตวอยางทเปน . wav (จาก C:/Windows/Media/) ดรปสญญาณ
EEET0485 Digital Signal Processing Electronic Engineering Department
64 Mahanakorn University of Technology
2. เมออานไฟลเสยงไดแลว ไฟลเสยงทไดจะถกเกบอยในรปแบบของขอมล ท Y ทสามารถนาไปวเคราะหดสเปกตรมของสญญาณได โดยเราจะทาการแกไขโปรแกรม fft_1side.vi จากการทดลองตอนท 6.2 โดยใหเปลยนสญญาณอนพตทมาจากบลอก sinwave มาเปนสญญาณเสยงทจด Y แทน save as เปน fftsound.vi
EEET0485 Digital Signal Processing Electronic Engineering Department
65 Mahanakorn University of Technology
7. ตวกรอง FIR วตถประสงค
1. เพอใหเขาใจถงวธการหาคาสมประสทธ" ของตวกรอง FIR โดยใชวธ window 2. สามารถเปรยบเทยบถงขอดและขอเสยของการใช window แบบตางๆ ได
บทนา
การทดลองน7 จะแนะนาการหาคาสมประสทธ" h(n) ของตวกรอง FIR ชนดตางๆ โดยใชวธwindow
ชนดของตวกรอง ( ) 0,, ≠∞<<∞ nnnd ( )0d
ผานตา (LPF) ( )n
nc
πω′sin
πωc′
ผานสง (HPF) ( )n
nc
πω′
−sin
πωc′−1
ผานแถบความถ (BPF) ( ) ( )n
nn cc
πωω 12 sinsin ′−′ −
′
πω 2c
πω 1c′
ตดแถบความถ (BSF) ( ) ( )n
nn cc
πωω 12 sinsin ′+′−
πω
πω 12 1 cc ′
+′
−
ตารางท� 7.1 ผลตอบจากสญญาณ impulse ของตวกรองอดมคตตางๆ
window ( ) 1,...1,0, −= Nnnw Rectangular 1
Hamming
−
−1
2cos46.054.0
N
nπ
Blackman
−
+
−
−1
4cos08.0
1
2cos5.042.0
N
n
N
n ππ
ตารางท� 7.2 ฟงกชนหนาตางแบบตางๆ
รปท� 7.1 ตวกรองในอดมคต
EEET0485 Digital Signal Processing Electronic Engineering Department
66 Mahanakorn University of Technology
การทดลองท� 7.1 การหาคาสมประสทธ" ของตวกรองชนดตางๆ 1. ในสวนของ Front Panel ตอตามรป
2. ในสวนของ Block Diagram จะเปนการหาคาสมประสทธ" ของตวกรอง FIR จากสมการในตารางท 7.1 ตวอยาง การหาคาสมประสทธ" ของตวกรองแบบผานตา
wc คอ ความถตดเชงมมท normalized ดวย fs M คอ ตาแหนงกงกลางของ h(n) d คอ สมการหาคาตวกรองแบบผานตา d0 คอ สมประสทธ" คากลาง w คอ ชนดของ window ทใช (1 = rectangular)
3. ในการคานวณหาคาสมประสทธ" ของ d0 น7น เปนการคานวณทแยกออกมาจากสมการใหญของ d ซ งเมอคานวณคาไดแลว เราจาเปนทจะตองนาคากลางทไดไปรวมไวในคาทไดจากสมการใหญกอน ถงจะเปนคาของสมประสทธ" ทสมบรณ ดงน7
4. บนทกชอ labfir.vi ใสคา Frequency Sampling = 8000 , Cut-off Frequency = 1000 และ Order of N = 51 (คาของ N ตองเปนจาวนวนเลขคเทาน7น) ทาการ run
EEET0485 Digital Signal Processing Electronic Engineering Department
67 Mahanakorn University of Technology
5. ทาการแกไขโปรแกรม ใหสามารถหาคาสมประสทธ" ของตวกรองแบบอนพรอมกนได (ผานสง, ผานแถบและ ตดแถบความถ) โดยใชเงอนไข case เปนตวเลอก
Tip ทตวรกองแบบผานแถบและตดแถบตองกาหนดคาความถตดสองคาคอ fa และ fb ตามสมการในตารางท 7.1
การทดลองท� 7.2 ผลตอบสนองความถของตวกรองชนดตางๆ
การตอนท 7.1 เมอไดคาสมประสทธ" ของตวกรอง หรอ impulse แลว ในการดผลตอบสนองความถของตวกรองในทางโดเมนความถ กคอการนาคาของ impulse ทไดมาทา FFT นนเอง การทา FFT ใหนาเอาวธเดยวกบในการทดลองท 6.2 มาประยกตใช
EEET0485 Digital Signal Processing Electronic Engineering Department
68 Mahanakorn University of Technology
รปบลอกไดอะแกรมรวม
EEET0485 Digital Signal Processing Electronic Engineering Department
69 Mahanakorn University of Technology
8. การประยกตใชงานตวกรองแบบ FIR วตถประสงค
1. สามารถนาตวกรอง FIR ท�ออกแบบมาประยกตใชงานกบสญญาณเสยงจรงได
การทดลองท! 8.1
จากการทดลองท� 7 หลงจากท�เราไดทาการออกแบบตวกรองดวยการหาคาสมประสทธ0 h(n) และดผลตอบสนองความถ�ของตวกรองมาแลว ในการทดลองน8 เราจะนามาประยกตใชงานในการกรองสญญาณโดยการปอนคาอนพตท�เปล�ยนแปลงไดแลวดผลของสญญาณเอาทพตวามการเปล�ยนแปลงอยางไร
1. นาไฟลจากการทดลองท� 7.2 มาใช
2. ท� Block Diagram ใหเพ�มสญญาณอนพตไซน กาหนดใหเปน Signal input 3. นาสญญาณอนพตจาก signal input กบคาสมประสทธ0 h มาทาการ convolution ดวยบลอก
(ท� Signal Processing>>Sig Operation) x คอสญญาณไซนและ y คอ คาสมประสทธ0
EEET0485 Digital Signal Processing Electronic Engineering Department
70 Mahanakorn University of Technology
รปบลอกไดอะแกรมรวม
EEET0485 Digital Signal Processing Electronic Engineering Department
71 Mahanakorn University of Technology
การทดลองท! 8.2 กรองสญญาณรบกวนความถ�เดยวออกจากสญญาณเสยง ว ธการว เคราะหสญญาณเสยงท� ด เราจะตองว เคราะหสญญาณทางความถ�หรอด
องคประกอบทางความถ�เพ�อท�จะสามารถแยกสญญาณเสยงกบสญญาณรบกวนออกจากกนได ในการทดลองเราจะทาการดงสญญาณเสยงจากไฟล .wav เขามาดสเปกตรม และทาการออกแบบตวกรองท�เหมาะสมในการกรองเอาสญญาณรบกวนออกจากสญญาณเสยงได ใหนาโปรแกรมจากการทดลองท� 6.4 มาใชงานรวมกบการทดลองท� 8.1 1. แกไขโปรแกรมท� 8.1 โดยเปล�ยนสญญาณอนพตเปนสญญาณจากไฟลเสยง พรอมกบด
สเปกตรมของสญญาณเสยงท�ไดกอน เพ�อนาไปวเคราะหหาตวกรองตอไป 2. เม�อทาการออกแบบตวกรองไดแลว ใหนาคาสมประสทธ0 ท�ไดมาทาคอนโวลช�น เพ�อกรองเอา
สญญาณรบกวนออกไป 3. นาสญญาณใหมท�ไดจากการทาคอนโวลช�นมาวเคราะหดสเปกตรม เทยบกบสเปกตรมของ
สญญาณอนพต วามความเปล�ยนแปลงไปอยางไร รปบลอกไดอะแกรมรวม
EEET0485 Digital Signal Processing Electronic Engineering Department
72 Mahanakorn University of Technology
9. การประยกตใชงานตวกรองแบบ FIR และ IIR
วตถประสงค
1. สามารถนาตวกรองแบบ FIR และ IIR มาสรางเสยงพเศษได 2. รจกการสรางฟงกชนของเสยงเอฟเฟค (Effect) ตางๆได
บทนา
เสยงเปนสญญาณท9เหมาะสาหรบนามาประมวลผลอยางย9ง เน9องจากยานความถ9ของเสยงจดวาอยในยานความถ9ต 9าในชวง 20 – 20 kHz โดยในหองบนทกเสยงสมยใหมปจจบน จะทาการประมวลผลสญญาณเสยงในรปแบบดจตอลเกอบทFงหมด ทFงการผสมเสยง การเตมเสยงพเศษ และการปรบแตงลกษณะของเสยง จนถงการจดเกบเสยงในรปแบบของแผนซด และดวด ซ9 งเปนเสยงท9เกบในรปแบบดจตอลแทบทFงสFน นอกจากนF เสยงยงเปนส9งท9ละเอยดออนมาก เพราะมนษยสามารถสมผสไดดวยการฟง และแยกแยะลกษณะบางอยางจากเสยงท9ไดยน เชนเสยงทมหรอเสยงแหลม, มทศทางของเสยงมาจากทศใด, ใครคอผพดและคาพดท9อยในเสยงคอคาวาอะไร เปนตน ซ9 งลกษณะเหลานF ไดถกนามาจาลอง และวเคราะหดวยโปรแกรม LabVIEW การทดลองท" 9.1
9.1.1 การสรางเสยงสะทอน (Echo) ดวย FIR วตถสะทอนแหลงกาเนด
ผฟNง (ก)
(ข)
รปท" 9.1 (ก) การเกดเสยงสะทอน (ข) การจาลองการสรางเสยงสะทอน
EEET0485 Digital Signal Processing Electronic Engineering Department
73 Mahanakorn University of Technology
เสยงสะทอนมลกษณะคลายเปนเสยงท9มการสะทอนจากผนงของหองโถง หรอผนงถFาแลวสะทอนกลบมาใหเราไดยน ในการทาเสยงสะทอนดวย FIR สามารถจาลองรปแบบการเกดเสยงสะทอนดวยบลอกไดอะแกรมดงรป โดยสญญาณเอาทพตเปนผลรวมของสญญาณอนพตโดยตรง กบสญญาณอนพตท9ทาการหนวงเวลา (Delay) และเพ9อใหไดเสยงสะทอนท9เสมอนจรงเราตองลดขนาดของสญญาณท9ทาการหนวงเวลาลง ไมใหเกนกวาขนาดของสญญาณอนพต
1. สรางสญญาณไซน 1 ลกคล9น เพ9อใชเปนสญญาณทดสอบ
2. จากบลอกไดอะแกรมรปท9 9.1 นามาเขยนในรปแบบของ LabVIEW ดงนF
• แทนเปน อยท9 Signal Processing / Point By
Point / Signal Operation PtByPt / Y[i] = Clip{X[i]} PtByPt.vi
• แทนเปน
• +
แทนเปน
3. ตอบลอกไดอะแกรมดงรป
4. บนทกไฟลช9อ echofir.vi ทดลองเปล9ยนคา Delay และ gain สงเกตรปสญญาณท9ไดเปน
อยางไร
EEET0485 Digital Signal Processing Electronic Engineering Department
74 Mahanakorn University of Technology
9.1.2 การสรางเสยงสะทอน (Echo) ดวย IIR
Multi Echo
รปท" 9.2 บลอกไดอะแกรม Echo IIR จากบลอกไดอะแกรม การสรางเสยงสะทอนดวย IIR จะแตกตางกบ FIR ตรงมการนาเอา
สญญาณเอาทพตปอนกลบมาดวย ในการสรางเสยงสะทอน 1. ตอบลอกไดอะแกรมตามรป
2. ในการตอสญญาณแบบปอนกลบ ไมสามารถนามาตอโดยตรงได จะตองใชตวชวยคอ Shift
Register โดยการวางเมาสไวท9กรอบของ For Loop คลกขวา เลอก Add Shift Register 3. บนทกไฟลช9อ echoiir.vi
9.1.3 การสรางเสยงสะทอน (Echo) ดวย IIR
All Pass Reverberator
EEET0485 Digital Signal Processing Electronic Engineering Department
75 Mahanakorn University of Technology
แบบท" 1
กาหนดคา gain = 0.5 คา delay เทากบ 200
Tip ใหใช
Input
Output
Delay+gain
+
+
-1
รปท" 9.3 บลอกไดอะแกรม All Pass Reverberator
แบบท" 2
กาหนดคา gain ของ a1 = 0.3, a2 = 0.5, a3 = 0.6 คา delay เทากบ 200
EEET0485 Digital Signal Processing Electronic Engineering Department
76 Mahanakorn University of Technology
EEET0485 Digital Signal Processing Electronic Engineering Department
77 Mahanakorn University of Technology
การสรางเสยงเอฟเฟคกบสญญาณเสยงจรง
การทดลองท" 9.2
9.2.1 การสรางเสยงสะทอน (Echo) ดวย FIR
1. จากการทดลองท9 9.1.1 ทาการแกไข โดยเพ9มบลอกท9สามารถรบสญญาณเสยงจรงและเลนเสยงได ดงนF
EEET0485 Digital Signal Processing Electronic Engineering Department
78 Mahanakorn University of Technology
2. จากรปนาสญญาณ Y มาตอแทนสญญาณอนพตเดม และสญญาณ Data นาไปตอท9จดเอาตพตเพ9อฟงเสยงของสญญาณท9เปล9ยนไป (ถานาเสนสญญาณ Data ไปตอกบเสนสญญาณ Y เปนการฟงเสยงของสญญาณอนพตโดยตรง )
3. ไปท9หนาตาง Front panel เปดเลอกไฟลเสยงท9ตองการขFนมา แลว run ไฟล 4. แกไข การทดลองตอนท" 9.1.2 ใหสามารถรบสญญาณเสยงจรงได 5. แกไข การทดลองตอนท" 9.1.3 ใหสามารถรบสญญาณเสยงจรงได
การทดลองท" 9.3
การสรางเสยงคอรส (Chorus)
คอรสเปนการจาลองการประสานเสยง โดยการแปลงเสยงพดของคนๆเดยว ดวยการเปล9ยนความถ9ของเสยงนFนใหเปนเสยงใหม แลวนาสองเสยงมารวมกน จงเสมอนวามคนหลายคนพดคาเดยวกนพรอมๆกน
DelayInput + Output
gain (A)
รปท" 9.4 บลอกไดอะแกรมการสรางเสยงคอรส ถาแทน x(i) เปนอนพต และ y(i) เปนเอาทพต เขนยเปนสมการไดดงนF
y(i) = x(i) + a*x(i-LFO(i))
LFO (Low Frequency Oscillator) คอคาความถ9ต 9าในการสรางเสยงคอรส 1. สรางสญญาณ LFO ดงนF
2. ตFงคา cycle ท9 0.5 แลวดรปสญญาณท9จด O
EEET0485 Digital Signal Processing Electronic Engineering Department
79 Mahanakorn University of Technology
3. จากบลอกไดอะแกรม เขยนใหอยในรปแบบของ LabVIEW ดงนF
4. Run ไฟล ลองฟงเสยงเอาทพต แลวลองเปล9ยนคา cycle เปน 1 ดรปสญญาณท9จด O และเสยงท9
ไดยนเปนอยางไร 5. ลองเปล9ยนคา cycle เปน 0 1 ดรปสญญาณท9จด O และเสยงท9ไดยนเปนอยางไร
EEET0485 Digital Signal Processing Electronic Engineering Department
80 Mahanakorn University of Technology
10. การประมวลผลแบบหลายอตราชกตวอยาง
วตถประสงค
1. สามารถทาการเพ�มอตราชกตวอยางของสญญาณท�ตองการได 2. สามารถทาการลดอตราชกตวอยางของสญญาณท�ตองการได 3. สามารถนาวธการเปล�ยนอตราชกตวอยางไปประยกตใชงานจรงได
การลดอตราชกตวอยาง (Downsampling)
การลดอตราชกตวอยาง คอ การลดจานวนขอมลลงดวยอตราสวน 1/D หรอ ลดอตราลง D เทา โดยท� D เปนจานวนเตม วธการสามารถทาไดโดยสรางสญญาณใหมข5นมาโดยการดงเอาสญญาณเกามา 1 คา แลวเวน D-1 คา ตวอยางเชน ถา D = 3 เราจะตองสรางสญญาณใหม y(n) โดยดงเอาคาจากสญญาณเกา x(n) 1 คา เวน 2 คา ทาใหไดอตราขอมลของ y(n) นอยลงกวา x(n) 3 เทา
รปท. 11.1 ดาวนแซมปล5ง (Downsampling)
โดย T แสดงถงคาชวงเวลาของแซมเป5 ล หรอเทากบสวนกลบของอตราชกตวอยาง T = 1/Fs
และ D คอ อตราการทาดาวนแซมปล5ง ถาเปรยบเทยบไดกบการตดตอสวทซ ท�ถกยดชวงเวลาไป D เทา สงผลใหแตละแซมปล5งของ
สญญาณขาออกมระยะหางเปน DT
การทดลองท. 10.1 การลดอตราชกตวอยาง
1. สรางสญญาณอมพลซ h(n)
2. ดรปสญญาณ h(n) กาหนดคา sample = 50 และ delta = 0.1 (0 < delta < 1)
EEET0485 Digital Signal Processing Electronic Engineering Department
81 Mahanakorn University of Technology
3. ดงบลอก ซ� งเปนบลอกในการดงคาขอมลแบบจดเวนจด 4. นาไปตอแลวดรปสญญาณท�ไดเปนอยางไร 5. วเคราะหสเปคตรมของสญญาณท�ยงไมทาการลดอตราชกตวอยางเปรยบเทยบกบสญญาณท�ลด
อตราชกตวอยางแลวแตกตางกนอยางไร บลอกไดอะแกรมรวม
การเพ.มอตราชกตวอยาง (Upsampling)
การเพ�มอตราชกตวอยาง คอการแทรกศนยลงไประหวางคาของสญญาณในทกๆจด
รปท. 11.2 อพแซมปล5ง (Upsampling)
ถาเปรยบการทาอพแซมปล5งไดกบการตดตอสวทซ ท�ถกลดชวงเวลาการตดตอไป I เทา สงผลใหแตละแซมเป5 ลของสญญาณขาออก มระยะหางเปน T/I และกลายเปนสญญาณท�มความถ�ไนควสตเพ�มข5น I เทา
การทดลองท. 10.2 การเพ.มอตราชกตวอยาง
1. ดงบลอก 2. กาหนดคาศนย เพ�อนาไปแทรกลงไประหวางคาของสญญาณ in
EEET0485 Digital Signal Processing Electronic Engineering Department
82 Mahanakorn University of Technology
3. สญญญาณ In คอสญญาณ h(n) กาหนดคา sample = 50 และ delta = 0.5 4. ดรปสญญาณ y ท�ไดเปนอยางไร 5. วเคราะหสเปคตรมของสญญาณท�ยงไมทาการเพ�มอตราชกตวอยางเปรยบเทยบกบสญญาณท�
เพ�มอตราชกตวอยางแลวแตกตางกนอยางไร บลอกไดอะแกรมรวม
เดซเมชนและอนเตอรโปเลชน
ผลตอเน�องหลงจากการทาดาวนแซมปล5งและอพแซมปล5งคอ การเกดสเปคตรมท�เกนจากไนควสต และการเกดสเปคตรมเงาท�เราไมตองการ วธท�งายท�สดกบท5งสองกรณกคอ การใชตวกรองต�าผานเพ�อกรองสเปคตรมท�ไมตองการ โดยสาหรบกรณของดาวนแซมปล5งน5นการขยายขนาดของแบนดวทอาจจะทาใหเกดแอลแอสข5นได ดงน5นจงตองมการจากดแบนดวทของสญญาณกอนท�จะทาดาวนแซมปล5ง การจากดแบนดวทสญญาณคอการกรองสญญาณดวยตวกรองต�าผาน การรวมบลอกตวกรองเขากบบลอกการทาดาวนแซมปล5ง เรยกวาการทาเดซเมชน (decimation) แสดงดงรป
EEET0485 Digital Signal Processing Electronic Engineering Department
83 Mahanakorn University of Technology
รปท. 11.3 การทาเดซเมชน การทดลองท. 10.3 เดซเมชน
1. สรางสญญาณ x(n) เปนสญญาณท�สามารถเปล�ยนแปลงคาความถ�จากความถ�ต �าไปหาความถ�สง
ดวยบลอก แลวตอตามรปขางลาง
2. ดรปสญญาณท�ได โดยกาหนดคา sample = 500, f1 = 1, f2 = 1000 และ fs = 10000 และดรป
สเปคตรมของสญญาณ x(n)
3. สรางตวกรองจากบลอก กาหนดคาความถ�ชกตวอยาง fs เทากบความถ�ชก
ตวอยางเดยวกบสญญาณ x(n) และคาความถ�ตดท� D
2fs freq cutoff low = ไดคา fc =
____________. 4. นาสญญาณ x(n) มาเปนสญญาณอนพทของตวกรองท� X ดรปสญญาณท�ไดเม�อผานตวกรอง
แลวและรปสเปคตรมของสญญาณ 5. ลองแปล�ยนคาความถ� f2 เปน 2000 แลวสงเกตรปสญญาณท�ได 6. แกคาความถ� f2 กลบเปนคาเดม ตอรวมกบบลอกการทาดาวนแซมปล5ง เลอกทาดาวนแซมปล5ง
ท� 2 (D = 2) ดรปสญญาณท�ไดพรอมสญญาณสเปคตรม สาหรบปญหากรณการทาอพแซมปล5งจะเกดเน�องจากสเปคตรมเงาท�เกดข5นเปนสวนของสเปคตรมท�เพ�มจานวนข5นมาอนเน�องจากอตราแซมปล5งมากข5น การกาจดสเปคตรมเงากเพ�อกรองเฉพาะสเปคตรมท�เราตองการเทาน5นจงมตวกรองอยภายหลงจากการทาอพแซมปล5ง การกระทาเชนน5 ใหผลลพธเหมอนการทาอนเตอรโปเลท (interpolate) ของแซมเป5 ลสญญาณ เรยกการรวมของตวกรองต�าผาน และการอพแซมปล5งเขาดวยกนวา การอนเตอรโปเลชน (Interpolation)
EEET0485 Digital Signal Processing Electronic Engineering Department
84 Mahanakorn University of Technology
รปท. 11.4 การทาอนเตอรโปเลชน
การทดลองท. 10.4 อนเตอรโปเลชน
1. จากบลอกไดแกรมรปท� 10.4 ตอดวยบลอกของ LabVIEW ได
2. สญญาณ x(n) คอสญญาณเดมจากการทดลองท� 10.3 โดยกาหนดคา sample = 100, f1 = 1, f2 = 1500 และ fs = 10000 ดรปสญญาณและสเปคตรมของสญญาณ
3. นาสญญาณ x(n) ตอผานบบลอกอพแซมปล5ง ทาอพแซมปล5งท� 2 เทาดรปสญญาณและสเปกตรมของสญญาณ
4. นาสญญาณจากการทาอพแซมปล5งมาตอผานบลอกตวกรอง ท�ความถ�ตด
I
2fs freq cutoff low =
ดรปสญญาณและสเปคตรมของสญญาณ สงเกตสเปกตรมของสญญาณท�ทาการอพแซมปล5งกบท�ผานตวกรองแลวแตกตางกนอยางไร
5. เปล�ยนคาการทาอพแซมปล5งเปน 3 เทา ดผลของสญญาณท�ได
EEET0485 Digital Signal Processing Electronic Engineering Department
85 Mahanakorn University of Technology
11. Fixed-point Experiments with LabVIEW
วตถประสงค
1. เขาใจท�มาของความผดพลาดอนเกดจากการควอนไตซ 2. เขาใจความหมายของระบบ Fixed-point ในดานการประมวลผลสญญาณท�ตองการได 3. สามารถออกแบบระบบ Fixed-point เพ�อประยกตใชงานจรงได
บทนา
ระบบตวเลขท�ใชในคอมพวเตอรจะมอย 2 กลมใหญ คอ Floating-point และ Fixed-point กอนหนาน? เราจะไมคอยไดเจอกบคาวาระบบคานวณแบบ Fixed-Point เทาใดนก แตในเม�ออปกรณท�ใชระบบสมอง
กลฝงตว (Embedded Systems) เร�มมาเปนท�รจกกนมากข?น คาวาระบบ Fixed-point กเขามาใหไดเหนไดยนหนาหกนข?นทกท ท?งน?กเพราะอปกรณตางๆ ท�เก�ยวเน�องกบระบบสมองกลฝงตวท�มประสทธภาพสงแตกนพลงงานต�าน?นตางกใชระบบตวเลข Fixed-point แทบท?งส?น ซ� งตรงกนขามกบซอฟทแวรท�ใชระบบตวเลข Floating-point ท�เนนการทางานบน PC ท�ม หนวยประมวลผลแบบ Floating Point ท�เรยกวา Floating Point Unit หรอ FPU ตดมาอยกบ CPU ของระบบอยแลว ในการทดลองน? เราจะใช LabVIEW เพ�อการศกษาเร�องของ Fixed-point แบบเปนข?นเปนตอน
ทฤษฎของระบบ Fixed-Point
คอมพวเตอรน?นแมเปนเคร�องคานวณท�ซบซอน แตมนกตองทางานดวยระบบเลข 0 หรอ 1 เทาน?น คาวาคอมพวเตอรน? รวมไปถง ตวประมวลผลสญญาณดจตอล (Digital Signal Processors) ไมโครโปรเซสเซอร หรอ ฟลดเกตอารเรยท�โปรแกรมได หรอ FPGA (Field Programmable Gate Array) เปนตน โดยขอมล 0 และ 1 น?จะเรยกวา บท (bit) และเปนองคประกอบของเลขฐานสอง หรอ เรยกวาระบบเลขไบนาร (Binary Numbers) ซ� งหากนาขอมลหลายๆบทมาเรยงตอกน เชน 8, 16 หรอ 32 บท กจะไดชดขอมลสารสนเทศ (Information) สาหรบใชส�อความหมายของส�งท�จะถกคานวณ และขอมลท�คานวณแลว สวนระบบตวเลขท�มนษยเขาใจน?นกลบเปนเลขฐาน 10 คอ ประกอบดวยเลข 0 ถง 9 เชน 1234 , 12.34 หรอ -12.34 เปนตน เลข 1234 น?น เรยกเลขจานวนเตม (Integer Numbers) เลขท�มทศนยม 12.34 เรยกวา เลขตรรกยะ (Fractional numbers) และ สวน -12.34 เปนเลขท� ตดคาลบ (Signed Numbers) ดงน?นหากจะใหคอมพวเตอรท�คานวณดวยเลขฐานสองน?นแสดงผลลพทท�เปนเลขจานวนเตม เลขตรรกยะและเลขตดลบท�มนษยเขาใจไดน?น กจะตองมระบบตวเลขบางอยางเพ�อใหส�อสารกนเขาใจ Fixed-Point คอ ระบบตวเลขท�ใชเลขไบนาร หรอ บท (Bit) คอ 0 และ 1 สาหรบการแสดงท?งเลขจานวนเตม เลขตรรกยะ หรอ เลขท�ตดคาลบ หลายคนเขาใจผดคดวา Fixed-point นCน คอ ระบบทEคานวณได
แตเลขจานวนเตม แตหากดจากความหมายน? แลว เรากจะเหนไดวาเปนความเขาใจผดโดยส?นเชง เพราะ
EEET0485 Digital Signal Processing Electronic Engineering Department
86 Mahanakorn University of Technology
ระบบเลข Fixed-point นCน สามารถคานวณไดทCงขอมลทEเปนระบบเลขจานวนเตม (Integer numbers)
เลขตรรกยะ (Rational numbers) หรอ เลขทEตดคาลบ (Negative numbers) ไดดวย ทาไมจงเปน เชนน?น กอนอ�นตองมาดความหมายของคาวาเลขจานวนจรง (Rational numbers) และสญญาณจรง (Real signals) กนกอน
สญญาณจรง คอ เลขตรรกยะ
สญญาณจรงเชน สญญาณไซน จากฟงกชนเจนเนอเรเตอร หรอ สญญาณเสยงพด (Speech Signal) เปนตน ท�เราคนเคยกนน?นจะอยในรปเลขตรรกยะ(Rational numbers) เลขตรรกยะน?นไดมาจากตวเลขทE
เปนอตราสวนของเลขจานวนเตม a และ b หรอ a/b ซ� งหากเขยนในรปแบบของเลขทศนยม ตวอยางเชน 12.34 หรอ 0.0015 โดยจดทศนยมจะอย ณ ตาแหนงตางๆ กนไปแลวแตคาของการใหนยสาคญของตวเลขน?นๆ จดทศนยมในเลขฐานสบน?นมช�อเรยกแบบท�วไปซ� งเอาไวใชสาหรบเลขฐานอ�นๆ ดวยวา เรดกซ
พอยท (Radix point) โดยเลข Fixed –Point น?น ตาแหนงของเรดกซพอยนทของ Fixed-point นCนจะคงทE
ไมมการเปลEยนแปลง หรอ แปลตรงตวกคอ “Fixed” หรอ “ยด” ตรงกนขามกบ ระบบ เลข Floating-point เพราะเรดกซพอยนทในระบบ Floating-point น?น “Floating” หรอ “ลอย” หรอ ไมยดตดกบตาแหนงท�กาหนดไว ซ� งขอดท�เหนอกวาของ Floating-point เม�อเทยบกบ Fixed –point กคอ Floating-point สามารถแสดงตวเลขในยานท�กวางกวา Fixed-point มากๆ เหมาะกบงานท�ตองการความละเอยดข?นสง เชน ระบบ Hi-Fi Audio ระบบ Radar และ ระบบ Medical Electronics เปนตน และนอกจากน?นในระบบคอมพวเตอรท�ใชงานโดยท�วไปแลว กจะนยมใชงานตวเลข Floating-Point มากกวา Fixed-point และอกท?งภาษาในการโปรแกรมท�นยมกนอยางเชน ภาษา C กไมไดออกแบบใหสนบสนนกบ Fixed-point โดยตรง มาตรฐานท�ใชงานระบบ Floating Point กคอ The IEEE Standard for Floating-Point Arithmetic หรอ IEEE 754 ท�ใชกบ CPU ในปจจบน ดงน?นจงไมนาแปลกใจวาทาไมระบบ Fixed-Point จงไมคอยคนหเทาใดนก แตกระน?นกตาม Fixed-Point กกลบเปนทEนยมมากในระบบสมองกลฝงตวและระบบทEตองการ
ประสทธภาพทEสงแตกนพลงงานตEาและในราคาทEแขงขนได เพราะขอดท�สาคญมากของระบบ Fixed-point กคอ การท�มนใชกระบวนการคานวณเลขจานวนตรรกยะเหมอนกบท�คานวณเลขจานวนเตม ดงน?น Fixed-point จงไดเปรยบท�สามารถใชหนวยประมวลผลเลขคณต หรอ Arithmetic Logic Unit หรอ ALU ท�มอยใน CPU ทกตวอยแลวอยางมประสทธภาพ โดยไมตองอาศยหนวยประมวลผลทางฮารดแวรใดๆ เชน ชพ FPU เพ�มเตม หรอ โดยไมตองกระทาการทางซอฟทแวร เชน ไลบราร� ภายนอก เปนตน ในตวประมวลผลสญญาณดจตอลราคาไมแรงท�วไปจะไมมสวนของ FPU ท?งน? เหตผลหนEงกคอ เรEองของการประหยด
พลงงาน เชน ตวประมวลผลตระกล Blackfin ของ Analog Devices หรอ ตระกล TMS320C5x ของ Texas Instruments เปนตน การใชระบบ Fixed-point จะมประโยชนในเร� องของการเขยนโปรแกรมใหมประสทธภาพสาหรบงานท�ตองมการคานวณทางคณตศาสตรอยางหนกหนวง
EEET0485 Digital Signal Processing Electronic Engineering Department
87 Mahanakorn University of Technology
ดงน?นดวยเหตผลดานราคา ดานประสทธภาพ ดานการจดการพลงงานของชพ กเพยงพอแลวท�จะทาให Fixed-point น?นเปนท�นยมมากกวา Floating-Point และ แตส�งท�ตามมาจากนอกเหนอจากน?น กลบเปนดานความเรวในการทางานของตวประมวลผลในตระกล Fixed-point ท�เหนอกวา Floating-point มาก โดยประสทธภาพของชพ DSP จะวดกนดวย ความสามารถในการคณและแอคควมเลทตอวนาท หรอ Millions
of Multiply Accumulates (MMAC) per second หรอ MMAC ตอ วนาท ซ� งเม�อเทยบคา MMAC ของ Floating-point กบ Fixed-point แลว ชพ Floating-point ในตระกล TMS320C67x มคาสงสดอยท� 2100 MMAC แต จะพบวา Fixed-point DSP ในตระกล TMS320C64xx ว�งไปถง 8000 MMAC และ ในตระกล TMS320C645x สามารถใหไดถงสงสดท� 9600 MMAC เพราะฉะน?นตวประมวลผลดจตอลท�แรงๆ แลวจะเปน Fixed-point DSP แทบท?งส?น โดยงานท�ใช Fixed-point กเชน Audio Coding หรอ ชพท�เปน Graphic Engine ของวดโอเกม ของ Sony, Nintendo DS และ จะใชระบบการคานวณเปน Fixed-point ท?งหมด
การควอนไตซ : ตนกาเนดของการแปลงสญญาณแอนะลอกเปนดจตอล
เม�อทราบถงท�มาท�ไปของระบบ Fixed-point ท�เปนเหตผลสาคญตอระบบการคานวณสญญาณท�มประสทธภาพแลว ตอนน? เรามาดกนวาหากเราตองการจะประมวลผลสญญาณท�อยในรปของระบบเลขตรรกยะดวยตวประมวลผลในระบบสมองกลฝงตวท�เปนระบบเลข Fixed-point แลว การจะแปลงสญญาณในระบบเลขตรรกยะใหเปนระบบตวเลข Fixed-point จะทาไดอยางไร คาตอบกคอตองทา การควอนไตซ
(Quantization) สญญาณจรงน?น การควอนไตซเปนการเปล�ยนตวเลขในระบบเลขตรรกยะ (Fractional) ใหเปนระบบเลขจานวนเตม (Integer) เพ�อจดรปใหถกประมวลผลดวยคอมพวเตอรในระบบ Fixed-point ไดเพราะเลขจานวนเตมท�วาน?นกคอสญญาณดจตอล การควอนไตซเปนรปแบบหน�งของการ“ปดเศษ” หรอ “Rounding” การควอนไตชน?นถอวาเปนตนกาเนดของการแปลงสญญาณจากแอนะลอกเปนดจตอล (Analogue to Digital Converter) หรอ A/D เพราะการควอนไตซน?นเปนแนวคดทางทฤษฎ สวนการทา A/D กคอเปนปฏบตการควอนไตซสญญาณน�นเอง เม�อมการแปลงสญญาณผานการควอนไตซ ส�งท�ตามมาอยางแนนอนกคอ ความผดพลาดอนเกดจากการควอนไตซ ในทางปฏบต เราอาจจะทดสอบวดรปสญญาณท�ถกแปลงเทยบกบสญญาณตนฉบบแอนะลอก ดวยการตอวงจรฮารดแวร อนประกอบดวย ตวแปลงแอนะลอกเปนดจตอล (Analog to Digital Converter) หรอ A/D และแปลงกลบดวย ตวแปลงดจตอลเปนแอนะลอก (Digital to Analog Converter) หรอ D/A แตหากเปนการจาลองดวยซอฟทแวร จะมขอดกวา เพราะไมตองมการตอวงจรทาใหประหยดคาอปกรณ และหากมการปรบเปล�ยนพารามเตอรเชน จานวนบทของตวแปลง A/D กสามารถทาไดโดยสะดวก โดย LabVIEW น?นมฟงกชนท�อานวยความสะดวกในการใชงานหลากหลาย รวมถงบลอกการควอนไตซท�เราจะใชงานดวย
EEET0485 Digital Signal Processing Electronic Engineering Department
88 Mahanakorn University of Technology
การทดลอง
เราจะแบงการทดลองเปน 2 สวน คอ การทดลองเร�องควอนไตซ (Quantisation) และ การทดลองเร�อง Fixed-point
การทดลองเรEองควอนไตซ (Quantisation)
โดยหลกการแลว วธการเขยนโปรแกรม LabVIEW ท�รวดเรววธหน� งกคอ การรางไอเดยของโปรแกรมเปนไดอะแกรมกอน เพราะจะเหมาะกบวธเขยนโปรแกรมดวยบลอกไดอะแกรมและการลากสายเชน LabVIEW โดยเราจะสรปส?นๆ ดงน? คอ “สรางสญญาณไซน และ ผานสญญาณน?นเขาสกระบวนการควอนไตซ และ แสดงกราฟท?งสองเปรยบเทยบกน” การทาควอนไตซน?น เราจะทาโดยการใชบลอกตวแปลงสญญาณแอนะลอกเปนดจตอล (A/D) กอนแลวสวนการแปลงกลบเปนแอนะลอก ดวยตวแปลงสญญาณดจตอลเปนแอนะลอก (D/A) ดงรปท� 11.1 การพลอตกราฟ จะมอยสองบลอกไดอะแกรม คอ บลอก Plot Signals ซ� งพลอตกราฟของสญญาณตนบบ และสญญาณท�ผานการควอนไตซ และ บลอกพลอต Error จะเปนคาความแตกตางของสญญาณท?งสอง และเราจะสรางโปรแกรม LabVIEW ตามแนวทางท�แสดงน?
รปทE 11.1แนวคดของโปรแกรมทดสอบผลการควอนไตซ
การสรางโปรแกรม LabVIEW สาหรบ การควอนไตซ
จากแนวคด ใน รปท� 11.1เราเร�มจากการสรางสญญาณไซนโดยใชบลอก Sine Waveform.vi จากฟงกชน Signal Processing>> Waveform Generation >> Sine Waveform.vi ซ� งใหผลลพทเปนสญญาณไซนโดยคาดฟอลท (Default) จะมขนาด 1 Vp และมความถ� 10 Hz ดงในรปท� 11.2
EEET0485 Digital Signal Processing Electronic Engineering Department
89 Mahanakorn University of Technology
รปทE 11.2 Signal Processing>> Waveform Generation >> Sine Waveform.vi
โดยเราจะสมมตวาสญญาณจากบลอก Sine waveform.vi น? เปนสญญาณไซนแอนะลอกตนฉบบ แมวาท�จรงแลวมนจะไมใชสญญาณแอนะลอกแทๆ เพราะถกสงเคราะหข?นมา ซ� งเราไดเลอกการใช Sine Waveform จดวางลงบนพ?นท�วางของหนาจอบลอกไดอะแกรมท�จะเปนโปรแกรมของเรา จะไดดงรปท� 11.3 โดยเราจะใหทกพารามเตอรเปนคาดฟอลทไปกอน ยกเวนแตคา Sampling info ซ� งจะเปล�ยนคาความถ�สมสญญาณ 1 kHz เปน 10 kHz วธการกคอ คลกขวาท�เทอรมนล sampling info ของบลอก Sine waveform.vi แลวเลอก create >> control กจะไดเปน control เพ�อการเลอกคาในฟรอนทพาเนลดงในรปท� 11.3
รปทE 11.3 การจดวาง Sine Waveform.vi ในบลอกไดอะแกรม และรปการตCงคาความถEชกตวอยาง (Fs) และ
จานวนแซมเปC ล (#s) ในสวนฟรอนทพาเนล
จากน?น เราจะเลอก บลอก Analog to Digital.vi หนาท�ของบลอกน? คอการทาการแปลง จากสญญาณแอนะลอกของ Sine waveform มาเปนสญญาณดจตอล โดยมความละเอยด (resolution) ตามจานวนบทท�กาหนด โดยเลอก Programming >> Waveform >> Analog to Digital.vi
EEET0485 Digital Signal Processing Electronic Engineering Department
90 Mahanakorn University of Technology
รปทE 11.4 แสดงบลอกของ Analog to Digital.vi และ Digital to Analog.vi
แลวทาการเขยนโปรแกรมโดยใหมบลอกไดอะแกรมและฟรอนทพาเนลเปนดงรปท� 11.5 โดยเพ�อแสดงผลของการควอนไตซใหเหนอยางชดเจน เราจะกาหนดความถ�สมสญญาณ (Fs) ใหมเปน 10 kHz ซ� งคาความละเอยดท�กาหนดมาให หรอ คา Default น?นจะเปน 16 บท แตเราจะเลอกทดสอบท�จานวนบท (No. of Bits) เปน 5 บท สวนจานวนแซมเป? ล (#s) ใชคาดฟอลทเปน 1000 แซมเป? ล
รปทE 11.5 การวาง Analog to Digital.vi และเชEอมตอกบ Sine Waveform.vi
จากน?น เราเลอกบลอก Digital to Analog.vi เพ�อสรางสญญาณกลบคน Programming >>
Waveform >> Digital to Analog.vi แลวลากสายเช�อมตอกบบลอก ดงรปท� 11.6 เทาน? เรากจะได โครงสรางของระบบการแปลง A/D และ D/A แลว
EEET0485 Digital Signal Processing Electronic Engineering Department
91 Mahanakorn University of Technology
รปทE 11.6 เชEอมตอสายระหวางบลอก Analog to Digital.vi และ Digital to Analog.vi
จากน?นเราทาการรวมกราฟเขาดวยกน เพ�อแสดงสญญาณแอนะลอก และ สญญาณแอนะลอกท�ถกควอนไตซเปรยบเทยบกน โดยเราจะเลอกใช บลอกของการสรางอารเรย (Build Array) โดยการเลอกท�ฟงกชน Programming>> Array>> Build Array ซ� งตาแหนงจะแสดงดงรปท� 11.7
รปทE 11.7 ฟงกชน Array และ Build Array
โดย อารเรยท�สรางจากบลอก Build Array เม�อนามาวางบนโปรแกรมจะแสดงเปน ซ� งหมายถงอารเรย 1 แถว แตขอดของ LabVIEW กคอ เราสามารถขยายขนาดของอารเรยไดโดยงาย เพยงแคลากขอบ
ดานลางของบลอก เปน และเราทาการเลอกใหมจานวนอารเรย 2 แถว ซ� งมอนพทเปนสญญาณแอนะลอกและสญญาณแอนะลอกท�ถกควอนไตซ จากน?นเลอกการแสดงผลเปน Controls >>
Modern >> Waveform Graph ซ� งจะเปนฟงกชนพลอตกราฟ และเพ�อแสดงความผดพลาดอนเน�องมาจากการ ควอนไตซ เราเลอกใชวธการลบคาของสญญาณท?งสองออกจากกน ซ� งจะไดผลลพทเปนคา
Error โดยใชบลอกตวลบสญญาณ เพ�อแสดงคาความผดพลาดและโชวผลดวยฟงกชนพลอตกราฟ
ซ� งในท�สด เราจะไดโปรแกรมการทดสอบผลการควอนไตซ ท�สมบรณดงรปท� 11.8
EEET0485 Digital Signal Processing Electronic Engineering Department
92 Mahanakorn University of Technology
a)
b)
รปทE 11.8 a) บลอกไดอะแกรมและ b) ฟรอนทพาเนลของโปรแกรมการทดสอบผลการควอนไตซ
การทดลองทE 11.1 ทดลองเปล�ยนแปลงจานวนบทของโปรแกรมในรปท� 11.8 เพ�อลดความละเอยดเปน 3 บท เพ�อเปรยบเทยบคาของความผดพลาดท�จานวนบทเปน 3 บท และ 5 บท และอภปรายผล จะพบวา การแปลงผลลพทจากแอนะลอกเปนดจตอลน?นกจะมความผดพลาดจากการควอนไตซเสมอ โดยคาความผดพลาดท�มากข?นน?นมความสมพนธโดยตรงกบ จานวนบทในการแปลงท�ลดลง น? สงผลเปนสญญาณรบกวนท�เกดข?นในระบบท�เรยกวาสญญาณรบกวนควอนไตซ (Quantization Noise) สญญาณรบกวนน? เปนท�ไมพงปรารถนา สาหรบระบบท�ตองการความละเอยดของสญญาณอยางถงท�สด โดยเฉพาะ
EEET0485 Digital Signal Processing Electronic Engineering Department
93 Mahanakorn University of Technology
อยางย�งในระบบภาพและเสยงแบบดจตอล (Digital Video and Audio) แบบไฮเอนด หรอ ในระบบเคร�องมอวดความเท�ยงตรงสงๆราคาแพงๆ เปนตน เม�อเราทราบวา สญญาณมความผดพลาดจากการแปลง เราควรมาเรยนรวาเบ?องหลงของการเกดการผดพลาดน?มาไดอยางไร
Q-format
Q-Format เปนรปแบบของ Fixed-point ท�ใชแสดงเลขตรรกยะจากขอมลเลขฐานสอง 0 กบ 1 ซ� งจะทาใหอปกรณฮารดแวรดจตอล เชน คอมพวเตอร หรอ ตวประมวลผลดจตอล อนประกอบดวย ไมโครโปรเซสเซอร หรอ ดจตอล ท�ทางานดวยเลขฐานสองสามารถคานวณเลขตรรกยะได ตวอยางของ Q-Format น?นมหลากหลาย แตท�แสดงในการทดลองน? จะใช รปแบบ “Qm.n” โดยท� แสดงจานวนบทของเลขจานวนเตม (Integer) หรอ เรยกวา ความยาวเวรดของเลขจานวนเตม (Integer Word Length)” หรอ iwl สวน n แสดง จานวนบทของเลขทศนยม (fractional number) หรอ กคอคาของ 2’s complement โดยคาของผลรวม m+n จะเปนความยาวเวรด (Word Length) หรอ wl ตวอยางของโครงสรางและสญญลกษณของ Q-format แบบ Q1.7 และแบบ Q5.3 แสดงรปท� 11.9 รปแบบท�แสดงในการทดลองน? เปนแบบ Modified Q-format เพราะรปแบบด?งเดมจะไมมการแสดงสวนของจานวนบทท�เปน iwl เชน 01.10 จะเปน Q1.2 ใน Modified Q-format แตเปน Q2 ใน Q-format แบบด?งเดม
รปทE 11.9 โครงสรางของ Q-format แบบ Q1.7 และ Q5.3
EEET0485 Digital Signal Processing Electronic Engineering Department
94 Mahanakorn University of Technology
สงเกตวาเวลาเขยน Q-format น?น จะมจดแบงจานวนบทของเลขจานวนเตมและเลขทศนยมเรยกวาเรดกซ
พอยท (Radix point) ซ� งมช�อวาเดซมอลพอยนท (Decimal Point) สาหรบเลขฐาน 10 และ ไบนารพอยนท
(Binary point) สาหรบเลขฐาน 2 เรดกซพอยนทมไวเพ�อแสดงถงตาแหนงการแบงของคาจานวนเตมของเลขฐานสองและสวนเลขทศนยม (ตรรกยะ) โดยตวประมวลผลนCนจะไมรบรถงความหมายของเรดกซ
พอยนทนC คงไดแตทาการคานวณไปตามปกต การคานวณผลลพทของ Q-format ใน LabVIEW ทาไดดงน? คอ
1
12
( ) 2 2 2wl
iwl iq i
i
x Q x b b− −
=
= = − × + ×
∑
สาหรบ wl = 3 และ iwl=1 จะได เปน Q1.2 ( )1 1 2 3
1 2 3
0 1 21 2 3
2 2 2 2
2 2 2
qx b b b
b b b
− − −
− −
= − × + × + ×
= − × + × + ×
เชน 1 2 3. 0.11b b b = เราจะไดเปน
0 1 2ˆ 0 2 1 2 1 2
0.75
x − −= − × + × + ×
=
และ หาก 1 2 3. 1.11b b b = เราจะไดเปน
0 1 2ˆ 1 2 1 2 1 2
0.25
x − −= − × + × + ×
= − เปนตน ซ� งหากจานวนบทมากกวาหรอนอยกวาน? กสามารถปรบ wl และ iwl ไดตามความตองการ
การทดลองทE 11.2 จงแสดงการคานวณคาท�ไดจากระบบฟกซพอยนทท�มความยาวเวรด wl เปน 8 บท และ มความยาวเลขจานวนเตม (iwl) 5 บท (Q5.3) ของ 1 2 3 4 5 6 7 8. 01000.111b b b b b b b b = และ หาคาสงสด (Maximum) และ คาต�าสด (Minimum)
EEET0485 Digital Signal Processing Electronic Engineering Department
95 Mahanakorn University of Technology
รปทE 11.10 แสดงคาทEเปนไปไดจากการควอนไตซและขCนความผดพลาดหรอความละเอยดของ Q1.2
มเกรดเร�องคาศพทของเร�อง Fixed-point ท�นาสนใจอย 2 คากคอ คาวาความละเอยด (Resolution) และ ความเทEยงตรง (Precision) ในเร�องของ Fixed-point น?น ความละเอยดจะหมายถงคาท�นอยท�สด หรอ กคอคาท�ไดจากบท LSB เชน Q1.2 จะมความละเอยดเปน 22 0.25− = สวนความเท�ยงตรงน?นจะเปนจานวนความยาวเวรด (wl) โดย Q1.2 จะมความเท�ยงตรงเทากบ 3 บท
การทดสอบการทางานของระบบ Fixed-point
หลงจากเรยนรเร� องของระบบ Q-format ซ� งจะนามาใชงานกบระบบ Fixed-point กนไปแลว ในตอนน? เราจะมาทดสอบกบระบบการแปลงบลน ซ� งเราจะใชแทนคาอนพทเพ�อแปลงเปนคา Fixed-point แบบ Q5.3 และแสดงผล โดยหลกการแลว เราจะสรางโปรแกรมสาหรบการแปลงอนพทท�เปนบลน (Boolean) เพ�อเรยนรวาจะให คา Fixed-point เปนอยางไรตาม Q-format ท�กาหนดมาให
EEET0485 Digital Signal Processing Electronic Engineering Department
96 Mahanakorn University of Technology
รปทE 11.11 แนวคดของโปรแกรมแสดงผลดวย LabVIEW เพEอการแปลงบลนเปนระบบ Fixed-point Q5.3
สรางโปรแกรม LabVIEW ทดสอบ “แปลงบลนเปน Fixed-point”
จากแนวคดในรปท� 11.11 เราสรางบลนอนพทอารเรยดวยสวทซแบบ Vertical Toggle Switch
จาก Modern>> Vertical Toggle Switch และเลอก Boolean Properties เปน Switch when pressed ดงแสดงในรปท� 11.12 แลวทาการสรางอารเรยดวยบลอก Build Array.vi ในรปท� 11.13 จากน?น copy ลงมาเพ�อสรางเปนอารเรยของบลนจานวน 8 ตว ใหเปนดงรปท� 11.14
รปทE 11.12 เลอก Boolean Properties ของ เปนแบบ Switch when pressed
EEET0485 Digital Signal Processing Electronic Engineering Department
97 Mahanakorn University of Technology
รปทE 11.13 สรางอารเรยของบลนดวยบลอก Build Array.vi
รปทE 11.14 สรางอารเรยของบลนจานวน 8 ตว
ถดจากน?นเลอก Boolean Array To Number.vi จาก Programming>>Boolean>>Boolean Array
To Number.vi เพ�อแปลงคาอารเรยใหเปนคาในรปแบบของเลข Fixed-point ดงรปท� 11.15
รปทE 11.15 สาหรบ เลอก Programming>>Boolean>>Boolean Array To Number.vi
แตกอนทEจะนา ไปวางเพEอเชEอมตอกบบลอกอารเรย จะตองมกระบวนการ “กลบลาดบบท” ในอารเรย
เสยกอน เพEอใหตวแปลงอารเรยบลน สามารถแปลงคาอารเรยไดอยางถกตองตามลาดบบท เพราะวาหากไม
ทาการกลบลาดบบทในอารเรย การเรยงลาดบของบทตามทEแสดงในรปทE 11.14 จะเปน 8 7 6 5 4 3 2 1b b b b b b b b
ไมใช 1 2 3 4 5 6 7 8b b b b b b b b
EEET0485 Digital Signal Processing Electronic Engineering Department
98 Mahanakorn University of Technology
เราใชบลอก Reverse 1D Array.vi ในการกลบลาดบบทในอารเรย โดยเลอก Programming >> Array >>Reverse 1D Array.vi
รปทE 11.16 บลอก Programming>>Array>>Reverse 1D Array.vi
รปทE 11.17 แสดงบลอก Boolean Array To Number.vi และ บลอก Reverse 1D Array.vi
จากน?นเลอกบลอก Numeric Indicator จากคอนโทรล Modern>> Numeric >> Numeric
Indicator แลวสราง While loop เพ�อใหโปรแกรมรนไดอยางตอเน�อง และอปกรณควบคม คอ ปม stop และ wait unit next ms multiple ซ� งสดทายแลว เราไดโปรแกรม Boolean to Fixed-Point Test.vi ท�เสรจสมบรณเปนดงรปท� 11.18 ท?งบลอกไดอะแกรมและฟรอนทพาเนล
EEET0485 Digital Signal Processing Electronic Engineering Department
99 Mahanakorn University of Technology
a)
b)
รปทE 11.18 โปรแกรม Boolean to Fixed-Point Test.vi a) บลอกไดอะแกรม b) ฟรอนทพาเนล
ข?นตอนถดมา น?นเรากาหนดให เปน Fixed-point โดยเราคลกขวาเลอก Properties เพ�อแสดงหนาจอ
Object Properties และคลกตรง Representation แลวเลอกตวเลอก Fixed-Point จากน?นเราเลอก
คณสมบตของ ดวย Object Properties โดยให Word Length (wl) เปน 8 bits และให Integer
Word Length (iwl) เปน 5 bits ซ� งจะไดความละเอยด (Resolution) ของระบบเปน 32 0.125− = และ ถด
จากน?น เรากทาการเลอก คณสมบตของ Result ดวย Properties >> Data Type
EEET0485 Digital Signal Processing Electronic Engineering Department
100 Mahanakorn University of Technology
a) b)
รปทE 11.19 กาหนด a) Object Properties ของ Array to Number และ b) Data Type ของ result
ใหม Word Length (wl) เปน 8 bits และ Integer Word Length (iwl) เปน 5 bits
จากน?นทดลองรนโปรแกรม โดยเลอกคาบลนเปน 01000111 ซ� งจะใหคาเปน 8.875 ตามท�ไดคานวณไวกอนหนา สงเกตวา เราอาจจะเขยนตาแหนงเรดกซพอยท เปน 01000.111 หรอไมกได แตกจะไมมผลใดๆ ตอการคานวณของโปรแกรม เพราะเรดกซพอยท เปนเพยงเพ�อการทาความเขาใจของผเขยนโปรแกรมเทาน?น
รปทE 11.20 แสดงผลกรณเลอกบลน 01000111 จะไดคา 8.875
หาก ทดสอบการแสดงคามากสด และ คานอยสดท�จะใหได กจะแสดงดงรปท� 11.21 a) และ b)
a)
EEET0485 Digital Signal Processing Electronic Engineering Department
101 Mahanakorn University of Technology
b)
รปทE 11.21 แสดงผลกรณเลอกบลน a) คานอยสด (Minimum) b) คามากสด (Maximum)
จากน?นทดลองเปล�ยนจานวนบทของ iwl เปน 1 บท ดงรปท� 11.22 เราจะไดวา
รปทE 11.22 Object Properties ของ Array to Number ให Integer Word Length (iwl) เปน 1 bits
0 1 2 3 4 5 6 7
1 2 3 4 5 6 7 82 2 2 2 2 2 2 2qx b b b b b b b b− − − − − − −= − × + × + × + × + × + × + × + ×
ซ� งจะพบวา คา 01000111 มคาเปน 0.55468750เพราะ
0 1 2 3 4 5 6 70 2 1 2 0 2 0 2 0 2 1 2 1 2 1 2
0.55468750qx − − − − − − −= − × + × + × + × + × + × + × + ×
= โดยม ความละเอยดอยท� 72 0.00781250− =
EEET0485 Digital Signal Processing Electronic Engineering Department
102 Mahanakorn University of Technology
รปทE 11.23 แสดงผลกรณเลอกบลน 01000111 จะไดคา 0.55468750
a)
b)
รปทE 11.24 a) คานอยสด (Minimum) b) คามากสด (Maximum)
หากทาการเปล�ยนคาของ data type แลวพบวา เกดจดสแดงข?นท�อนพทของอนดเคเตอร จดน? จะเรยกวาจด
บบบงคบ (Coercion Dot) ซEงเปนการทางานของ LabVIEW จะเปลEยนชนดของขอมลใหโดยอตโนมต เราอาจจะปลอยไวกได หรอหากไมตองการใหเกดจดบบบงคบ กใหทาการเปล�ยน Data Type ของอนดเคเตอรเปนตามคาของ Array to Number คอ wl=8 บท และ iwl=1 บท
EEET0485 Digital Signal Processing Electronic Engineering Department
103 Mahanakorn University of Technology
รปทE 11.25 การเกดจดบบบงคบ (Coercion Dot) กบ อนดเคเตอร Result แสดงชนดขอมลทEไมตรงกน
แกไขโดยการเปลEยน Data Type ของอนดเคเตอรเปนตามคาของ Array to Number คอ wl=8 บท
และ iwl=1 บท
การทดลองทE 11.3 จงเปล�ยนโปรแกรม Boolean to Fixed-Point Test.vi ในรปท� 11.18 ใหสามารถทางานในระบบ Q10.6
เอกสารอางอง
1. Digital Signal Processing System-Level Design Using LabVIEW, Nasser Kehtarnavaz and Namjin Kim, Newnes, Elsevier Inc., 2008 2. Fixed-point Signal Processing, Synthesis Lectures on Signal Processing, Wayne T. Padgett and David V. Anderson, Morgan & Claypool, 2009 3. Comparing Floating-point and Fixed-point Implementations on ADI Blackfin Processors with LabVIEW, NI Developer Zone, http://zone.ni.com/devzone/cda/tut/p/id/3115
EEET0485 Digital Signal Processing Electronic Engineering Department
104 Mahanakorn University of Technology
12. ดทเธอร (Dither)
วตถประสงค
1. เขาใจผลของความผดพลาดจากการควอนไตซท�เกดข!นกบสญญาณ 2. เขาใจความหมายของดทเธอรท�ใชในดานการประมวลผลสญญาณ 3. สามารถออกแบบระบบดทเธอรเพ�อประยกตใชงานจรงได
การควอนไตซและความเพ�ยน จากการทดลองท� 11 เราทราบวาการควอนไตซ (Quantization) น!นเปนกระบวนการแตเพยงอยางเดยวท�จะแปลงสญญาณแอนะลอกเปนสญญาณดจตอล เพ�อนาไปประมวลผลตอดวยอปกรณประมวลผลดจตอล แตการควอนไตซกนามาซ� งปญหานาปวดหวอยางหน�งของนกออกแบบระบบ การควอนไตซทาใหเกดความแตกตางระหวางสญญาณกอนและหลงจากการควอนไตซหรอเรยกวาความผดพลาดควอนไตซ
(Quantization Error) ความผดพลาดท�วาน! ทาใหเกดสญญาณแปลกปลอมอนซบซอนท�มความถ�เปนจานวนเทาของความถ�เดมท�เรยกวา ฮารโมนกส (Harmonics) หรอ กลาวอกอยางวาการควอนไตซน!นเปนตวการท�ผลตองคประกอบทางความถ�ท� “ไมได” มอยแตแรกในสญญาณแอนะลอก การควอนไตซจงเปนตนเหตของความเพ!ยนท�เรยกวา ความเพ�ยนฮารโมนกส (Harmonics Distortion) มคาถามวา ถาเราใชควอนไตเซอรท�มความละเอยดสง ๆ เชน 16 บท ซ� งทาใหระดบควอนไตซมมากถง 65,536 ระดบ แลวเร�องของความผดพลาดในการควอนไตซจะยงคงเปนปญหาอยหรอไม คาตอบกคอ ยงเปนปญหาอย เพราะแมวาการใชควอนไตเซอรท�มความละเอยดสงๆ น!นจะชวยใหความละเอยดท�ไดจากผลการแปลงไดผลลพทท�ดกตาม แตเพราะความละเอยดของการควอนไตซน!นมคาคงท�และข!นอยกบจานวนบทในการทาควอนไตซ โดยจากการทดลองตอนท�แลว เราไดเหนวา สญญาณผดพลาดคอสญญาณรบกวนข!นหลงจากการควอนไตซ จะมคาอยในระหวาง +/- 0.5 LSB (Least Significant Bit) เชนสาหรบ Q1.2 น!นม LSB อยท� 2-2 =0.25 ดงน!น คาของสญญาณผดพลาดจงอยท� +/- 0.125 หากสญญาณท�จะถกควอนไตซมระดบต�าๆ กจะสงเกตถงความผดพลาดควอนไตซไดงาย เชน ชวงหางเสยงของโนต หรอ เสยงท�มการลดระดบลงมาจากเดม สาหรบงานดาน Audio เปนตน หากพดถงเร�องการสงเกตความผดพลาดควอนไตซ กคงตองกลาวถงธรรมชาตการรบรผสสะของมนษยกนเลกนอย สมองมนษยมคณสมบตพเศษอยอยางหน�งกคอ มนจะใหความสนใจมากกบส�งแปลกใหม แตจะลดความสนใจกบส� งท�เกดข!นซ! าๆซากๆ ตวอยางท�เหนไดชดกคงจะเปนเร� องทางเสยง เชน เสยงรบกวนจากเคร�องปรบอากาศน!นจะใหความแปลกใหมในตอนเร�มเปดเคร�อง แตหลงจากน!นอกไมก�นาท หากวาเสยงรบกวนน!นไมดงมากจนเกนไป สมองกจะเลกใหความสนใจกบมนในท�สด เพราะสมองจะไปสนใจส�งอ�นๆ แทน เชน ทวท�มรายการโปรด หรอ งานท�กาลงเรงทาเปนตน เสยงรบกวนท�วากจะกลายเปนสญญาณรบกวนพ�นหลง (Background Noise) ท�ไมมความสาคญอกตอไป แตหากเม�อใดเสยงรบกวนมการ
EEET0485 Digital Signal Processing Electronic Engineering Department
105 Mahanakorn University of Technology
เปล�ยนแปลง เชน เร�มเสยงดงข!น หรอ ความถ�เปล�ยนไปจากเดม หรอ มความถ�ใหมเพ�มเขามา สมองกจะกลบไปใหความสาคญใหม กบสญญาณเสยงใหมน!นอก สาหรบสญญาณรบกวนท�วไปในระบบเคร�องเสยง เชน เสยงซา หรอ ฮส (hiss) ในเทปแคะเซท (Cassette) ยคโบราณ หรอ เสยงรบกวนท�เกดจากอปกรณสารก�งตวนา กจะมลกษณะเปนสญญาณรบกวนพ!นหลงดวย เน�องจากความเปนสญญาณท�เกดซ! าๆซากๆ และ หากสมองเร�มสนใจในเน!อหาของ “ดนตร”มากกวา นานๆเขา สมองจะเลกใหความสาคญกบสญญาณรบกวนเหลาน! ในท�สด หรอ พดงายๆ กคอเกดอาการชนชากบส�งท�เกดซ! าๆซากๆน�นเอง แตสาหรบสญญาณความผดพลาดจากการควอนไตซน!นจะไมเหมอนกบสญญาณรบกวนธรรมดา เพราะมนเกดข!นมาพรอมๆกบสญญาณท�ถกควอนไตซอยางแยกกนไมออก หากสงเกตใหดจะพบวาสญญาณผดพลาดควอนไตซน! มลกษณะเปนรายคาบ (periodic) ซ� งจะกอใหเกดฮารโมนกสท�ไมตองการ และสมองจะเขาใจวา ฮารโมนกสจากความผดพลาดจากการควอนไตซคอสวน
หนBงของสญญาณ และดวยการท�ความผดพลาดน! จะเปล�ยนแปลงตามสญญาณตลอดเวลา สมองจงรสกวาจะตองไลตาม (track) การเปล�ยนแปลงของฮารโมนกสน!นอยางไมกะพรบตา ในบรบทการใชงานทาง Audio และ Video น!น ความเพ! ยนจะหมายถงสญญาณความถ�อ�นๆ รวมท!งฮารโมนกสท�เพ�มเขามาในสญญาณเดม ดวยเหตน! ฮารโมนกสท�แปลกปลอมเขามาดงกลาวจงกลายเปนความเพ�ยน (Distortion) ไปโดยปรยาย และดวยการท�หและตาของมนษยมคณสมบตท�ไวตอการแยกแยะความถ�ของสญญาณ เสยงและแสง ความเพ!ยนจากฮารโมนกสของสญญาณจงมคณสมบต “ระคายหระคายตา” แตเพราะหและตามนษยจะไมไวตอ สญญาณรบกวนท�มแถบความถ�กวาง เชน สญญาณรบกวนพ!นหลง (Background Noise) ดงน!นการมอยของสญญาณรบกวนท�วาจงไมเปนปญหาตอการรบรของมนษยมากดงเชนความเพ!ยนจากฮารโมนกส การลดความเปนสญญาณท�เกดข!นซ! าๆ ใหกลายเปนสญญาณพ!นหลงน!น เราทาไดดวยกระบวนการทาดทเธอร (Dithering)
ทฤษฎของดทเธอร (Dither)
การทาดทเธอร คอกระบวนการ “เพ�มสญญาณรบกวน เพ�อลดความเพ!ยน” โดยหลกการกคอการทาใหฮารโมนกสจากการควอนไตซเปนความเพ!ยนท�รบรไดงาย ถกปรบใหกลายเปนสญญาณรบกวนพ!นหลงท�ยากจะสงเกต และเพราะดทเธอรน!นแทจรงแลวกเปนสญญาณรบกวนชนดหน� ง ดทเธอรจงกลายเปนสญญาณรบกวนท�ปรารถนา แนวคดเร�องดทเธอรน!นมมาต!งแตป 1961 จากวทยานพนธระดบปรญญาโทของ ลอเรนซ โรเบรตส (Lawrence Roberts) จากสถาบนเทคโนโลยแมสซาชเซท หรอ MIT ท�นาเสนอเทคนกการลดความเพ!ยนท�เกดข!นจากการลดจานวนบทในการควอนไตซท�เรยกวาการทารควอนไตซ (Requantization) ของสญญาณภาพท�เขารหสแบบ PCM (Pulse Code Modulation) [1] โดยลอเรนซไดเพ�มสญญาณสมเทยม (Pseudo–Random Noise) ท�สรางดวยตวสรางสญญาณสมเทยมขนาด 16 บท เขากบสญญาณภาพ PCM ท�ถกลด
EEET0485 Digital Signal Processing Electronic Engineering Department
106 Mahanakorn University of Technology
จานวนบทลง เพ�อดวาจะไดผลเปนอยางไร ในรปท� 12.1 a) น!นแสดงใหเหนภาพตนฉบบท�มจานวนบทมาตรฐานในการควอนไตซเปน 6 บท รปท� 12.1 b) เปนการลดจานวนบท หรอ รควอนไตซ ลงเหลอ 3 บท สงเกตวาดวยความท�ประสาทสมผสทางสายตาของมนษยน!นไวตอการเปล�ยนแปลงของความเขมแสง จงเหนวาความละเอยดของภาพลดลงอยางเหนไดชด ความแตกตางอยางฉบพลนของความเขมของสเดยวกนอนเน�องมาจากการรควอนไตซเปนจานวนบทต�าเชนน! เรยกวา Colour Banding [2] สวนในรปท� 12.1 c) น!นเปนการลดจานวนบทลงเหลอ 3 บท และเพ�มสญญาณสมเทยมเขาไปดวย จะสงเกตเหนส�งท�เกดข!นวา หากเพ�มสญญาณสมเทยมเขาไปแลว ผลลพทกดไมเลวเลยทเดยว ความเขมท�แตกตางกนในภาพถกกระจายออกและ การเกด Colour Banding กลดนอยลง การท�ลอเรนซไดใชการเพ�มสญญาณสมเทยมน! เขาไปกอนท�จะทาการรควอนไตซน!นถอเปนตนกาเนดของวธการทาดทเธอร แตลอเรนซเองกไมไดใชคาวาดทเธอรกบสญญาณสมเทยมน! จนในป 1964 ชคแมน (Shcuchman) เปนคนแรกท�ใชคาวา “ดทเธอร (Dither)” กบ สญญาณสมเทยมดงกลาว และ เรยกกระบวนการการเพ�มสญญาณสมเทยมกอนทาการควอนไตซวา การทาดทเธอร (Dithering) [3]
a) b) c)
รปทB 12.1 รปสญญาณภาพ a) 6 bit ตนฉบบ b) ความละเอยดถกรควอนไตซลงเหลอ 3-bit สงเกตการเกด
Colour Banding และ c) ความละเอยดถกรควอนไตซลงเหลอ 3-bit แตมการเพBมสญญาณสมหรอ “ดท
เธอร”กอนรควอนไตซ [1]
ดทเธอรกบการควอนไตซ
จากโครงสรางของระบบการควอนไตซท�ไดนาเสนอกนไปในการทดลองท� 11 ใน เร�องของ Fixed-
point Experiments with LabVIEW หากเขยนบลอก A/D ท�ใชในการควอนไตซในรปของควอนไตซเซอร
(Q) ซ� งมบลอกไดอะแกรมแสดงในรปท� 12.2 a) เราจะไดวาข!นตอนการแปลงสญญาณแอนะลอกไปเปนดจตอลน!นมการแปลงอยางตรงไปตรงมา สวนรปท� 12.2 b) น!น เปนการแสดงกระบวนการทาดทเธอร ซ� งจะเปนการบวกสญญาณรบกวน (Random Signal) หรอ ดทเธอร (Dither) เพ�มลงไปในสญญาณกอนท�จะทาการควอนไตซ หรอ รควอนไตซ
EEET0485 Digital Signal Processing Electronic Engineering Department
107 Mahanakorn University of Technology
ดทเธอรน!นจดเปนสญญาณสม (Random signal) ประเภทหน�ง สญญาณสมมหลายชนด แตละชนดถกแสดงเอกลกษณไดดวยลกษณะเชงสถต ท�เรยกวา รปแบบการกระจายตว (distribution) โดยจะแสดงในรปของความนาจะเปน (Probability) ของ “ขนาด” สญญาณสมท�จะเปนคาตางๆ ระหวางคาสงสด Xmax และ คาต�าสด Xmin โดยรปแบบการกระจายตวของดทเธอรจะมแบบท�ใชกนมากกคอ แบบยนฟอรม
(Uniform Distribution) และ แบบสามเหลBยม (Triangular Distribution) ดงแสดงในรปท� 12.3 แตในการทดลองน! เราจะแสดงเฉพาะดทเธอรท�มการกระจายตวแบบยนฟอรมเทาน!น
a) b)
รปทB 12.2 การควอนไตซหรอ รควอนไตซแบบ a) ไมมการทาดทเธอร b) มการทาดทเธอร โดยการเพBม
สญญาณสมใหกบสญญาณกอนทBจะทาการควอนไตซ หรอ รควอนไตซ
a) b)
รปทB 12.3 แสดงการกระจายตวของสญญาณดทเธอร a) แบบยนฟอรม (Uniform Distribution) และ
b) แบบสามเหลBยม (Triangular Distribution) ในรปท� 12.4 จะเปรยบเทยบผลการควอนไตซระหวาง a) แบบไมมการทาดทเธอร และ b) แบบมดทเธอร สงเกตการเกดสญญาณรบกวนในแตละชวงของการควอนไตซ หากไมมการทาดทเธอรกจะเปนการควอนไตซของสญญาณตามปกต แตในกรณการทาดทเธอรแตละข!นการควอนไตซ จะถกรบกวนดวยสญญาณดทเธอรท�เพ�มเขาไป การรบกวน หรอ “การกอกวน” ควอนไตซเซอร น�เองท�ทาใหรปแบบของความถ�หรอฮารโมนกสของความผดพลาดการควอนไตซมการเปล�ยนแปลงไปดงจะไดเหนในการทดลองดวย LabVIEW
EEET0485 Digital Signal Processing Electronic Engineering Department
108 Mahanakorn University of Technology
a) b)
รปทB 12.4 เปรยบเทยบผลการควอนไตซระหวาง a) แบบไมมการทาดทเธอร และ b) แบบมดทเธอร สงเกต
การเกดสญญาณรบกวนในแตละชวงของการควอนไตซ
การทดลองดทเธอรดวย LabVIEW
เราจะมาลองดวา เราจะใช LabVIEW ในการศกษาหลกการของดทเธอรไดอยางไร สาหรบ LabVIEW แลวมขอดกคอเราจะสามารถใชประโยชนจาก Tools ทางดานการประมวลผลสญญาณท�มอยอยางครบครน และท�สาคญกคอ LabVIEW แสดงสญญาณท�ถกประมวลผลแลวในแบบเวลาปจจบน (Real-Time) ไดงาย จงทาใหสามารถปรบเปล�ยนพารามเตอรและดคาจากการเปล�ยนแปลงน!นไดทนท เหมาะกบการศกษาทดลองเปนอยางย�ง จากการทดลองตอนท�แลว เพ�อใหสามารถทาการเปรยบเทยบได ซ� งเราจะนาโปรแกรมท�ไดออกแบบไวสาหรบการแสดงคาความผดพลาดจากการควอนไตซกลบมาใชใหม (reuse) เพ�อการศกษาถงกระบวนการของดทเธอรในการลดความเพ!ยนท�มาจากการควอนไตซ ซ� งโปรแกรมน!จะเปนการสานตอจากโปรแกรมแสดงคาความผดพลาดจากการควอนไตซของการทดลองตอนท�แลว โดยแนวคดหลก คอ การเปรยบเทยบระหวางสญญาณท�มาจากการควอนไตซโดยตรง ท�ไมมการทาดทเธอร และ กบสวนท�เปน การใชหลกการของดทเธอรเพ�อการลดความเพ!ยนท�มาจากความผดพลาดจากการควอนไตซ
EEET0485 Digital Signal Processing Electronic Engineering Department
109 Mahanakorn University of Technology
รปทB 12.5 แนวคดของโปรแกรมทดสอบดทเธอรดวย LabVIEW
จากโปรแกรมทดสอบการควอนไตซในการทดลองเดมน!น เราเร�มตนดวยการเพ�ม While Loop
ใหกบโปรแกรมท!งหมดดงแสดงในรปท� 12.6 เพ�อใหโปรแกรมทางานไดแบบตอเน�อง และ ส�งท�สาคญของโปรแกรมอกอยางหน� งกคอ สวนตดตอกบผใชงาน (User interface) ท�เรยกยอๆ วา UI หากโปรแกรมมสวนของ UI ท�ใชงานงายและสวยงาม กจะทาใหโปรแกรมน!นนาใชงานมากข!น ดงตวอยางท�แสดงในรปท� 12.6 b) โดยมการเพ�มคอนโทรลเปน สไลด (slide) เพ�อการปรบความถ� (Frequency) และขนาด (Amplitude) และ รวมถงปม Stop ทาใหสามารถควบคมการทางานของโปรแกรมไดอยางสะดวกงายดาย และเพ�มสวน คอนโทรล และ อปกรณตกแตงหนาตาโปรแกรม (Decorations) ตางๆ เชน บอกซ (Box) เสน (line) หรอ เฟรม (Frame) เพ�อแยกสวนท�ไมเก�ยวของออกจากกนออกเปนสดเปนสวนทาใหโปรแกรมดนาใชงานย�งข!นไปอก
a)
EEET0485 Digital Signal Processing Electronic Engineering Department
110 Mahanakorn University of Technology
b)
รปทB 12.6 การดดแปลงโปรแกรทดสอบการควอนไตซ a) บลอกไดอะแกรม b) ฟรอนทพาเนล สงเกตการ
ตกแตง (Decorations) และ คอนโทรล ทBเพBมเขามาเพBอความสวยงามของสวนตดตอผใชงาน (User
Interface) จากน!น ใหขยายเน!อท�ของ While loop ในสวนบลอกไดอะแกรมใหกวางข!นดงในรปท� 12.7 a) เพ�อเตรยมรองรบบลอกของการทาดทเธอรรวมถงการแสดงผลสญญาณและสเปคตรม ในสวนฟรอนทพาเนลกใหทาเชนเดยวกน เพ�อรองรบคอนโทรลท�เพ�มข!น ดงรปท� 12.7 b)
a)
EEET0485 Digital Signal Processing Electronic Engineering Department
111 Mahanakorn University of Technology
b)
รปทB 12.7 การเพBมเน�อทBท�งใน a) บลอกไดอะแกรม และ b) ฟรอนทพาเนล เพBอรองรบการเขยนโปรแกรม
เพBมในสวนการทาดทเธอร
จากน!น เพ�มสวนการวเคราะหสเปคตรมของสญญาณ โดยเลอกจาก Auto Power Spectrum.vi จาก Signal
Processing>> Spectral >> Auto Power Spectrum.vi ซ� งเปนการแสดงสวนสเปคตรม หรอฮารโมนกสของสญญาณดงรปท� 12.8
สญญาณเขาสบลอกของ Auto Power Spectrum.vi น!นตองเปนสญญาณชนด Double (สายสสม)
แตเน�องจากสญญาณท�มาจากบลอก Sine Waveform.vi น!นเปนชนดสญญาณ Waveform (สายส
มวง) ดงน! นโดยกอนท�จะนาสญญาณเขาสบลอก ใหแยกสญญาณ waveform ดวยบลอก Get
Waveform Components จาก Programming >> Waveform >> Get Waveform Components ดงในรปท� 12.9 เพ�อใหไดสญญาณชนด Double
EEET0485 Digital Signal Processing Electronic Engineering Department
112 Mahanakorn University of Technology
รปทB 12.8 บลอก Auto Power Spectrum.vi จาก Signal Processing>> Spectral Analysis >> Auto
Power Spectrum.vi
รปทB 12.9 บลอก Get Waveform Components จาก Programming >> Waveform >> Get
Waveform Components
หลงจากน!น เรามา เลอกใชบลอก Spectrum Unit Conversion.vi ซ� งจะทาใหสามารถแสดงหนวย (unit) ของสเปคตรมไดตามตองการ โดยเลอกจาก Signal Processing>>Spectral Analysis >> Spectrum Unit Conversion.vi ดงแสดงในรปท� 12.10
EEET0485 Digital Signal Processing Electronic Engineering Department
113 Mahanakorn University of Technology
รปทB 12.10 บลอก Spectrum Unit Conversion.vi จาก Signal Processing>> Spectral Analysis >>
Spectrum Unit Conversion.vi
ถดจากน!น เม�อนาบลอกการวเคราะหสเปคตรมของสญญาณ Auto Power Spectrum.vi
และ บลอก Spectrum Unit Conversion.vi รปท� 12.11 a) เราจะไดผลการแสดงรปสเปคตรมของสญญาณดจตอลหลงจากการควอนไตซ ดงแสดงในรปท� 12.11 b) เม�อรนโปรแกรมจะเหนวา ในสเปคตรมของสญญาณดจตอลหลงจากการควอนไตซน!น นอกจากจะมความถ�ของสญญาณหลก 100 Hz แลว ยงมความถ� 300 Hz และ 500 Hz ปรากฏอยดวย ซ� งแสดงถงฮารโมนกสท� 3 และท� 5 ตามลาดบ ฮารโมนกสท�เกดข!นน! ไมไดมมากอนในสญญาณแอนะลอกตนฉบบ แตเปนส�งท�ควอนไตเซอรทาใหมข!น จงถกเรยกวาเปนความเพ!ยนของสญญาณ
EEET0485 Digital Signal Processing Electronic Engineering Department
114 Mahanakorn University of Technology
a)
b)
รปทB 12.11 a) นา Auto Power Spectrum.vi และ บลอก Spectrum Unit Conversion.vi วาง
ในโปรแกรม ทาใหไดผลการแสดงสเปคตรมในฟรอนทพาเนล ในรป b) จากน!นกเปนข!นตอนทาดทเธอร เน�องจากดทเธอรท�เราใชน!นเปนสญญาณรบกวนสขาวแบบมการกระจายแบบยนฟอรม (Uniform White Noise) ดงน!นเราจงเลอกใชบลอก Uniform White Noise Waveform.vi
EEET0485 Digital Signal Processing Electronic Engineering Department
115 Mahanakorn University of Technology
จาก Programming >> Signal Processing >> Wfm Generation >> Uniform White Noise
Waveform.vi ดงในรปท� 12.12
รปทB 12.12 สญญาณดทเธอรจากบลอก เลอกจาก Programming >> Signal Processing >> Wfm
Generation >> Uniform White Noise Waveform.vi
จากน!นนาลงไปวางในท�วางของบลอกไดอะแกรม โดยเลอกคาขอมลการแซมปล!ง (Sampling
Info) เปน Fs (sampling rate) และ #s (number of samples) เปน 10000 เหมอนกบของบลอก Sine
waveform.vi และเพ�มสวนคอนโทรล คาขนาดของดทเธอรเปน knob ดวยเพ�อการควบคมปรมาณการใสดทเธอร หากเลอกคาดทเธอรมากเกนไปกจะเพBมสญญาณรบกวนโดยไมจาเปน แตหาก
เลอกดทเธอรนอยเกนไป กจะไมสามารถลดคาความเพ�ยนทBเกดจากการควอนไตซได ดงน!น จงตองใสดทเธอรใหมปรมาณท�เหมาะสม
EEET0485 Digital Signal Processing Electronic Engineering Department
116 Mahanakorn University of Technology
a)
b)
รปทB 12.13 การทาดทเธอร โดยใชสญญาณจากบลอก Uniform White Noise Waveform.vi a)
บลอกไดอะแกรม b) ฟรอนทพาเนล การทดลองทB 12.1 ทดลองปรบคาความถ�ของสญญาณจากคา 100 Hz ใหลดลงเหลอ 60 Hz อภปรายผลวาสเปคตรมของฮารโมนกสมการเปล�ยนแปลงอยางไร
EEET0485 Digital Signal Processing Electronic Engineering Department
117 Mahanakorn University of Technology
จากน!นกใหเพ�มสวนของ Analog to Digital.vi และบลอก Digital to Analog.vi เชนเดยวกบโปรแกรมเดม และเลอกจานวนบทเปน 5 บท ดงรปท� 12.14
รปทB 12.14 บลอกไดอะแกรมแสดงการเพBมสวนของ A/D และ D/A สาหรบสญญาณทBเพBมดทเธอรกอน
การควอนไตซ
จากน!นกเพ�มสวนของ Auto Power Spectrum.vi และบลอก Spectrum Unit
Conversion.vi เพ�อแสดงสเปคตรมของสญญาณควอนไตซท�มการทาดทเธอร โปรแกรมทดสอบดทเธอรท�เสรจสมบรณแลว จงแสดงดงในรปท� 12.15 a) โดยม ฟรอนทพาเนลแสดงดงรปท� 12.15 b) โดยเปรยบเทยบสญญาณท! งในโดเมนเวลา และ คาสเปคตรมของสญญาณ ท! งแบบท�มและไมมดทเธอร เปรยบเทยบลกษณะของสญญาณจะเหนไดอยางชดเจนวาการเพ�มสญญาณดทเธอรน!น ทาใหลกษณะการควอนไตซมรปแบบเปล�ยนแปลงอยตลอดเวลา เทยบกบกรณไมมดทเธอรท�ระดบของสญญาณจากการควอนไตซจะมลกษณะเหมอนเดมในทกๆคาบ ผลกคอฮารโมนกสท� 3 และท� 5 ของการทาดทเธอรน!นจะลดลงจากเดม แตส�งท�เกดข!นแทนกคอระดบสญญาณรบกวนพ!นหลงท�เพ�มข!น
EEET0485 Digital Signal Processing Electronic Engineering Department
118 Mahanakorn University of Technology
a)
b)
รปทB 12.15 โปรแกรมการทดสอบดทเธอรทBเสรจสมบรณทดสอบทBความถB 100 Hz a) บลอกไดอะแกรม b)
ฟรอนทพาเนล
การทดลองทB 12.2 ทดลองปรบจานวนบทในการควอนไตซ เปน 3 บท และ 8 บท ตามลาดบ อภปรายผลวาปรมาณฮารโมนกสหลงจากการทาดทเธอรมการเปล�ยนแปลงอยางไร
EEET0485 Digital Signal Processing Electronic Engineering Department
119 Mahanakorn University of Technology
การทดลองเรBองซบฮารโมนกส และอนเตอรมอดเลชน
จากน!น เราลองปรบความถ� ใหมคาเปน 480 Hz จะพบวา การทาควอนไตซของสญญาณกอใหเกดความถ�ท�นอยกวา ความถ�หลกดวย เชน ท�ความถ� 80, 160, 240, 320 และ 400 Hz สาหรบความถ�ท�นอยกวาเปนจานวนเทา (1/X) ของความถ�หลก เม�อ X เปนเลขจานวนเตม จะเรยกวาซบฮารโมนกส (Subharmonics) เชน ความถ�หลก 480 Hz มซบฮารโมนกสท� 2 เทากบ 240 Hz และซบฮารโมนกสท� 3 เทากบ 160 Hz เชนน! เปนตน แตจะสงเกตวามบางความถ�ท�ไมจดเปนซบฮารโมนกสของ 480 Hz เชน ท�ความถ� 80 และ 320 Hz กเกดข!นอยางชดเจนดวย เราจะเรยกความถ�ท�ไมใชท!งซบฮารโมนกสและฮารโมนกสเหลาน! วาเปน อนเตอร
มอดเลชน (Intermodulation) ซ� งเกดจากการกระบวนการอนไมเปนเชงเสน (Nonlinearity) ของการควอนไตซ และกอใหเกดความเพ!ยนเพ�มเตมจากความเพ!ยนจากฮารโมนกสและซบฮารโมนกส แถมออกจะแยกวาเพราะอนเตอรมอดเลชนประกอบดวยความถ�ท�ไมสมพนธกบสญญาณตนฉบบเอาเสยเลย ในงานดาน audio น!น อนเตอรมอดเลชนจะทาใหเสยงฟงรกห แตสาหรบกรณท�มการเพ�มดทเธอร เม�อสงเกตสเปคตรมสญญาณ กพบวาการทาดทเธอรสามารถลดซบฮารโมนกสและความเพ! ยนแบบอนเตอรมอดเลชนไดเชนเดยวกบท�สามารถลดฮารโมนกสของสญญาณควอนไตซในตวอยางกอนหนา
รปทB 12.16 ทBความถB 480 Hz จะสงเกตเหนการลดลงของท�งซบฮารโมนกส (Subharmonics) และความ
เพ�ยนอนเตอรมอดเลชนทBความถB 80, 160, 240, 320 และ 400 Hz
EEET0485 Digital Signal Processing Electronic Engineering Department
120 Mahanakorn University of Technology
การทดลองทB 12.3 ทดลองปรบความถ�สญญาณไซนกอนถกควอนไตซเปน 320 Hz ให อภปรายผลวาม ฮารโมนกส ซบฮารโมนกสและความเพ! ยนแบบอนเตอรมอดเลชนเกดข! นท�ความถ�เทาใดและทดลองปรบระดบดทเธอร อภปรายผลวาการทาดทเธอรสามารถลดฮารโมนกส ซบฮารโมนกสและความเพ! ยนแบบอนเตอรมอดเลชนไดหรอไมอยางไรบาง
เอกสารอางอง
[1] L. G. Roberts, "PGM Television Bandwidth Reduction Using Pseudo-Random Noise," S.M. thesis, Mass. Inst. Tech., Cambridge; February, 1961. (http://www.packet.cc/files/pic-code-noise.html) [3] Dither, “http://en.wikipedia.org/wiki/Dither” [2] L. Schuchman, "Dither Signals and Their Effect on Quantization Noise", IEEE Trans. Communications 12 (4): 162-165, 1964
EEET0485 Digital Signal Processing Electronic Engineering Department
121 Mahanakorn University of Technology
13. Noise Shaping with LabVIEW I
วตถประสงค
1. เพ�อทราบถงพ�นฐานการออกแบบการประมวลผลแบบจดตอจดสาหรบระบบนอยสเชปป� ง 2. สามารถออกแบบระบบนอยสเชปป� งเพ�อประยกตใชงานจรงได
บทนา
ในการทดลองเร�องดทเธอรน�น เราไดเหนถงความนาสนใจของการประมวลผลสญญาณของการลดความเพ�ยนฮารโมนกสท�เกดจากการควอนไตซ (Quantisation) ในระบบเสยงดจตอลดวย ดทเธอร (Dither) ซ� งอนท�จรงกเปนการเพ�มสญญาณรบกวนท�มคณสมบตทางสถตท�เลอกมาอยางด เขาไปในระบบการควอนไตซและจากการทดลองดวยโปรแกรม LabVIEW อยางงายๆ เรากไดเรยนรวา ดทเธอรทาใหความเพ�ยนฮารโมนกสอนเกดจากการควอนไตซลดลงไดจรง ในการทดลอง“การออกแบบระบบ Noise Shaping ดวย LabVIEW” น� เราจะมาเรยนรกระบวนการเพ�มคณภาพของสญญาณจากการควอนไตซท�มการทาดทเธอรอยแลวใหมมากข�นไปอกโดยหลกการท�วาน� จะเรยกวาการทานอยสเชปป# ง (Noise Shaping) และเปนภาคตอจากการทากระบวนการทาดทเธอรในการทดลองกอนหนา โดยในตอนท� 1 ของการทดลองน� เราจะมาดกนในเร�องของฟงกชนพ�นฐานกนกอน
ความเพ#ยนฮารโมนกสจากการควอนไตซ
ในเร�องของสญญาณเสยงดจตอลในปจจบนน�น ส�งสาคญท�นกออกแบบระบบใหความสนใจเปนท�สด กคอคณภาพกระบวนการแปลงสญญาณท�มความตอเน�องทางเวลา (Continuous-time) หรอ สญญาณแอนะลอก (Analogue signals) ใหเปนสญญาณท�ไมตอเน�องทางเวลา (Discrete-time) หรอ สญญาณดจตอล (Digital signals) รวมถงการแปลงกลบ ส�งท�เกดข�นในกระบวนการน�กคอ การควอนไตซ แตแนนอนวากระบวนการ ควอนไตซทาใหเกดความแตกตางระหวางสญญาณกอนและหลงจากการควอนไตซหรอเรยกวาความผดพลาดควอนไตซ (Quantization Error) ความผดพลาดท�วาน� ทาใหเกดสญญาณแปลกปลอมท�มความถ�เปน “จานวนเทา” ของความถ�ด�งเดม หรอ เรยกวา ฮารโมนกส (Harmonics) โดยจานวนของฮารโมนกสน�นเกดข�นไดอยางไมจากด ส� งท�หลกเล�ยงไมไดเม�อมฮารโมนกสกคอความเพ� ยนอนสลบซบซอนท�เรยกวา ความเพ#ยนฮารโมนกส (Harmonics Distortion) ซ� งเปนส�งท�นกออกแบบระบบช�นนาตองการกาจด สาเหตหลกกเพราะมนมคณสมบตพเศษอยางหน�งท�สามารถกอกวนการรบรของมนษยคอมนจะไลตาม (tracking) สญญาณเสยงตนฉบบท�บรสทธ หากฮารโมนกสอยในระดบท�มากพอ ผฟงจะรบรไดทนทวา น>ไมใชสญญาณเสยงดนตรท>บรสทธC แตกลบเปนสญญาณเงาท�เกดข�นพรอมๆกบเสยงท�ตองการไดยนอยตลอดเวลา วากนวามนษยสามารถรบรสญญาณท�ปราศจากความเพ�ยนท� -115 dB ดงน�นในระบบ 16 บทท�ใชกนอยในคอมแพคดสก หรอ CD ท�สญญาณรบกวนน�นจะต�าถง -96 dB แลวกตาม ความเพ�ยนฮารโมนกสของระบบ
EEET0485 Digital Signal Processing Electronic Engineering Department
122 Mahanakorn University of Technology
CD กไมเกนไปกวาความสามารถการรบรของหมนษย เราสนใจความเพ�ยนฮารโมนกสเพราะสมองมนษยมคณสมบตพเศษอยอยางหน�งตรงท�มนจะใหความสนใจกบสญญาณแปลกๆใหมๆ แตจะลดความสนใจกบสญญาณท�เกดข�นซ� าๆซากๆ ฮารโมนกสน#นคอส> งแปลกใหม แตสญญาณรบกวนจากดทเธอรกลายเปนสญญาณรบกวนพ#น (Noise floor) ไป วธการแกปญหาฮารโมนกอนเกดจากการควอนไตซท�งายแตไดผลกคอการใสสญญาณรบกวนชนดหน�งเขาไปกอนการทาการควอนไตซ สญญาณน� เรยกวา ดทเธอร (Dither) หากระดบสญญาณดทเธอรน� มมากพอ ฮารโมนกสกจะลดลงอยางนาอศจรรย แตน�กไมใชเร�องลกลบแตประการใด เพราะฮารโมนกสน�นเปนสญญาณท�ประกอบดวยความถ� เฉพาะ แตดทเธอรเปนสญญาณรบกวนท>ไมมความถ>ท>แนนอน เปล�ยนแปลงไปไมหยดน�ง การผสมดทเธอรลงไปทาใหระดบพลงงานจากความถ�แปรเปล�ยนไปตลอดทาใหฮารโมนกสท�มความถ�เฉพาะจงไมมโอกาสเกดข�น แตแมกระน�นกตาม ถงฮารโมนกสจะลดลง แตสญญาณรบกวนพ�น (Noise floor) อนเกดจากดทเธอรกยงคงอย ซ� งทาใหระดบของอตราสวนสญญาณตอสญญาณรบกวน (signal to noise ratio) หรอ SNR ลดลง ในการทดลองตอนน� เราจะมาดเร�องของการลดระดบสญญาณรบกวนพ�นโดยกรรมวธท�เรยกวาการทานอยสเชปป# ง (Noise Shaping) โดยใช LabVIEW ในการสรางโปรแกรมทดสอบ
ดทเธอร
ในตอนน� ขอเทาความ ถงเร�องการทาดทเธอรสกเลกนอย ดทเธอรคอกระบวนการ “เพ>มสญญาณรบกวน เพ>อลดความเพ#ยนฮารโมนกส” โดยหลกการกคอการทาใหฮารโมนกสจากการควอนไตซเปนความเพ� ยนท�รบรไดงาย ถกปรบใหกลายเปนสญญาณรบกวนพ�นหลงท�ยากจะสงเกต ดทเธอรจงกลายเปนสญญาณรบกวนท�เปนท�ตองการไป ระบบควอนไตซท�มดทเธอรจะแสดงในรปท� 13.1 โดยเราจะบวกสญญาณสมจานวนนอยๆเขากบสญญาณท�จะถก ควอนไตซกอนท�จะทาการควอนไตซ
รปท> 13.1 การทาดทเธอรโดยการเพ>มสญญาณรบกวนใหกบสญญาณกอนท>จะทาการควอนไตซ
สญญาณ x กคอสญญาณท�ตองการควอนไตซ d คอสญญาณดทเธอรท�เพ�มเขาไป Q คอควอนไตซเซอร และ y คอ สญญาณขาออกท�ผานการควอนไตซมาแลว การกอกวนควอนไตซเซอรดวย d น�เองท�ทาให
EEET0485 Digital Signal Processing Electronic Engineering Department
123 Mahanakorn University of Technology
รปแบบของความถ�ความผดพลาดการควอนไตซมความถ�ไมแนนอนจงเปนการลดฮารโมนกสไปโดยปรยาย สวนสญญาณความผดพลาดควอนไตซ e น�นหาไดงายๆ จาก y ลบดวย x ดงใน e = y - x แตกระน�นกตาม ถงแมวาหลงจากการทาดทเธอรแลว สญญาณความผดพลาดควอนไตซ e ซ� งกอใหเกดความเพ�ยนฮารโมนกน�นจะมปรมาณลดลงกตาม แตกยงคงมสญญาณรบกวนอนเกดจากสญญาณรบกวนดทเธอร d ดวย และน�กทาใหเกดขอเสยท�สาคญข� นมาอยางหน� งกคอ การทาใหอตราสวนของสญญาณตอสญญาณรบกวน (Signal to Noise Ratio) หรอ SNR นอยลง และ ทาใหคณภาพของสญญาณหลงจากการควอนไตซ y ลดลงตามไปดวย ความตองการท�จะเพ�ม SNR หรอ การลดสญญาณรบกวนน�นามาสระบบท�ทาหนาท�กดสญญาณรบกวนพ�นหลงในยานความถ�ต �าซ� งเปนยานของสญญาณ โดยระบบท�วาน� เรยกวา ระบบนอยสเชปป# ง (Noise Shaping)
ระบบนอยสเชปป# งและโอเวอรแซมปล#ง
หลกการของระบบนอยสเชปป� งน�นกคอการยายพลงงานในสวนของสญญาณผดพลาดควอนไตซท�รบกวนอยในยานความถ�ต �าและนาไปเพ�มในยานความถ�สงซ� งเปนบรเวณท�ไมมผลตอการรบสญญาณแทน การยายพลงงานน�ทาเฉพาะพลงงานของสญญาณรบกวนท�เกดจากดทเธอรเทาน�นไมเก�ยวกบสญญาณเสยงท�เราตองการ การวเคราะหสญญาณท�ความถ�ตางๆ ทาไดโดยการแสดงสเปคตรม (Spectrum) ของสญญาณ สเปคตรมคอปรมาณพลงงานของสญญาณ ณ ความถ� ตางๆ ตลอดยานความถ� ในรปท� 13.2 a) และ b) แสดงการเปรยบเทยบความแตกตางสเปคตรมของระบบท�ไมมและมระบบนอยสเชปป� งตามลาดบ ในแกนต�งคอความเขมของพลงงาน สวนแกนนอนคอความถ� จะเหนวาในรปท� 13.2 a) น�น แสดงระบบไมมการใชนอยสเชปป� ง สงเกตวาพลงงานของสญญาณน�นนอยเน�องจากถกกลบดวยพลงงานของสญญาณรบกวน สวนรปท� 13.2 b) น�น แสดงกรณท�มการใชระบบนอยสเชปป� ง ซ� งเปนการกดสญญาณรบกวนใหต�าลงในยานความถ�ของสญญาณท�ตองการ ทาใหปรมาณพลงงานของสญญาณท�ตองการมมากข�น สงเกตวาในระบบนอยสเชปป� งน�น ระดบของพลงงานสญญาณรบกวนจะมความลาดชนจากคานอยๆ ในยานความถ�ต �าและคอยๆ เพ�มระดบไปสคาท�มากข�นในยานความถ�สง แตกตางจากในกรณท�ไมมระบบนอยสเชปป� งท�สเปคตรมมคาคงท�ตลอดยานความถ� จะเหนไดวา ตวกรองสงผานเปนองคประกอบท�สาคญมากท�จะทาหนาท�ดดสญญาณรบกวนในยานความถ�ต �าใหต �าลง โดยปกตแลวสญญาณท�มนษยจะรบรไดดจะเปนยาน 3 kHz ระบบนอยสเชปป� งจะดดสญญาณรบกวนใหไปอยในยาน 10 kHz-22 kHz
EEET0485 Digital Signal Processing Electronic Engineering Department
124 Mahanakorn University of Technology
a) b)
รปท> 13.2 แสดงการเปรยบเทยบ a) กรณไมมระบบนอยสเชปป# ง พลงงานสญญาณมนอย b) กรณมระบบนอยสเชปป# ง พลงงานสญญาณมมาก
แตการทานอยสเชปป� งน�น จะไดผลนอยหากไมมพ�นท�ดานความถ�ท�มากพอ เพราะตามทฤษฎแซมปล�งแลว ความถ�ของสญญาณแซมปล�งจะตองไมต�ากวา 2 เทาของแบนดวทของสญญาณ จงจะใหการกคนสญญาณ (Reconstruction) ท�ไมผดเพ�ยน แตการแซมปล�งท�อตรา 2 เทาความถ�แซมปล�งตามทฤษฎน�น ทาใหการจดการกบสญญาณรบกวนทาไดยาก เพราะตวสญญาณรบกวนไมมพ#นท>ทางความถ>ท>มากพอจะถกผลกดนใหไปยายตาแหนงไปดานความถ>สงๆได ดงน�นจงจาเปนตองมการทา โอเวอรแซมปล#ง (Oversampling) โอเวอรแซมปล�งกไมใชส�งแปลกประหลาดหรอพเศษไปกวาการแซมปล�งตามปกตแตอยางใด เพราะการโอเวอรแซมปล�งกเปนแตเพยงการแซมปล�งท�ความถ�สงเกนกวา 2 เทาของแบนดวทของสญญาณมากๆ เทาน�นเอง ย�งความถ�แซมปล�งมคาสงการผลกดนสญญาณรบกวนกเปนไปไดงาย และเพ�อความสะดวกในการอธบาย เราจะใชนยามความถ>นอรมลไลซ (Normalised frequency) โดย ความถ>แซมปล#ง เทยบเทาความถ>นอรมลไลซเปน 1 ดงน�นไมวาความถ�แซมปล�งจะเปนก�เฮรสตกตาม เราจะปรบใหเปน 1 เสมอ ซ� งจะทาใหแบนดวทของสญญาณจะถกจากดอยท�คร� งหน�งของความถ�แซมปล�ง มความถ�นอรมลไลซเปน 0 ถง 0.5 รปท� 13.3 a) แสดงระบบท�มนอยสเชปป� งแต ไมมโอเวอรแซมปล�ง พลงงานของสญญาณยงคงมสญญาณรบกวนปะปนอยมากพอสมควร แตในรปท� 13.3 b) หากเราทาโอเวอรแซมปล�งแลว ย�งความถ�แซมปล�งสงข�น สญญาณรบกวนท�ผานระบบนอยสเชปป� ง ซ� งกคอตวกรองสงผานในยานความถ�ต �าจะลดต�าลงมากข�น ท�งน�กเพราะลกษณะทางกายภาพของผลตอบสนองความถ�ของตวกรองสงผานท�จะใหคาสญญาณท�ผานออกไปนอยสดจากความถ�นอรมลไลซเปน 0 และสญญาณท�ผานออกไปม
EEET0485 Digital Signal Processing Electronic Engineering Department
125 Mahanakorn University of Technology
คามากสดท�ความถ�นอรมลไลซเปน 0.5 ดงแสดงในรปท� 13.3 เปรยบเทยบท�งกรณไมมและมการทาโอเวอรแซมปล�ง
a) b)
รปท> 13.3 แสดงการเปรยบเทยบสเปคตรมของสญญาณรบกวนในกรณ a) มนอยสเชปป# งแตไมมโอเวอรแซมปล#ง มสญญาณรบกวนในยานสญญาณเสยง และกรณ b) มนอยสเชปป# งและมโอเวอรแซมปล#งดวย ทา
ใหพลงงานสญญาณรบกวนนอยลงในยานสญญาณเสยง โครงสรางของระบบนอยสเชปป� งในรปท� 13.4 ถกพฒนามาจากระบบการควอนไตซแบบมดทเธอรในรปท� 13.1 ท�มการเพ�มเตมบลอกตวกรองดจตอล (Digital Filter) เพ�อการดดสญญาณรบกวนหรอระบบนอยสเชปป� ง (Noise Shaping)
รปท> 13.4 การควอนไตซสญญาณท>มระบบนอยสเชปป# ง (Noise Shaping)
EEET0485 Digital Signal Processing Electronic Engineering Department
126 Mahanakorn University of Technology
เราจะมาลองดกนวา เราจะใช LabVIEW ในการศกษาหลกการของนอยสเชปป� งไดอยางไร LabVIEW น�นเปนแพลตฟอรมท�มความสามารถสงในการทางานดานควบคมกระบวนการ ซ� งมบลอกอนสตรเมนทเสมอน หรอ Virtual Instruments หรอ VIs ใหเลอกใชอยางครบครน รวมท�งบลอก VI ท�ใชการประมวลผลแบบเวลาจรง (Real-time Processing) ดวย แตหากเราตองทางานกบสญญาณท�มการประมวลผลในแบบเวลาจรง เราจะใชการประมวลผลสญญาณแบบจดตอจด (Point-by-Point Processing) ดงน�นกอนท�เราจะทาการออกแบบการทานอยสเชปป� งดวย LabVIEW เราจะตองมาดกระบวนการของระบบการประมวลผลสญญาณแบบจดตอจดท�ออกแบบมาใชงานในระบบเวลาจรงของ LabVIEW เสยกอน
การประมวลผลสญญาณแบบจดตอจด (Point-by-Point Processing)
การวเคราะหขอมล (Data Analysis Process) เปนการดาเนนการกบขอมลไมวาจะเปนการดงขอมล (Data acquisition) การจดการกบขอมล การวเคราะหขอมล หรอ การแสดงผล ซ� งใน LabVIEW น�นแบงการวเคราะหขอมลเปนสองแบบ คอ การวเคราะหขอมลแบบอารเรย (Array-based Analysis) ซ� งใชในการวเคราะหขอมลท�ทางานแบบออฟไลน (off-line) และ การวเคราะหขอมลแบบจดตอจด (Point-By-Point Analysis) ซ� งใชในการทางานแบบเวลาจรง (Real-time) ในรปท� 13.5 a) และ b) แสดงการเปรยบเทยบ ของกระบวนการท�งสองกคอ หากเปนการวเคราะหขอมลแบบอารเรยจะตองรอขอมลในบฟเฟอร(Buffer) และประมวลผลขอมล และ สงออกไปแสดงผลทละชด สวนการประมวลผลเพ�อการวเคราะหขอมลในแบบจดตอจด (Point-By-Point Analysis) จะตอบสนองตอการเปล�ยนแปลงของขอมลทละแซมเป� ล และ แสดงผลกการคานวณในทนท โดยปกตแลว LabVIEW จะเลอกกระบวนการวเคราะหขอมลเปนแบบอารเรย เพราะความเรวในการแสดงผลของวธอารเรยจะเรวกวาวธจดตอจดเน�องจากมการใชบฟเฟอร แตถงแมจะแสดงผลเรวกวา แตการประมวลผลกไมเปนเวลาจรง เพราะจะตองรอขอมลเปนชดๆ หรอ เปนแบบออฟไลน ดงน�นสาหรบการประมวลผลเพ�อการวเคราะหขอมลในแบบเวลาจรงท�ตองตอบสนองตอการเปล�ยนแปลงของขอมลท�ฉบไวแลว จะตองใชกระบวนการประมวลผลและวเคราะหแบบจดตอจดเทาน�น ตวอยางของการประมวลผลคอ การทาการกรองสญญาณแบบจดตอจด (Point-to-point Filtering) ซ� งเราจะใชในการสรางระบบนอยสเชปป� ง และ สาหรบการวเคราะหขอมลกคอ การหาสเปคตรมแบบจดตอจด (Point-to-point Spectrum) ในการทดลองน� ใช LabVIEW 2009 SP1 แตเราสามารถใช LabVIEW ท�เปนเวอรชนอ�นๆไดทกเวอรชนท�ม Signal Processing Toolkit และ การประมวลผลแบบจดตอจด (Point-By-Point Processing) ความแตกตางของระบบท�งสองแสดงในรปท� 13.5
EEET0485 Digital Signal Processing Electronic Engineering Department
127 Mahanakorn University of Technology
รปท> 13.5 การเปรยบเทยบระหวาง a) การวเคราะหขอมลแบบอารเรย (Array-based) และ b) การวเคราะหขอมลแบบจดตอจด (Point-By-Point) จะลดข#นตอนการบฟเฟอรขอมลลง
กอนอ�นเราตองสรางสญญาณแบบจดตอจดข�นมาเสยกอนใน LabVIEW น�นจะมชดฟงกชนการประมวลผลท�เรยกวา Point-by-Point ให ซ� งจะมบลอกใหเลอกใชท�งการสรางสญญาณและการวเคราะหสญญาณดงแสดงในรปท� 13.6 การสรางสญญาณแบบจดตอจดท�เราจะใชน�นคอบลอก Sine Wave
PtByPt.vi และ Gaussian White Noise PtByPt.vi สวนบลอกการวเคราะหสเปคตรมน�นใช
บลอก Auto Power Spectrum PtByPt.vi และ สวนการแสดงผลกจะใช waveform graph
รวมกบการจดการสญญาณอกเลกนอย
EEET0485 Digital Signal Processing Electronic Engineering Department
128 Mahanakorn University of Technology
รปท> 13.6 บลอกการประมวลผลแบบจดตอจด Point By Point
การสรางสญญาณไซนแบบจดตอจด
ในการทดสอบระบบนอยสเชปป� ง เราจะใชสญญาณไซน (Sine wave) แบบจดตอจดเปนตวแทนของสญญาณเสยงท�เราตองการควอนไตซ ใน LabVIEW มบลอกตวสรางสญญาณแบบจดตอจดคอบลอก Sine
Wave PtByPt.vi ดงแสดงในรปท� 13.7 ซ� งเลอกจาก Signal Processing >> Point by Point >> Signal Generation PtByPt >> Sine Wave PtByPt.vi
EEET0485 Digital Signal Processing Electronic Engineering Department
129 Mahanakorn University of Technology
รปท> 13.7 บลอก Sine Wave PtByPt.vi
เราจะมาทดสอบการใชบลอก Sine Wave PtByPt.vi และเราสามารถแปลงสญญาณแบบจดตอจดใหเปนอารเรยเพ�อการแสดงผลตอเน�องไดดวยบลอกสรางอารเรย (Build Array) ซ� งนามาจาก
Programming >> Array >> Build Array ดงแสดงในรปท� 13.8 ซ� งเม�อนาบลอกน� ไปวางใน BD เราจะเหนวาขนาดของบลอก มการเปล�ยนแปลงไปตามมตของสญญาณ ซ� งหากมตของสญญาณเปน 1 มต (1D) จะได Build Array เปน ดงแสดงในรปท� 13.9 a) เปน Block Diagram หรอ BD สวนรปท� 13.9 b) น�นเปน Front Panel หรอ FP โดยใชการแสดงผลดวย waveform chart ซ� งจะมการแสดงผลแบบตอเน�องไปตามแซมเป� ล
รปท> 13.8 บลอก Build Array จาก Programming >> Array >> Build Array.vi
ตวอยางของการใชงาน Sine Wave PtByPt.vi แสดงในรปท� 13.9 สงเกตวาสาหรบบลอกของสญญาณไซนน� จะตองใสคาชวงเวลา (Time) และ คาความถ� (frequency) ลงไปดวย หมายถง 1 sinewave(t) = amplitude*sin(f * t+ phase) อยาลมวา หากความถ�แซมปล�งคอ Fs เราจะไดคาชวงเวลาเปน T
EEET0485 Digital Signal Processing Electronic Engineering Department
130 Mahanakorn University of Technology
= 1/Fs วนาท ในรปท� 13.9 a) น�นเปน BD จะเหนวาเราจะเลอกใชความถ�แซมปล�ง (Sampling frequency) เปน 100 Hz ดงน�นชวงเวลาระหวางแซมเป� ล (Time) จงเปน 1/100 วนาท ซ� งแตละแซมเป� ลของสญญาณ
ฟงกชนไซนน� จะคานวณไดโดยการหารตวนบ (counter) ของลปซ� งไดจากเทอรมนล ดวยความถ�แซมปล�ง 100 Hz จากน�นลากสายเขาหาเมอรมนล Time ของบลอก Sine Wave PtByPt.vi สวนในรปท� 13.9 b) น�นเปน FP ซ� งปรบความถ� (frequency) ใหเปน 10 Hz ดงน�นจะสงเกตเหนในกราฟไดวา หน�งคาบของสญญาณมจานวน 10 แซมเป� ล เพราะจานวนแซมเป� ลใน 1 คาบ = ความถ�แซมปล�ง (Hz)/ความถ�ของสญญาณ (Hz) ดงแสดงใน FP ของรปท� 13.9 b)
a)
b)
รปท> 13.9 การทดสอบการแสดงสญญาณไซนแบบจดตอจด a) BD b) FP
EEET0485 Digital Signal Processing Electronic Engineering Department
131 Mahanakorn University of Technology
การทดลองท>13.1 จากโปรแกรม Test_signalPtByPt.vi จงแสดงการสรางสญญาณไซนแบบจดตอจดมความถ�เปน 100 Hz โดยท�ความถ� Sampling เปน 1,000 Hz และจงแสดงวาแตละจดบนแกน x (Time) น�นมระยะหางจากกนก�วนาท และ มรปสญญาณความแตกตางกนกบในกรณของรปท� 13.9 ซ� งใชความถ� Sampling เปน 100 Hz น�นและสญญาณไซนแบบจดตอจดมความถ�เปน 10 Hz อยางไร และทาไมจงเปนเชนน�น
การสรางสญญาณรบกวนแบบเกาสสขาวแบบจดตอจด
การสรางสญญาณดทเธอรน�นอาศยการใชสญญาณรบกวนสขาว (White noise) มาสรางเปนสญญาณดทเธอรดวยคณสมบตทางสถตท�เหมาะสมของมน ใน LabVIEW น�นมบลอกของการสรางสญญาณรบกวนแบบอารเรยมาใหแลวทาใหสะดวกในการใชงานมาก ในการทดลอง “ไขความลบดวยดทเธอรดวย LabVIEW” กมการใชงานบลอกสญญาณแบบอารเรยท�งหมด แตดวยโครงสรางการประมวลผลดวยสญญาณในแบบเวลาจรงของระบบนอยสเชปป� งทาใหเราตองเลอกใชงานบลอกการสรางสญญาณรบกวน
แบบเกาสสขาวแบบจดตอจดดวยบลอก Gaussian White Noise PtByPt.vi ดงแสดงในรปท� 13.10 โดยคาเทอรมนล standard deviation น�นสามารถใชเปนตวแสดงถงพลงงานของสญญาณรบกวนน�ไดโดยคาดฟอลทคอ 1
รปท> 13.10 บลอก Gaussian White Noise PtByPt.vi
สเปคตรมของสญญาณรบกวนสขาวจะมคณสมบตพเศษคอมสเปคตรมคงท�ตลอดยานความถ� ซ� งแสดงดงในรปท� 13.11 ส�งน� มความสาคญในแงของการสรางระบบนอยสเชปป� งซ� งจะพบวาสเปคตรมท�คงท�น�นถกดดไดดวยตวกรองดจตอล
EEET0485 Digital Signal Processing Electronic Engineering Department
132 Mahanakorn University of Technology
รปท> 13.11 สเปคตรมสญญาณรบกวนสขาว (White Noise) มสเปคตรมคงท>ตลอดยานความถ>
การวเคราะหสเปคตรมแบบจดตอจด
สเปคตรม (Spectrum) ของสญญาณกคอการแสดงปรมาณพลงงานของความถ�ท�ประกอบข�นเปนสญญาณน�น หากตองการประมวลผลแบบเวลาจรง (real-time) เราสามารถใชบลอกสเปคตรมแบบจดตอจด
ใน LabVIEW ได ในท�น� เราเลอกใชบลอก Auto Power Spectrum PtByPt.vi จาก Signal Processing >> Point by Point >> Spectral Analysis PtByPt >> Auto Power Spectrum PtByPt.vi ซ� งจะใหผลลพทเปนสเปคตรมในหนวยของความถ� (frequency) ท�แสดงความถ�ท�มคาต�งแต 0 ถง 0.5 ของความถ�แซมปล�งท�มหนวยเปนเฮรสซ (Hz) ตวอยางเชน ความถ�แซมปล�งเปน 1,000 Hz ท�ความถ�ท�จะแสดงผลไดจะมคาในยาน 0 ถง 500 Hz เปนตน เราสามารถต�งจานวนแซมเป� ลท�จะใชในการคานวณสเปคตรม โดยการใสคาท�เทอรมนล Sample length ซ� งคาดฟอลทคอ 100 แซมเป� ล แตท�แสดงในรปท� 13.12 a) เราจะเลอกใชคา 500 แซมเป� ล เพ�อใหการแสดงผลมรายละเอยดความถ�ของกราฟมากข�น
รปท> 13.12 บลอก Auto Power Spectrum PtByPt.vi
EEET0485 Digital Signal Processing Electronic Engineering Department
133 Mahanakorn University of Technology
การแสดงผลแบบจดตอจด
จดสาคญของการแสดงผลสเปคตรมดวยบลอก waveform graph แบบจดตอจดน�นกคอเราจะตองกาหนดพารามเตอรบางคาใหแกกราฟดวย เชน คาชวงเวลา (ในกรณแสดงสญญาณทางเวลา) หรอ ชวงความถ� (ในกรณแสดงสญญาณทางความถ�) ซ� งน�เปนความแตกตางของการแสดงผลแบบอารเรย เพราะตามปกตแลวการแสดงผลแบบอารเรยสามารถรบสญญาณจากบลอกตางๆไปแสดงผลไดทนทโดยไมตองมการต� งคาพารามเตอรใดเพ�มเตม แตกระน�นกตามการต�งคาพารามเตอรดงกลาวของการแสดงผลสเปคตรมดวยบลอก waveform graph แบบจดตอจดกมเพยงไมก�คาและไมมอะไรยงยากเกนไป ในรปท� 13.13 a) แสดง BD ของตวอยางการทดสอบการใชงานบลอกแสดงสเปคตรม ของสญญาณไซน สงเกตการนาคา ชวงเวลา (dt) ท�ไดมาจากการคานวณสวนกลบของความถ�แซมปล�ง T= 1/Fs ซ� งไดมาจากการใชบลอกตวหาร เพ�อนาคามาจากความถ�แซมปล�ง Fs ตวอยาง หากในกรณน� เราใช Fs =100 Hz ซ� งเราจะไดวา T= 1/100=0.01 วนาท ความถ�แซมปล�งน� เปนตวกาหนดคาของความถ�ท�จะแสดงผลไดของสญญาณไซน ซ� งจะตองไมเกนคร� งหน� งของความถ�แซมปล�ง ดงน�นสาหรบความถ�แซมปล�ง 100 Hz การแสดงคาสญญาณไซนท�มความถ� 10 Hz กยงคงอยในชวงของสญญาณท�แสดงผลได โดยความถ�ของสญญาณสามารถปรบไดจากฟรอนทพาเนล (FP) ดงแสดงในรปท� 13.13 b) และจากกราฟแสดงผลการหาคาสเปคตรมของคากาลงสญญาณไซนท�ความถ�เปน 10 Hz การกาหนดคาของการแสดงผลสเปคตรมน�น ดไดจากรปท� 13.13 c) โดยจะเหนวาเราจะ
ใชบลอก Bundle เพ�อรวมคาสามพารามเตอรคอ คา x0 คา df และ ขอมลของคาสเปคตรม power
spectrum กอนท�จะนาเขาสการแสดงผลดวย Waveform graph
a)
EEET0485 Digital Signal Processing Electronic Engineering Department
134 Mahanakorn University of Technology
b)
c)
รปท> 13.13 การแสดงสเปคตรมของสญญาณแบบจดตอจด a) BD b) FP c) แสดง BD เฉพาะสวนของการ Bundle สญญาณเพ>อแสดงผล
EEET0485 Digital Signal Processing Electronic Engineering Department
135 Mahanakorn University of Technology
การทดลองท> 13.2 โดยการปรบปรงจากโปรแกรม Test_spectrumPtByPt.vi จงแสดงสญญาณและส เ ป ค ต ร ม ข อ ง ส ญ ญ า ณ เ ก า ส แ บ บ จ ด ต อ จ ด ส ข า ว LabVIEW แ ล ะ ใ ห โ ป ร แ ก ร ม ใ ห ม ม ช� อ ว า Test_gauss_spectrumPtByPt.vi อภปรายผลท�ไดรบ
การปอนกลบสญญาณ (Feedback)
ในทฤษฎระบบควบคม (Feedback Control Theory) น�นมกจะตองมการปอนกลบ (Feedback) เสมอ สวนในดานการประมวลผลสญญาณน� น ตวกรองดจตอลท� เปนแบบอมพลสไมจ ากด (Infinite Impulse Response) หรอ IIR น�นกจะประกอบดวยสวนปอนกลบเชนกน ดงน�นการปอนกลบจงมความสาคญอยางมากในการศกษาวชาเชงวศวกรรมหลายๆแขนง ใน LabVIEW มฟงกชนท�ทาหนาท�น�อยสองชนด คอ แบบท�ใช Shift register และ Feedback Node.vi ซ� งการใชงานกใชสลบไปมาได แตเพ�อความชดเจนและสะดวกตอการทดลองน� เราจะเลอกใช Feedback Node.vi ในการสรางระบบนอยสเชปป� ง เราเลอก
บลอกไดอะแกรม Feedback Node.vi จาก Programming >> Structures >> Feedback Node.vi ดงแสดงในรปท� 13.14
รปท> 13.14 บลอก Feedback Node.vi
การใชงาน Feedback Node.vi ใน LabVIEW น�นไมซบซอนแตอยางใดแตจเราะตองทาความเขาใจเลกนอยในเร�องทางเดนสญญาณกอน เพราะสญญาณท�ผานออกจาก Feedback Node.vi น�นจะมลกษณะท�แตกตางไปจากสญญาณท�วไปท�คนเคย คอ จะมการหนวงเวลา (delay) หน>งหนวย หรอ เทยบเทาตวดาเนนการ z-1 ในเร�องของการแปลงแซด (z-transform) กระบวนการหนวงเวลาน� เปนกระบวนการท�สาคญ
EEET0485 Digital Signal Processing Electronic Engineering Department
136 Mahanakorn University of Technology
ท�สดอยางหน�งในการประมวลผลสญญาณเพราะจะชวยใหเอาคาเกาของสญญาณกลบมาใชไดอก ในรปท� 13.15 a) แสดงการใชงาน Feedback Node.vi ในการบวกคาจากเอาทพทสะสมจากคากอนหนา หรอ t-1 หากให x(t) เปนสญญาณท�สรางจากบลอก Gaussian White Noise PtByPt.vi และจะถกบวกสะสมไปเร�อยในทกๆ ลป หรอ y(t) = y(t-1)+x(t) ซ� งจะเปน สงเกตจากการเกด Feedback Node.vi จะทางานเม�อสญญาณในแตละลปไหลออกจากตวบวก สญญาณน� คอ y(t-1) โดยสญญาณน�จะไปรออยท�อนพทขาเขาของตวบวกเพ�อบวกกบสญญาณขาเขาใหม x(t) ณ เวลาถดไป เราสามารถต�งคาเร�มตนของ Feedback Node.vi ไดซ� งคาดฟอลทจะอยท�คาศนย ในรปท� 13.15 b) น�นแสดงกราฟคาเอาทพทเปรยบเทยบกนระหวางกราฟของสญญาณอนพทและเอาทพทท�มการบวกคาปอนกลบ
a)
EEET0485 Digital Signal Processing Electronic Engineering Department
137 Mahanakorn University of Technology
b)
รปท> 13.15 โปรแกรมทดสอบการใชงาน Feedback Node.vi เปนระบบสะสมคากอนหนา a) BD b) FP
การทดลองท> 13.3 คาของ y(t) = y(t-1) + x(t) น� เรยกวา เปนสมการท�ใมเสถยร (Unstable) เน�องจาก โพลอยบนวงกลมหน�งหนวย ใหทดลองแกไข Test_feedbacknode.vi โดยให y(t) = 0.8*y(t-1) + x(t) จงอภปรายผลท�เกดข�นจากกราฟของ y(t) วามความแตกตางไปจากเดมอยางไร
เอกสารอางอง
[1] พระพล ยวภษตานนท, “ไขความลบดทเธอรดวย LabVIEW “, เซมคอนดคเตอร อเลกทรอนกส, 349, 110-119, 2553 [2] K. Poon, “Dithering and Noise shaping”, 2002 [3] National Instruments Inc., “Getting Started with LabVIEW Point–By-Point VIs”, http://www.ni.com/pdf/manuals/370152b.pdf
EEET0485 Digital Signal Processing Electronic Engineering Department
138 Mahanakorn University of Technology
14. Noise Shaping with LabVIEW II
วตถประสงค
1. เพอทราบถงการออกแบบระบบนอยสเชปป� งทใชดทเธอรรวมกบโอเวอรแซมปล�ง 2. สามารถออกแบบระบบนอยสเชปป� งเพอประยกตใชงานจรงได
บทนา
ในการทดลองระบบนอยสเชปป� งตอนทสองน� เปนการทดลองดวย LabVIEW ในฟงกชนตางๆ คอ ฟงกชนควอนไตซเซอรและการทาซบวไอ (Sub VI) ตวกรองดจตอลและการทาโอเวอรแซมปล�ง รวมท�งมการอธบายทฤษฎของระบบนอยสเชปป� งกนอยางสมบรณ ซ งท�งหมดน� จะถกรวบรวมเพอนามาสรางเปนโปรแกรมทดสอบระบบนอยสเชปป� ง และแสดงการเปรยบเทยบประสทธภาพของการลดสญญาณรบกวนระหวางระบบทมเฉพาะดทเธอรและระบบทมนอยสเชปป� ง ซ งเราจะใชความสามารถในการตดตอผใชงานแบบกราฟฟก (Graphic User Interface) ของ LabVIEW ในการแสดงผลซ งจะทาใหนกศกษาสามารถปรบเปลยนพารามเตอรตางๆ เพอการศกษาทาความเขาใจในเรองนอยสเชปป� งไดดวยตวเอง
ควอนไตซเซอร (Quantiser)
ควอนไตซเซอร (Quantiser) คออปกรณทใชในการแปลงสญญาณแอนะลอกเปนดจตอล ในบทความตอน “ไขความลบดทเธอรดวย LabVIEW” น�น ใชตวแปลงสาเรจรปในการสรางควอนไตซเซอร
ดวยบลอก Analog to Digital.vi ซ งเปนบลอกไดอะแกรมการแปลงแอนะลอกไปเปนดจตอล (A/D) ของ LabVIEW แตในบทความน� เราจะออกแบบควอนไตซเซอรดวยฟงกชนพ�นฐานใน LabVIEW จาก
สมการการควอนไตซตรงๆกนเลย สมการการควอนไตซน�นสามารถเขยนไดเปน
Q(x(n))=(A/q)*round((x(n)/A)*q)
โดย round น�น คอฟงกชนทางคณตศาสตรทเรยกวา การปดเศษ (Rounding) สวน x(n) คอ สญญาณฟงกชนไซนทจะทาการควอนไตซทมขนาดเปน A หรอ x(n) = Asin(2πn+π) สงเกตวา x(n) น�นแสดงถงสญญาณทมการเปลยนแปลงไปตามเวลา n ระดบข�นการควอนไตซหรอจานวนบท (bit) น�นแทนดวย q การคานวณผลลพทการควอนไตซ Q(x(n)) สามารถกระทาไดอยางงายดาย แตในตวอยางทจะแสดงตอไปน� จะแสดงใหเหนผลการควอนไตซของสญญาณแอนะลอกทตางคากนทกลบใหคาผลลพทเทากนหากจานวนระดบข�นการควอนไตซ q มจานวนไมมากพอ เชน ใหจานวนข�นการควอนไตซเปน q=3 และใหขนาดของสญญาณเปน A=1 โดยสญญาณท�งสอง คอ x(n)=2.30 และ x(n)=2.50 ซ งจะไดวา
EEET0485 Digital Signal Processing Electronic Engineering Department
139 Mahanakorn University of Technology
a) สญญาณ x(n)=2.30 จะไดวา Q(x(n))=(1/3)*round(2.3*3)=2.33
b) สญญาณ x(n)=2.50 จะไดวา Q(x(n)) =(1/3)*round(2.5*3)= 2.33
สงเกตวา แม x(n) จะตางระดบคอเปน 2.3 และ 2.5 แต Q(x(n)) กลบใหคาทเทากนคอ 2.33 นเปนการแสดงใหเหนวาหาก q มคาตา ระดบการควอนไตซกจะหยาบ และนกคอสาเหตของการเกดความผดพลาดควอนไตซนนเอง
การสรางควอนไตซเซอรเปนซบวไอ (Sub VI)
เราจะมาทดลองสรางโปรแกรมการควอนไตซอยางงายๆ ดวยบลอกพ�นฐานงายๆ ทมใหอยแลวใน LabVIEW เชน การคณ การหาร การปดเศษ เปนตน ใน LabVIEW จดบลอกพ�นฐานเหลาน� ใหอยางพรอมมลอยแลวโดยตวดาเนนการทางคณตศาสตรทกตวของ LabVIEW จะอยในหมวด Programming >>
Numeric ซ ง บลอกการคณ (Multiplly) คอ บลอกการหาร (Divide) คอ และ บลอกการปดเศษ (Round to nearest) คอ ในรปท 14.1 a) แสดง BD ของโปรแกรม Quantiser.vi และ รปท 14.1 b) เปน FP ซ งเปดใหผใชงานสามารถทดลองปรบคาอนพท x เพอดผลลพทของการควอนไตซไดทนท
a) b)
รปทL 14.1 บลอก Quantiser.vi a) BD b) FP
แตลองจนตนาการดวา หากเราตองใช Quantiser.vi ซ� าๆ ท�งในโปรแกรมทเรากาลงสรางข�น คอ ระบบนอยสเชปป� งหรอ แมแตในโปรแกรมอนๆ หากจะเขยนฟงกชนน� ใหมทกๆคร� ง กคงเปนการเสยเวลา และทาใหหนาจอโปรแกรมดไมสะอาดตาเทาใดนก คงจะเปนการดไมนอยทเราจะบนทก Quantiser.vi น�ไวใหเปนหนวยโปรแกรมยอยหนงหนวยเพอการนาไปใชประโยชนภายหลง ซ งใน LabVIEW น�นกมการอานวยความสะดวกใหเราสามารถสรางโปรแกรมยอยน� ในชอทเรยกวา ซบวไอ (SubVI)
EEET0485 Digital Signal Processing Electronic Engineering Department
140 Mahanakorn University of Technology
ซบวไอ (SubVI)
ซบวไอน�น คอ บลอกไดอะแกรมทผใชงานสรางข�นและทาหนาทเหมอนกบบลอกไดอะแกรมทมมาใหใน LabVIEW โดยมอนพทและเอาทพทในรปเทอรมนล (Terminal) หลกการน� ไมใชอนใดเพราะทแทแลว หนวยโปรแกรมทวากคอ ฟงกชน (Function) หรอ ซบรทน (Subroutine) ในภาษาโปรแกรมมงทวไปนนเอง กระบวนการสรางซบวไอ น�นไมยากเยนแตอยางใด ดงน�น เมอเรามโปรแกรมททาหนาทควอนไตซดงในรปท 14.1 แลว เราจะนาชดมาสรางเปนซบวไอ ทจะใชชอวา Quantiser.vi โดยข�นตอนการสรางจะเปนดงน� เรมจากการเปดหนาตางฟรอนทพาเนล แลวสงเกต ณ ตาแหนงไอคอนดานบนขวา จะเหนเปน
ไอคอน ใหคลกขวาแลวเลอก Show Connector ดงรปท 14.2 a) จากน�นไอคอนจะเปลยนเปนรป
เทอรมนล โดยตารางเลกๆ จะแทนตาแหนงของเทอรมนล ซ งเราจะเลอกใชตารางเหลาน� ตามตาแหนงทดแลวเหมาะสมสวยงาม และกทาการเชอมตารางกบ control หรอ indicator ใน FP ใหเปนเทอรมนลดงรปท 14.2 b)
a) b)
รปทL 14.2 การเลอกตาแหนงของเทอรมนล a) แสดงเมน Show Connector b) เชLอมตาแหนงของตารางกบ
เทอรมนล
จากน�นเราจะตกแตงไอคอน ในทน� จะเลอกแสดงเปนตวอกษร Q ซ งหมายถง Quantiser.vi ดวย Icon
Editor ดงรปท 14.3 หรอ จะเลอกออกแบบไอคอนเองไดตามชอบ เพราะ LabVIEW กมเครองมอในการออกแบบใหเรยบรอยแลว
EEET0485 Digital Signal Processing Electronic Engineering Department
141 Mahanakorn University of Technology
รปทL 14.3 การใช Icon Editor เพLอตกแตงไอคอนของ SubVI
จากน�น เรากจะ save ในชอ quantiser.vi ลงในโฟลเดอรทตองการใดกได เมอตองการเลอกใช subVI เรากจะใชการเลอก Functions >> Select a VI … แลวเลอกไฟล Quantiser.vi จากโฟลเดอรทเกบไวตาม
ข�นตอนดงรปท 14.4 กจะไดไอคอน ปรากฏในหนาจอบลอกไดอะแกรม ซ งกเปนอนเสรจส�นสามารถนา ซบวไอ Quantiser.vi น� ไปใชงานไดแบบเดยวกบบลอกไดอะแกรมของ LabVIEW ปกต
รปทL 14.4 การใชงานซบวไอ “quantiser.vi”
ข�นตอนถดไปจะลองสรางโปรแกรมททาการควอนไตซดวยควอนไตซเซอร quantiser.vi รปท 14.5 a) แสดง BD แสดงถงการสรางระบบควอนไตซแบบมดทเธอร รปท 14.5b) แสดง FP ของระบบทปรบใหความถของสญญาณไซนเปน 100 Hz แตดทเธอรเปนศนยหรอไมมดทเธอรจะปรากฎวามฮารโมนกสเกดข�นท 300 Hz รปท 14.5 c) แสดง FP ของระบบทมดทเธอรปรากฎวา ฮารโมนกสท 300 Hz น�นหายไป แตกลบมสญญาณรบกวนเกดข�นแทนซ งจะมากหรอนอยกข�นกบระดบดทเธอร ซ งสญญาณรบกวนน� เราจะตองกาจดมนออกไป เพราะเปนสงททาใหอตราสวนสญญาณตอสญญาณรบกวน หรอ SNR ตาลง และจะสงผลตอคณภาพของสญญาณทไดจากการควอนไตซอยางยง
EEET0485 Digital Signal Processing Electronic Engineering Department
142 Mahanakorn University of Technology
a)
b) c)
รปทL 14.5 แสดงโปรแกรมทดสอบระบบดทเธอรแบบเวลาจรง a) BD b) FP กรณสญญาณดทเธอรเปนศนย
c) FP กรณดทเธอรเปน 0.5
การทดลองทL 14.1 จากโปรแกรม Dither_quantiser.vi เมอความถเปน 100 Hz, 120 Hz, 250 Hz, 360 Hz และ 420 Hz ใหนกศกษาพจารณาวา ระดบดทเธอรทเหมาะสมของแตละความถททดลองน�นเทากนหรอไม หากไมเทากน ระดบดทเธอรทเหมาะสมของแตละความถข�นกบสงใด
ตวกรองสญญาณดจตอล (Digital Filter)
ประเดนททาใหเราตองมาสนใจในเรอง ตวกรองสญญาณ หรอ ฟลเตอร (Filter) ซ งเปนฟนเฟองทสาคญในการประมวลสญญาณอเลกทรอนกส กเพราะวาในระบบนอยสเชปป� งน�นสงทเราตองการคอ การ
EEET0485 Digital Signal Processing Electronic Engineering Department
143 Mahanakorn University of Technology
“ดด” สญญาณรบกวนทเกดจากการทาดทเธอร หลกการทสาคญทสดของระบบนอยสเชปป� งกคอ การกด
พลงงานของสญญาณรบกวนในยานความถLเสยงทLมนษยไดยนลงและนาเอาพลงงานสวนนfนไปเพLมในสวน
ของยานความถLสงทLมนษยไมไดยนแทน และโดยหลกการน�พลงงานของเสยงรบกวนน�นจะไมไดถกทาใหหายไป แตจะเปนการ “ดด” รปรางสเปคตรมของพลงงานของสญญาณรบกวนน�น ตวกรองสญญาณหรอฟลเตอรในทางอเลกทรอนกสคอวงจรททาหนาทคดกรองสญญาณเพอแยกความถ เรามกเรยกตวกรองชนดน� โดยทวไปวา ตวกรองสญญาณแบบแอนะลอก (Analogue Filters) จะประกอบดวยอปกรณพ�นฐาน คอ อปกรณพาสซฟ (Passive devices) กจะเปน ตวเหนยวนา ตวเกบประจ และตวตานทาน ถาเปนอปกรณแอคทฟ (Active devices) กคออปกรณทขยายสญญาณได เชน ทรานซสเตอร และ ออปแอมป เปนตน การออกแบบตวกรองใหไดสเปค (Specification) ตามตองการน�นนบเปนศาสตรและศลปทวดฝมอของวศวกรอเลกทรอนกสเลยทเดยว เพราะเปนกระบวนการทตองอาศยความชานาญผานการทดลองมายาวนาน ดงน�นทฤษฎตวกรองแอนะลอกจงมรากฐานอนแนนหนาแขงแรงและความรท�งหมดไดประมวลลงในการออกแบบตวกรองแอนะลอก เวลาผานไปเทคโนโลยอเลกทรอนกสกถกพฒนาข� นไปไกลมากข� นจากเทคโนโลยดจตอลคอมพวเตอรทกาวกระโดด ความตองการการเปลยนแปลงในการออกแบบตวกรองทสลบซบซอนกเรมเกดข�นโดยมงไปทอปกรณดจตอล ไมใชเพราะสาเหตทเพยงแคอยากจะลองทาตวกรองสญญาณดวยอปกรณดจตอล แตเกดจากการใครครวญอยางลกซ� งถงความไดเปรยบของตวกรองแบบใหมทมชอเรยกวา ตวกรอง
ดจตอล (Digital filters) ทแปลงความใฝฝนทางคณตศาสตรใหมาเปนของจรงททางานไดใกลเคยงมากกวา และขอดทสาคญของตวกรองดจตอลกคอ การทเราสามารถปรบเปลยนสเปคของตวกรองไดตามความตองการโดยอาศยแตเพยงการปรบต�งคาพารามเตอรผานทางคยบอรดได ซ งความไดเปรยบเหลาน�ตวกรองแอนะลอกไมสามารถสตวกรองดจตอลไดเลย แตเนองจากทฤษฎตวกรองแอนะลอกน�นมความนาเชอถอเพราะผานการลองผดลองถกมายาวนาน ดงน� นวศวกรอเลกทรอนกสจงไดปรบกระบวนการออกแบบตวกรองดจตอลเพอใชทฤษฎตวกรองแอนะลอกไดอยางชาญฉลาด กระบวนการออกแบบจากตวกรองแอนะลอกมาเปนตวกรองดจตอลทนยมใชมชอเรยกวาการแปลงไบลเนยร (Bilinear Transform) ดวยกระบวนการแปลงเหลาน� ทฤษฎการออกแบบตวกรองแอนะลอกจงถกถายทอดเพอสรางตวกรองดจตอลไดอยางครบถวน หากพดถงเรองของสเปคแลว ตวกรองดจตอลมประสทธภาพมากกวาตวกรองแอนะลอกอยางมาก แตไมใชเพยงเทาน�น ตวกรองดจตอลสามารถสรางข�นในรปแบบตางๆ ทเหนอกวา เชน ความงายดายในการปรบเปลยนชนดของตวกรอง เชน จากตวกรองตาผานไปเปนแบบตวกรองสงผาน โดยใชการโปรแกรม โดยทฤษฎแลวการจะออกแบบตวกรองดจตอลจะมกระบวนการออกแบบทคอนขางมากและตองอาศยความเขาใจทางดานการประมวลผลข�นสงเลยทเดยว แตหากเราไมไดตองการตวกรองทประสทธภาพสงมาก และ
EEET0485 Digital Signal Processing Electronic Engineering Department
144 Mahanakorn University of Technology
ไมไดผานกระบวนการทาคาใหเหมาะสม (Optimisation) การสรางตวกรองดจตอลกจะเปนสงทนบวางายมากอยางไมนาเชอ โดยหลกการของตวกรองจะแบงออกเปน ตวกรองอมพลสจากด (Finite Impulse response) หรอ
FIR และตวกรองอมพลสไมจากด (Infinite Impulse response) หรอ IIR แตเนองจากเราสนใจในเฉพาะตวกรองดจตอลทถกใชอยในนอยสเชปป� ง เราจงมาสนใจแตเฉพาะตวกรองอมพลสจากด หรอ FIR ทเราใชในสวนของการปอนกลบสญญาณ องคประกอบทสาคญของตวกรองดจตอลมดงน� คอ ตวหนวงเวลา (Delay operator) ตวบวก (Adding operator) ตวคณ (Multiplying operators) และ คาสมประสทธ| (Coefficients) โครงสรางทวไปของตวกรองดจตอล FIR คอ
H(z) = b0+b1z-1+ b2z
-2+…+ bLz-L
เมอ bi น�นคอ สมประสทธ| ของตวกรอง z-L แสดงถง การหนวงเวลาไป L หนวยแซมเป� ลของสญญาณ และ L น�นคอคาอนดบของตวกรอง H(z) สงทเปนขอสาคญคอตวกรอง H(z) น� คอ ฟงกชนถายโอน (Transfer
function) ในรปแบบหน งซ งทาหนาทสงผานดดแปลงสญญาณอนพทไปเปนเอาทพท ดงน�นหากเขยนความสมพนธของ สญญาณอนพท สญญาณเอาทพท และ ฟงกชนถายโอน จะไดเปน ความสมพนธทตรงไปตรงมาดงน�
Y(z) = H(z)*X(z)
โดยท X(z) คอสญญาณอนพท Y(z) คอ สญญาณเอาทพท และ H(z) คอ ฟงกชนถายโอนหรอตวกรองดจตอล นนเอง โดยตวกรองทเราสนใจมากทสดในระบบนอยสเชปป� ง คอ ตวกรองดจตอลสงผานเพราะดวยคณสมบตทกดสญญาณความถต าและสงผานความถสง ในรปท 14.6 แสดงใหเหนวาหากเราปอนสญญาณรบกวนสขาวซ งมสเปคตรมคงทตลอดยานความถ เขาสตวกรองสงผาน ส งท เราจะไดคอผลตอบสนองความถในรปสเปคตรมทมขนาดเปลยนแปลงโดยมคานอยๆ ในยานความถต า และ คอยๆเพมข�นในยานความถสงๆ
รปทL 14.6 สเปคตรมทLคงทLของสญญาณรบกวนสขาว (White noise) จะเปลLยนไปหลงจากผานตวกรองสง
ผาน
EEET0485 Digital Signal Processing Electronic Engineering Department
145 Mahanakorn University of Technology
ใน LabVIEW เราสามารถใชตวกรองแบบจดตอจดแบบ FIR ไดโดยตรงจากบลอก FIR Filter PtByPt.vi
ซ งเปนตวกรองจดตอจดแบบงายทสด โดยเลอกจาก Signal Processing >> Point By Point >> Filters
PtByPt >> FIR Filter PtByPt.vi ดงแสดงในรปท 14.7 และ สามารถต�งคาพารามเตอรของตวกรองน� ไดจากเทอรมนลดงในรปท 14.8
รปทL 14.7 บลอก FIR Filter PtByPt.vi จาก Signal Processing >> Point By Point >> Filters PtByPt >>
FIR Filter PtByPt.vi
รปทL 14.8 พารามเตอรของบลอก FIR Filter PtByPt.vi
ในรปท 14.9 a) เปน BD โดยใชตวกรองทมคาเปน H(z) = 1-z-1 ซ งคาสมประสทธ| ของตวกรองน� กคอ 1 และ -1 ตามลาดบของการหนวงเวลา สงเกตวาคา 1 และ -1 น�นจะถกกาหนดใหกบบลอก FIR Filter PtByPt.vi
ซ งผลลพทของตวกรองน�จะใหผลเปนตวกรองสงผานดงแสดง รปท 14.9 b) เราจะแสดงท�งสเปคตรมจากสญญาณรบกวนสขาวทไมผานตวกรอง (Unfiltered Spectrum) และสญญาณรบกวนสขาวทผานตวกรอง(Filtered Spectrum) เพอการเปรยบเทยบ โดยเมอทดลองนาบลอกการ
วเคราะหสเปคตรมอตโนมตของสญญาณแบบจดตอจด Auto Power Spectrum PtByPt.vi เพอการแสดงผลของสเปคตรม ซ งในการแสดงผลสเปคตรม ดงแสดงใน BD ของรปท 14.9 a) และจากกราฟท
EEET0485 Digital Signal Processing Electronic Engineering Department
146 Mahanakorn University of Technology
แสดงใน FP ของรปท 14.9 b) จะเหนวา สเปคตรมของสญญาณรบกวนสขาวในกราฟ White Noise Spectrum น�นมลกษณะเปนคาคงทตามทฤษฎทไดกลาวไปแลว สวนสเปคตรมของสญญาณรบกวนสขาวทผานตวกรองสงผานน�นจะเหนวามลกษณะเปนคาทเพมข�นตามความถ โดยสงเกตจากขนาดของเสนกราฟทสงข�นในยานความถสงของกราฟ Highpass Spectrum ดงแสดงในรปท 14.9 b) แสดงถงการตอบสนองตอความถสงมากกวาความถต าของตวกรองดจตอล เราใหความถแซมปล�งเทากบ 1,000 Hz ซ งจะอาศยตวหารเพอสรางคาอตราชวงเวลาแซมปล�ง (Sampling Time) ซ งจะเทากบ 1/1000=1 มลลวนาท เพอใหสามารถแสดงผลสเปคตรมได
a)
EEET0485 Digital Signal Processing Electronic Engineering Department
147 Mahanakorn University of Technology
b)
รปทL 14.9 การทดสอบสเปคตรมของสญญาณทLผานตวกรองสงผาน a) BD b) FP
การทดลองทL 14.2 จากโปรแกรม test_highpass.vi ทดลองออกแบบ lowpas filter ทม H(z) = 1+0.8z-1 อภปรายผลทได
ทฤษฎการทางานของระบบนอยสเชปปf ง
โครงสรางของระบบควอนไตซทมระบบนอยสเชปป� งจะแสดงในรปท 14.10 เราจะมาไลเรยงกระบวนการทางานของระบบกน เรมจากสญญาณขาออก y(n) น�นสามารถเขยนไดเปน
y(n)= Q[u(n) + d(n)]
ในกรณน� สงเกตวา สญญาณ u(n) น� คอ สญญาณทจะถกบวกรวมเขากบสญญาณดทเธอร d(n) กอนทจะถกทาการควอนไตซดวยฟงกชน Q ความแตกตางระหวาง y(n) และ u(n) น� เรยกวาความผดพลาดจากการควอนไตซ หรอ e(n)= y(n) – u(n) ซ งจะเหนวาคลายคลงกบกรณระบบควอนไตซทมเฉพาะการทาดทเธอรดงทไดกลาวไปในบทความตอนทแลว แตสงทเปนความแตกตางของระบบนอยสเชปป� งน� กบระบบควอนไตซทมดทเธอรกคอ การปอนกลบแบบลบ (Negative Feedback) ของคาความผดพลาด e(n) น� กลบไปยงสวนสญญาณขาเขา x(n) ของระบบผานตวกรองแบบอมพลสจากด h(n) ดงน�นหมายถงสญญาณ e(n) จะตองทาการประสาน (Convolution) เขากบ h(n) และ สญญาณขาออกของการปอนกลบน� จะเปนสญญาณ u(n) และ จะเขยนสมการของการปอนกลบแบบลบน�ไดเปน
u(n) = x(n) – e(n)* h(n)
โดยท * น�นหมายถงการประสานของสญญาณ e(n) และตวกรอง h(n)
รปทL 14.10 ระบบนอยสเชปปf ง (Noise Shaping)
EEET0485 Digital Signal Processing Electronic Engineering Department
148 Mahanakorn University of Technology
และเราทราบวาเนองจาก h(n) น�น เปนผลตอบสนองอมพลสของตวกรอง (Filter Impulse Response) ซ งมผลการแปลงแซดเปน H(z) ดงทไดกลาวไปในหวขอทแลว และ Q น�นคอฟงกชนการควอนไตซ หากเราพจารณาวาสญญาณดทเธอร d(n) น�นมคณสมบตทางสถตทเหมาะสมแลว ผลจากการควอนไตซ Q จะเปรยบเสมอนการบวกเพLมสญญาณความผดพลาดควอนไตซ e(n) ใหแกสญญาณอนพท u(n) และสญญาณดทเธอร e(n) น� ยงเปนอสระไมข�นตอสญญาณอนพท x(n) ดวย เพราะเปนสญญาณจากคนละแหลง ดงน�นจากสมการ y(n)= Q[u(n) + d(n)] จงสามารถเขยนใหมไดเปน
y(n)= u(n) +e(n)
ซ งจะตด Q ออกจากการแกสมการทาใหงายตอการวเคราะห ทน� มาถงข�นตอนทสาคญคอ การแทนคาของ u(n) จาก u(n)=y(n)-e(n) ลงไปใน u(n) = x(n) – e(n)* h(n) จะได
y(n) = x(n) +e(n)– e(n) *h(n)
สมการน�สาคญ เพราะวาหากเราทาการแปลงแซด จะไดวา
Y(z) = X(z) + E(z) [ 1 – H(z) ]
และนคอสมการของการทานอยสเชปป� ง สงเกตวา H(z) น� เปนตวกาหนดขนาดของสญญาณความผดพลาด ควอนไตซ E(z) เมอเทยบสมการของ ระบบดทเธอรแลวจะเหนวา ระบบดทเธอรน�น มองคประกอบเปน Y(z) = X(z) +E(z) สงเกตพจนของ E(z) ในสมการ Y(z) = X(z) + E(z) [ 1 – H(z) ] จะเหนวา หนาทLของ
H(z) ในระบบนอยสเชปปf งนfนคอการดดแปลงผลตอบสนองความถL (Frequency response) ของสญญาณ
ความผดพลาด E(z) นนเอง ดงน�นหาก 1-H(z) เปนตวกรองสงผาน จะเทากบการยายพลงงานของคาความผดพลาด E(z) ใหมคานอยในบรเวณยานความถเสยงซ งเปนชวงคาความถต าและไปเพมในยานความถสงแทน ดงน�นจะพบวา จรงๆ แลว 1-H(z) จะทาหนาทเปนตวกรองสงผาน ซ งสมการทงายทสดของตวกรองสงผาน กคอจะเปนดฟเฟอเรนชเอเตอร (Differentiator) ซ งมสมการเปน 1-z-1 เมอเทยบสมประสทธ|ของ 1-H(z) กบ 1-z-1 จงไดวา H(z)=z-1 หรอ แปลวาสมประสทธ| ของตวกรอง H(z) น�นมคาเปน 1 สาหรบการหนวงเวลาหนงหนวย ขอสงเกตทสาคญทสด คอ H(z) น�นจะมผลตอสญญาณผดพลาด E(z) แตเพยงสญญาณเดยว ไมเกยวของกบสญญาณ X(z) แตประการใดเลย หรอแปลวา สญญาณเสยง X(z) จะยงคงเดมไมถกบดเบอนใหเกดความเพ�ยนใดๆ จะมเพยงสญญาณผดพลาด E(z) ทลดลงในยานความถของ X(z) เทาน�น
EEET0485 Digital Signal Processing Electronic Engineering Department
149 Mahanakorn University of Technology
การทดลองระบบนอยสเชปปf ง
เมอเราแปลงทฤษฎนอยสเชปป� งมาเปนโปรแกรมของ LabVIEW เราจะได BD ดงแสดงในรปท
14.11 a) ในการสรางสญญาณจดตอจด เรายงคงใชบลอก Sine Wave PtByPt.vi และ Gaussian
White Noise PtByPt.vi สวนการวเคราะหสเปคตรมและสวนการแสดงผลจดตอจดน�นใช บลอก Auto
Power Spectrum PtByPt.vi และ waveform graph ตามลาดบ เราต�งความถแซมปล�งเปน 1000 Hz ในรปท 14.11 b) เปน FP โดยเราปรบความถสญญาณทตองการใหเปน 100 Hz และแสดงผลลพทของระบบทปรบใหดทเธอรเปนศนย เปรยบเทยบสเปคตรมของระบบควอนไตซท�งทมแตเฉพาะดทเธอรไมมระบบนอยสเชปป� งและทมท�งดทเธอรและระบบนอยสเชปป� ง แสดงใหเหนถงความคลายคลงของระบบท�งสอง แมวาฮารโมนกสทเกดข�นจะแตกตางกนกจะไมใชเร องสาคญ และรปท 14.11 c) เปน FP แสดงผลลพทของการปรบใหดทเธอรเปน 0.5 แมระบบทมดทเธอรแตไมมนอยสเชปป� งจะลดอารโมนกสได แตสญญาณรบกวนพ�นทมคาคงทตลอดยานน�นกยงมคาสงในยานความถ 100 Hz แตสาหรบระบบทมดทเธอรและมนอยสเชปป� งจะแสดงใหเหนถงประสทธภาพในการลดฮารโมนกสและการกดสญญาณรบกวนพ�นในยานความถ 100 Hz และยานตาลงมา แสดงใหเหนประสทธภาพในการลดสญญาณรบกวนพ�นในยานความถทตองการ
a)
EEET0485 Digital Signal Processing Electronic Engineering Department
150 Mahanakorn University of Technology
b)
c)
รปทL 14.11 แสดงโปรแกรมทดสอบระบบนอยสเชปปf ง b) ใหดทเธอรเปน 0 c) ใหดทเธอรเปน 0.5 ในรปท 14.12 แสดงการเจาะลกในรายละเอยดของสวนนอยสเชปป� ง สงเกตในการสรางตวกรอง
H(z) ซ งเราใชบลอก FIR Filter PtByPt.vi น�น เราจะมการใช บลอกไดอะแกรม Feedback Node.vi
ซ งเลอกจาก Programming >> Structures >> Feedback Node.vi เพอสรางสญญาณปอนกลบ
EEET0485 Digital Signal Processing Electronic Engineering Department
151 Mahanakorn University of Technology
หรอ อกนยหน งกคอการสรางตวหนวงเวลา z-1 ใหกบสญญาณความผดพลาด E(z) ซ ง E(z) เปนความแตกตางของสญญาณขาออก Y(z) กบสญญาณ U(z) สญญาณน�จะผานเขาสตวกรอง H(z) ดงน�น H(z) ทมสมประสทธ| เปน 1 จะหมายถง H(z) =z-1 สญญาณทออกจาก H(z) จงถกดดแปลงเปน E(z)H(z) ซ งเมอนาไปลบออกจาก X(z) จงไดเปน U(z)= X(z) –E(z)H(z) สดทายสญญาณน� จะถกนาไปรวมกบดทเธอรและผาน ควอนไตซเซอร ซ งจะไดเปน Y(z) =X(z)+ E(z)[1-H(z)]
รปทL 14.12 แสดงภาพ BD ยอยเฉพาะสวนนอยสเชปปf ง
การทดลองทL 14.3 ทาการทดลองกบโปรแกรม noiseshaping.vi แลว จงอภปรายวา 1) ปรมาณของดทเธอร และ 2) ระดบความถสญญาณไซน มผลกระทบตอประสทธภาพการทางานของระบบนอยสเชปป� งอยางไร และจงอภปรายวาจะสามารถปรบปรงระบบนอยสเชปป� งดงกลาวไดอยางไรบาง
เอกสารอางอง
[1] C. Hicks, The Application of dither and Noise-Shaping to Nyquist-Rate Digital Audio: Introduction, Technical report, Communications and Signal Processing Group, 1995. [2] N. Kehtarnavaz, P. Loizou and M. Rahma, Lab 6: Analog-to-Digital Conversion, DTFT and DFT, http://cnx.org/content/m19843/latest/ [3] National Instruments Inc., “Getting Started with LabVIEW Point–By-Point VIs”, http://www.ni.com/pdf/manuals/370152b.pdf