1 / n perataan oktaf

8

Mengingat respons frekuensi yang diperoleh dengan FFT, saya ingin menerapkan perataan oktaf 1 / n. Filter apa yang harus saya gunakan dan bagaimana caranya? Mungkin seseorang bisa menunjuk ke referensi yang bagus (makalah atau buku tentang hal itu).

Psirus
sumber
Apakah Anda mencari filter merah muda , yang menurunkan frekuensi ke amplitudo ? Atau apakah Anda benar-benar menginginkan sesuatu yang melemahkan frekuensi hingga amplitudo ? f1/ff1/(lg2f)
Logika Pengembaraan
1
Saya tidak ingin menipiskan frekuensi. Saya ingin data dihaluskan, dengan bandwidth variabel, yaitu 1 oktaf, 1/3 oktaf, dll.
Psirus
1
Respons frekuensi pengeras suara biasanya dihaluskan, baik untuk membuat grafik lebih mudah diinterpretasikan tetapi masih cukup akurat (1/20-oktaf dihaluskan), atau smoothing sangat tinggi (1/3-oktaf) misalnya dalam pemasaran. Ini yang saya baca berkali-kali, maksudnya sebenarnya saya coba cari tahu di sini.
Psirus
1
Jadi pertanyaan Anda bukan tentang mengubah sinyal, tapi ini tentang bagaimana menampilkan respons frekuensi perangkat secara grafis. Apakah itu benar?
Jim Clay
1
Saya pikir artikel ini mengandung informasi berharga. Namun, sayangnya, itu tidak gratis. Pendekatan mendasar juga dijelaskan dalam satu ini .
applesoup

Jawaban:

8

Biasanya "smoothing" berarti "ganti nilai saat ini dengan rata-rata dari yang tetangga". Paling umum adalah perataan energi, di mana perataan menghasilkan rata-rata energi selama interval perataan dan informasi fase hilang. Penghalusan yang kompleks dapat dilakukan juga tetapi ini bisnis yang rumit karena pembungkus fase.

Perataan energi dapat dinyatakan sebagai

Y(k)=1Ni=0N1X(i)X(i)Wk(i)

di mana adalah beberapa fungsi jendela yang sesuai. Dalam kasus, katakanlah, penghalusan oktaf ketiga ini dapat diturunkan sebagai besarnya kuadrat dari fungsi transfer dari filter pass pita oktaf ketiga di sekitar frekuensi k. Ini juga berarti bahwa untuk, katakanlah, 1024 titik FFT Anda perlu merancang 1024 filter bandpass yang berbeda, jadi itu sedikit kerja yang adil.Wk(i)

Hal-hal dapat disederhanakan jika bentuk yang tepat dari filter smoothing fleksibel. Perataan persegi dapat dilakukan sebagai

Y(k)=1ba+1i=abX(i)X(i)

di mana

a=round(k212n),b=round(k212n)

hanyalah indeks tepi pita untuk perataan oktaf .nth

Ada beberapa metode lagi yang ada di antara di jendela arbitrer dan yang persegi panjang dalam hal kompleksitas.

Hilmar
sumber
Saya mencoba menerapkan ini dalam kode C, dan saya khawatir saya sedikit tersesat dalam notasi. Saya mengalami kesulitan memahami bagaimana misalnya, penjumlahan dari saya berlari dari a ke b bekerja? Setiap bantuan dihargai.
Andrew Smith
Dua jempol, tapi sayang hanya satu suara, naik. Pertanyaan tambahan ini menanyakan bagaimana 1 / n smoothing kompleks dilakukan termasuk bisnis rumit di sekitar fase pembungkus.
SpeedCoder5