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