Re: [music-dsp] R: Time Varying BIBO Stability Analysis of Trapezoidal integrated optimised SVF v2
On 11 November 2013 18:26, Marco Lo Monaco wrote: > Hi Ross/Andrew, > I couldnt wait to put my hands on it :) (the creativity/curiosity spark is > always lit) > > Here is my MuPad notebook : > > https://www.dropbox.com/s/er1s0aeheuv3igg/VCF-StateVariableFilter.pdf > > I basically demonstrate what I already said in my previous posts. > The standard state-space approach leads to identical results to your > algorithm, I would say even without the trick of the TPT, because of course > we are talking about an instantaneous _linear_ feedback. > That makes sense: "my" ABCD statespace matrixes are identical to "yours", > same thing applies for CPU load in terms of MULs/ADDs. > > Hi Marco, Thanks very much as well must go to you for doing this analysis. I'm not familiar enough with this decomposition to be of much use providing feedback at the moment sorry! The two sets of matrices are indeed the same, but I am worried that this may only be the case in the LTI case since the function you used to generate the first set is StateSpaceBilinear which sounds like there is a layer of abstraction going on but I don't know for sure what that function is doing. Can you please confirm that the final actual number crunching is the same in the final implemenation? ie the same + - * and / on the same variables that leads to the same actual numerical performance if both are done out in full. Of course the main purpose of my analysis was to keep in mind that you will > _always_ have to deal with an "implicit"/hidden inversion of a matrix A of > the analog system (actually (I-A*h/2)) of the same order of your system, > which in this SVF fortunate case is 2 and also easy. For a moment think > about an analog system who has 10 capacitors and you want it to change it > at > audio rate: you will have to deal with a0,a1,a2... coeffs that will be > rationaly polynomials, meaning lots of DIVs at runtime). Generally > speaking, > inverting a matrix at audio rate is not a good idea :) > Don't get hung up on the matrix thing, it's not that important. You can solve these things with basic linear algebra too, they are all equivalent. It is just solving n linear equations for n unknowns that is important. > As I already said, we agree that these approaches are dated a long ago. > > Ross showed the same results of matrix A,B (he didn't showed C,D because > they are not needed for the Laroche BIBO analysis). His results match my > same ones. > > Sorry if I omitted some code in collecting state/in/out variables in your > original algo, but I already got 6 pages of pdf this way and I thought it > would have been a good idea to keep it simple. > > Hope to have helped you clear my my point of view. > > Ciao > > Marco > Thanks Marco I appreciate your help! All the best, Andy -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
Re: [music-dsp] R: Time Varying BIBO Stability Analysis of Trapezoidal integrated optimised SVF v2
Hi Marco On 11-Nov-13 11:26, Marco Lo Monaco wrote: I basically demonstrate what I already said in my previous posts. The standard state-space approach leads to identical results to your algorithm, I would say even without the trick of the TPT, because of course we are talking about an instantaneous _linear_ feedback. Of course they are all equivalent, except for some small detail, as e.g. the usage of canonical integrators (although maybe even that was known for long time for trapezoidal integration). Of course the main purpose of my analysis was to keep in mind that you will _always_ have to deal with an "implicit"/hidden inversion of a matrix A of the analog system (actually (I-A*h/2)) With the filters used in practice, the matrices typically turn out to be either simple or have quite regular structures. This often is given for granted in the 0df (TPT) approach, as you are just solving one linear feedback equation, instead of trying to invert a 5x5 matrix etc. Of course, it's mathematically equivalent, but is much simpler. Also, the division (the most expensive operation) which you have to perform while solving that equation is more or less the same division by a0 which you need to perform in the computation of the BLT-based discrete-time coefficients. So, computationally I think the 0df approach is comparable (even if slighly more expensive at times) to the transfer-function based DF filters, expecially at audio-rate modulations. Regards, Vadim -- Vadim Zavalishin Reaktor Application Architect Native Instruments GmbH +49-30-611035-0 www.native-instruments.com -- dupswapdrop -- the music-dsp mailing list and website: subscription info, FAQ, source code archive, list archive, book reviews, dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp
[music-dsp] R: Time Varying BIBO Stability Analysis of Trapezoidal integrated optimised SVF v2
Hi Ross/Andrew, I couldnt wait to put my hands on it :) (the creativity/curiosity spark is always lit) Here is my MuPad notebook : https://www.dropbox.com/s/er1s0aeheuv3igg/VCF-StateVariableFilter.pdf I basically demonstrate what I already said in my previous posts. The standard state-space approach leads to identical results to your algorithm, I would say even without the trick of the TPT, because of course we are talking about an instantaneous _linear_ feedback. That makes sense: "my" ABCD statespace matrixes are identical to "yours", same thing applies for CPU load in terms of MULs/ADDs. Of course the main purpose of my analysis was to keep in mind that you will _always_ have to deal with an "implicit"/hidden inversion of a matrix A of the analog system (actually (I-A*h/2)) of the same order of your system, which in this SVF fortunate case is 2 and also easy. For a moment think about an analog system who has 10 capacitors and you want it to change it at audio rate: you will have to deal with a0,a1,a2... coeffs that will be rationaly polynomials, meaning lots of DIVs at runtime). Generally speaking, inverting a matrix at audio rate is not a good idea :) As I already said, we agree that these approaches are dated a long ago. Ross showed the same results of matrix A,B (he didn't showed C,D because they are not needed for the Laroche BIBO analysis). His results match my same ones. Sorry if I omitted some code in collecting state/in/out variables in your original algo, but I already got 6 pages of pdf this way and I thought it would have been a good idea to keep it simple. Hope to have helped you clear my my point of view. Ciao Marco -Messaggio originale- Da: [email protected] [mailto:[email protected]] Per conto di Ross Bencina Inviato: domenica 10 novembre 2013 16:58 A: A discussion list for music-related DSP Oggetto: [music-dsp] Time Varying BIBO Stability Analysis of Trapezoidal integrated optimised SVF v2 Hi Everyone, I took a stab at converting Andrew's SVF derivation [1] to a state space representation and followed Laroche's paper to perform a time varying BIBO stability analysis [2]. Please feel free to review and give feedback. I only started learning Linear Algebra recently. Here's a slightly formatted html file: http://www.rossbencina.com/static/junk/SimperSVF_BIBO_Analysis.html And the corresponding Maxima worksheet: http://www.rossbencina.com/static/junk/SimperSVF_BIBO_Analysis.wxm I had to prove a number of the inequalities by cut and paste to Wolfram Alpha, if anyone knows how to coax Maxima into proving the inequalities I'm all ears. Perhaps there are some shortcuts to inequalities on rational functions that I'm not aware of. Anyway... The state matrix X: [ic1eq] [ic2eq] The state transition matrix P: [-(g*k+g^2-1)/(g*k+g^2+1), -(2*g)/(g*k+g^2+1) ] [(2*g)/(g*k+g^2+1),(g*k-g^2+1)/(g*k+g^2+1)] (g > 0, k > 0 <= 2) Laroche's method proposes two time varying stability criteria both using the induced Euclidian (p2?) norm of the state transition matrix: Either: Criterion 1: norm(P) < 1 for all possible state transition matrices. Or: Criterion 2: norm(TPT^-1) < 1 for all possible state transition matrices, for some fixed constant change of basis matrix T. norm(P) can be computed as the maximum singular value or the positive square root of the maximum eigenvalue of P.transpose(P). I've taken a shortcut and not taken square roots since we're testing for norm(P) strictly less than 1 and the square root doesn't change that. From what I can tell norm(P) is 1, so the trapezoidal SVF filter fails to meet Criterion 1. The problem with Criterion 2 is that Laroche doesn't tell you how to find the change of basis matrix T. I don't know enough about SVD, induced p2 norm or eigenvalues of P.P' to know whether it would even be possible to cook up a T that will reduce norm(P) for all possible transition matrices. Is it even possible to reduce the norm of a unit-norm matrix by changing basis? From reading Laroche's paper it's not really clear whether there is any way to prove Criterion 2 for a norm-1 matrix. He kind-of side steps the issue with the norm=1 Normalized Ladder and ends up proving that norm(P^2)<1. This means that the Normalized Ladder is time-varying BIBO stable for parameter update every second sample. Using Laroche's method I was able to show that Andrew's trapezoidal SVF (state transition matrix P above) is also BIBO stable for parameter update every second sample. This is the final second of the linked file above. If anyone has any further insights on Criterion 2 (is it possible that T could exist?) I'd be really interested to hear about it. Constructive feedback welcome :) Thanks, Ross [1] Andrew Simper trapazoidal integrated SVF v2 http://www.cytomic.com/files/dsp/SvfLinearTrapOptimised2.pdf [2] On the Stability of Time-Varying Recursive Filters http://www.aes.org/e-lib/browse.cfm?elib=14168 --
