DSPRelated.com
Forums

de-emphasis filter

Started by drew May 2, 2007
I'm trying to design a digital IIR de-emphasis filter with sampling
frequency 48 kHz and time constants T1=50us and T2=15us. I've used Matlab
to perform a bilinear transform of this continuous time specification, but
it seems that the frequency warping using this technique is too high close
to fs/2, approaching 1 dB. Does anyone have suggestions for alternate
approaches to the problem?

Thanks!



_____________________________________
Do you know a company who employs DSP engineers?  
Is it already listed at http://dsprelated.com/employers.php ?
On May 2, 1:41 pm, "drew" <mntnd...@yahoo.com> wrote:
> I'm trying to design a digital IIR de-emphasis filter with sampling > frequency 48 kHz and time constants T1=50us and T2=15us. I've used Matlab > to perform a bilinear transform of this continuous time specification, but > it seems that the frequency warping using this technique is too high close > to fs/2, approaching 1 dB. Does anyone have suggestions for alternate > approaches to the problem? > > Thanks! >
Well, there is always impulse invariance. Just be sure that you don't alias the impulse response too much. Or you may directly model in the discrete time domain an aproximation to your continuous time filter. You don't to use the same filter order. Just match the amplitude and phase the best you can over the region that matters. Clay

Clay wrote:


>>I'm trying to design a digital IIR de-emphasis filter with sampling >>frequency 48 kHz and time constants T1=50us and T2=15us. I've used Matlab >>to perform a bilinear transform of this continuous time specification, but >>it seems that the frequency warping using this technique is too high close >>to fs/2, approaching 1 dB. Does anyone have suggestions for alternate >>approaches to the problem? > > Well, there is always impulse invariance. Just be sure that you don't > alias the impulse response too much. Or you may directly model in the > discrete time domain an aproximation to your continuous time filter. > You don't to use the same filter order. Just match the amplitude and > phase the best you can over the region that matters.
This seems to be an overcomplication. The standard way to deal with this problem is prewarping. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
>This seems to be an overcomplication. The standard way to deal with this >problem is prewarping.
It seems to me that when I pre-warp to a variety of frequencies, I'm not having any luck reducing either the peak or the average error term, just the error at any one particular frequency. Perhaps I need to increase the order of my filter, although I'm not exactly certain how to proceed with respect to that? I'm led to believe that I can reduce the error to under 0.1 dB. Andrew _____________________________________ Do you know a company who employs DSP engineers? Is it already listed at http://dsprelated.com/employers.php ?
"drew" <mntndrew@yahoo.com> wrote in news:L5-dnR-
yabMgZ6XbnZ2dnUVZ_qemnZ2d@giganews.com:

>>This seems to be an overcomplication. The standard way to deal with this >>problem is prewarping. > > It seems to me that when I pre-warp to a variety of frequencies, I'm not > having any luck reducing either the peak or the average error term, just > the error at any one particular frequency. Perhaps I need to increase the > order of my filter, although I'm not exactly certain how to proceed with > respect to that? I'm led to believe that I can reduce the error to under > 0.1 dB. > > Andrew > > _____________________________________ > Do you know a company who employs DSP engineers? > Is it already listed at http://dsprelated.com/employers.php ? >
I found a reference to the start of this thread. You are looking at 50uS and 15uS with 48k sampling? Do you mean that you want to map an s-plane filter with a pole at 50uS (3183Hz) and another pole at 15uS (10.6kHz)? or do you mean a shelf with a 50uS pole and a 15uS zero? -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
>I found a reference to the start of this thread. > >You are looking at 50uS and 15uS with 48k sampling? > >Do you mean that you want to map an s-plane filter with a pole at 50uS >(3183Hz) and another pole at 15uS (10.6kHz)? > >or do you mean a shelf with a 50uS pole and a 15uS zero?
Hi Al, I belive the standard is a 50us pole and a 15us zero, which is what I'm designing for. It's my understanding that the 15us pole in the pre-emphasis filter is intended to limit the high frequency boost. I've tried just tweaking the locations of the pole and zero of the digital filter and have managed to reduce the peak error to a little over 0.1 dB, but any other suggestions for improving the performance would be greatly appreciated. Thanks, Andrew _____________________________________ Do you know a company who employs DSP engineers? Is it already listed at http://dsprelated.com/employers.php ?
"drew" <mntndrew@yahoo.com> wrote in
news:jJSdnVCX7-dqi6TbnZ2dnUVZ_sOknZ2d@giganews.com: 

>>I found a reference to the start of this thread. >> >>You are looking at 50uS and 15uS with 48k sampling? >> >>Do you mean that you want to map an s-plane filter with a pole at 50uS >>(3183Hz) and another pole at 15uS (10.6kHz)? >> >>or do you mean a shelf with a 50uS pole and a 15uS zero? > > Hi Al, > > I belive the standard is a 50us pole and a 15us zero, which is what > I'm designing for. It's my understanding that the 15us pole in the > pre-emphasis filter is intended to limit the high frequency boost. > > I've tried just tweaking the locations of the pole and zero of the > digital filter and have managed to reduce the peak error to a little > over 0.1 dB, but any other suggestions for improving the performance > would be greatly appreciated. > > Thanks, > Andrew > > _____________________________________ > Do you know a company who employs DSP engineers? > Is it already listed at http://dsprelated.com/employers.php ? >
I thought a BLT might be a little better in this case since a shelf does not place a zero at Pi(). I calculated the following: H(z) = ((1+2Tzfs)/(1+Tpfs))((1+((1-2Tzfs)/(1+2Tzfs))z-1)/(1+((1-2Tpfs)/(1 +2Tpfs))z-1) .... if I got the parenthese correct If you substitute 2Tzfs = 2*15e-6*48000 = 1.44 & 2Tpfs = 2*50e-6*48000 = 4.8 H(z) = (1+1.44)/(1+4.8)(1-(.44/2.44)z-1)/(1-(3.8/5,8)z-1) H(z) = .42069 (1-.18032z-1)/(1-.65517z-1) This gives a response that attenuates too fast as Andrew suggests. I have a few ideas that might help: You can often simulate a real s plane pole better by placing a zero at something other than 0 or -1. A value between .12 and .15 works well. If you fit a real pole this way for the 50uS corner and then do the same thing with the 15uS corner (flip the numerator and denominator), you will get a function with two real zeros and two real poles. I haven't actually tried this so if I am crazy, be kind....... Another method is to interpolate to increase the sampling rate. Then the above expression with an appropriate change of fs will give a very good fit. There are lots of standards in the world where frequency responses are defined exactly in the s plane. It's often a problem to create a good fit since mapping can not never be perfect. The problem in your case is that Nyquist is very close to your desired boundary. There is another technique based on Remez's second algorithm. I only know of it. If someone can point to a C or Matlab implementation, this might be helpful. -- Al Clark Danville Signal Processing, Inc. -------------------------------------------------------------------- Purveyors of Fine DSP Hardware and other Cool Stuff Available at http://www.danvillesignal.com
drew wrote:
> I'm trying to design a digital IIR de-emphasis filter with sampling > frequency 48 kHz and time constants T1=50us and T2=15us. I've used Matlab > to perform a bilinear transform of this continuous time specification, but > it seems that the frequency warping using this technique is too high close > to fs/2, approaching 1 dB. Does anyone have suggestions for alternate > approaches to the problem?
I suspect from your statement that you don't understand what prewarping is all about. How does 1 dB enter the picture? Double check and ask for clarification if you need it. What did the prewarped 50 and 25 us time constants turn out to be? Jerry -- Engineering is the art of making what you want from things you can get. &macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;
On May 2, 1:41 pm, "drew" <mntnd...@yahoo.com> wrote:
> I'm trying to design a digital IIR de-emphasis filter with sampling > frequency 48 kHz and time constants T1=50us and T2=15us.
The following filter has a magnitude error <0.1dB up to 20kHz. B (numerator) = -0.00224305851815137 0.00549804124346388 -0.0111843761662931 0.40687149382921 0.802741930399901 0.516530175700322 0.0821465873684198 -0.0314625360154977 -0.00879042726665773 A (denominator) = 1 1.36926680733915 0.217333713279106 -0.503847015409352 -0.281925921909417 -0.04104182726491 0.00033420999259119 -2.54769096515353e-005 4.99629619776976e-006 Yes, it's an 8th order filter being used to approximate a 1st order filter. That's the problem with mapping from the s-plane to the z- plane. Greg
drew wrote:
>> This seems to be an overcomplication. The standard way to deal with this >> problem is prewarping. > > It seems to me that when I pre-warp to a variety of frequencies, I'm not > having any luck reducing either the peak or the average error term, just > the error at any one particular frequency. Perhaps I need to increase the > order of my filter, although I'm not exactly certain how to proceed with > respect to that? I'm led to believe that I can reduce the error to under > 0.1 dB.
Warping changes the slope of filter edges. When infinity gets warped to Fs/2, frequencies near that get scrunched close together, and the slope of the curve between them increases. Unless you change sample rate, you have to live with that. More sections might let you flatten the slope where warping steepens it too much, but I think that route is unnecessarily nasty. Interpolate, filter, decimate seems straighter. Jerry -- Engineering is the art of making what you want from things you can get. &macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;