I'm trying to design an fir filter based on absorption coefficients given at various frequencies. Aspects like the angle of reflection don't need to be taken into account and I've been looking at using matlab functions like yulewalk, remez, and invfreqz for the task. Each of these functions however require input types like the complex frequency response or the magnitude response. How do I convert my absorption absorption coefficients into either of these? Any help would be much appreciated.

# Convert absorption coefficients into magnitude or frequency response

Started by ●November 8, 2006

Reply by ●November 9, 20062006-11-09

Zif skrev:> I'm trying to design an fir filter based on absorption coefficients given > at various frequencies. Aspects like the angle of reflection don't need to > be taken into account and I've been looking at using matlab functions like > yulewalk, remez, and invfreqz for the task. Each of these functions > however require input types like the complex frequency response or the > magnitude response. How do I convert my absorption absorption coefficients > into either of these? > > Any help would be much appreciated.In acoustics propagation modeling the absorption coefficient is the magnitude of the complex frequency response, and the phase is given by the propagation geometry. For the trivial example of propagation in a lossy medium, the absorption coefficient R is given by R = exp(-a*x + jkx) where x is the propagated distance, a is some loss coefficient in the medium, and k is the wavenumber. Be aware that once the geometry becomes more complicated (introducing one or more reflecting surfaces) the expression for the abbsorption coefficient becomes a lot more complicated. Rune

Reply by ●November 9, 20062006-11-09

>In acoustics propagation modeling the absorption coefficient is the >magnitude of the complex frequency response, and the phase is >given by the propagation geometry. > >For the trivial example of propagation in a lossy medium, the >absorption coefficient R is given by > >R = exp(-a*x + jkx) > >where x is the propagated distance, a is some loss coefficient in the >medium, and k is the wavenumber. > >Be aware that once the geometry becomes more complicated >(introducing one or more reflecting surfaces) the expression for the >abbsorption coefficient becomes a lot more complicated.Ah ok, many thanks for your reply. I've tried to use the remez function (which takes the magnitude response as one arguement) with my absorption coefficients but this doesn't seem to work (when I apply it to my signal I get noise whereas a standard lowpass filter works fine). So for example, I have the following abs. coefficents for a given material: ab = [0.1, 0.07, 0.05, 0.04, 0.04, 0.04] and covert the respective frequencies to a 0-1 scale such that: c = 1/22500 f = [125*c, 250*c, 500*c, 1000*c, 2000*c, 4000*c] b = remez(8,f,ab) which will give me b = 1.0e+003 * 0.1479 -1.0879 3.5900 -6.9332 8.5665 -6.9332 3.5900 -1.0879 0.1479 I'm a newcomer to all of this but from what I know of filters, aren't some of these values either much too great or small? Have I completely gone wrong in my approach or am I simply lacking sufficient data points?