Hi Michael,
Thanks for the script, just some minor notes: SAMP_RATE should be 28.8e6, not 28e6. Also you don't seem to do any overflow checking on the conversion. If you are trying to build narrow filters, I expect you might hit the 1/16 limit on the outer 8 coefficients, so the filter coefficients might need to be shrunk (reducing the filter gain, of course) before converting to integers.
Good point. Thanks
I'm afraid that constructing a filter using gnuradio firdes and then truncating it to 32 coefficients is likely not resulting in a good filter. In my oppinion (not backed by math knowledge in that area, though), the filter length should already be considered during coefficient generation.
Yes that's right. Using gnuradio firdes was a first hack with acceptable error as the fft shows. A better way is to use sinc() and a window function. Had a look into my "Signale and Systeme" script.
There is also a software called winfilter if you want a 'classic' filter. It works well under wine. http://www.winfilter.20m.com/
It looks like your plot uses the convention that 10dB is a factor of 10. As the filter affects amplitude values and not power values, you should use 20dB for a factor of 10, if I understand the dB scale correctly.
I missed that too. A fix version is attached.
Regards, Stefan