A-ağırlıklandırma uygulama


11

Belirli bir sinyalin ses şiddetini hesaplamak istiyorum ve bu iş parçacığına rastladım . A-Ağırlıklandırma yönü hakkında biraz kafam karıştı. Resim gönderemiyorum, ancak bu sitede ihtiyacım olan formüle sahip olduğunu düşünüyorum . (Wa = 10log ...)

Anlamadığım şey aslında programımda nasıl kullanılacağı. fFrekans anlamına gelirse, muhtemelen sabit kalacağından değerleri sabit kodlayabilirim. Bu durumda, Waörnek değerlerime nasıl başvurabilirim ve hangi değerleri kullanırım? WINDOW_SIZE/2Değer almak ve frekans bandındaki her bir değeri ilgili önceden hesaplanmış Wadeğerle çarpmak için güç spektrumunu hesaplıyor muyum yoksa bunu yapmanın yanlış yolu var mı? Şimdiden teşekkür ederim.

Yanıtlar:


8

Evet, sen değerlerini kod gömme senin sinyalin bir FFT yapmak ve çarpma kodlanmış değerlerle, daha sonra olabilir frekans alanında genliği olsun gelen Parseval'ın teoremi ( örnek ).

Ayrıca bir dijital filtre uygulayabilir ve bunu zaman alanında yapabilirsiniz. İşte Matlab kodu ve Python'a çevirim .

Bilineer dönüşümün, dijital filtrenin analog filtreden daha hızlı yuvarlanmasına neden olduğunu ve ortak örnek oranlarında ölçüm hataları getirdiğini unutmayın. Basit bir düzeltme önce verileri örneklemektir, böylece tutarsızlık en aza indirilir. Diğer filtre tasarımı yaklaşımları: http://dsp.stackexchange.com/q/36077/29


Teşekkürler, biraz daha iyi anlıyorum. Parseval örneğinizde, rms_flat RMS denklemidir (SQRT(x1^2 + x2^2...xn^2/n))ve sinyalin rms_flat ve FFT'nin rms_flat arasındaki fark nedir?
TryNCode

@ExpAns: Evet, rms_flat()sadece sqrt(mean(absolute(a)**2)). /nDışarıdan üzerindedir. Sinyal ve FFT'nin RMS değeri, bir ölçeklendirme faktörü hariç aynıdır.
endolith
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.