Mengapa menggunakan transformasi Fourier cepat untuk pengurangan kebisingan, bukan filter elektronik klasik?

17

Saya ingin tahu cara menghilangkan kebisingan lingkungan dari rekaman pidato.

Saya telah membuat beberapa penelitian dan saya perhatikan bahwa sebagian besar metode yang diusulkan menggunakan transformasi Fourier cepat. Tetapi mengapa Anda tidak dapat menggunakan filter elektronik klasik untuk menghilangkan frekuensi kebisingan? Mengapa repot-repot melakukan FFT?

Jazis
sumber
Karena fft memberikan output kualitas yang lebih baik ??
Solar Mike
4
Bandingkan harga sistem DSP 5GS / dtk dengan harga sejumlah indutor dan tutup ...
PlasmaHH
1
Mungkin Anda bisa melakukan penyaringan yang lebih kompleks dengan fft. "filter elektronik klasik" cukup menghapus semua frekuensi dalam rentang tertentu. Juga, ini lencana pelajar Anda, hadiah dari saya untuk Anda.
Andrew Pikul
1
Saya memiliki 2 masalah dengan pertanyaan Anda: (1) Apa yang Anda maksud dengan "filter eletronic klasik"? (2) Fakta bahwa sesuatu dilakukan satu arah (FFT) TIDAK berarti bahwa itu TIDAK BISA dilakukan dengan cara lain (filter); mungkin ada beberapa kelemahan untuk melakukannya dengan cara lain. Anda berasumsi, bagaimanapun, bahwa itu tidak mungkin dilakukan dengan filter eletronic klasik (apa pun yang Anda maksud dengan itu), yang mungkin salah.
Curd
Apa format rekaman pidato Anda (analog vs digital)? Apakah latensi merupakan masalah (hidup vs. setelah fakta)? Berapa lama rekaman (lagu vs. hari rekaman)?
copper.hat

Jawaban:

25

Saya ingin tahu cara menghilangkan kebisingan lingkungan dari rekaman pidato.

Baik itu disimpan secara digital sekarang, bukan? jadi apakah Anda berencana untuk meletakkan mikrofon Anda di sebelah speaker setelah filter analog untuk merekam ulang?

Cukup main-main, aku akan serius.


Untuk membuat filter menipiskan lebih banyak dalam rentang frekuensi yang lebih kecil, alias membuat kurva respons frekuensi lebih vertikal, maka Anda hanya perlu meningkatkan urutan filter.

Itu adalah sesuatu yang cukup mudah dilakukan di Matlab. Itu juga sesuatu yang layak untuk dilakukan pasca-pemrosesan. Ini juga tentang pengulangan, jika Anda menerapkan filter pada hari yang cerah hari ini, maka Anda mengharapkannya berfungsi secara identik hingga besok saat hujan. Anda berharap itu bekerja persis sama, bukan?

Di sirkuit analog Anda memiliki semua "5% resistor", "1% kapasitor", dan semua hal lainnya. Jadi, jika Anda ingin membuat sesuatu yang tepat, Anda harus memotong sirkuit setelahnya sehingga cocok dengan filter yang Anda inginkan. Jika Anda ingin meningkatkan urutan filter ... maka sayangnya .. itu akan membuat filter jadi jauh lebih besar secara fisik. Alih-alih mengambil ukuran kartu kredit, itu akan mengambil ukuran, saya tidak tahu, tergantung pada urutan filter dan dengan apa Anda setuju.

Mengenai pengulangan, melakukan sesuatu hari ini .. hangat .. besok .. lebih dingin ... resistensi akan berubah sedikit, respons frekuensi akan berubah, beberapa Hz di sana, beberapa di sana, beberapa di sana, semakin banyak komponen yang Anda dapatkan di sirkuit Anda , ada kemungkinan besar komponen Anda akan mengubah nilainya. Dan kemudian Anda memiliki kelembaban, pengoksidasi ...

Dan inilah lucunya yang harus saya katakan pertama, Anda tidak bisa benar-benar pasca-proses itu, kecuali jika Anda punya kaset. Saya tidak 100% yakin apa media musik analog yang digunakan untuk merekam / menghapus dengan mudah. Cakram LP akan menjadi mimpi buruk ...

Dan jangan lupa harganya. Salah satunya adalah perangkat lunak, jika Anda menulis sendiri maka pada dasarnya gratis, yang lain memerlukan komponen, bagian fisik.

Tetapi jangan berpikir filter analog itu buruk, mereka dapat menggunakan mereka, seperti menghapus harmonik jahat di motor DC besar, atau membuat motor stepper ultra diam untuk printer 3D dengan memuluskan arus. Dan banyak kegunaan lain. - Juga jika Anda akan menyelesaikannya dengan filter analog, tidak ada yang akan berpikir itu akan menjadi solusi yang buruk.

Saya percaya saya secara tidak langsung menjawab mengapa FFT adalah cara yang lebih baik untuk melakukannya, setelah pengolahan. Intinya adalah bahwa itu jauh lebih murah untuk dilakukan. Anda juga bisa menerapkan filter takik jika Anda tahu frekuensi bisingnya. Atau filter bandstop alias lebih luas.

Dan hal terakhir yang ingin saya tambahkan ... woaw jawaban ini sangat panjang, saya minta maaf. Tetapi jika Anda menggunakan filter analog dan Anda ... mengacaukan perhitungan Anda dan kemudian berpikir itu semua baik-baik saja dan bagus dan menggunakannya dalam beberapa peristiwa serius, seperti mewawancarai raja Swedia (Knugen). Dan Anda mengacaukan ukuran kapasitor, alih-alih menyaring suara 16kHz, Anda menyaring "suara" 4kHz. Jika Anda sebaliknya menghadapinya secara digital maka itu hanya masalah mengubah beberapa variabel, Anda tidak perlu melakukan desolder -> menyolder komponen lain. Wawancara juga hancur.

Harry Svensson
sumber
4
Hans Majonnäs Honung Carl XVI Gustaf
pipa
@pipa Tackar, det behvdes. (Terima kasih, saya membutuhkannya.)
Harry Svensson
Tindak lanjut pertanyaan (karena jawaban ini bergantung terlalu banyak pada definisi literal analog). Mengapa memilih FFT untuk memfilter noise daripada filter polinom klasik?
Slebetman
@slebetman jangan harap saya menjawab itu.
Harry Svensson
Itu jawaban yang cukup solid! Terima kasih kawan, dan terima kasih semua orang yang menjawab, saya tidak berharap banyak bantuan! Saya pasti akan bertanya lebih banyak di forum ini. Terima kasih lagi!
Jazis
7

Tetapi mengapa Anda tidak dapat menggunakan filter elektronik klasik untuk menghilangkan frekuensi kebisingan?

Siapa bilang kamu tidak bisa? Ini adalah bagaimana ini dilakukan pada hari-hari sebelum pemrosesan sinyal digital. Masalahnya adalah bahwa filtering noise selalu merupakan kompromi antara menjaga sinyal yang Anda inginkan (ucapan, musik) tidak tersentuh sementara menurunkan kebisingan.

Untuk kaset dan sistem rekaman kaset analog lainnya seperti DNL dan Dolby digunakan yang menyaring hanya ketika sinyal lemah berarti kebisingan lebih terdengar. Kemudian ketika sinyalnya lebih kuat, filternya akan pudar. Lihat: Artikel Wikipedia tentang Pengurangan Noise

Pidato dapat dibatasi pada pita frekuensi sempit seperti 300 Hz hingga 3 kHz sementara masih bisa dimengerti. Anda bisa membuat filter analog sederhana untuk band itu tetapi itu akan membatasi seberapa banyak noise ditekan. Untuk lebih efektif menyaring frekuensi di luar band ini akan memerlukan filter analog yang kompleks. Filter semacam itu sulit dirancang, dibuat, dan diproduksi.

Di sinilah pemrosesan sinyal digital masuk. Dalam domain digital, jauh lebih mudah untuk menerapkan filter kompleks dengan banyak kutub dan nol. Juga karena lokasi (dalam domain frekuensi) kutub dan nol ini dihubungkan dengan jam DSP (Digital Signal Processor), yang merupakan jam (kristal) yang akurat, filter akan jauh lebih akurat dibandingkan dengan implementasi analog. .

Bimpelrekkie
sumber
+1 untuk menyebutkan kompromi antara menjaga sinyal yang diinginkan dan menghapus yang tidak diinginkan. Masalahnya adalah bahwa suara dan bunyi menempati frekuensi yang sama, sehingga filter FFT dapat menghilangkan bunyi "dasar" yaitu setelah menganalisis amplitudo bunyi di setiap frekuensi tanpa bunyi , yang dapat dihilangkan jika ada ucapan. Ini adalah bagaimana filter suara FFT di Audacity dll bekerja dll.
Reversed Engineer
Saya tidak yakin apa yang membuat filter analog sangat sulit untuk dirancang dan dibangun .. Yang Anda butuhkan hanyalah satu atau dua opamps dan beberapa resistor dan kapasitor. Dan karena opamps biasanya datang dalam paket ganda, Anda hanya perlu satu chip. Saya biasanya menggunakan filter analog untuk melakukan penyaringan low-pass untuk memastikan ada sedikit sinyal frekuensi tinggi alias dalam sinyal. Anda tidak dapat membuangnya dengan FFT sesudahnya. Di sisi lain itu tidak masalah melakukan filter bandpass FFT ketika Anda memiliki "rekaman" bersih untuk diproses.
Barleyman
@Barleyman tidak yakin apa yang membuat filter analog sangat sulit untuk merancang dan membangun. Saya merujuk pada filter tingkat tinggi seperti urutan ke-4 dan lebih tinggi. Saya setuju bahwa beberapa opamps. resistor dan kapasitor dapat melakukan hampir semua filter pesanan tetapi apakah Anda sudah mencoba mendesainnya? Saya punya, OK, dalam sebuah simulator, tetapi kemudian Anda sudah mengalami kapasitor standar tidak cukup akurat . Pada pesanan yang lebih tinggi, nilai komponen yang presisi menjadi semakin penting.
Bimpelrekkie
Juga aliasing bukan lagi masalah seperti ini karena kami sekarang memiliki ADC dan DAC sigma-delta dengan frekuensi pengambilan sampel yang sangat tinggi sehingga hanya diperlukan RC sederhana.
Bimpelrekkie
@Bimpelrekkie Saya telah merancang beberapa, tidak ada untuk itu hari ini .. Kembali pada hari Anda akan menggunakan buku dengan beberapa pilihan parameter yang telah dihitung sebelumnya yang Anda akan menghabiskan waktu bermain-main dengan untuk mendapatkan beberapa nilai komponen yang masuk akal. Akurasi bukan masalah besar jika Anda tidak berusaha terlalu selektif. RC tidak benar-benar menyelesaikan pekerjaan jika Anda mencoba membuat mis. Rekaman audio. Dengan -20dB / dekade Anda harus meletakkan filter pada 2.2kHz untuk mendapatkan semacam penyaringan pada frekuensi Nyquist. Pesanan ketiga Cherbychew akan lebih baik @ 12kHz fc. Pesanan ke-5 akan membawa Anda ke -46dB yang "cukup baik"
Barleyman
5

Nah, langkah pertama untuk memahami mengapa kita membutuhkan FFT adalah memahami cara kerja penyaringan digital.

Jadi pada dasarnya, Anda memiliki struktur, seperti register geser, dengan sejumlah elemen memori, input dan output. Nilai sampel masuk ke input, digeser melalui register dan bergerak ke output. Pada setiap tahap dalam register, itu dikalikan dengan angka yang disebut koefisien filter.

Gagasan ini berfungsi baik ketika Anda memiliki register cepat yang melakukan perkalian cepat dan Anda memiliki sampel yang datang perlahan satu per satu.

Dalam kehidupan nyata, alih-alih itu, Anda kemungkinan besar akan mendapatkan bingkai yang terdiri dari sejumlah sampel. Saat Anda ingin memfilter itu, Anda akan menggabungkan sampel dengan koefisien filter. Itu sama dengan melakukan pendekatan sebelumnya, tetapi hanya terlihat sedikit berbeda.

Sekarang sampai pada bagian FFT. Ternyata konvolusi tumbuh dalam kompleksitas numerik dengan sangat cepat dengan jumlah sampel. Di sisi lain, FFT pada awalnya secara numerik rumit, tetapi jumlah operasi yang dibutuhkan tumbuh jauh lebih lambat dengan peningkatan koefisien filter dibandingkan dengan konvolusi.

Apa yang dimaksud di atas adalah bahwa di atas sejumlah sampel tertentu, akan jauh lebih cepat untuk mengubah sinyal menjadi domain frekuensi menggunakan FFT, memfilter sinyal dalam domain frekuensi, dan kemudian mengubahnya kembali menggunakan IFFT. Trik yang kami gunakan adalah salah satu properti konvolusi, yaitu konvolusi dalam domain waktu dapat, dalam beberapa keadaan, dimodelkan sebagai perkalian dalam domain frekuensi.

Jadi singkatnya, jika jumlah koefisien filter yang Anda miliki cukup besar, FFT lebih cepat. "Besar" bisa sekecil seratus atau lebih.

AndrejaKo
sumber
3
Saya pikir dengan "filter elektronik klasik" yang dia maksud adalah filter analog, bukan konvolusi.
jalalipop
1
@jalalipop Bisa jadi, tapi saya secara eksplisit ingin menjelaskan bagian FFT. Pada saat itu, kami sudah memiliki jawaban yang menjelaskan mengapa kami ingin memiliki filter digital alih-alih analog.
AndrejaKo
2

Metode berbasis FFT (Anda masih harus bekerja dengan modifikasi windowing dan overlap-add atau overlap-shift) memiliki keunggulan utama bahwa desainnya solid dalam domain frekuensi, dan filter Wiener atau pengurangan spektral atau sejumlah sistem lain yang mengandalkan statistik sinyal dan model benar-benar berfungsi secara fundamental dalam domain frekuensi.

Sebaliknya, pembatalan gema dan berbagai varian tidak bergantung pada model kebisingan tetapi pada rekaman yang tidak sempurna yang sangat berkorelasi dengan kebisingan. Itu dilakukan dengan menggunakan berbagai filter (biasanya FIR) untuk mengurangi perkiraan kebisingan dari sinyal dan memperbarui filter untuk menjaga korelasi dari sinyal yang tersisa ke saluran noise minimal. Untuk teknik-teknik tersebut, FFT tidak terlalu berguna (ketika penundaan yang cukup besar dari sinyal yang dihasilkan dan pembaruan filter diperbolehkan, mereka dapat digunakan sebagai komponen dalam FIR blackbox dengan penundaan karena alasan kinerja tetapi tidak benar-benar berguna untuk mereka. kemampuan representasi domain frekuensi).


sumber
solid dalam domain frekuensi . Tidak akan ada keuntungan khusus jika tidak karena nada dan nada memiliki sifat nada dan nada tinggi.
mathreadler
2

Filter analog cukup mudah untuk dirancang tetapi batasannya adalah Anda harus terus menambahkan elemen filter fisik untuk mencapai penyaringan band-stop dari frekuensi yang diberikan. Dan Anda perlu menyesuaikan nilai komponen jika Anda ingin memindahkan takik. Satu opamp dapat melakukan satu takik band-stop sehingga Anda perlu menambahkan penguat lain untuk setiap takik yang Anda inginkan. Untuk takik yang lebih selektif, Anda membutuhkan dua amplifier per takik.

Pada istilah praktis, Anda mungkin paling baik dilayani oleh filter low-pass urutan 3 yang dapat Anda lakukan dengan opamp tunggal atau mungkin filter low-pass urutan kelima yang membutuhkan dua. Gunakan low pass filter (s) untuk menipiskan frekuensi di atas frekuensi Nyquist (1/2 frekuensi sampling) dengan beberapa margin dan Anda akan memiliki sampel digital berkualitas tinggi untuk diproses. Dengan rekaman bersih seperti itu, Anda kemudian dapat menerapkan filter FFT untuk membuat filter high-pass, band-pass dan band-stop sesuai kebutuhan.

Barleyman
sumber
1

Pemfilteran invarian waktu linier yang dilakukan oleh "filter elektronik klasik" hanyalah perkalian "bodoh" dalam domain Fourier. Tetapi informasi yang Anda temukan dalam FFT memberi tahu Anda detail lebih dari sekadar respons satu filter, yang hanya merupakan kombinasi linear dari komponen-komponen itu. Dengan menggunakan informasi itu, Anda dapat mengarahkan pemrosesan data dan membuatnya disesuaikan dengan data. Noise memiliki beberapa karakteristik yang tidak memiliki vokal dan nada musik yang jelas, misalnya koreksi antara nada yang hampir tidak sama untuk kebisingan seperti suara atau musik.

Jadi jika kita dapat mengidentifikasi korelasi antara komponen frekuensi - yaitu menemukan "nada dasar" entah bagaimana kita dapat mengarahkan pemfilteran dan membuatnya lebih disesuaikan dengan data.

pembaca matematika
sumber