Somehow, combining the term "rat's ass" with a clear and concise explanation of your viewpoint makes it especially satisfying.
> On Sep 7, 2017, at 11:57 AM, robert bristow-johnson > <r...@audioimagination.com> wrote: > > > > ---------------------------- Original Message ---------------------------- > Subject: Re: [music-dsp] Sampling theory "best" explanation > From: "Ethan Duni" <ethan.d...@gmail.com> > Date: Wed, September 6, 2017 4:49 pm > To: "robert bristow-johnson" <r...@audioimagination.com> > "A discussion list for music-related DSP" <music-dsp@music.columbia.edu> > -------------------------------------------------------------------------- > > > rbj wrote: > >>what do you mean be "non-ideal"? that it's not an ideal brick wall LPF? > > it's still LTI if it's some other filter **unless** you're meaning that > > the possible aliasing. > > > > Yes, that is exactly what I am talking about. LTI systems cannot produce > > aliasing. > > > > Without an ideal bandlimiting filter, resampling doesn't fulfill either > > definition of time invariance. Not the classic one in terms of sample > > shifts, and not the "common real time" one suggested for multirate cases. > > > > It's easy to demonstrate this by constructing a counterexample. Consider > > downsampling by 2, and an input signal that contains only a single sinusoid > > with frequency above half the (input) Nyquist rate, and at a frequency that > > the non-ideal bandlimiting filter fails to completely suppress. To be LTI, > > shifting the input by one sample should result in a half-sample shift in > > the output (i.e., bandlimited interpolation). But this doesn't happen, due > > to aliasing. This becomes obvious if you push the frequency of the input > > sinusoid close to the (input) Nyquist frequency - instead of a half-sample > > shift in the output, you get negation! > > > >>we draw the little arrows with different heights and we draw the impulses > > scaled with samples of negative value as arrows pointing down > > > > But that's just a graph of the discrete time sequence. > > well, even if the *information* necessary is the same, a graph of x[n] need > only be little dots, one per sample. or discrete lines (without arrowheads). > > but the use of the symbol of an arrow for an impulse is a symbol of something > difficult to graph for a continuous-time function (not to be confused with a > continuous function). if the impulse heights and directions (up or down) are > analog to the sample value magnitude and polarity, those graphing object > suffice to depict these *hypothetical* impulses in the continuous-time domain. > > > > > >>you could do SRC without linear interpolation (ZOH a.k.a. "drop-sample") > > but you would need a much larger table > >>(if i recall correctly, 1024 times larger, so it would be 512Kx > > oversampling) to get the same S/N. if you use 512x > >>oversampling and ZOH interpolation, you'll only get about 55 dB S/N for an > > arbitrary conversion ratio. > > > > Interesting stuff, it didn't occur to me that the SNR would be that low. > > How do you estimate SNR for a particular configuration (i.e., target > > resampling ratio, fixed upsampling factor, etc)? Is that for ideal 512x > > resampling, or does it include the effects of a particular filter design > > choice? > > this is what Duane Wise and i ( > https://www.researchgate.net/publication/266675823_Performance_of_Low-Order_Polynomial_Interpolators_in_the_Presence_of_Oversampled_Input > ) were trying to show and Olli Niemitalo (in his pink elephant paper > http://yehar.com/blog/wp-content/uploads/2009/08/deip.pdf ). > > so let's say that you're oversampling by a factor of R. if the sample rate > is 96 kHz and the audio is limited to 20 kHz, the oversampling ratio is 2.4 . > but now imagine it's *highly* oversampled (which we can get from polyphase > FIR resampling) like R=32 or R=512 or R=512K. > > when it's upsampled (like hypothetically stuffing 31 zeros or 511 zeros or > (512K-1) zeros into the stream and brick-wall low-pass filtering) then the > spectrum has energy at the baseband (from -Nyquist to +Nyquist of the > original sample rate, Fs) and is empty for 31 (or 511 or (512K-1)) image > widths of Nyquist, and the first non-zero image is at 32 or 512 or 512K x Fs. > > now if you're drop-sample or ZOH interpolating it's convolving the train of > weighted impulses with a rect() pulse function and in the frequency domain > you are multiplying by a sinc() function with zeros through every integer > times R x Fs except for the one at 0 x Fs (the baseband, where the sinc > multiplies by virtually 1) those reduce your image by a known amount. > multiplying the magnitude by sinc() is the same as multiplying the power > spectrum by sinc^2(). > > with linear interpolation, you're convolving with a triangular pulse, > multiplying the sample values by the triangular pulse function and in the > frequency domain you're multiplying by a sinc^2() function and in the power > spectrum you're multiplying by a sinc^4() function. > > now that sinc^2 or sinc^4 functions really puts a hole in those images, > reducing the area in those power spectrum images greatly. > > now when we resample at an arbitrary rate, we can expect in worse case that > *all* of those images get folded back into the baseband. > > with 3rd-order B-spline (which i don't recommend) it's sinc^4 in the > frequency domain and sinc^8 in the power spectrum. > > so you have to determine the area of those images (compared to the area of > the baseband image) and add up all of the areas of those non-baseband images > in the power spectrum and that is the noise power (N) in this conversion > process. and the area of the baseband image is the signal power (S). S/N is > your signal-to-noise ratio and 10 log10( S/N ) is your S/R in dB. > > it **assumes** that your filter design choice is perfect and **all** of those > images in between the baseband and (R Fs) are zero. as a *separate* > exercise, you can try to get a handle on the images between baseband and (R > Fs) that your optimally-designed polyphase FIR filter didn't completely kill > and that noise power should add to the other noise power, N, above. > > the point is that, with optimal upsampling, those images at non-zero integer > multiples of (R Fs) get whacked pretty good with the sinc^4 function, which > is what the linear interpolation between subsamples gets you. > > take a look at the "Drop Sample Interpolation" section and the previous > section to get how we get a handle on the theoretical approximations to S/N. > > ____ > > hay, about mixing it up here on music-dsp, i'll take blame for some of it. i > really do sorta pick fights with people who don't approve of my naked dirac > delta functions. here is why i think i can get away with it: > > if you have a nascent impulse (that is a limiting approximation that has > constant area and shrinking width, it could be a rect() or a triangular or > Gaussian pulse), we can't hear the difference between these two pulses if the > area stays constant and the width is reduced from 2 microseconds to 1 > microsecond. as long as no voltage limits are exceeded and everything stays > LTI. the inherent LPF in our ears and head will make those two thin pulses > (but one is twice as thin as the other) sound the same. > > so i don't give a rat's ass about the difference between the nascent delta > functions and the ideal impulse that they are approximating (which is "not a > function", but is a "distribution"). but the "sampling" or "sifting" > property of a single dirac impulse function loses *all* of the data of the > (hopefully bandlimited) input signal that is sampled, except for the for the > value at precisely the impulse time. it doesn't matter what your ADC does, > we can take the numbers that come outa the ADC and attach them to > hypothetical impulses that are uniformly spaced in time, and pass that result > through a brick-wall low-pass filter and get our original bandlimited > continuous-time function back. that's the sampling theorem. > > so, in interpolation, whether it's for resampling for either pitch shifting > or for sample rate conversion or for precision delay, we mathematically > emulate, with a hypothetically zero-stuff discrete-time input, a brick-wall > filter (and, for an FIR, we need not include the hypothetical zero-stuffed > samples in the FIR summation), and resampling at a different continuous time > potentially between adjacent discrete sample instances in the dirac impulse > train that isturned into a windowed-sinc() train by the practical brick wall > filter. > > -- > > r b-j r...@audioimagination.com > > "Imagination is more important than knowledge." > > _______________________________________________ > dupswapdrop: music-dsp mailing list > music-dsp@music.columbia.edu > https://lists.columbia.edu/mailman/listinfo/music-dsp
_______________________________________________ dupswapdrop: music-dsp mailing list music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp