ข้ามไปยังเนื้อหา

การประมวลผลสัญญาณดิจิทัล

วิศวกรรมไฟฟ้า มหาวิทยาลัย · หัวข้อ 12

ดูสไลด์ ฝึกฝน
12.1

หลักสูตรนี้คืออะไร และการใช้หลักสูตรนี้

ระบบหลายอัตราที่เคลื่อนย้ายระหว่างอัตรา การประมวลผลสัญญาณ** — หัวข้อสุดท้ายของสาย EE EE06 สร้าง ทฤษฎีเวลาต่อเนื่อง; รายวิชานี้สร้างรากฐานใหม่บนตัวอย่าง: เครื่องจักร การแปลงแบบบิลิเนียร์. อัตราหลายระดับที่แปลงระหว่างอัตราต่างๆ

  • หน่วย 12.1–12.3 เป็นพื้นฐาน: ระบบแบบไม่ต่อเนื่อง, DTFT/DFT, FFT
  • หน่วย 12.4–12.5 ออกแบบตัวกรอง: FIR โดยใช้หน้าต่าง, IIR โดยใช้การแปลง แบบสองเชิงเส้น
  • หน่วย 12.6–12.7 เปลี่ยนอัตราการไหลและสร้างท่อส่งข้อมูลขนาดเล็กที่ผ่านการตรวจสอบแล้ว

นิสัยการตรวจสอบ: การออกแบบตัวกรองทุกแบบต้องได้รับการตรวจสอบเทียบกับ สเปกซิฟิเคชัน (ความผันผวนที่วัดได้, ช่วงเปลี่ยนผ่านที่วัดได้, แถบหยุดที่วัดได้), ทุกการแปลงความถี่มีการปรับเฟสล่วงหน้าอย่างชัดเจน และทุกการเร่งความเร็ว ความเร็วทุกกรณีเป็นจำนวนการดำเนินการ ไม่ใช่ความเชื่อทั่วไป

คำศัพท์ ฝึกฝน
English ไทย
DTFT การแปลงฟูริเยร์แบบไม่ต่อเนื่องของเวลา (DTFT)
DFT การแปลงฟูริเยร์แบบไม่ต่อเนื่อง (DFT)
FFT การแปลงฟูริเยร์เร็ว (FFT)
FIR การตอบสนองต่อพัลส์จำกัด (FIR)
IIR การตอบสนองต่อพัลส์ไม่จำกัด
12.1

ทบทวนสัญญาณและระบบแบบเวลาไม่ต่อเนื่อง

ทำไมจึงสำคัญ ทุกสิ่งในรายวิชานี้ — ตัวกรองทุกชนิด, สเปกตรัมทุก ประเภท, การเร่งความเร็วทั้งหมด — ในที่สุดแล้วคือโปรแกรมที่ทำงานกับรายการ ตัวเลข พฤติกรรมทั้งหมดของโปรแกรมนั้นถูกกำหนดโดยรายการเดียว: ฟังก์ชัน ตอบสนองต่อสัญญาณกระตุ้น

แนวคิด พร้อมภาพประกอบ ระบบแบบไม่ต่อเนื่องเป็น LTI เมื่อระบบนั้นเป็นไป อธิบายโดย การตอบสนองต่อสัญญาณกระตุก $h[n]$: ค่าผลลัพธ์คือ การ Sending Convolution $y[n] = \sum_{k} h[k]\cdot x[n-k]$ — เลื่อนตัวคูณ (taps) ข้ามผ่านอินพุตและบวกทีละเส้นทแยงมุม

ตัวกรอง FIR แบบสามจุดที่เลื่อนข้ามสัญญาณขั้นบันได และตัวเฉลี่ยแบบรีเคอร์ซีฟ whose step response ปิดที่ 1 แบบเรขาคณิต
FIR ใช้เวลาสามตัวอย่างในการเข้าสู่สภาวะคงตัว; ตัวเฉลี่ยแบบรีเคอร์ซีฟไม่เคยเข้าสู่สภาวะคงตัวอย่างสมบูรณ์ — ผลรวมของตัวคูณเป็นเป้าหมายในทั้งสองกรณี

ความเป็นเหตุเป็นผล (Causality) หมายความว่า $h[n] = 0$ สำหรับ $n < 0$ (ไม่มีเอาต์พุตก่อนมี อินพุต); ความเสถียร BIBO BIBO หมายความว่า $\sum |h[n]|$ ลู่เข้าสู่ค่าใดค่าหนึ่ง ทุก ข้ออ้างในรายวิชานี้ลดรูปเหลือเพียงสองประโยคนี้

การพิสูจน์. ป้อนเลขยกกำลังเชิงซ้อน $x[n] = e^{j\omega n}$ เข้าไปในผลรวม Sending Convolution: แต่ละพจน์จะรับค่าปัจจัย $h[k]e^{j\omega(n-k)} = e^{j\omega n}h[k]e^{-j\omega k}$, ดังนั้นผลลัพธ์จึงเป็น $e^{j\omega n}\sum_{k}h[k]e^{-j\omega k}$ — เลขยกกำลังนี้เป็น ฟังก์ชันเฉพาะ (eigenfunction), และค่าเฉพาะ (eigenvalue) $H(e^{j\omega}) = \sum h[n]e^{-j\omega n}$ คือ การตอบสนองความถี่ การตอบสนองความถี่คือ DTFT ของ ตัวคูณ: หน่วย 12.2 สร้างบนพื้นฐานนี้โดยตรง

ตัวอย่างคำนวณ 1 — ตารางเลื่อน. $h = [1, 2, 1]$ (a 3-tap สามจุด) บนสัญญาณขั้นบันได $x = [1, 1, 1, 1, \ldots]$: เลื่อนและบวก — $y = 1, 3, 4, 4, \ldots$ ค่าคงตัวคือ $\sum h = 4$ ✓ (ขั้นบันได ผ่านFIR ใดๆ จะนิ่งอยู่ที่ผลรวมtaps — นั่นคือDC gain $H(1)$). A pulse有限$[1,1,1]$ ให้$1, 3, 4, 3, 1$, สะท้อนtaps: ของ output อ่านค่าเทปไปข้างหน้าแล้วถอยหลัง

Worked example 2 — the recursive cousin. The running average $y[n] = (y[n-1] + x[n])/2$ มี impulse response แบบไม่จำกัด $h[n] = 0.5^{n+1}$: step response ของมันคำนวณได้ $0.5, 0.75, 0.875, 0.9375$ — ลดระยะห่างจาก 1 ลงครึ่งหนึ่งในแต่ละขั้นตอน, การลดทอนแบบเอ็กซ์โพเนนเชียล $1 - 2^{-(n+1)}$ ✓, เพราะโพลเดียวของมันอยู่ที่ $z = 0.5$ เปรียบเทียบกับ two smoothers: the FIR's memory is exactly 3 samples; the recursive one ไม่เคยลืมสนิทเลย. $|pole| < 1$ คือเสถียรภาพ — ยูนิต 12.5 ทำให้เป็นอาชีพไปเลย

ข้อผิดพลาดทั่วไป. สลับสัญญาณผิดในตาราง (convolution เป็น commutative แต่ตารางมือต้องคงความสม่ำเสมอหรือเส้นทแยงมุมจะ ผิด) อ้างถึง $\sum h$ ว่า "ผลคูณ" โดยไม่ระบุว่าคือผลคูณที่ความถี่ศูนย์ only. And expecting a recursive smoother to settle — it approaches, never มาถึงสูงเกินพื้นนี้แค่ไหน

สรุป. LTI หมายถึงการ convolve ด้วย $h[n]$; ความเป็นเหตุเป็นผลคือ $h[n]=0$ สำหรับ $n<0$; stability คือ $\sum|h| < \infty$ (โพลอยู่ภายใน unit circle); exponentials เป็น eigenfunctions ที่มี eigenvalue $H(e^{j\omega})$.

คำศัพท์ ฝึกฝน
English ไทย
digital signal processing การประมวลผลสัญญาณดิจิทัล
impulse response การตอบสนองต่อสัญญาณจู่โจม (Impulse Response)
convolution การคอนวอลิวชัน
causality ความเป็นเหตุเป็นผล
BIBO stability ความเสถียร BIBO (BIBO Stability)
frequency response การตอบสนองความถี่
12.2

DTFT และ DFT

เหตุผลที่สำคัญ. คอมพิวเตอร์จัดเก็บ $N$ ตัวอย่าง ไม่ใช่อินทิกรัล — spectral ต้องกลายเป็นรายการตัวเลขที่มีจำนวนจำกัด. รายการนี้ถูกนำเสนอต่อคุณอย่างไร คือหัวข้อที่มีประโยชน์ทางปฏิบัติมากที่สุดเรื่องหนึ่งในหลักสูตร. เป็นเรื่องปฏิบัติที่สำคัญที่สุดในรายวิชา

แนวคิด พร้อมภาพประกอบ DTFT $X(e^{j\omega}) = \sum_{n} x[n]e^{-j\omega n}$ เป็นฟังก์ชันซ้ำใน $\omega$ โดยมีรอบ $2\pi$ การสุ่มตัวอย่างที่ $N$ จุดจะให้ได้ DFT — และการสุ่มตัวอย่างในความถี่หมายความว่าสัญญาณเวลา ถูกมองว่าเป็นฟังก์ชันซ้ำซ้อน: ข้อเท็จจริงเพียงข้อเดียวนี้อธิบาย การรั่วไหล

DFT ขนาด 8 จุดของคลื่นโคไซน์ที่ตรงกับ bin 1 พอดี (ยอดแหลมสะอาดสองยอด), เปรียบเทียบกับโทนเสียงเดียวกันที่เบี่ยงเบนไปครึ่ง bin (พลังงานกระจายทั่วทุก bin)
ตรง bin: ยอดแหลมสองยอด. เบี่ยงเบนไปครึ่ง bin: sidelobes ของ rectangular window จะระบายสีทุก bin

ความละเอียด คือการตัดสินใจด้านเวลา: bins คือ $\Delta f = f_{s}/N$ wide, so 1 Hz resolution at $f_{s} = 1$ kHz means $N = 1000$ — one second ของข้อมูล ไม่มีข้อยกเว้น

การพิสูจน์ การสุ่มตัวอย่าง DTFT ที่ $\omega_{k} = 2\pi k/N$ คือ การคูณด้วยหวีความถี่; ตามหลักการคู่กัน สัญญาณเวลาจึงกลายเป็น ซ้ำด้วยช่วง $N$. หากโทนเสียงของคุณอยู่ที่ตรงกับ bin พอดี, การ สำเนาซ้ำจะเชื่อมต่อกันอย่างสมบูรณ์ — เกิดยอดสองยอดที่ชัดเจน. หากมันตกอยู่ระหว่าง bins, สำเนาเหล่านั้นไม่ตรงกัน และความไม่ตรงนั้นกระจายพลังงานไปยังทุก $w[n]$ dB, ได้สเปกตรัมที่สะอาดขึ้นแต่แลกมาด้วย main lobe ที่กว้างขึ้น. ตัวอย่างวิธีทำ $W(e^{j\omega})$ — การกระจาย, คำนวณเป็นตัวเลข. DFT ขนาด $-13$ จุดของคลื่นไซน์ การกระจายนี้ดังขึ้น; Hamming window ลด sidelobes ลงเหลือ $-43$ dB, ได้สเปกตรัมที่สะอาดในราคาของ main lobe ที่กว้างขึ้น.

ตัวอย่างวิธีทำ 1 — การกระจาย, คำนวณเป็นตัวเลข. DFT ขนาด 8 ของโคไซน์ ที่ bin 1 พอดี ($f = f_{s}/8$): มีค่า $|X| = 4$ ที่ bins 1 และ 7, ค่าศูนย์ อื่น ๆ ✓ (sample ทั้งหมด 8 อธิบายรอบเต็ม) เลื่อนโทนเสียงไปครึ่ง bin ($f = 1.5\cdot f_{s}/8$): ค่า magnitude คำนวณได้ $2.40, 2.80, 1.19, 1.0, \ldots$ across every bin ✓ — a tone between bins is visible ในทุกที่ และสัญญาณเล็กข้างเคียงสัญญาณใหญ่จะหายไป ใน sidelobes ของมัน นั่นคือต้นทุนที่แท้จริงของการรั่วไหล

ตัวอย่างวิธีทำ 2 — งบประมาณความละเอียด ที่ $f_{s} = 1$ kHz: $N = 100$ gives 10 Hz bins — two tones 6 Hz apart are ONE bump, however clean the plot looks. $N = 1000$ gives 1 Hz bins for one second of data. Zero-padding ไปยัง 4000 จุด วาดยอดคลื่นเดียวกันด้วยหมึกมากขึ้น 40 เท่า: zero-padding เปรียบเทียบสเปกตรัมเดียวกัน มันไม่ได้ความละเอียดเพิ่ม ความละเอียดถูกกำหนดแล้วเมื่อคุณเลือกระยะเวลาการวัด

Common mistakes. การอ่านเลข bin เป็น hertz — map นี้ $f = k\cdot f_{s}/N$. การเชื่อว่า zero-padding ซื้อความละเอียด And ลืมว่า DFT สมมติว่าตัวอย่าง $N$ ของคุณซ้ำไปเรื่อยๆ: ขอบ ความไม่ต่อเนื่องระหว่างสำเนาแต่ละอันเองก็เป็นสัญญาณ broadband.

Summary. $X[k]$ = DTFT sampled at $2\pi k/N$ ⇔ time periodic with period $N$; off-bin tones leak through the window's sidelobes (rectangle $-13$ dB, Hamming $-43$ dB); $\Delta f = f_{s}/N$ ถูกซื้อด้วย เวลาการวัด ไม่ใช่ด้วยการเติม

คำศัพท์ ฝึกฝน
English ไทย
leakage การรั่วไหลของสเปกตรัม
resolution/ˌrezəˈluːʃn/ ความละเอียด
Hamming window ฮัมมิ่ง
12.3

FFT

Why it matters. The DFT costs $N^{2}$ complex operations — a การแปลงขนาด 1024 คือการคูณล้านครั้ง. FFT คืออัลกอริทึมที่ทำให้การประมวลผลสัญญาณดิจิทัลกลายเป็นสาขาวิชา

แนวคิด พร้อมภาพประกอบ แยก DFT ขนาด $N$ ออกเป็นสอง $N/2$-point DFTs plus $N/2$ combining multiplies — and recurse. The บัตเตอร์ฟลาย คือหน่วยรวม: $\log_{2}N$ ระยะของ $N/2$ บัตเตอร์ฟลาย, แต่ละหนึ่งเป็นการคูณและบวก

เครือข่ายบัตเตอร์ฟลายขนาด 4 สองระยะ, คู่กับจำนวนการดำเนินการแบบตรงเทียบกับ FFT บนสเกลลอการิทึม
คำตอบเท่ากัน, 102× น้อยกว่าในการดำเนินการที่ N = 1024 — และช่องว่างจะกว้างขึ้นตาม N

การพิสูจน์ แยก $x[n]$ เป็นตัวอย่างคู่และคี่: $X[k] = \sum_{even} x[n]W_{N}^{kn} + W_{N}^{k}\sum_{odd}x[n]W_{N}^{kn}$ ด้วย ตัวคูณเฟส $W_{N} = e^{-j2\pi/N}$. ผลรวมแต่ละตัวคือ DFT ขนาด $N/2$ (Danielson–Lanczos); แขนคี่ต้องการเพียง factor $W_{N}^{k}$ to recombine. Recurse $\log_{2}N$ deep. The การแยกคู่/คี่ทำงานย้อนกลับผ่านบิตที่อยู่ — ดังนั้น ลำดับอินพุตกลับด้านบิต สำหรับแบบ decimation-in-time

ตัวอย่างคำนวณ 1 — การนับ นับการดำเนินการคูณ-บวกเชิงซ้อน การดำเนินการ: แบบตรง $N^{2} = 1024^{2} = 1\,048\,576$; FFT $N\log_{2}N = 1024\times 10 = 10\,240$ — 102× fewer ✓. At $N = 4096$: $4096^{2}$ against $4096\times 12$ = 341× ✓. The gap กว้างขึ้นตาม $N$: FFT มี $O(N\log N)$, และลำดับทั้งหมดของการ คำนวณเปลี่ยนไป

ตัวอย่างคำนวณ 2 — เครื่องวิเคราะห์สเปกตรัม 1 HzBins ที่ $f_{s} = 1$ kHz ต้องใช้ $N \ge 1000$: เลือก $N = 1024$ (กำลังสอง), ให้ $\Delta f = 1000/1024 = 0.977$ Hz ✓ พอดีพอดี ในเวลา 10 นาโนวินาทีต่อ operation transform เสร็จสิ้นในประมาณ $100\ \mu s$ — real time against a 1.024 s record. Bin 100 of that DFT is frequency $100\times 0.977 = 97.66$ Hz ✓ — การจับคู่ bin เป็นเฮิรตซ์คือ $k\cdot f_{s}/N$, และการลืมมันคือข้อผิดพลาดในห้องปฏิบัติการที่พบบ่อยที่สุด

ข้อผิดพลาดทั่วไป. การสันนิษฐานว่า $N$ ต้องเป็นกำลังสอง (mixed-radix และ Bluestein สามารถจัดการกับ $N$ ใดก็ได้ แต่กรณีกำลังสองนั้นเป็นเพียง วิธีที่เร็วที่สุด) การคาดหวังว่า FFT จะเปลี่ยนคำตอบ — มันคำนวณ DFT เดียวกัน DFT, เพียงแต่เร็วขึ้น และอ่านค่าเป็นเฮิรตซ์อีกครั้ง

สรุป. การแยกคู่/คี่ + ตัวคูณปรับเฟส, $\log_{2}N$ ระยะ, $N\log_{2}N$ การดำเนินการ: การเร่งความเร็ว 102× ที่ $N=1024$ ซึ่งเพิ่มขึ้นตาม $N$; คณิตศาสตร์คือ DFT วิศวกรรมคือ butterfly

คำศัพท์ ฝึกฝน
English ไทย
butterfly การคำนวณแบบผีเสื้อ (Butterfly Operation)
twiddle factor ตัวคูณหมุน (Twiddle Factor)
decimation การลดอัตราส่วน
interpolation/ɪnˌtɜːpəˈleɪʃn/ การเพิ่มอัตราส่วน
12.4

การออกแบบตัวกรอง FIR

ทำไมถึงสำคัญ. ตัวกรอง FIR คือเครื่องมือหลักที่คุณ สามารถพิสูจน์เรื่องต่างๆ ได้: ไม่เสถียรโดยสมบูรณ์, และ — ด้วย symmetric taps — exactly linear phase. Frequencies ใน passband ที่ราบเรียบคงรักษา relative phases ของมันไว้; amplitude filtering ยังสามารถเปลี่ยน waveform ได้.

แนวคิด พร้อมภาพประกอบ. เริ่มต้นจาก impulse response ของ low-pass แบบอุดมคติ (sinc) response (a sinc), ตัดทอนให้เป็น $N$ taps ด้วย window $w[n]$, และรูปทรงทางสเปกตรัมของ spectral shape ของ window ISชะตากรรมของ filter: main-lobe width ของมัน จะกลายเป็นแถบผ่านของคุณ แขนข้างจะกลายเป็นแถบตัดของคุณ

A 67-tap Hamming window and the computed low-pass response: 200 Hz passband edge, 250 Hz stopband edge
The window นำทางในการออกแบบ; คำนวณ actual filter response เพื่อยืนยัน passband และ stopband

นิยามด้วยตัวเลข. แพล็กไซด์โลบของตัวปรับแต่งเอง: สี่เหลี่ยม $-13$ dB, Hann $-31$ dB, Hamming $-43$ dB, Blackman $-58$ dB. ความกว้างของการเปลี่ยนผ่าน $\approx 3.3\cdot f_{s}/N$ สำหรับฮามมิ่ง. คอยที่สมมาตรจริง $h[n] = h[N-1-n]$ ให้ เฟสเชิงเส้น พร้อมดีเลย์กลุ่ม $(N-1)/2$ ตัวอย่างทุกครั้งที่การตอบสนองไม่เป็นศูนย์. เฟสอาจกระโดดไป $\pi$ เมื่อปัจจัยแอมพลิจูดจริงเปลี่ยนเครื่องหมาย; เฟสและกลุ่ม ดีเลย์จะไม่มีค่าที่จุดศูนย์ของการตอบสนอง.

กระบวนการหาผลลัพธ์. การตัดทอน $h[n]$ คือการคูณด้วย $w[n]$; ใน โดเมนความถี่ ค่าตอบสนองจริงจะคอนโวลูตกับ $W(e^{j\omega})$ ดังนั้นค่า ตอบสนองที่นำไปใช้จึงเป็น VALUESbrick wall แบบอุดมคติที่ถูกกระจายโดยฟังก์ชัน: ความแปรปรวนของแถบผ่าน, การเปลี่ยนผ่านด้วยความกว้างของแขนหลักหนึ่งอัน, และแถบตัด ซึ่งการลดทอนขึ้นอยู่กับผลคูณ Sending, จุดตัด และจำนวนคอยต์. A ค่าพลักไซด์โลบของตัวปรับแต่งไม่ใช่การรับประกันย่านหยุดของฟิลเตอร์ที่ได้มา. ใช้ตารางตัวปรับแต่งและการประมาณการการเปลี่ยนผ่านเพื่อเลือกการออกแบบเริ่มต้น, จากนั้นคำนวณการตอบสนอง. (ทฤษฎีบทสลับ เบื้องหลังพาร์กส์–แมคเคลลันทำให้การออกแบบเอควิริปเปิลเหมาะสมที่สุดเมื่อตัวปรับแต่ง เป็นเพียงทางเลือกที่สะดวก)

ตัวอย่างที่แสดงวิธีทำ 1 — การกำหนดขนาดฟิลเตอร์ ไฟเตอร์ FIR ของฮามมิ่งที่ $f_{s} = 1$ กิโลเฮิรตซ์ ต้องส่งผ่านถึง 200 Hz และลดทอนตั้งแต่ 250 Hz. เลือก 225 Hz ideal cutoff in the 50 Hz transition: $N = 3.3\cdot 1000/50 = 66$ ✓ — take 67, odd, สำหรับ Type-I ฟิลเตอร์สมมาตรพร้อมดีเลย์ $(67-1)/2 = 33$ ตัวอย่าง (33 มิลลิวินาที). ที่ $N = 31$ หน้าต่างเดียวกันให้ $3.3\cdot 1000/31 = 106$ เฮิรตซ์ การเปลี่ยนผ่าน: การออกแบบทั้งสองข้างกั้นสเปคไว้; ความหน่วงคือ ค่าใช้จ่ายในการบันทึก ไม่ใช่หมายเหตุท้ายหน้า.

ตัวอย่างแบบฝึกหัด 2 — ตรวจสอบการออกแบบ. สร้าง 67 คอยต์จาก $h[n] = 0.45\operatorname{sinc}(0.45(n-33))w[n]$, ที่ $\operatorname{sinc}(x)=\sin(\pi x)/(\pi x)$ และค่าที่จุดศูนย์คือ 1. ทำให้ผลรวมคอยต์เป็น 1. ประเมิน $H(f)=\sum_{n=0}^{66}h[n]e^{-j2\pi fn/1000}$. On a 0.025 Hz grid, the computed passband (0–200 Hz) ranges from $-0.034$ ถึง $+0.0045$ dB, และระดับย่านหยุดสูงสุด (250–500 Hz) มีค่าประมาณ $-52.3$ dB การตรวจสอบด้วยตัวอย่างเหล่านี้เป็นไปตามเป้าหมาย ของripple ±0.05 dB และระดับ_stopband สูงสุดที่ $-43$ dB; หรือใช้ตารางละเอียดกว่าหรือ การตรวจสอบแบบ extremum search ระหว่างจุดตัวอย่าง หากการออกแบบให้ผลลัพธ์เป็น $-37$ dB แทน จะไม่ผ่านเป้าหมายนั้น: ให้ตรวจสอบ taps, cutoff, window, tap จำนวนและย่านวัดผลแทนการเดาสาเหตุที่เป็นเพียงหนึ่งเดียว

ข้อผิดพลาดทั่วไป. ออกแบบ $N$ จากค่าตัดขาดและไม่เคยวัด. เลือก $N$ คู่เมื่อต้องการการออกแบบ Type-I (คี่, สมมาตร) ลืมความหน่วง $(N-1)/2$ ในวงควบคุม และขอหน้าต่างเพื่อ ประสิทธิภาพสูงสุด — พวกมันสะดวก ไม่ใช่ดีที่สุด

สรุป. ใช้ window กับ ideal sinc: ตาราง sidelobe ช่วยในการเลือก window, $3.3f_{s}/N$ กำหนดการเปลี่ยนผ่าน, สมมาตรกำหนดเฟสเชิงเส้นที่ความหน่วง $(N-1)/2$; แล้ววัดการตอบสนองเทียบกับทุกตัวเลขที่สัญญาไว้

คำศัพท์ ฝึกฝน
English ไทย
linear phase เฟสเชิงเส้น (Linear Phase)
12.5

การออกแบบตัวกรอง IIR

ทำไมถึงสำคัญ. ค่าตัด 100 เฮิรตซ์เดียวกันที่ costing FIR 67 ทาป cost IIR biquad 5 สัมประสิทธิ์ — เพราะมันสืบทอด ความรู้เรื่องฟิลเตอร์อนาล็อกสี่สิบปีผ่านการแทนที่เดียว

แนวคิดพร้อมภาพประกอบ การแปลงแบบบิลิเนียร์ $s = \frac{2}{T}\cdot\frac{1-z^{-1}}{1+z^{-1}}$ maps the whole analog left half-plane inside the unit circle: every stable analog filter becomes a stable digital one, automatically.

s-plane left half-plane mapped into the z-plane unit disk, beside the bilinear-transformed Butterworth response meeting its cutoff
Stability comes free; the price is frequency warp, repaid by prewarping

The price is frequency warp: the analog axis $-\infty \ldots \infty$ wraps once around the unit circle, compressively, so every critical frequency must be prewarped $\omega_{a} = \frac{2}{T}\tan(\omega_{d}T/2)$ before use.

The derivation. Set $s = j\omega_{a}$ in the transform: it solves to $z = \frac{1+sT/2}{1-sT/2}$, whose magnitude is 1 exactly when $\mathrm{Re}\,s = 0$ — the analog imaginary axis maps onto the unit circle, left half-plane strictly inside. The tangent relation is the warp: near dc $\tan\theta \approx \theta$ (negligible distortion), but a ความถี่ดิจิทัลที่เข้าใกล้ Nyquist จะบีบอัดเข้าสู่สัญญาณอะนาล็อก อนันต์ ตาราง Butterworth, Chebyshev และ elliptic ถูกถ่ายโอนมาอย่างสมบูรณ์ เนื่องจากแกนความถี่เพียงอย่างเดียวที่โค้ง — เรขาคณิตของพหุนามยังคงอยู่

ตัวอย่างวิธีทำ 1 — บิกิวาด (Biquad) ตัวกรองต่ำผ่าน Butterworth order 2 ที่ 100 Hz, $f_{s} = 1$ kHz: การปรับความถี่ล่วงหน้า (prewarp) $\omega_{a} = 2000\tan(\pi\cdot 100/1000) = 649.8$ rad/s ✓. ด้วย เมื่อ $s$ มาตรฐานด้วย $\omega_{a}$ ค่าคงที่การแทนที่คือ $K = 1/\tan(0.1\pi) = 3.078$ และต้นแบบ $H(s) = 1/(s^{2}+1.4142s+1)$ เปลี่ยนเป็น

$$H(z) = \frac{1 + 2z^{-1} + z^{-2}}{14.82 - 16.94z^{-1} + 6.12z^{-2}}$$

ตัวอย่างวิธีทำ 2 — ตรวจสอบ แล้วจ่าย._gain DC: ส่วนประกอบของตัวส่วนรวมกัน เป็น $14.82 - 16.94 + 6.12 = 4.00$ ดังนั้น $H(1) = 4/4 = 1.000$ ✓ (Butterworth มีค่าคงที่ที่ dc) การตอบสนองที่ความถี่ 100 Hz พอดีคำนวณได้ $-3.0$ dB ✓ — การปรับก่อนทำให้จุด $-3$ dB อยู่ตรงบนความถี่ ที่กำหนดไว้ ซึ่งเป็นเหตุผลหลักของการปรับก่อน จุดขั้ว ตั้งอยู่ที่ $|z| = 0.643$, ภายในวงกลมหน่วย เพราะการแปลงค่า รับประกันสิ่งนั้น ✓. ทิ้งการปรับความถี่ล่วงหน้า — ออกแบบตัวกรองอะนาล็อกที่ $2\pi \times 100 = 628.3$ rad/s — และจุด $-3$ dB ลงที่ 96.9 Hz; ตั้งค่า $T = 1$ ด้วย ($K = 1$) และจะตัดที่ 250 Hz, อ่านค่าได้สบายใจว่า $-0.05$ dB ที่ 100 Hz แต่พลาดข้อกำหนดไปทั้งหมด — ค่า แสดงถึงความแตกต่างเสมอ ตัวอย่างเช่น บิล: 5 สัมประสิทธิ์ เทียบกับ FIR's 67 taps, แต่เฟสเป็น ไม่เชิงเส้นใกล้จุดตัด และใน fixed point, ตัวส่วน สัมประสิทธิ์คือสิ่งที่เปราะบาง — การปัดเศษของ $6.12$ เคลื่อนย้าย จุดตัดอย่างมีนัยสำคัญ ประสิทธิภาพ เฟส และความไวแลกเปลี่ยนกันในบรรทัดเดียว

ข้อผิดพลาดทั่วไป การข้ามขั้นตอนการปรับความถี่ล่วงหน้า (จุดตัดจะต่ำกว่า — 96.9 Hz สำหรับ 100 Hz ที่ 1 kHz ค่อนข้างน้อย, 2.86 kHz สำหรับ 4 kHz ที่ 10 kHz เป็นเรื่องร้ายแรง). การตั้งค่า $T = 1$ ขณะที่ยังอ้างอิง hertz แบบอนาล็อก การทดสอบเสถียรภาพโดย ใช้โชคแทนที่จะไว้วางใจการแปลงค่า และคาดหวังRegardingเฟสเชิงเส้น — IIR เฟสใกล้กับขั้วของระบบจะตรงข้ามกับความแบนราบ

สรุป. การแปลง Bilinear: LHP → วงกลมหน่วย (เสถียรภาพอัตโนมัติ), ความถี่ ถูกบิดเบือนโดย $\frac{2}{T}\tan(\cdot)$ (ปรับความถี่วิกฤตทุกจุดก่อนใช้); บิควอดด์ Butterworth จะจัดวางได้เป็น $H(z) = \frac{1+2z^{-1}+z^{-2}}{14.82 - 16.94z^{-1} + 6.12z^{-2}}$ (DC 1.000, $-3.0$ dB ที่ 100 Hz, ขั้วอยู่ที่ 0.643).

คำศัพท์ ฝึกฝน
English ไทย
bilinear transform การแปลงแบบบิลิเนีย
prewarp การปรับรูปคลื่นล่วงหน้า (Prewarp)
12.6

การประมวลผลหลายอัตราส่วน

เหตุผลที่สำคัญ. อัตราการสุ่มตัวอย่างคืองบประมาณการคำนวณ: ตัวกรองที่ทำงานที่ 48 kHz มีค่าใช้จ่ายมากกว่าตัวกรองเดียวกันที่ 8 kHz ถึงหกเท่า การประมวลผลหลายอัตราส่วนคือศิลปะของการ ทำงานในพื้นที่ที่มีต้นทุนต่ำที่สุด

แนวคิด พร้อมภาพประกอบ การลดอัตราส่วน โดย $M$ (เก็บทุก $M$ ตัวอย่าง) ต้องตัวกรองต่ำผ่านก่อนที่ $f_{s}/(2M)$ — หรือคลื่นที่ folded $L$ ศูนย์ระหว่างตัวอย่าง) ต้องผ่านตัวกรองต่ำต่อจากนั้นที่ต่ำกว่า Nyquist เดิมเพื่อ $L-1$ ศูนย์ระหว่างตัวอย่าง) ต้องจากนั้นตัวกรองต่ำผ่านต่ำกว่า Nyquist เดิมเพื่อ กำจัดภาพสะท้อน (images).

บันไดการ.interpolate จาก 8-ถึง 48 kHz: สเปกตรัมที่ใส่ศูนย์พร้อมภาพสะท้อน, และการจัดระเบียบ polyphase เข้าเป็นตัวกรองย่อยหกตัว
การเพิ่มอัตราตัวอย่างสร้างภาพสะท้อนทุก 8 kHz; ตัวกรองต่ำหนึ่งตัวลบทิ้ง; polyphase ทำคณิตศาสตร์เดียวกันสำหรับผลคูณเพียงหนึ่งในหก

$L$ — สเปกตรัมเดิมซ้ำ $X_{up}(e^{j\omega}) = X(e^{j\omega L})$ รอบวงกลม: นั่นคือภาพสะท้อน และพวกมันถูกต้องตาม $L$ ครั้งรอบวงกลม: นั่นคือภาพสะท้อน, และพวกมันตรงกับ เหมือนสัญญาณจริง การเก็บ 1 ตัวอย่างใน $M$ จะทำให้ $M$ สเปกตรัมซ้ำซ้อนทับกัน เข้าด้วยกัน: สิ่งใดที่มีค่าสูงกว่า Nyquist ใหม่จะพับกลับเข้าไปใน ย่านความถี่นั้น ฟิลเตอร์ต่ำผ่านทั้งสองไม่ใช่เรื่องยุ่งยาก; แต่ละตัวลบสิ่ง ทางคณิตศาสตร์ที่แน่นอนออก Polyphase จึงเป็นพีชคณิตบริสุทธิ์: การ ฟิลเตอร์การแทรกสอดมี $L$ ชุดเฟส แต่ละชุดมองเห็นเพียงทุก $L$อินพุต, ดังนั้นฟิลเตอร์เดียวที่ $f_{s}L$ จึงกลายเป็น $L$ ฟิลเตอร์ย่อยที่ $f_{s}$ — ทำการคำนวณ เหมือนกัน $1/L$ การคูณเท่านั้น

ตัวอย่างฝึกหัด 1 — เสียงพูด 8 kHz เป็น 48 kHz. การแทรกโดย 6 แล้วใช้ ฟิลเตอร์ต่ำผ่านที่ 4 kHz (Nyquist เดิม) เพื่อลบภาพที่ 8k, 16k, 40k… หากดำเนินการแบบธรรมดา ฟิลเตอร์นี้จะทำงานที่ 48 kHz — ทำงานหนักขึ้น หกเท่า Polyphase จัดรูปแบบใหม่ให้เป็น 6 ฟิลเตอร์ย่อยที่ทำงานที่ 8 kHz: ทำการคำนวณ เหมือนกัน $1/6$ การคูณ ✓ — และนี่ไม่ใช่การประมาณ แต่เป็นการคำนวณเดียวกันที่ถูกจัดตารางเวลาต่างออกไป การประมาณค่า, มันคือการคำนวณเดียวกันที่วางแผนไว้ต่างกัน

ตัวอย่างวิธีทำ 2 — ตัวแปลงหนึ่ง ไม่ใช่สอง การเปลี่ยนอัตราตัวอย่างเสียง 48 kHz ขึ้นเป็น 72 kHz ต้องใช้ $L = 3$, $M = 2$ ($48\times 3/2 = 72$ ✓). การทำสองรอบจะ ต้องใช้ตัว interpolator, ตัวกรอง, ตัว decimator และตัวกรองอีกชุด หนึ่ง rational converter does it: upsample by 3 to 144 kHz, apply a single low-pass at 24 kHz (the input's own Nyquist — it stops the $\uparrow 3$ ภาพและ aliase ที่ $\downarrow 2$ พร้อมกัน), เก็บทุกตัวอย่างที่สอง ใช้ฟิลเตอร์เดียว ผ่านเดียว ได้ผลลัพธ์เดียวกัน

ข้อผิดพลาดที่พบบ่อย. การลดอัตราตัวอย่างก่อนการกรอง (ซึ่งจะทำให้เกิดสัญญาณหลอกที่ไม่ได้ เป็นเสียงรบกวน แต่เป็นสัญญาณถาวร) การลืม $1/L$ การสูญเสียแอมพลิจูดของ การเติมศูนย์ (ชดเชยด้วยการเพิ่มกำลัง $L$ ในตัวกรอง) และ การมองว่าโพลีเฟสเป็นการประมาณค่า — มันคือระบบบันทึกข้อมูลที่แม่นยำ

สรุป. $\downarrow M$ ต้องมีตัวกรองต่ำผ่านที่ $f_{s}/2M$ ก่อน; $\uparrow L$ ต้องมีตัวกรองต่ำผ่านที่ Nyquist เดิมหลังจาก; โพลีเฟส ให้ผลลัพธ์ทางคณิตศาสตร์เท่ากันสำหรับ $1/L$ ที่คูณด้วย; ตัวแปลง $L/M$ แบบเศษส่วน รวมเข้ากับตัวกรองเดียวที่อัตราการส่งผ่านกลาง

คำศัพท์ ฝึกฝน
English ไทย
polyphase การแยกแบบโพลีเฟส
processing gain กำไรจากการประมวลผล (Processing Gain)
12.7

โครงการประมวลผลสัญญาณ

ทำไมถึงสำคัญ. หลักสูตรนี้ปิดช่องว่างที่การปฏิบัติเปิดไว้: ด้วย ข้อกำหนด, การนำไปใช้จริง และการวัดผล — รวมถึงช่องว่างที่แท้จริง ระหว่างทั้งสามอย่างนี้

แนวคิด พร้อมภาพประกอบ. สร้างเครื่องตรวจจับโทนเสียงเป็นกระบวนการต่อเนื่อง, แต่ละขั้นตอนได้รับการตรวจสอบแยกต่างหากก่อนขั้นตอนถัดไป: ฟิลเตอร์ป้องกัน aliasing → หากพบข้อบกพร่องในขั้นตอนใดขั้นตอนหนึ่ง จะใช้เวลาแก้ไขหนึ่งชั่วโมง; แต่หากพบในระบบที่บูรณาการแล้ว จะต้องใช้เวลาหาจุดผิดปกติเป็นหนึ่งสัปดาห์ในการแบ่งครึ่งพื้นที่

กระบวนการโครงการแสดงเป็นสี่บล็อกที่ได้รับการตรวจสอบแล้วเรียงต่อกัน แต่ละบล็อกมีการตรวจสอบของตนเอง ส่งต่อเข้าตารางเปรียบเทียบระหว่างข้อกำหนดกับผลการวัด
กำหนดข้อกำหนดก่อน ตรวจสอบแต่ละขั้นตอนแยกต่างหาก แล้วจึงวัดผลทั้งหมดเทียบกับทุกบรรทัดของข้อกำหนด

วิธีการ. เขียนข้อกำหนดก่อน — เครื่องตรวจจับโทนเสียง: 1 ช่องความถี่ ภายใต้เวลาหน่วง 1 วินาที, การตรวจจับที่ SNR $-10$ dB — นำไปใช้จริงใน ขั้นตอนที่ยืนยันแล้ว และรายงาน ประสิทธิภาพที่วัดได้ ต่อทุก บรรทัด รวมถึงความล้มเหลว

ตัวอย่างคำนวณ 1 — ข้อกำหนดกลับมารังเกียจ. 1 Hz bins ที่ $f_{s} = 1$ kHz ต้องใช้ $N \ge 1000$ ตัวอย่าง — นั่นคือข้อมูลระยะเวลา $1.0$ วินาทีแล้ว และ spec says under 1 s latency. The conflict surfaces at design time, which is when you want it: $N = 1024$ gives 0.977 Hz ✓ but a 1.024 s record ✗; $N = 1000$ gives 1.000 Hz — exactly on the line. The margin table records the trade; nothing is silent.

Worked example 2 — can $-10$ dB even be detected? A sinusoid's แบนหนึ่งเดียว ในขณะที่สัญญาณรบกวนสีขาวกระจายทั่วทั้ง $N/2$: การเพิ่มกำลังประมวลผล ของแบนคือ $10\log_{10}(N/2)$ — ที่ $N = 1024$ นั้นเท่ากับ $27$ dB ✓ อัตราส่วนสัญญาณต่อสัญญาณรบกวนเข้าอยู่ที่ $-10$ dB จะกลายเป็นประมาณ $+17$ dB ในแบนการตัดสินใจ: ตรวจจับได้ด้วยระยะเผื่อ — ฟังก์ชัน มีค่าใช้จ่ายหลาย dB จากกำลังนี้ แต่มันยังคงผ่านเกณฑ์ — และตัวเลขนั้นมาจาก การแปลง ไม่ใช่จากความหวัง

ข้อผิดพลาดที่พบบ่อย วัดเฉพาะเส้นทางที่ประสบความสำเร็จ เป้าหมายที่เงียบงัน — บรรทัด ข้อกำหนดที่มีอยู่ในโค้ดแต่ไม่มีในรายงาน ปรับตัวตรวจจับให้เข้ากับเสียงทดสอบ (การ overfitting คือการหลอกด้วยขั้นตอนเพิ่มเติม) และข้าม การตรวจสอบแต่ละขั้นตอน: การอินทิเกรตซ่อนสิ่งที่การตรวจสอบจะแสดงออก — กลไกของวัตถุในสภาวะสมดุล ทุกสิ่งที่เครื่องจักร สะพานหรือ

สรุป กำหนดก่อน ตรวจสอบขั้นตอนแยกกัน เชื่อถือการวัด ขอบเขต; ผลกำไรจากการประมวลผล $10\log_{10}(N/2)$ กำหนดความเป็นไปได้

บทเรียนเชิงโต้ตอบสำหรับหัวข้อนี้

ทำทีละขั้นตอน พร้อมแบบฝึกหัดตรวจสอบผลทันที

หัวข้อเพิ่มเติมใน วิศวกรรมไฟฟ้า มหาวิทยาลัย

เข้าสู่ระบบหรือสร้างบัญชี

IGCSE, A-Level & AP