On Monday, August 29, 2016 at 12:29:56 PM UTC+2, mavavil...@gmail.com wrote:
> So I'm trying to design arbitrary frequency response filter by following this:
> http://www.dspguide.com/ch17/1.htm
>
> there it displays one desired arbitrary frequency response:
> http://www.dspguide.com/graphics/F_17_1.gif
>
> which shows to be made of some sort of different interpolation algorithms applied to certain intervals.
Interpolation would suggest that there are a couple of data points
between one is interpolating. But there is no mention of interpolation.
Think of arbitrary functions just being sampled: the first section
looks like a sine wave, the following like a ramp, then we have a
couple of flat steps, then something like a parabola. It's just
*arbitrary*.
> Is this (interpolated "desired response") necessary or recommended for the design of such arbitrary frequency response filters? Or can the "desired" array be similarly designed by arbitrarily placing points?
It's just a buffer with 1024 coefficients (in this case) where you can
put anything in there. Most likely you are interested in a real-valued
filter (no complex impulse response) in which case you need to make
sure that the (frequency-domain) array is filled symmetrically:
arr[0 ] = your DC response
for k=1..511 {
arr[k ] = your AC response for frequency k*fs/1024
arr[1024-k] = conj(arr[k]); // symmetry
}
arr[512 ] = your Nyquist frequency response
It doesn't really matter much how you fill it. The frequency response
is smoothed anyways due to the window function.
If you want to use this method to build a software equilizer you might
want to do some smooth interpolation of a couple of control points in
"loglog space" (meaning logarithmic frequency and logarithmic
amplitude response).
I hope that answers your questions.
SG
Reply by ●August 29, 20162016-08-29
So I'm trying to design arbitrary frequency response filter by following this:
http://www.dspguide.com/ch17/1.htm
there it displays one desired arbitrary frequency response:
http://www.dspguide.com/graphics/F_17_1.gif
which shows to be made of some sort of different interpolation algorithms applied to certain intervals.
Is this (interpolated "desired response") necessary or recommended for the design of such arbitrary frequency response filters? Or can the "desired" array be similarly designed by arbitrarily placing points?