Apa keuntungan dari filtfilt MATLAB


30

MATLAB's filtfiltmelakukan penyaringan maju-mundur, yaitu, menyaring, membalikkan sinyal, menyaring lagi dan kemudian kembali lagi. Rupanya ini dilakukan untuk mengurangi fase lag? Apa keuntungan / kerugian dari menggunakan penyaringan seperti itu (saya kira itu akan menghasilkan peningkatan urutan filter yang efektif).

Apakah lebih baik menggunakan filtfiltselalu daripada hanya filter(yaitu, hanya penyaringan ke depan)? Apakah ada aplikasi di mana perlu untuk menggunakan ini dan di mana seharusnya tidak digunakan?


Jangan gunakan pemfilteran fase nol untuk audio, karena menyebabkan "pra-dering" yang terdengar aneh. Pemfilteran fase minimum lebih alami. ccrma.stanford.edu/~jos/filters/Linear_Phase_Really_Ideal.html
endolith

Jawaban:


34

Anda dapat melihatnya di domain frekuensi. Jika adalah urutan input dan adalah respons impuls filter, maka hasil dari pass filter pertama adalahx[n]h[n]

X(ejω)H(ejω)

dengan dan , transformasi Fourier masing-masing dan . Pembalikan waktu berhubungan dengan mengganti dengan di domain frekuensi, jadi setelah pembalikan waktu kita mendapatkanX(ejω)H(ejω)x[n]h[n]ωω

X(ejω)H(ejω)

Filter pass kedua terkait dengan perkalian lain dengan :H(ejω)

X(ejω)H(ejω)H(ejω)

yang setelah pembalikan waktu akhirnya memberikan spektrum sinyal output

(1)Y(ejω)=X(ejω)H(ejω)H(ejω)=X(ejω)|H(ejω)|2

karena untuk koefisien filter bernilai nyata, kita memiliki . Persamaan (1) menunjukkan bahwa spektrum output diperoleh dengan memfilter dengan filter dengan respons frekuensi , yang murni bernilai real, yaitu fase-nya nol dan akibatnya ada tidak ada distorsi fase.H(ejω)=H(ejω)|H(ejω)|2

Ini teorinya. Dalam pemrosesan waktu nyata tentu saja ada penundaan yang cukup besar karena pembalikan waktu hanya berfungsi jika Anda mengizinkan latensi yang sesuai dengan panjang blok input. Tetapi ini tidak mengubah fakta bahwa tidak ada distorsi fase, itu hanya penundaan tambahan dari data output. Untuk pemfilteran FIR, pendekatan ini tidak terlalu berguna karena Anda mungkin juga mendefinisikan filter baru dan mendapatkan hasil yang sama dengan pemfilteran biasa. Lebih menarik untuk menggunakan metode ini dengan filter IIR, karena mereka tidak dapat memiliki fase nol (atau fase linier, yaitu penundaan murni).h^[n]=h[n]h[n]

Alhasil:

  • jika Anda memiliki atau membutuhkan filter IIR dan Anda ingin distorsi fase nol, DAN keterlambatan pemrosesan tidak masalah maka metode ini berguna

  • jika pemrosesan penundaan adalah masalah Anda tidak boleh menggunakannya

  • jika Anda memiliki filter FIR, Anda dapat dengan mudah menghitung respons filter FIR baru yang setara dengan menggunakan metode ini. Perhatikan bahwa dengan filter FIR, fase linier yang tepat selalu dapat diwujudkan.


Saya membuat tag dengan nama maximum-aposteriori-estimation. Bisakah Anda mengubah nama menjadi maximum-a-posteriori-estimation? Secara tidak sengaja saya lupa -setelah a. Terima kasih.
Royi

15

Saya menemukan video ini sangat, sangat membantu (menguraikan jawaban Matt).

Berikut beberapa ide kunci dari video:

  • Nol-fase tidak akan menghasilkan distorsi fase, tetapi akan menghasilkan filter non-kausal. Ini berarti bahwa jika data sedang difilter saat dikumpulkan, ini tidak akan menjadi opsi (hanya valid untuk data yang disimpan yang dapat kita posting setelah proses).masukkan deskripsi gambar di sini
  • Ketika Anda menerapkan filter non-kausal, transien menjadi kabur ke depan dan ke belakang (mis. Jika kita menginginkan riak 2dB, fakta bahwa kita akan membuat langkah maju dan mundur menggunakan filter berarti kita akan menginginkan masing-masing ini memiliki 1dB).masukkan deskripsi gambar di sini
  • Menggunakan properti pembalikan waktu dari transformasi Fourier diskrit-waktu. masukkan deskripsi gambar di sini
  • Respons frekuensi efektif yang disebabkan oleh FILTFILT adalah besarnya yang dalam satu arah, kuadrat. Anda mengambil sinyal input Anda x[n],, saring, balikkan hasilnya, saring lagi, dan balikkan lagi (langkah pembalikan waktu mengharuskan semua data tersedia).masukkan deskripsi gambar di sini
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.