Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright

resonator, filter and delays??

DSP related issues, mathematics, processing and techniques

Re: resonator, filter and delays??

Postby martinvicanek » Sat Jun 28, 2014 7:08 am

Nubeat7 wrote:i only need to take care of the groupdelay which is 2 samples at second order filters like biquads?

so am i right when i just subtract 3 samples from from delaytime to compensate delay and biquad filter?

It is not that simple. The delay is not just 2 samples for biquads but depends on filter parameters and is different for different frequency components of the input signal (as your linked page shows). What matters here is the phase delay not the group delay. If you post your resonator schematics I can try to help you more specifically.
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Re: resonator, filter and delays??

Postby KG_is_back » Sat Jun 28, 2014 8:45 am

Why are you compensating the biquad delay by 2 samples? the biquad shouldn't introduce any delay by default. You can easily check that b using peaking/shelving filter and setting the gain to 0dB.
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: resonator, filter and delays??

Postby Nubeat7 » Sat Jun 28, 2014 7:32 pm

KG_is_back wrote:Why are you compensating the biquad delay by 2 samples? the biquad shouldn't introduce any delay by default. You can easily check that b using peaking/shelving filter and setting the gain to 0dB.


i thought because because of this part at the end of the code:

Code: Select all
x2=x1;
x1=in;


...
anyway i did some more research the last days and also found a thread on KVR about 'how to get phase response of a biquad' : http://www.kvraudio.com/forum/viewtopic.php?p=5225317

and i tried to port this into FS, sadly FS offers no atan2 which would be needed and my skills are not enough to make this, further there are some other things which are not clear..

thanks guys for your patience - this is completely new dsp area for me but i need to understand it one day and your answers bring me closer to it
Last edited by Nubeat7 on Sun Aug 02, 2015 6:38 am, edited 1 time in total.
User avatar
Nubeat7
 
Posts: 1347
Joined: Sat Apr 14, 2012 9:59 am
Location: Vienna

Re: resonator, filter and delays??

Postby KG_is_back » Sat Jun 28, 2014 9:35 pm

Nubeat7 wrote:i thought because because of this part at the end of the code:Code: Select all x2=x1; x1=in;


If you look more closely you see that
Code: Select all
y0=b0*x0+b1*x1+b2*x2-... //the output consists of all inputs ranging from the actual input and the previous ones


Filter is basically a code (or a circuit/rezonator) that adds inputs and outputs along with their previous versions in a way, that certain frequency elements get boosted/damped and delayed while others don't.

One very simple way to explain this is the way they were invented.

Led's say you have a digital signal (a sequence of values) that changes rapidly and you what it to have more stable values. So you say, let the output be 50% the input and 50% previous output. Logically that means you reduce the change between those to by 50%.

Code: Select all
b0=0.5;
a1=-0.5; //We use negative a1 that is later subtracted for a reason I can't really explain

y0=x0*b0-y1*a1;
y1=y0;

if you enter sequence
0 , 0.5 , 1 , 0.5 , 0*, -0.5 , -1 , -0.5 , 0
it will put out
0 , 0.25 , 0.625 , 0.4625 , 0.2312* , -0.01975...
As you can see the changes in signal are smaller, but also the signal is shifted in time ( in the first signal, the zero is crossed exactly at fifth sample - in output it is somewhere between 5fth and 6th closer to 6th )

In terms of frequency that means you leave DC (constant part of the signal) untouched and Nyquist frequency (instant rapid changes) reduced to 0.5. Slower Changes are reduced in smaller way, than fast ones - lower frequencies are passed, high frequencies are cut. You have just constructed a simple low-pass filter.

Much more smarter mathematicians then we are have taken this even further. They invented Fourier transform that let you analyze frequency response and phase shifts on signals and Z-transform to calculate A and B coefficients or filters for specific frequency and phase response desired.

I hope this little explanation helps...
KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: resonator, filter and delays??

Postby martinvicanek » Sat Jun 28, 2014 10:40 pm

Here is a little test setup for delay estimation. A sine wave is fed into a biquad lowpass filter and compared against the original. The resulting delay can be measured by evaluating zero crossings. As you see, it may well exceed 2 samples.
capture.png
capture.png (49.22 KiB) Viewed 23837 times

I have also included a calculated delay from the real and imaginary parts of the transfer function. This may be a bit CPU intensive, so I have also thrown in a (much cheaper) low frequency approximation (which may or may not be sufficient).
PhaseDelay.fsm
(24.74 KiB) Downloaded 1367 times

I'll try to apply this to your (Nubeat7) schematic tomorrow. I see you have both a lowpass and a highpass in the feedback loop, so that's something to consider.
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Re: resonator, filter and delays??

Postby martinvicanek » Sun Jun 29, 2014 11:54 am

Okay so here is what I got so far. The lowpass delay compensation works quite well, octaves stay nicely in tune. I also checked with a reference sine tuned to the fundamental frequency.

However, I don't know how to go about the highpass delay. While it is possible to compensate the delay for the fundamental, the harmonics will in general be off because there is dispersion. This actually makes things worse when the highpass cutoff is above the fundamental. In that case it is better to disable the delay compensation.
Attachments
resx002.fsm
(1.04 MiB) Downloaded 1330 times
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Re: resonator, filter and delays??

Postby Nubeat7 » Sun Jun 29, 2014 4:46 pm

thank you martin, it works great with the lowpass! it sounds much better now :)

as you said with the HP it is better to leave it..

btw. i was wondering about the midi to poly primitive which you are using in your previous version, it doesn`t exist in my FS version - also useful for the toolbox.. :)
User avatar
Nubeat7
 
Posts: 1347
Joined: Sat Apr 14, 2012 9:59 am
Location: Vienna

Re: resonator, filter and delays??

Postby martinvicanek » Sun Jun 29, 2014 9:37 pm

Nubeat7 wrote:btw. i was wondering about the midi to poly primitive which you are using in your previous version, it doesn`t exist in my FS version

I probably took it over from SM.
User avatar
martinvicanek
 
Posts: 1328
Joined: Sat Jun 22, 2013 8:28 pm

Previous

Return to DSP

Who is online

Users browsing this forum: No registered users and 29 guests