Algebraic minimum-phase variant of sinc function

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Does anybody know how it looks? I have an algorithm to convert discrete linear-phase FIR function into minimum-phase one, but that of course is not the same thing. Googling does not help.
Image

Post

The sinc function is the limit of a periodic impulse train as the period goes infinity. So start with a discrete minimum phase impulse train, increase the period, take the limit.

Post

What is 'discrete minimum-phase impulse train'? I do not think I've ever seen math for it. In either case I'm not a mathematician, so I do not have experience to do such math transformations. If you can do it even for a price, just let me know.
Image

Post

I've always wondered if there was a single equation that could be used to generate minimum phase sinc impulses... Would certainly come in handy :D
Cakewalk by Bandlab / FL Studio
Squire Stratocaster / Chapman ML3 Modern V2 / Fender Precision Bass

Formerly known as arke, VladimirDimitrievich, bslf, and ctmg. Yep, those bans were deserved.

Post

I would try to use the hilbert transform for this, but I'm not sure, wheter this will lead to a closed expression in case of a sinc function. Don't try this at home, baby!

Post

Aleksey Vaneev wrote:Does anybody know how it looks?
this is a bandlimited impulse (BLIT):

Image

...and this is the minimum phase reconstruction of it (let's call it minBLIT?):

Image

concatenation of (minimum-phase) bandlimited impulses gives (minimum-phase) bandlimited impulse-trains.

...and integration of those BLITs leads us to the BLEPs. i'd call the integration of the first 'linBLEP', it looks like:

Image

...and the integration of the latter is well known and celebrated under the name 'minBLEP':

Image

edit: i think, i have confused the terminology a bit: the term 'BLIT' actually does not refer to a bandlimited impulse but to a train thereof (BLIT = Band-Limited Impulse Train).
Last edited by Music Engineer on Sat Mar 03, 2007 6:20 pm, edited 1 time in total.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

oohh, i guess i missed the point of 'looks like' - this is a quest for closed form equation for these plots above, right?
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

I think I've seen an equation for the BLIT in a DSP book or somewhere.

Post

It's in the "Alias-Free Digital Synthesis of Classic Analog Waveforms" paper by stilson & smith...

http://www-ccrma.stanford.edu/~stilti/papers/blit.pdf

And as blit's (or rather the individual impules that make the train) are basicly sinc functions, a minimum phase windowed sinc should look the similar to minimum phase blit..

So braindocs "minBLIT" img is basicly a minimum phase windowed sinc. (obviously with cuttoff frq pretty close to fs/2)

i think, maybe..

Post

braindoc wrote:oohh, i guess i missed the point of 'looks like' - this is a quest for closed form equation for these plots above, right?
Sure thing, I was asking about a finite algebraic equation, in which I can change "t" (and, preferrably, "c" - cutoff point) and have a valid 'min-phase' value (i.e. skipping discretization like in your example).
Image

Post

nollock wrote:It's in the "Alias-Free Digital Synthesis of Classic Analog Waveforms" paper by stilson & smith...

http://www-ccrma.stanford.edu/~stilti/papers/blit.pdf

And as blit's (or rather the individual impules that make the train) are basicly sinc functions, a minimum phase windowed sinc should look the similar to minimum phase blit..

So braindocs "minBLIT" img is basicly a minimum phase windowed sinc. (obviously with cuttoff frq pretty close to fs/2)

i think, maybe..
No, it's not the same thing. I already know formula for ideal linear-phase low-pass function (sinc). But I would like to know a similar formula, for a similar ideal low-pass filter, but which produces result similar to min-phase transform one does to transform FIR filter produced from sinc function evaluation. I.e. direct formula which produces ideal min-phase low-pass filter 'in one step'.
Image

Post

Aleksey Vaneev wrote:I already know formula for ideal linear-phase low-pass function (sinc). But I would like to know a similar formula, for a similar ideal low-pass filter, but which produces result similar to min-phase transform one does to transform FIR filter produced from sinc function evaluation.
what do you need this for - i mean what is the advantage of a FIR above a classical IIR-design (say elliptic or so), if not its linear phase property? the classical IIR-designs are (as far as i know) minimum phase in the first place.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

I'm spying on this thread. :) As you were...

Post

braindoc wrote:what do you need this for - i mean what is the advantage of a FIR above a classical IIR-design (say elliptic or so), if not its linear phase property? the classical IIR-designs are (as far as i know) minimum phase in the first place.
Ok, I'm showing my cards (right out of my head).

Biquad IIR filter contains two parts: FIR (numerator) and IIR (denominator) part. IIR part is the same as FIR, but technically works as response inversion/deconvolution (and is infinite due to its feedback topology). Coefficients of both parts should be multiplied so that first element of IIR part is 1.0 (for the biquad filter algorithm to work).

So, since both parts are equal in their "filtering nature" we can use resampling on both parts.

What this means? I can take [a0 a1 a2] FIR coefficients, and resample them to any required samplerate using sinc function (it's a straightforard thing and is very efficient in calculation times) - the mathematical representation of such resampling is infinite (it is a sum of 3 weighted sinc functions), but I'll be taking only 3 resampled elements thus performing kernel truncation. Then I can do the same on [b0 b1 b2] IIR (deconvolution) coefficients. After such resampling I can divide all elements by b0 and have 5 standard biquad coefficients.

The problem is, if I resample using linear-phase sinc function, truncation I'm talking about will be very rough - probably even unacceptable, as the filter after such resampling becomes a bit linear-phase as well (in its sinc cutoff band). So, I have to use minimum-phase sinc-function so that truncation artifacts are minimized.

Now, why do I need such resampling, at all? Take, for example, RBJ biquad equations. They are fine as long as you are designing filters with lower center frequencies. But when you are approaching Nyquist/2, filter starts to distort (to say it easier, equations are simplistic and they can't cope with Nyquist/2 frequencies where "z" phase shift progresses quickly).

In the approach I'm describing all you need is to design filter at center frequency of 1.0 Hz. Then, using resampling, move this center frequency to whatever frequency you need, while at the same time applying a required 'ideal' cutoff built-in into the sinc function.

With such approach you can even specify target center frequencies that are far above Nyquist/2.

And you can apply this approach to ANY biquad (or higher order) filter, with 'octave-independent' EQ curve.

Now, all I (and probably all of you) need is a simple minimum-phase sinc formula.

OK, this approach can be checked for validity using discrete minimum-phase filtering, but it won't be usable in real applications due to high amount of computations required. (while having a simple minimum-phase sinc formula this method requires only 3 formula evaluations per filter coefficient).

To sum up, this approach is theoretically correct, but may require increasing biquad to 3rd order IIR filter for stable results.

(sounds like band-limited resampled bi-linear transformation filter design, or Vaneev's filter design method - if it works, of course ;))

edit: on the other hand, if we band-limit the IIR part it will go crazy if we use it for division - but on yet another hand this craziness is moved beyond Nyquist/2, so it may not manifest itself in real implementation.
Image

Post

OK, after experimentation I have concluded that this approach does work as expected, but requires a much higher target filter order (not even 3rd) - somewhere around 4000 (ouch). :) This is required to support such steep "sinc" cutoff. Without this, original EQ curve supplied by FIR/IIR triplets is not restorable.

So, the method I've shown requires more thinking. (probably there is way to extract resampled EQ curve that is close to original EQ curve (plus shift) from such band-limited variant)
Image

Post Reply

Return to “DSP and Plugin Development”