Rancang filter yang memungkinkan frekuensi di bawah 5 kHz lulus dengan bebas, tetapi semua frekuensi di atas 5,2 kHz harus tidak terdeteksi

12

Tantangan terbesar saya dengan pertanyaan ini adalah tingkat roll-off yang sangat curam.

Saya mengasumsikan bahwa sinyal tidak dapat dideteksi jika penguatannya adalah -20 dB. Ini berarti bahwa, dalam pita transisi 200 Hz, kekuatan sinyal perlu turun sebesar 20 dB.

Jika perhitungan saya benar, filter ini memerlukan tingkat roll-off 1200 dB / des. Itu membutuhkan 60 kutub, yang jelas tidak layak.

Saya ingin menggunakan filter aktif analog dengan riak minimal di band pass. Pergeseran fase besar tidak terlalu penting.

Salah satu solusi potensial adalah dengan menggunakan filter takik pada 5,2 kHz. Namun, frekuensi di atas bandwidth filter takik masih belum cukup difilter.

Tolong tunjukkan kesalahan dalam logika saya dan atau usulkan solusi potensial. Terima kasih.

Tamir Shklaz
sumber
16
Memanggil -20dB tidak terdeteksi cukup
berat
1
@WhatRoughBeast ??? Saya menyadari bahwa ia membagi 4.500 dengan 20 untuk mendapatkan 225 tiang; yang saya tantang adalah bagaimana dia mendapatkan 4500 di tempat pertama.
Dave Tweed
7
Apa jawaban yang Anda harapkan dari Tamir? Analog pasif / aktif? Digital IIR / FIR? Filter gelombang digital? FFT + Hapus barang yang tidak diinginkan + IFFT?
Harry Svensson
4
Berapa banyak riak passband dapat diterima?
Bruce Abbott
1
"dengan riak minimal di band pass" - 'minimal' bukan spesifikasi.
Bruce Abbott

Jawaban:

21

Anda telah mengasumsikan 20dB / dec per roll-off pesanan filter untuk filter Anda. Ini tidak benar untuk semua jenis filter.

Misalkan dan f s t o p = 5.2 k H z . Kemudian f s t o pf0=5kHzfstHaihal=5.2kHz

fstHaihalf0=1.04.

Lihatlah filter elips urutan keempat ini yang diambil dari artikel Wikipedia . berbentuk bulat panjang

Meskipun tidak memenuhi persyaratan Anda, Anda dapat melihatnya layak. Filter elips tingkat tinggi dapat mencapai apa yang Anda cari.

Anda harus ingat bahwa filter elips dapat melakukan hal-hal yang mengganggu fase sinyal. Karena Anda tidak menyebutkan apa pun tentang batasan fase Anda, saya berasumsi bahwa filter elips cocok.

pengguna110971
sumber
Itu bukan ide yang buruk. LPF elips urutan ke-6 memiliki kemiringan transisi yang cukup curam jika 3dB passband ripple dan maks. Kebocoran -20dB pada 5200Hz dan lebih tinggi diperbolehkan. Hasilnya didapat dengan kalkulator filter, saya hanya memasukkan pesanan dan batas yang berbeda hingga respons frekuensi yang tepat muncul. Urutan keenam berarti hanya tiga blok urutan kedua yang mengalir. Tidak tahu, apakah bisa diwujudkan dalam praktik dengan toleransi komponen biasa sebagai filter opamp analog. Itu membutuhkan lebih banyak simulasi.
user287001
Hai dan terima kasih atas jawaban yang bagus. Hanya rasa ingin tahu, ketika saya melihat wikipedia kutub tampaknya terletak pada elipsis, apakah dari mana nama itu berasal atau kebetulan?
mathreadler
1
@ mathreadler Saya percaya nama tersebut berasal dari fungsi rasional elliptic yang muncul dalam fungsi transfer filter elliptic. Kutub dari filter elips adalah fungsi dari fungsi cosinus elips Jacobi. Karenanya mereka berbaring di atas elips.
user110971
21

Jenis rolloff yang tajam ini membutuhkan filter digital. Jangan pernah berpikir tentang analog. Anda perlu menggabungkan input dengan fungsi sinc. Lebar fungsi sinc (jumlah titik kernel) mendefinisikan atenuasi stop band.

Saya belum melakukan perhitungan, tetapi beberapa perhitungan yang sangat cepat (bisa dimatikan, pekerjaan Anda harus dilakukan dengan benar) mengatakan Anda mungkin perlu beberapa poin 100 jika pengambilan sampel pada 20 kHz. 200 poin pada 20 kHz berarti tingkat MAC 4 MHz. Itu bisa dilakukan, sebenarnya jauh di bawah apa yang bisa dilakukan DSP modern dengan mudah. Itu berarti masalah Anda cukup bisa ditelusuri. Sesuatu seperti dsPIC seri E dapat melakukan ini, dan itu agak rendah jika Anda hanya mencari kemampuan DSP.

Olin Lathrop
sumber
3
ini sebenarnya adalah filter FIR. Simulasi cepat menunjukkan bahwa filter 128 tap dengan jendela persegi panjang sudah cukup. Koefisien diambil dari respon dorongan tulus dari 5100Hz LPF yang ideal. Sidelobe pertama hanya -20dB pada kira-kira. 5250Hz (dilihat dari kalkulator filter)
user287001
2
@ pengguna: Oke, jadi itu sebenarnya sedikit lebih mudah dari perkiraan kasar saya di atas. Saya mungkin akan membuat kernel sedikit lebih lebar, hanya untuk memiliki beberapa margin, terutama karena itu masih dalam kemampuan bahkan DSP sederhana.
Olin Lathrop
Ada beberapa sumber yang sangat bagus untuk filter dan fungsi jendela mana yang digunakan: Saya pribadi suka dspguide.com
Peter Smith
4

Jika Anda mengizinkan penundaan substansial atau memproses sinyal yang direkam, Anda cukup melakukan FFT, menghapus komponen yang tidak diinginkan dan membalikkan transformasi. Anda harus memotong fft dengan fungsi jendela yang benar agar dering dapat diterima.

pengguna287001
sumber
8
Saya pikir untuk band transisi ini sempit, Anda perlu mengatakan lebih banyak tentang bagaimana memilih fungsi jendela untuk membuat jawaban ini berguna untuk menyelesaikan masalah.
The Photon
4

Saya akan memilih chip codec audio (ADC + DAC), merutekan output digital ADC ke input DAC, dan mengatur laju sampel ke 10kHz.

Chip ini sudah termasuk mesin filter digital yang Anda butuhkan. Pemeriksaan lembar data cepat tampaknya mengonfirmasi Anda akan mendapatkan kinerja filter yang Anda butuhkan.

peufeu
sumber
Apa kamu yakin akan hal itu?
user253751
Tidak 100% yakin, tapi saya tidak melihat alasan mengapa itu tidak bekerja dengan sigma delta codec, beberapa dapat mencicipi hingga 8kHz ...
peufeu
Tapi maksud saya, mengapa Anda percaya itu akan menolak frekuensi yang tidak diinginkan, daripada aliasing mereka?
user253751
ADC audio yang biasa adalah delta sigma dengan faktor oversampling besar diikuti oleh filter digital yang tajam. Sebagian besar akan berjalan dari Fs = 8k ke 96-192k. Aliasing dihindari dengan lowpass urutan pertama sederhana sebelum ADC, dan oversampling menanganinya. Mereka harus bekerja dengan baik di sekitar Fs = 10kHz dengan frekuensi clock yang tepat.
peufeu
4

Anda sudah memiliki banyak jawaban yang bagus dengan solusi tradisional yang baik, filter elips, (waktu singkat) FFT, dll., Jadi saya berpikir saya dapat menambahkan sesuatu dari dunia sub-band coding / wavelet transform world.

Pengkodean sub-band berarti membagi spektrum frekuensi menjadi "nampan", masing-masing nampan ini memiliki filter yang terkait. Band yang lebih kencang, filter yang lebih luas dalam domain waktu (secara alami) - tetapi di area di mana kita tidak membutuhkan band yang sangat ketat kita bisa lolos dengan filter yang sangat singkat & murah untuk dihitung.

Wavelet adalah fungsi yang merupakan hasil dari jenis sub-band filter tertentu yang dihasilkan oleh penyaringan berulang diikuti oleh subsampling.

Idenya adalah untuk menemukan sub-band yang menarik yang akan memungkinkan kami untuk menekan perhitungan yang paling, tetapi masih mendapatkan granularity yang baik di band yang diminati.

Contoh dekomposisi paket Daubechies 12 tap dalam tiga level (Wikipedia):

Masukkan deskripsi gambar di sini

Kita kemudian dapat meringkas ini secara selektif untuk mendapatkan respons yang kita inginkan. Dan yang tidak ingin kita tambahkan - kita bahkan tidak perlu menghitung! Kita akan membutuhkan yang lebih ramping lebih dekat ke band 5-5.2 kHz untuk bisa mendapatkan perilaku yang cukup tajam. Tetapi di sisi lain, jauh dari pita 5-5,2 kHz kita bisa lolos hanya dengan beberapa subdivisi.

pembaca matematika
sumber
Ini lebih merupakan iklan daripada jawaban.
Harry Svensson
@ HarrySvensson Saya dapat mencoba untuk lebih spesifik tetapi saya tidak punya banyak waktu luang hari ini karena saya dulu harus memperbaiki jawaban.
mathreadler
3

jika Anda dapat MENJAMIN input sinusoidal, maka monostable satu-shot (74121) mungkin cukup. Atau 122/123 yang dapat dipicu kembali.

Gunakan pembanding sebelum 74121/122/123

Beberapa MCU menyertakan pembanding analog sebagai periferal mereka; sekali dikonversi ke gelombang persegi, Anda dapat menggunakan timer dll untuk mendeteksi di atas / di bawah 5.000Hz, jika MCU memiliki jam yang distabilkan XTAL. Tidak perlu untuk monostable yang sensitif terhadap suhu.

analogsystemsrf
sumber
3
Menarik, tetapi apa yang membuat Anda berpikir bahwa inputnya mungkin sinusoidal? Tampaknya cukup utopis untuk membuat asumsi itu tanpa alasan khusus.
leftaround sekitar
1
Saya pikir dengan menyatakan sebagai 4 kata pertama dari jawabannya "jika Anda bisa MENJAMIN", maka ini adalah solusi baru.
Techydude
Saya menggunakan pendekatan ini (retriggerable 74123) untuk mendeteksi penguncian roda dalam sistem anti-selip-rem; ketika 74123 kehabisan waktu, silinder hidrolik digerakkan dari 2N3055 untuk menggerakkan rem. Kami hanya mendapat sekitar 2 pulsa per detik, karena timeconstant hidrolik.
analogsystemsrf