ตัวอย่างการออกแบบตัวกรองการตัดสินใจที่กําหนดค่าใหม่

แนะนําสําหรับ:

  • อุปกรณ์: ไม่ทราบ

  • Quartus®: v9.1

author-image

โดย

ตัวอย่างนี้สาธิตวิธีการใช้ตัวกรองการปฏิเสธอัตราตัวแปรหลายแชนเนลใน Intel® DSP Builder Advanced Blockset สําหรับระบบการสร้างภาพทางการแพทย์มากมาย รวมถึงการสร้างภาพอัลตร้าซาวน์และการสร้างภาพแบบแม่เหล็กสะท้อน (MRI) จําเป็นต้องใช้ตัวกรองการคาดเดาที่กําหนดค่าใหม่ได้เพื่อลดอัตราตัวอย่างข้อมูล Echo ข้อมูลอินพุตมีอัตราตัวอย่างคงที่ แต่ต้องเปลี่ยนอัตราการลอจิกจํานวนเต็มแบบเรียลไทม์ นอกจากนี้ ความยาวตัวกรองทั้งหมดจะเพิ่มขึ้นเป็นแนวเดียวกันกับอัตราการลดจํานวน ข้อกําหนดที่คล้ายกันนี้อาจนําไปใช้ในแอปพลิเคชันการสื่อสารไร้สายและระบบอื่นๆ โครงสร้างโพลีเฟสได้รับการปรับให้เหมาะสมอย่างยิ่งสําหรับแอปพลิเคชันประเภทนี้ เนื่องจากจํานวนตัวคูณได้รับการแก้ไขในเวลาคอมไพล์และไม่เพิ่มขึ้นตามอัตราที่เพิ่มขึ้น คุณสมบัติหลักของการออกแบบนี้คือก๊อกหน่วงเวลาแบบความยาวผันแปรและอุปกรณ์จัดเก็บข้อมูลสัมประสิทธิ์ตัวกรองที่มีประสิทธิภาพ

คุณสมบัติ

ตัวอย่างการออกแบบนี้มีคุณสมบัติหลักดังต่อไปนี้:

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

คําอธิบายฟังก์ชัน

การออกแบบนี้ใช้โครงสร้างตัวกรองการปฏิเสธโพลีเฟสฟอร์มโดยตรงและแสดงไว้ในรูปภาพที่ 1 แอดเดรสคอนโทรลเลอร์จะสร้างแอดเดรสอ่านของหน่วยความจําสัมประสิทธิ์ ตัวเลือกธนาคาร และที่อยู่สําหรับการเขียนของตัวแปรการแตะหน่วงเวลาแบบผันแปร ค่าสัมประสิทธิ์จะถูกจัดเก็บไว้ในบล็อก RAM บนชิป นอกจากนี้ การแตะความล่าช้าแบบผันแปรยังนําไปใช้ในหน่วยความจําแบบพอร์ตคู่ และตัวชี้ถูกควบคุมโดยอัตราการลดจํานวนในปัจจุบัน ใช้ตัวคูณจํานวนคงที่

รูปภาพที่ 1 แผนผังบล็อกของตัวลดอัตราผันแปร

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

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

ในสคริปต์การตั้งค่าสําหรับการออกแบบนี้ เราได้กําหนดอัตรานาฬิกา, อัตราการปฏิเสธ, ความยาวตัวกรอง, เอนจินตัวคูณ ฯลฯ การจัดการบิตความกว้างยังได้รับการเขียนสคริปต์สําหรับพารามิเตอร์อีกด้วย พารามิเตอร์หลักและคําจํากัดความของพารามิเตอร์จะแสดงอยู่ในตารางต่อไปนี้

พารามิเตอร์ทั้งหมดสามารถถูกแก้ไขเพื่อมุ่งเป้าไปที่การออกแบบที่แตกต่างกัน รหัส HDL ใหม่จะถูกสร้างขึ้นตามพารามิเตอร์ที่อัปเดต

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบตัวกรองการสุ่มตัวอย่างใหม่ใน DSP Builder Advanced Blockset โปรดดูAN 623: การใช้ DSP Builder Advanced Blockset เพื่อใช้งานตัวกรองการสุ่มตัวอย่างซ้ํา (PDF)

ดาวน์โหลดไฟล์ที่ใช้ในตัวอย่างนี้:

ไฟล์ในการดาวน์โหลด zip นี้รวมถึง:

  • vardownsampler.mdl – การวัดประสิทธิภาพการทดสอบขั้นสูงของ DSP Builder Advanced Blockset และไฟล์การออกแบบสําหรับตัวกรองการเสื่อมสภาพที่กําหนดค่าใหม่ได้
  • สคริปต์ setup_vardownsampler.m – MATLAB* เพื่อกําหนดค่าการเริ่มต้นและพารามิเตอร์ของ vardownsampler.mdl
  • vardownsampler_bare.mdl – ไฟล์ออกแบบบน vardownsampler.mdl บล็อกการทดสอบแบบสังเคราะห์บางตัวจะถูกลบออกสําหรับเจนเนอเรชั่นการถ่ายโอนการลงทะเบียน (RTL)

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติที่เกี่ยวข้องที่ใช้ในตัวอย่างการออกแบบนี้ในโครงการของคุณ ไปที่:

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