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.
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: