Avatar

Please consider registering
guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
NLP and filter oversampling
Avatar
Member
Members
September 10, 2018 - 7:47 am
Member Since: August 27, 2018
Forum Posts: 7
sp_UserOfflineSmall Offline

In the book it is mentioned that to mitigate aliasing introduced by NLP one should use "oversampling", without going into much detail.

Now, for a regular biquad, I would normally e.g double sample it by feeding it the same input sample twice and then averaging the result, yielding the same overall frequency response for a cutoff * 1/2. (I could also four or more samples and perhaps even use higher quality FIR decimation.)

However, when doing the same for a filter in this book (the K35), I notice a slightly different frequency response, where it dips near Nyquist, compared to the non-oversampled filter. The same applies to the Moog filter. I can see and even hear the difference when feeding it whitenoise, although it is subtle.

Is this a peculiarity of zero delay topology?

and is there a better suited oversampling technique that is not too expensive ? 

Avatar
Admin
September 10, 2018 - 8:41 am
Member Since: January 29, 2017
Forum Posts: 656
sp_UserOfflineSmall Offline

There are several ways to do sample rate conversion. There is only one proper and legal way to do it, and I detail that in the Polyphase App Note:

http://www.willpirkle.com/app-.....polyphase/

There are numerous other ways to do it that range from "cheap" to almost free, but will usually still lead to aliasing with high gain and input frequency. 

The averaging you are doing is a 2nd order Moving-Average LPF (see FX book Fig 8.29 where M = 5) as the anti-aliasing filter (see app note) which is poor in anti-aliasing selectivity. There are also ways to use IIR filters to do the anti-aliasing (that sometimes involve temporarily reversing time) but the linear phase FIR is the right way to go.

In about a month I will be releasing RackAFX7 with ASPiK. Included in ASPiK projects (which are actually separate from RackAFX itself) is a collection of 54 C++ objects that do signal processing and even custom views (display a spectrum or audio histogram, for example). If you install FFTW on your computer, you can enable "Link to FFTW" which will allow access to the FFTW-based C++ objects. Within those, I've included interpolator and decimator objects along with preset FIR coefficients for a variety of FIR lengths, sample rates, and sample-rate conversion ratios. I've been running my triode tube simulations with 4X oversampling. In release mode with FFTW, the CPU usage is quite nominal. I also ran the Envelope Follower (that is one of the 54 objects) with the 2nd order VA SVF and cranked the nonlinear saturation - sounded fantastic. 

- Will

Avatar
Member
Members
September 10, 2018 - 9:43 am
Member Since: August 27, 2018
Forum Posts: 7
sp_UserOfflineSmall Offline

Thanks! Although I only have the synth book, not the fx book.

I will however look at the polyphase stuff, just afraid it might be too expensive for just 2x oversampling.

I'm also still puzzled as to why a movring average works fine for regular biquad like http://www.earlevel.com/main/2.....-formulas/

but not for the zero delay based filters (korg, moog, svf).

Forum Timezone: America/New_York

Most Users Ever Online: 152

Currently Online:
4 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Chaes: 56

Skyler: 48

Derek: 46

Frodson: 45

Peter: 43

TheSmile: 43

clau_ste: 39

Nickolai: 39

JimmyM: 33

Gwen: 32

Member Stats:

Guest Posters: 1

Members: 738

Moderators: 1

Admins: 6

Forum Stats:

Groups: 13

Forums: 42

Topics: 815

Posts: 3146

Moderators: W Pirkle: 656