What is KVR Audio? | Submit News | Advertise | Developer Account

Options (Affects News & Product results only):

OS:
Format:
Include:
Quick Search KVR

"Quick Search" KVR Audio's Product Database, News Items, Developer Listings, Forum Topics and videos here. For advanced Product Database searching please use the full product search. For the forum you can use the phpBB forum search.

To utilize the power of Google you can use the integrated Google Site Search.

Products 0

Developers 0

News 0

Forum 0

Videos 0

Search  

Integrator filter with delayless feedback path

DSP, Plug-in and Host development discussion.

Moderator: Moderators (Main)

Z1202
KVRian
 
534 posts since 11 Apr, 2002

Postby Z1202; Thu Jan 05, 2012 3:17 am

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}
neotec
KVRist
 
232 posts since 22 Jan, 2007, from Germany

Postby neotec; Thu Jan 05, 2012 7:27 am

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
Image
Transposed DF II
Image

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
Z1202
KVRian
 
534 posts since 11 Apr, 2002

Postby Z1202; Fri Jan 06, 2012 1:33 am

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.
V@dim
KVRist
 
88 posts since 18 Jun, 2011, from Ukraine

Postby V@dim; Sat Feb 25, 2012 10:02 am

Hi guys, sorry for some necrophilia, but may I ask a question about this?:

Code: Select all
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:
Code: Select all
out = (input - lastOut) / 2;


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

Or same as:
Code: Select all
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?
ralphb
KVRist
 
69 posts since 29 Jul, 2008

Postby ralphb; Sat Feb 25, 2012 12:17 pm

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.
V@dim
KVRist
 
88 posts since 18 Jun, 2011, from Ukraine

Postby V@dim; Sun Feb 26, 2012 2:30 am

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 :).... 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 :)
User avatar
antto
KVRAF
 
2309 posts since 4 Sep, 2006, from 127.0.0.1

Postby antto; Sun Feb 26, 2012 3:40 am

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!

irc.freenode.net >>> #kvr
V@dim
KVRist
 
88 posts since 18 Jun, 2011, from Ukraine

Postby V@dim; Sun Feb 26, 2012 10:45 am

it still amazes me, how can you "predict" the output, my brain simply shuts down


I think it's something like this:
Code: Select all
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)
Z1202
KVRian
 
534 posts since 11 Apr, 2002

Postby Z1202; Mon Feb 27, 2012 2:52 am

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}
Caco
KVRian
 
1043 posts since 25 Apr, 2005

Postby Caco; Mon Feb 27, 2012 12:08 pm

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.
Z1202
KVRian
 
534 posts since 11 Apr, 2002

Postby Z1202; Tue Feb 28, 2012 2:59 am

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}
xoxos
Mr Entertainment
 
10629 posts since 29 Apr, 2002, from i might peeramid

Postby xoxos; Sat Apr 27, 2013 10:26 am

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 :) i'd also like to know, if permitted, what form of credit you would like.

thank you for this discussion.!
you come and go, you come and go. amitabha xoxos.net free vst. neither a follower nor a leader be
tagore "where roads are made i lose my way"
Previous

Moderator: Moderators (Main)

Return to DSP and Plug-in Development