Login / Register  0 items | $0.00 NewWhat is KVR? Submit News Advertise
xhy3
KVRer
 
2 posts since 19 Jan, 2014

Postby xhy3; Mon Jun 12, 2017 5:34 am Aliasing suppression in filter feedback loop in a ZFD filter

AUTO-ADMIN: Non-MP3, WAV, OGG, SoundCloud, YouTube, Vimeo, Twitter and Facebook links in this post have been protected automatically. Once the member reaches 5 posts the links will function as normal.

Hi together

I like to suppress aliasing within a zfd filter in the feedback loop. I have found following interesting paper about the topic:

https://www.researchgate.net/publicatio ... onvolution (https://www.researchgate.net/publication/308020367_Reducing_The_Aliasing_Of_Nonlinear_Waveshaping_Using_Continuous-Time_Convolution)

The solution looks promising and easy to implement. The only problem is the delay the filter kernel of this method introduces. I see fig. 9 in the paper, but i'm not sure how to implement that and had no success so far. I also want the tanh only for the feedback signal and not for the whole filter pole when possible.

Here is the filter code:
Code: Select all
m_wcD = 2.0f * fasttan(m_T * Pi * freq) * sampleRate;
float TwcD = m_T * m_wcD;
m_b0 = (TwcD / (TwcD + 2.0f));
m_a1 = ((TwcD - 2.0f) / (TwcD + 2.0f));

k = resonance * 4.0f;

oL = m_s4L + m_b0 * (m_s3L + m_b0 * (m_s2L + m_b0 * m_s1L));
const float b4 = m_b0 * m_b0 * m_b0 * m_b0;
const float divisor = 1.0f / (1.0f + b4 * k);
outputL = (b4 * inputWithoutRefL + oL) * divisor;

float clippedL = k * outputL;
antialiasedClipper.processTanh(&clippedL); // introduces delay (rect filter kernel, maybe 0.5 sample delay)
       
uL = inputWithoutRefL - clippedL;

float future1L = (m_b0 * uL + m_s1L);
m_s1L = (m_b0 * uL) - (m_a1 * future1L);

float future2L = (m_b0 * future1L + m_s2L);
m_s2L = (m_b0 * future1L) - (m_a1 * future2L);

float future3L = (m_b0 * future2L + m_s3L);
m_s3L = (m_b0 * future2L) - (m_a1 * future3L);

m_s4L = (m_b0 * future3L) - (m_a1 * outputL);


Would be great if someone can help here. Thanks!
stratum
KVRian
 
1156 posts since 29 May, 2012

Postby stratum; Tue Jun 13, 2017 4:10 am Re: Aliasing suppression in filter feedback loop in a ZFD filter

The link doesn't work
~stratum~
Miles1981
KVRian
 
1212 posts since 26 Apr, 2004, from UK

Postby Miles1981; Tue Jun 13, 2017 6:05 am Re: Aliasing suppression in filter feedback loop in a ZFD filter

stratum wrote:The link doesn't work

It works in my browser.

Moderator: Moderators (Main)

Return to DSP and Plug-in Development