Contoh Desain Filter Farrow Multi-saluran

author-image

Oleh

Contoh ini menunjukkan cara menggunakan Intel® FPGA DSP Builder Advanced Blockset (DSPB-AB) untuk mengimplementasikan filter konversi laju sampel multi-saluran berdasarkan struktur Farrow.

Konversi laju sampel memiliki beragam aplikasi seperti komunikasi nirkabel, pencitraan medis, dan aplikasi militer. Alih-alih menerapkan dekomposisi polifase, filter resampling Farrow menggunakan polinomial urutan rendah untuk mewujudkan fungsionalitas yang sama, sehingga menghasilkan penghematan logika yang signifikan. Sangat efisien untuk memproses beberapa saluran atau beberapa jalur data paralel, di mana semua saluran atau jalur data memerlukan serangkaian koefisien filter yang sama.

Dalam contoh ini, kami membangun filter konversi laju sampel Farrow menggunakan blok primitif DSPB-AB. Secara khusus, kami menunjukkan cara memanfaatkan fitur lipat DSPB-AB. Fitur lipat DSPB-AB secara otomatis mewujudkan berbagi sumber daya dan penggunaan ulang perangkat keras berdasarkan parameter sistem yang ditentukan pengguna.

Diagram blok fungsi dari filter Farrow ditunjukkan pada Gambar 1. Semua modul dirancang menggunakan blok primitif di DSPB-AB.

Gambar 1. Diagram blok filter Farrow

Simbol r digunakan untuk menghitung perbedaan fase sampling antara input saat ini dan sampel keluaran yang diinginkan. Nilai dinormalkan antara 0 dan 1. Untuk setiap sampel output, Anda dapat menghitung r menggunakan rumus berikut:

r = (Output_time – Input_time)* Input_Sampling_Frequency

Dalam demo ini, kami menggunakan algoritma rekursif untuk menghitung r untuk setiap sampel output:

Formula

di mana n adalah integer yang menunjukkan jumlah sampel atau stempel waktu terpisah. C1 didefinisikan sebagai bagian fraksi dari inversi faktor perubahan laju

Dan

Fitur

Demonstrasi ini memiliki fitur berikut:

  • Mendukung desimal dan interpolasi.
  • Mendukung hampir semua faktor perubahan laju sampel rasional
  • Mendukung hingga 16 saluran, meskipun Anda dapat dengan mudah mengubah desain untuk mendukung lebih banyak saluran
  • Mendukung parameterisasi melalui skrip pengaturan
  • Mendukung modifikasi urutan filter resampling (polynomial) yang mudah dengan memperpanjang panjang garis tunda keran
  • Menyediakan skrip inisialisasi dan pasca-simulasi untuk mengonfigurasi parameter dan membandingkan serta memeriksa output
  • Mendukung pelipatan otomatis, yang memungkinkan multiplexing divisi waktu pada pengganda, adder, dan sumber daya perangkat keras lainnya

Catatan 1: Untuk versi 9.1, desain mensyaratkan bahwa clock rate FPGA adalah kelipatan integer dari laju sampel input dan laju sampel output. Dalam rilis di masa mendatang, laju sampel output tidak perlu membagi kecepatan clock FPGA. Oleh karena itu, secara teoritis dapat mendukung perubahan laju downsampling irasional juga. Tidak ada perubahan struktural untuk laju sampel yang berbeda yang didukungnya.

Catatan 2: Semua saluran harus diproses oleh satu jalur data (yaitu, satu kabel dalam desain DSPB-AB). Jika Anda memiliki sejumlah besar saluran, Anda harus meningkatkan kecepatan clock FPGA Anda sehingga Anda tidak perlu membagi saluran data ke beberapa jalur data paralel. Untuk mendukung beberapa kabel atau beberapa jalur data, Anda perlu mengubah blok penyelarasan data, yang tidak tercakup dalam contoh ini.

Untuk informasi lebih lanjut tentang merancang filter resampling di DSPB-AB, lihat AN 623: Menggunakan DSP Builder Advanced Blockset untuk Mengimplementasikan Filter Resampling (PDF).

Unduh file yang digunakan dalam contoh ini:

File dalam unduhan .zip meliputi:

  • farrowm.mdl—file desain DSPB-AB untuk filter perubahan laju sampel Farrow multi-saluran
  • setup_farrowm.m—Skrip MATLAB* untuk mengonfigurasi inisialisasi dan parameter farrow.mdl
  • stop_farrowm.m—Skrip MATLAB untuk memplot keluaran filter farrow dan membandingkannya dengan bentuk gelombang input

Untuk informasi lebih lanjut tentang fitur terkait yang digunakan dalam contoh desain ini, kunjungi:

Tautan Terkait

Isi halaman ini adalah kombinasi terjemahan manusia dan komputer dari konten berbahasa Inggris. Konten ini diberikan hanya untuk kenyamanan Anda serta sebagai informasi umum dan tidak bisa dianggap sebagai lengkap atau akurat. Jika terdapat kontradiksi antara versi bahasa Inggris halaman ini dan terjemahannya, versi bahasa Inggris akan didahulukan. Lihat versi bahasa Inggris halaman ini.