DSPRelated.com
Forums

Filter FM and sideband overload

Started by S0lo January 26, 2016
On Thu, 28 Jan 2016 02:50:29 -0600, S0lo wrote:

>>Are you saying that you used a fixed frequency low-pass filter? Or are >>you wazulating the resonant frequency with your sine wave? >> >>-- >> >>Tim Wescott > > Not fixed frequency. Yes modulating with sine wave. When I fix the > frequency or modulate with a LOW RATE wave, every thing is OK. Only at > high rate modulation this happens.
This circles back to what Steve and I have been saying: you can't just implement any old IIR filter and have it behave the way you want in this situation. In fact, finding a filter that does what you want in this situation is likely to be _damned hard_. If you were paying me to do this, I would ask for the schematics of the analog circuit whose behavior you're trying to replicate, I would reverse engineer the behavior of that analog circuit down to a set of differential equations, and then I'd see if I could design a set of difference equations that would replicate the behavior of the analog circuit well enough to be satisfactory. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Tim Wescott  <seemywebsite@myfooter.really> wrote:

>This circles back to what Steve and I have been saying: you can't just >implement any old IIR filter and have it behave the way you want in this >situation. In fact, finding a filter that does what you want in this >situation is likely to be _damned hard_. > >If you were paying me to do this, I would ask for the schematics of the >analog circuit whose behavior you're trying to replicate, I would reverse >engineer the behavior of that analog circuit down to a set of >differential equations, and then I'd see if I could design a set of >difference equations that would replicate the behavior of the analog >circuit well enough to be satisfactory.
Exactly what I had in mind. "dV / dt = I / C" is your friend. Steve
Steve Pope <spope33@speedymail.org> wrote:

>Exactly what I had in mind. > >"dV / dt = I / C" is your friend.
I will remark on that long ago as a sophmore, I answered a midterm question with the above sort of calculation, and while the TA marked my answer correct, he said "don't do that! just do algebra with j-omega-t" to which I told him, on the soonest occasion, "bugger that!". Steve
On Fri, 29 Jan 2016 05:02:39 +0000, Steve Pope wrote:

> Steve Pope <spope33@speedymail.org> wrote: > >>Exactly what I had in mind. >> >>"dV / dt = I / C" is your friend. > > I will remark on that long ago as a sophomore, I answered a midterm > question with the above sort of calculation, and while the TA marked my > answer correct, he said "don't do that! just do algebra with j-omega-t" > to which I told him, on the soonest occasion, "bugger that!".
Interesting you should mention that, since the time-varying properties of the filter would make it difficult or impossible to analyze the system using Fourier analysis (you _can_ -- witness using Fourier analysis to analyze the behavior of a superheterodyne radio -- I just don't know if it'll be _easy_ in this case). I don't think that one could go straight from the analog to a working digital filter, but I think one may end up with a very good starting point. -- www.wescottdesign.com
I would try using a Chamberlin State-variable filter instead of a biquad, as it is almost a direct mapping of an analog state-variable filter (which by the way were heavily used in vintage analog synth circuits). In order to avoid problems near 1/2 the sampling rate, you should operate at an over sampling factor of around 4x. 

Bob
OP,

1)  what is the range of signal frequency going through the filter?

2) what is the range of frequency modulating the filter cutoff?

does 2  approach or exceed 1?


Mark
>I would try using a Chamberlin State-variable filter instead of a
biquad,
>as it is almost a direct mapping of an analog state-variable filter
(which
>by the way were heavily used in vintage analog synth circuits). In order
to
>avoid problems near 1/2 the sampling rate, you should operate at an over >sampling factor of around 4x. > >Bob
Thanks for the hint. I will look into that. I should mention that the overloads do not sound nor look (in the spectrum analyzer) like the typical aliasing I usually hear when some thing goes beyond half sampling rate. They are very much more like the filter self resonating, which would have been no problem if it was dialed manually, but those resonations are really random/chaotic that come and go as the cutoff frequency is manually changed. They kill the nice vowel like sounds generated by the modulation. Even aliasing not this bad from a musical sense. It can be looked at as an effect instead of an artifact if the sound designer wishes too. --------------------------------------- Posted through http://www.DSPRelated.com
>OP, > >1) what is the range of signal frequency going through the filter? > >2) what is the range of frequency modulating the filter cutoff? > >does 2 approach or exceed 1? > > >Mark
1) any thing from 1Hz to 20Khz 2) I should allow it also to be from 1Hz to 20Khz. But the problems I'm getting usually starts from 1Khz and above. Yes 2 can be less or more than 1. for maximum flexibility. --------------------------------------- Posted through http://www.DSPRelated.com
S0lo <111575@DSPRelated> wrote:

>I should mention that the overloads do not sound nor look (in the spectrum >analyzer) like the typical aliasing I usually hear when some thing goes >beyond half sampling rate. They are very much more like the filter self >resonating, which would have been no problem if it was dialed manually, >but those resonations are really random/chaotic that come and go as the >cutoff frequency is manually changed.
Sounds more like arithmetic overflow than anything else. Have you been able to rule this out? Say, by grabbing a sound sample and implementing the modulated filters in non-real-time but at high precision? (e.g. double precision floating point) Steve
>S0lo <111575@DSPRelated> wrote: > >>I should mention that the overloads do not sound nor look (in the
spectrum
>>analyzer) like the typical aliasing I usually hear when some thing goes >>beyond half sampling rate. They are very much more like the filter self >>resonating, which would have been no problem if it was dialed manually, >>but those resonations are really random/chaotic that come and go as the >>cutoff frequency is manually changed. > >Sounds more like arithmetic overflow than anything else. Have you >been able to rule this out? Say, by grabbing a sound sample >and implementing the modulated filters in non-real-time but at >high precision? (e.g. double precision floating point) > >Steve
I'm using float (32 bit). I have tried replacing it with double (64 bit) on all the variables I'm using. No change, exactly same thing. Note here that I apply a soft clipper (limiter) to the filter output variable (before feed back) to ensure the gain doesn't get more than a certain outrageous db. I need this because I allow the filter to have very high resonance inorder for it to self resonate if the user wishes to. Still, The problem persists even before I dial very high resonance to self oscillation. Just moderately high resonance is enough to produce the problem. --------------------------------------- Posted through http://www.DSPRelated.com