Kita dapat dengan mudah mendesain filter interpolasi yang mematuhi batasan domain frekuensi tertentu menggunakan algoritma Parks-McClellan . Namun, tidak segera jelas bagaimana menegakkan batasan waktu-domain; khususnya, saya tertarik untuk menghasilkan filter Nyquist. Jadi jika saya oversampling oleh faktor N
, saya ingin filter memiliki zero-crossing kN
, untuk integer non-nol k
(ini memastikan bahwa sampel input ke interpolator saya akan muncul dalam urutan output).
Saya telah melihat Harris 1 berbicara tentang teknik untuk merancang filter setengah-band, yaitu kasus khusus di mana N=2
. Apakah ada solusi umum untuk ini? (Saya tahu bahwa kami dapat dengan mudah mendesain filter dengan metode jendela, tetapi itu tidak memberi kami kontrol yang sama.)
[1] Pemrosesan Sinyal Multirate untuk Sistem Komunikasi , hlm. 208-209
sumber
N=2
melihat jawaban saya pada: Desain filter FIR: Window vs Parks-McClellan dan Least-Squares .Jawaban:
Salah satu metode desain, meskipun satu yang terbatas pada kekuatan dua, akan mulai dengan satu filter halfband, masukkan nol satu sama lain (membuat replika spektral), kemudian hubungkan dengan filter halfband kedua yang memiliki band transisi yang lebih luas. Ulangi proses ini sampai Anda mendapatkan kekuatan 2 yang diperlukan.
Berikut adalah contoh yang membuat filter lowpass dengan Fc = fs / 8 dan nol penyilangan setiap 4 sampel:
sumber
Salah satu metode untuk mendapatkan zero crossing yang Anda inginkan adalah dengan melakukan desain hybrid.
Mulailah dengan filter setengah-band Parks-McLellan / Remez dengan bobot yang sama untuk passband dan stopband. Karena ini adalah filter setengah pita , maka akan ada nol pada sampel alternatif. Anda kemudian dapat menginterpolasi domain waktu dengan sin (x) / x dengan isian nol di domain frekuensi.
Contoh: membuat filter lowpass fs / 12 dengan nol penyilangan setiap 6 sampel.
Filter yang dihasilkan dekat, tetapi tidak sebagus prototipe dalam hal stopband / passband ripple. Dosa (x) / x interpolasi memang memperkenalkan beberapa dering tingkat rendah. Anda mungkin perlu mendesain sedikit lebih banyak filter prototipe untuk mendapatkan tingkat redaman yang diperlukan dalam filter yang diinterpolasi.
sumber