---------------------------- Original Message ----------------------------

Subject: Re: [music-dsp] Sampling theory "best" explanation

From: "Ethan Duni" <ethan.d...@gmail.com>

Date: Tue, September 5, 2017 1:07 am

To: "A discussion list for music-related DSP" <music-dsp@music.columbia.edu>

--------------------------------------------------------------------------



> rbj wrote:

>

>>1. resampling is LTI **if**, for the TI portion, one appropriately scales

> time.

>

> Have we established that this holds for non-ideal resampling? It doesn't

> seem like it does, in general.
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.


> If not, then the phrase "resampling is LTI" - without some kind of "ideal"

> qualifier - seems misleading. If it's LTI then what are all these aliases

> doing in my outputs?

>

>>no one *really* zero-stuffs samples into the stream

>

> Nobody does it *explicitly*
people using an IIR filter for reconstruction might be putting in the zeros 
explicitly.
> but it seems misleading to say we don't

> *really* do it. We employ optimizations to handle this part implicitly, but

> the starting point for that is exactly to *really* stuff zeroes into the

> stream. This is true in the same sense that the FFT *really* computes the

> DFT.

>

> Contrast that with pedagogical abstractions like the impulse train model of

> sampling. Nobody has ever *really* sampled a signal this way, because

> impulses do not exist in reality.
it's the only direct way i can think of to demonstrate that we are discarding 
all of the information between samples, yet keeping the information at the 
sampling instances. it's what dirac impulses are for the "sampling" or "sifting"
property (but the math guys are unhappy if we don't immediately surround that 
with an integral, they don't like naked dirac impulse functions).

>

>>7. and i disagree with the statement: "The other big pedagogical problem

> with impulse train representation is that it can't be graphed in a >useful

> way." graphing functions is an abstract representation to begin with, so

> we can use these abstract vertical arrows to represent >impulses.

>

> That is my statement, so I'll clarify: you can graph an impulse train with

> a particular period. But how do you graph the product of the impulse train

> with a continuous-time function (i.e., the sampling operation)? Draw a

> graph of a generic impulse train, with the scaling of each impulse written

> out next to it? That's not useful.
and that's not how we do it, of course. �we draw the little arrows with 
different heights and we draw the impulses scaled with samples of negative 
value as arrows pointing down. �just as it might look if you had nascent deltas 
of *fixed* width
in time, and multiplied those times your continuous input signal.
>
>>if linear interpolation is done between the subsamples, i have found that

> upsampling by a factor of 512 followed by linear interpolation >between

> those teeny-little upsampled samples, that this will result in 120 dB S/N

>

> What is the audio use case wherein 512x upsampling is not already

> sufficient time resolution? I'm curious why you'd need additional

> interpolation at that point.

>
asynchronous sample rate conversion. �SRC with a conversion ratio of 1.00000001 
(this is the ASRC case when connecting two devices each with their own master 
clocks, no one is a slave) or a ratio of 48000/44056.01 or a ratio of pi (dunno 
why anyone would want that). just an arbitrary
SRC ratio that is not k/512 where k is some integer. �if k *is* known to be an 
integer, you would not need to compute *two* polyphase output subsamples and 
linearly interpolate.
oh, and also for an arbitrary precision delay that is not expressed as k/512 
samples delay where k is some
integer.
see, the deal is that any of the polynomial interpolations; Lagrange, Hermite, 
B-spline (all of which includes linear interpolation as their 1st-order case) 
has infinite resolution, but the polyphase FIR lookup table does not. �but you 
can combine the two to get an
optimally-designed brickwall LPF (using Parks-McClellan or using firls()) *and* 
get arbitrarily fine resolution.
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. �and you can do it with a *smaller* unsample ratio than 512 if you use 
3rd order polynomial and that's where it makes a
difference between the choice of Lagrange or Hermite or B-spline, but that 
costs much more computation. �you have to compute 4 adjacent subsample values 
(instead of 2 for linear interpolation) and then you have to do a big nasty 
3rd-order polynomial to weight *each* of those 4 samples and
combine. �with linear interpolation, an 8K coefficient table is not so damn big 
and evaluating 2 subsamples is not so bad and linear interpolation is not so 
bad. �so that's where i made an "engineering decision" to stop there. �
if there is a case where the memory is
soooo tight that the coefficient table is too costly, i have just done 
3rd-order Hermite. �i can show you some SHArC code that does it as optimally as 
i could (i dunno, more than a dozen instructions, but not two dozen). �so it's 
only 3rd-order, but the derivatives are continuous and it
doesn't sound half bad. �B-spline would probably be better but the 
pre-interpolated data needs a little bit of a high-shelf boost to compensate 
for the stark sinc^4 rolloff in the baseband.
linear interpolation has a sinc^2 roll off and with 512x oversampling, no one 
gives a rat's ass
about that roll off.
�
"That's my story and I'm sticking to it." �:-)



--
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

Reply via email to