Plug-ins, Hosts, Apps,
Hardware, Soundware
Developers
(Brands)
Videos Groups
Whats's in?
Banks & Patches
Download & Upload
Music Search
KVR
   
KVR Forum » DSP and Plug-in Development
Thread Read
Integrator filter with delayless feedback path
Goto page Previous  1, 2, 3, 4, 5, 6
Z1202
KVRist
- profile
- pm
PostPosted: Thu Jan 05, 2012 3:17 am reply with quote
rola wrote:
neotec wrote:
ralphb wrote:
Did you make any headway with the highpass filter?


Yep, after going through all the stuff again, I finally have got a 24dB resonant highpass filter ... my filter feedback path calculations were faulty^^


Can you show how to make a one pole highpass filter?
You just pick the signal at the negative feedback point of the 1-pole lowpass. So you have a multimode 1-pole filter (LP and HP outputs at the same time).

BTW, I'm not sure about the DFII transposed BL integrator. Isn't the transpose the same as the original (should be)? Or was it about a different thing? (no time to read the whole thread)

Regards,
{Z}
^ Joined: 11 Apr 2002  Member: #2472  
neotec
KVRist
- profile
- pm
PostPosted: Thu Jan 05, 2012 7:27 am reply with quote
Z1202 wrote:
BTW, I'm not sure about the DFII transposed BL integrator. Isn't the transpose the same as the original (should be)? Or was it about a different thing? (no time to read the whole thread)

Regards,
{Z}


DF II

Transposed DF II


I don't remember why I chose DF II transposed, but I think it was the best looking thing ... ^^
----
... when time becomes a loop ...
---
Intel i7 3770k @3.5GHz, 16GB RAM, Windows 7 / Ubuntu 12.04, Samson MPL 1502, Yamaha QY70, nord micro modular, Korg Prophecy, Korg M1, Midisports USB 2x2, M-Audio Audiophile 2496
^ Joined: 22 Jan 2007  Member: #136980  Location: Germany
Z1202
KVRist
- profile
- pm
PostPosted: Fri Jan 06, 2012 1:33 am reply with quote
neotec wrote:
Z1202 wrote:
BTW, I'm not sure about the DFII transposed BL integrator. Isn't the transpose the same as the original (should be)? Or was it about a different thing? (no time to read the whole thread)

Regards,
{Z}

DF II
Transposed DF II

I don't remember why I chose DF II transposed, but I think it was the best looking thing ... ^^
I thought we are talking about the BL integrator, in which case I think both forms coincide. Nevermind then.
^ Joined: 11 Apr 2002  Member: #2472  
V@dim
KVRist
- profile
- pm
PostPosted: Sat Feb 25, 2012 10:02 am reply with quote
Hi guys, sorry for some necrophilia, but may I ask a question about this?:

out = lastout;
DO
 copyRealFilterBuffersToTemp();
 newout = tempFilter(input - out * r);
 IF ABS(newout - out) < epsilon THEN
  copyTempBuffersToFilter();
  out = newout;
  BREAK    // we're done, exit the loop
 ENDIF
 // epsilon was not reached, continue iteration
 out = newout;
LOOP
lastout = out;


The code above uses iterative approach to find value of out. But..., what is the reason here for implementing an iterative approach but not just calculate out once?

Let me show what I mean:

Suppose we have this simple filter:
out = (input - lastOut) / 2;

Wouldn't be right instead of lastOut just calculate out once and use that instead of lastOut? Like this:
outTemp = (input - lastOut) / 2;
out = (input - outTemp) / 2;

Or same as:
out = (input - (input - lastOut) / 2) / 2;

Why outTemp is not the final value we want? So why to iterate or what is logic behind that?
^ Joined: 18 Jun 2011  Member: #259027  Location: Ukraine
ralphb
KVRist
- profile
- pm
PostPosted: Sat Feb 25, 2012 12:17 pm reply with quote
V@dim wrote:
The code above uses iterative approach to find value of out. But..., what is the reason here for implementing an iterative approach but not just calculate out once?


Because tempFilter() may be non-linear, at which point it may become impossible to algebraically solve for the value of out. So you can't compute the final value of out analytically.
^ Joined: 29 Jul 2008  Member: #185958  
V@dim
KVRist
- profile
- pm
PostPosted: Sun Feb 26, 2012 2:30 am reply with quote
ralphb wrote:
V@dim wrote:
The code above uses iterative approach to find value of out. But..., what is the reason here for implementing an iterative approach but not just calculate out once?


Because tempFilter() may be non-linear, at which point it may become impossible to algebraically solve for the value of out. So you can't compute the final value of out analytically.


Hmm, now I see Smile.... I'm quite fascinated with these zero-feedback filters, but as usual dsp stuff, have trouble to understand this, so thanks for the answer, now this will be a bit easier Smile
^ Joined: 18 Jun 2011  Member: #259027  Location: Ukraine
antto
KVRAF
- profile
- pm
- www
PostPosted: Sun Feb 26, 2012 3:40 am reply with quote
neotec: i still don't fully understand this voodoo here

your 1st order LP/HP filters use a "fixed" sample prediction which is of 1 iteration at all times?
while the other post proposes the iteration method..

got lots of questions and i still don't get how this works exactly

1) your HP and LP filters, what can be done with them? can they be added together to form a cascaded filter? i guess yes, but then, i think feedback from the last stage to the first won't work without extra code, right?

2) the iterative method - filter buffers you mean the memory? x1 y1 y2 and so on, right?
as far as i understand, for each sample, you use a temporary "filter"
you copy the memory variables from the original filter
then you process 1 sample with the temporary filter, but you don't let it store what it usually has to store in it's memory buffers
then you check it's output..

at first i thought you process with a temporary filter, but i didn't notice you reset the memory every time, and i thought it would begin to resonate (depending on parameters) which seemed to not make sense..
but now it looks like you're processing the thing but NOT letting it resonate, this does make a bit sense if i'm right..

it still amazes me, how can you "predict" the output, my brain simply shuts down
----
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!
^ Joined: 04 Sep 2006  Member: #118997  Location: 127.0.0.1
V@dim
KVRist
- profile
- pm
PostPosted: Sun Feb 26, 2012 10:45 am reply with quote
Quote:
it still amazes me, how can you "predict" the output, my brain simply shuts down


I think it's something like this:
outTemp = (input - lastOut) / 2;
out = (input - outTemp) / 2;

But in another form... (Haven't read KeepTopology stuff because of busyness yet, so I may be wrong about that, I wonder where I get capability and time to read and to understand the paper)
^ Joined: 18 Jun 2011  Member: #259027  Location: Ukraine
Z1202
KVRist
- profile
- pm
PostPosted: Mon Feb 27, 2012 2:52 am reply with quote
Just a quick note here. In doing the iterative approach one has to be careful and consider the convergence of the iteration. At extreme filter settings the most obvious kind of iteration (simple iteration) may fail to converge even in the linear case. Other iterative approaches have their own limitations as well. Even the trapezoidal integration (=bilinear transform) itself has similar problems, which again show up at the extreme settings.

Regards,
{Z}
^ Joined: 11 Apr 2002  Member: #2472  
Caco
KVRian
- profile
- pm
PostPosted: Mon Feb 27, 2012 12:08 pm reply with quote
Z1202 wrote:
Just a quick note here. In doing the iterative approach one has to be careful and consider the convergence of the iteration. At extreme filter settings the most obvious kind of iteration (simple iteration) may fail to converge even in the linear case. Other iterative approaches have their own limitations as well. Even the trapezoidal integration (=bilinear transform) itself has similar problems, which again show up at the extreme settings.

Regards,
{Z}


Yes, I too have found this using the iterative approach. At standard settings it only takes around four iterations but at more extreme settings it can take anything upto 50 iterations. Oversampling and having a good starting prediction help though.
^ Joined: 25 Apr 2005  Member: #66287  
Z1202
KVRist
- profile
- pm
PostPosted: Tue Feb 28, 2012 2:59 am reply with quote
Caco wrote:
Z1202 wrote:
Just a quick note here. In doing the iterative approach one has to be careful and consider the convergence of the iteration. At extreme filter settings the most obvious kind of iteration (simple iteration) may fail to converge even in the linear case. Other iterative approaches have their own limitations as well. Even the trapezoidal integration (=bilinear transform) itself has similar problems, which again show up at the extreme settings.

Regards,
{Z}


Yes, I too have found this using the iterative approach. At standard settings it only takes around four iterations but at more extreme settings it can take anything upto 50 iterations. Oversampling and having a good starting prediction help though.
You're right. However I was talking about the case where the iteration fails to converge at all. I also guess that you can "oversample" just the iteration itself (which probably could be done by inserting an LPF into the feedback loop during the iteration, never tried this though) to mitigate the convergence problems.

Regards,
{Z}
^ Joined: 11 Apr 2002  Member: #2472  
xoxos
Mr Entertainment
- profile
- pm
- www
PostPosted: Sat Apr 27, 2013 10:26 am reply with quote
i'm not sure that neotec is all that frequent a visitor, or inclined to check private messages..

i'd like to use a filter derived from this thread, please contact me before your attorney does Smile i'd also like to know, if permitted, what form of credit you would like.

thank you for this discussion.!
----
neither a follower nor a leader be
http://www.xoxos.net - free vst
^ Joined: 29 Apr 2002  Member: #2639  Location: i might peeramid
All times are GMT - 8 Hours

Printable version
Page 6 of 6
Goto page Previous  1, 2, 3, 4, 5, 6
Display posts from previous:   
ReplyNew TopicPrevious TopicNext Topic
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Username: Password:  
KVR Developer Challenge 2012