อะไรคือข้อดีของรูปแบบการสุ่มตัวอย่างต่างๆ


12

เมื่อเร็ว ๆ นี้ฉันพบระบบ DSP ซึ่งทำการอัปเดตภายในผ่านการเติมเต็มศูนย์ คาดว่าจะมีคำสั่งซื้อเป็นศูนย์ฉันรู้สึกประหลาดใจที่พบว่าสัญญาณ DC ไม่ได้สร้างเอาต์พุต DC; นอกจากนี้ยังมีฮาร์โมนิกของความถี่การสุ่มตัวอย่างภายใน (ล่าง) ในเอาต์พุต

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

คำอธิบายบางอย่าง:

  • ระบบเป็นเรียลไทม์ดังนั้นรูปแบบการสุ่มตัวอย่างจะต้องเป็นสาเหตุ
  • ตัวเพิ่มค่าต่ำสุดจะตามด้วยตัวกรองการลดรอยหยักที่สามารถระบุได้

คำตอบ:


11

m1m1m

สิ่งสำคัญคือต้องเข้าใจว่าตัวกรอง low-pass ใด ๆ สามารถใช้เพื่อกำจัดนามแฝงและทำการแก้ไขให้เสร็จสิ้น แม้ว่าตัวกรองบางตัวจะมีข้อดีเมื่อใช้ในการแก้ไข ฉันจะหารือเกี่ยวกับการกรองการแก้ไขรสชาติต่าง ๆ ด้านล่าง

ตัวกรอง FIR

x[n]x0,x1,...xNx0,0,x1,0,...xN

h[n]

mmceil(K/m)

ตัวอย่างหวังว่าจะแสดงวิธีการทำงาน สมมติว่าเรามีตัวกรองหกก๊อกและเรากำลังทำการแก้ไขโดยใช้สองปัจจัย ก๊อกตัวกรองคือ [1 -2 4 4 -2 1] หากเราสอดแทรกอย่างแท้จริงแล้วกรองตัวอย่างและก๊อกกรองจะเรียงแถว (เมื่อมีการทับซ้อนเต็ม) ดังนี้:

0:1x2:20:4x1:40:2x0:1
ตัวอย่างถัดไป ...

x3:10:2x2:40:4x1:20:1
ตัวอย่างถัดไป ...

0:1x3:20:4x2:40:2x1:1
และอื่น ๆ จุดของตัวกรองการแก้ไขคือว่ามันข้ามการแทรกค่าศูนย์และเพียงสลับชุดก๊อกที่มันใช้ในขณะนี้แทน ดังนั้นลำดับก่อนหน้านี้จะมีลักษณะดังต่อไปนี้:

x2:2x1:4x0:1

x3:1x2:4x1:2

x3:2x2:4x1:1

ระงับการสั่งซื้อเป็นศูนย์

m1x0,x1,...xNx0,x0,x1,x1,...xN,xN

m

ระงับคำสั่งแรก

x0,x1,...xNx0,x0+x12,x1,x1+x22,...xN

[12112][132312312]

ตัวกรองรูปสามเหลี่ยมเป็นตัวกรองรูปสี่เหลี่ยมผืนผ้าสองตัวที่รวมเข้าด้วยกันซึ่งสอดคล้องกับ sinc squared ในโดเมนความถี่ นี่เป็นขั้นตอนที่ชัดเจนตั้งแต่การระงับออเดอร์ แต่ไม่มีอะไรดี

ตัวกรอง IIR

ฉันไม่เคยใช้ตัวกรอง IIR แบบสอดแทรกดังนั้นฉันจะไม่พูดอะไรมากมายเกี่ยวกับตัวกรองเหล่านี้ ฉันคิดว่าข้อโต้แย้งเดียวกันนี้ใช้ในการกรองปกติ - ตัวกรอง IIR มีประสิทธิภาพมากขึ้นไม่เสถียรไม่มีเฟสเชิงเส้น ฯลฯ ฉันไม่เชื่อว่าพวกเขาสามารถรวมขั้นตอนการสุ่มตัวอย่างและการกรองเช่นตัวกรอง FIR ได้ แต่ฉันอาจจะผิดเกี่ยวกับเรื่องนั้น

การแก้ไข FFT

ฉันจะโยนอันนี้ลงไปถึงแม้ว่ามันจะไม่ธรรมดามาก (แน่นอนฉันไม่คิดว่าการถือศูนย์เป็นเรื่องธรรมดาเช่นกัน) หัวข้อนี้อธิบายการ resampling FFT โดยที่ resampling เป็นทั้งการประมาณค่าและการลดทอน

สั่งซื้อที่สูงขึ้นถือ

ผู้บุกรุกที่มีลำดับที่สองมักจะถูกเรียกว่า ตัวกรองเหล่านี้ไม่ใช่เชิงเส้นจึงไม่สามารถนำมาใช้เป็นตัวกรอง FIR ซึ่งเป็นเส้นตรงได้ ฉันไม่เข้าใจคณิตศาสตร์ที่อยู่เบื้องหลังพวกเขาดังนั้นฉันจะไม่พูดคุยเกี่ยวกับการแสดงของพวกเขา ฉันจะบอกว่าฉันเชื่อว่าพวกเขาค่อนข้างธรรมดานอกการประมวลผลสัญญาณ

มีวิธีการสั่งซื้อที่สูงกว่า (สามขึ้นไป) สิ่งเหล่านี้เรียกว่า "การถดถอยพหุนาม"

แก้ไข:

ตัวกรอง Cascade Integrator Comb (CIC)

ฉันลืมที่จะพูดถึงตัวกรอง CIC ตัวกรอง CIC นั้นใช้ด้วยเหตุผลสองประการ: พวกเขาใช้ตัวเพิ่ม / ตัวลบเท่านั้น (ไม่ใช่เรื่องใหญ่ตอนนี้ที่ตัวคูณนั้นเร็วและราคาถูก) และพวกเขาสามารถทำการเปลี่ยนแปลงอัตราตัวอย่างขนาดใหญ่ได้อย่างมีประสิทธิภาพ ข้อเสียของพวกเขาคือพวกมันใช้งานตัวกรองสี่เหลี่ยมแบบเรียงซ้อนอย่างมีประสิทธิภาพดังนั้นพวกเขาจึงมีข้อเสียทั้งหมดของตัวกรองสี่เหลี่ยมผืนผ้าตามที่กล่าวไว้ข้างต้น เครื่องมือแก้ไข CIC นั้นมักจะนำหน้าด้วยตัวกรอง FIR ที่ชดเชยซึ่งบิดเบือนสัญญาณล่วงหน้าเพื่อยกเลิกการบิดเบือนที่ CIC แนะนำ หากการเปลี่ยนแปลงอัตราตัวอย่างมีขนาดใหญ่พอค่าใช้จ่ายของฟิลเตอร์ pre-distortion จะคุ้มค่า


การสำรวจที่ยอดเยี่ยมนายจิม หากต้องการเพิ่มหมวดหมู่การระงับการสั่งซื้อที่สูงกว่าของคุณฉันเชื่อว่าสิ่งนี้เรียกว่า "การถดถอยพหุนาม" ในการคำนวณนั้นเราได้ทำการคำนวณเส้นพาราโบลาลูกบาศก์ลูกบาศก์พหุนามเรียงลำดับที่สูงที่สุด เมื่อเรามีสมการแล้วเราก็สามารถหาว่าจุดกลางคืออะไร
Spacey

คำถาม: 1) ฉันไม่ชัดเจนเกี่ยวกับย่อหน้าสุดท้ายของส่วนตัวกรอง FIR คุณพูดถึงว่าเอาต์พุตที่ 2 และ 3 ที่สอดคล้องกับตัวอย่างที่ 1 ใช้ฟิลเตอร์กรองเทป 1, 4, 7 และ 2, 5, 8 อย่างไรก็ตามคุณยังพูดถึงว่ามันเป็นศูนย์ทั้งหมด ... ดังนั้นจึงไม่ได้เอาท์พุทที่ 2 และ 3 ตัวอย่างแค่เลขศูนย์ในกรณีนี้? 2) 'FIR Interpolating Filter' ดูเหมือนว่าพูดว่า [1 0 0 3.2 0 0 -2.1 0 0 1.1 0 0] สำหรับ m = 3 หรือไม่? (ตัวเลขถูกสร้างขึ้น)
Spacey

@ Mohammad ฉันได้แก้ไขคำตอบแล้ว ฉันหวังว่านี่จะช่วยได้. และขอขอบคุณสำหรับข้อมูลเกี่ยวกับการถดถอยพหุนาม
Jim Clay

1
@endolith ด้วยสองเหตุผลฉันคิดว่า: ความซับซ้อนและมันก็สมเหตุสมผลที่จะคำนวณเมื่อความยาวตัวกรองเกินกว่าจำนวนที่กำหนด (และฉันไม่แน่ใจว่าหมายเลขนั้นคืออะไร) วิธีการ FFT ทำได้ดีมากเมื่อต้องจัดการกับกลุ่มตัวอย่าง แต่ถ้าคุณกำลังจัดการกับกลุ่มตัวอย่างคุณก็ต้องทำการเหลื่อมกันเพิ่มหรือทับซ้อนกันเพื่อรักษาความต่อเนื่อง
Jim Clay

1
@endolith สิ่งที่ดีจริงๆเกี่ยวกับวิธีการ FFT คือแทบไม่มีค่าใช้จ่ายในการใช้ตัวกรองขนาดใหญ่
Jim Clay

3

คำตอบของจิมครอบคลุมมันค่อนข้างดี วิธีการสุ่มตัวอย่างทั้งหมดเป็นไปตามรูปแบบพื้นฐานเดียวกัน:

  1. แทรกค่าศูนย์ระหว่างตัวอย่าง: ผลลัพธ์เหล่านี้มีการทำซ้ำของสเปกตรัมต้นฉบับเป็นระยะ แต่ปล่อยให้คลื่นในแถบดั้งเดิมสมบูรณ์
  2. ฟิลเตอร์กรองความถี่ต่ำเพื่อกำจัดสเปกตรัมกระจกทั้งหมด

ความแตกต่างที่สำคัญระหว่างวิธีการคือวิธีการใช้การกรองความถี่ต่ำ อัพซิลเลอร์ที่เหมาะจะรวมตัวกรอง low-pass ในอุดมคติ แต่ไม่สามารถใช้งานได้ การพิจารณาปัญหาในโดเมนความถี่อนุญาตให้ค้นหาอัลกอริทึมการสุ่มตัวอย่างที่เหมาะสมสำหรับข้อกำหนดเฉพาะของคุณ:

  1. ฉันสามารถทนความผิดเพี้ยนของแอมพลิจูดได้มากแค่ไหนในวงดนตรีดั้งเดิม ความถี่นั้นขึ้นอยู่กับอะไร?
  2. ฉันสนใจเฟสในวงดนตรีดั้งเดิมหรือไม่? หากคุณต้องการบำรุงรักษาเฟสคุณต้องใช้เฟสเชิงเส้น FIR ถ้าไม่ใช่เฟสต่ำสุดจะเป็นการดีกว่าที่จะรักษา "causality" และ onsets ที่คมชัด
  3. ฉันต้องปราบปรามภาพสะท้อนในกระจกมากแค่ไหน? โดยทั่วไปภาพสะท้อนของกระจกจะแสดงเป็นสัญญาณรบกวนเพิ่มเติมในแถบฐาน

Interpolators ที่มีลักษณะเป็นเส้นตรงสูงลำดับ (spline, hermitian, Lagrange) มักจะทำงานได้ไม่ดีเนื่องจากข้อผิดพลาดในการแก้ไขนั้นขึ้นอยู่กับสัญญาณที่สูงและแทบจะเป็นไปไม่ได้ที่จะทำแผนที่ตามความต้องการเฉพาะ


คุณหมายถึงอะไรโดย "ทำงานได้ดีขึ้นในการรักษา 'สาเหตุ'"?
nibot

0

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

ตัวอย่างเช่นเมื่ออัปแซมปลิงจาก 2 kHz ถึง 64 kHz (ปัจจัย 32) เราสามารถใช้สิ่งนี้โดยการใส่ค่าศูนย์ 31 ระหว่างแต่ละคู่ของการสุ่มตัวอย่าง 2 kHz แล้วกรองโดยตัวกรอง FIR ซึ่งประกอบด้วย 32 ตัวอื่น ๆ ทั้งหมด ค่าสัมประสิทธิ์เป็นศูนย์

sincτ=0

ปรากฎว่าsincฟังก์ชั่นนี้มีโมฆะที่เสียงประสานของความถี่การสุ่มตัวอย่างที่ต่ำกว่า ในตัวอย่างแอปพลิเคชันของการอัปแซมปลิงจาก 2048 Hz ถึง 65536 Hz การตอบสนองความถี่ของการดำเนินการตัวอย่างและการพักค้างไว้มีค่าเป็นโมฆะที่ 2048 Hz, 4096 Hz และอื่น ๆ

ป้อนคำอธิบายรูปภาพที่นี่

จากนี้ฉันสรุปได้ว่าตัวกรองการแก้ไขใด ๆ ที่ระงับเสียงฮาร์มอนิกของความถี่การสุ่มตัวอย่างดั้งเดิมทั้งหมดจะมีลักษณะคล้าย "ตัวอย่างค้างไว้" ถูกต้องหรือไม่

1/f


ปัญหาคือว่าค่า null นั้นแคบมากดังนั้นสัญญาณส่วนใหญ่จะมีพลังงานด้านนอกของค่า null
Jim Clay

@JimClay ไม่ได้เป็นโมฆะแคบ ๆ ที่สมบูรณ์แบบสำหรับการฆ่าฮาร์มอนิกที่มีอัตราการสุ่มตัวอย่างต่ำกว่านี้หรือไม่? ฉันเห็นด้วยคุณต้องการเสาอีกสองสามรอบประมาณ 1 kHz เพื่อกำจัดความถี่ภาพ ฉันเดาว่าฉันจะขยายคำถามของฉัน: ใครออกแบบตัวกรองการแก้ไขที่ดีได้อย่างไร
nibot

คุณออกแบบตัวกรอง low-pass ซึ่งแบนด์พาสของคุณรวมแบนด์วิดท์ของสัญญาณและแบนด์สต็อปของคุณมีชื่อแทนที่แนะนำเมื่อคุณอัพตัวอย่าง ความถี่ในระหว่างจุด 3dB ของสัญญาณและนามแฝงนั้นเป็นช่วงการเปลี่ยนภาพของคุณ หากคำถามของคุณคือ "ฉันจะออกแบบตัวกรอง low-pass ได้อย่างไร" ให้ถามในคำถามอื่นและเราสามารถพูดคุยกันได้
Jim Clay

โดยทั่วไปฉันเข้าใจวิธีการออกแบบตัวกรองโดยปกติแล้วการวางเสาและค่าศูนย์ในโดเมน s อย่างชัดเจนแล้วแปลงเป็นตัวกรองโดเมน z ฉันสงสัยว่ามีเทคนิคพิเศษสำหรับตัวกรองการแก้ไขหรือไม่ ข้อความที่ฉันจะไปก็คือว่าไม่มีเทคนิคใด ๆ จริง ๆ - ตัวกรองการแก้ไขเป็นเหมือนตัวกรองชนิดอื่น ๆ และการออกแบบของพวกเขาคือทางเลือกของการประนีประนอมระหว่างข้อควรพิจารณาต่าง ๆ (ระลอกเฟสความล่าช้าของกลุ่ม การลดทอนแบนด์แบนด์ขั้นต่ำความซับซ้อนในการคำนวณ ฯลฯ )
nibot

ในทางกลับกันฉันไม่รู้อะไรเลยเกี่ยวกับการออกแบบตัวกรอง FIR
nibot
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.