I chase NDBs and there are many in the NDB community who prefer the 8 pole analog filters to the digital filters in SDRC. I looked into this and I believe that the reason is related to the shape of the response. The analog filter commonly used has a nominal bandwidth of about 8hz with a response that looks like this:
And an 8hz SDRC filter with 2048 taps:
The reason that people prefer the analog filter is possibly the fact that it is possible to get false IDs with the steep filter. This happens when you are tuned just off to the side of a relatively strong NDB. The keying sideband (clicks) from the strong signal can sound like a clean ID. I have also heard claims that the analog filter doesn't "ring" but I'm not able to attach any technical support to that claim. All narrow filters sound "ringy" to me.
Anyway, I thought it would be interesting if we had an option in SDRC to use an IIR filter instead of the FIR so that we could have a Chebychev or Butterworth type of response more like the analog filters have. The IIR also has the added benefit of lower latency and less computation.
I realize that this is probably not in the cards, but it doesn't hurt to ask.
73,
Tony
AD0VC
I also created a number of filters in SDRC and swept them as well. To get a similar shape at the top of the filter, the skirts always came out much steeper than the analog filter. For example here is an 8hz SDRC filter with 1024 taps:Option to use IIR instead of FIR filters
Re: Option to use IIR instead of FIR filters
Given the design I believe Simon has from past discussions, "that's not gonna happen." The design prohibits it. The filtering is done in the frequency domain using an FFT, band shaping, and reverse FFT.
{o.o}
{o.o}
-
- Posts: 72
- Joined: Sat Aug 08, 2020 2:38 pm
Re: Option to use IIR instead of FIR filters
Having not done that before myself, it wasn't apparent to me. So the length that we specify for a filter is the FFT length? Seems like that should be a power of 2. And the windowing function, also for the FFT? In my limited experience with DSP I have worked with time domain filters on several occasions but have not used FFTs for any real stuff. When I went to college in the early 70's FFTs were a very new thing. Later, in the early 80's I took a corporate class on Fourier with servo applications but only out of curiosity. Only later did I get stuck working on a read channel for a tape drive that used LMS adaptive filters (FIR) for equalization. That was the only real DSP related work I ever did. Never got to apply FFTs for anything.
Tony
Tony
-
- Posts: 72
- Joined: Sat Aug 08, 2020 2:38 pm
Re: Option to use IIR instead of FIR filters
I just looked at the filter design window again, the lengths are 1+2^n. Basically powers of 2. Ok, so it's not going to happen. Probably would not have happened anyway.
Thanks for the insight.
Tony
Thanks for the insight.
Tony
- Simon G4ELI
- Posts: 2134
- Joined: Thu Aug 06, 2020 7:27 am
- Location: Mawnan Smith
- Contact:
Re: Option to use IIR instead of FIR filters
Although I could use IIR for filtering it would be a lot of code to add this as an option. Better would be design for FIR with wider skirts etc., i.e. a more adventurous design window.
FIR filtering and FFT convolution become the same, in fact I implement my FIR filter using FFT convolution.
Design methods such a Parks-McClellan (which I have written but don't use) could be used for design of wider filters.
Maybe in 2022...
FIR filtering and FFT convolution become the same, in fact I implement my FIR filter using FFT convolution.
Design methods such a Parks-McClellan (which I have written but don't use) could be used for design of wider filters.
Maybe in 2022...
- Simon G4ELI
- Posts: 2134
- Joined: Thu Aug 06, 2020 7:27 am
- Location: Mawnan Smith
- Contact:
Re: Option to use IIR instead of FIR filters
Thinking about this a bit more - what I can do is offer more Windowing options in the FIR design and make sure they are actually used by the filter.
Re: Option to use IIR instead of FIR filters
I don't see that it should be at all impossible to specify filter parameters for a Gaussian shape filter or most any other filter. (I'm a little naive on this filter approach so I'd overlay on the normal windowing a Gaussian filter shape on the spectrum shape with both amplitude and phase terms. The Fast Frequency Hopping work I was doing in the early 70s involved Gaussian shaped filters to get minimum ringing so that a maximum number of operating links could be achieved in a given spectrum width.)
{^_^}
{^_^}