Monday, August 19, 2019

Design of a digital A-weighting filter with arbitrary sample rate


I want to A-weight a time series with arbitrary sample rate.


An analog A-weighting filter is defined exactly by IEC 61672-1. But there's no definition for a digital filter. One method is to use the bilinear transform (BLT) to convert the analog filter to the digital filter (as done here Applying A-weighting). However this method suffers from extreme warping near nyquist (even when the analog poles/zeros are pre-warped):


enter image description here


Figure 1: A-weighting frequency response comparison where the sample rate is $25600\textrm{ Hz}$.


Instead I'm thinking of using an algorithm than can design a digital IIR filter with arbitrary frequency response and plugging in the frequency response of the analog A-weighting filter.




  • Is this a good approach?

  • If so, is there a particular algorithm that would be well suited for this?


I've looked into MATLAB's yulewalk but I would need a corresponding Python implementation to try out. I've also come across Berchin's FDLS method in a few places, like this question for instance, but all of the links appear to be broken.




No comments:

Post a Comment

digital communications - Understanding the Matched Filter

I have a question about matched filtering. Does the matched filter maximise the SNR at the moment of decision only? As far as I understand, ...