Hi, I have a simple and potentially very stupid question. I use DSP.jl
to construct a filter via digitalfilter()
, which leaves me with a filter kernel I can apply to my signal.
If I wanted to take a look at the response in the frequency domain, freqz()
seems to be the appropriate function. However, it only accepts filter coefficient objects, which leads to the question of how to convert a filter kernel from digitalfilter()
to such an object.
I found the documentation of what otherwise looks like an excellent and well-designed package a bit sparse (at least for people with no DSP background), but it seems like this does what I want for filters constrcuted with the remez()
method:
julia> bpass = remez(35, [(0, 0.1)=>0, (0.15, 0.4)=>1, (0.45, 0.5)=>0]);
julia> b = DSP.Filters.PolynomialRatio(bpass, [1.0])
julia> f = range(0, stop=0.5, length=1000)
julia> plot(f, 20*log10.(abs.(freqz(b,f,1.0))))
It seems to work just fine fĂĽr filters created by digitalfilter()
, so am I correct that e.g. DSP.Filters.PolynomialRatio(digitalfilter(FIRWindow(hamming(3), Highpass(10; fs=100)), [1.0])
will yield a correct frequency response?
And a bonus question: Does anyone have a good resource for learning about how these filter coefficients relate to e.g. a window-based FIR filter?