New answers tagged

3

Sample rate conversion systems (expansion or decimation) are time-varying operators. For your example system of decimation by $M$ : $$ y[n] = T\{x[n]\} = x[Mn] $$ you can easily see that results of shift in the input and output are not the same; i.e., $$ y_1[n] = T\{ x[n-d] \} = x[Mn - d] $$ and $$ y_d[n] = y[n-d] = x[M(n - d)] \neq y_1[n]$$


3

Below shows design considerations for the filter design and you can use common tools in Matlab/Octave and Python Scipy.Signal to determine the filter coefficients (impulse response) using this criteria. (such as the firls and firpm filter design commands in Matlab). When you insert zeros, you create replicas in frequency such as I show in the diagram below, ...


2

The dot in that summation is just scalar multiplication. And yes, it's a convolution -- you're convolving the input signal by the filter.


1

If you use a high quality interpolator, then you can interpolate a copy of the data at non-integer offsets. If you use a Sinc interpolator on bandlimited data, then the interpolated delayed samples will be near perfect (minus numerical and quantization noise) at any fractional delay (even as close as you can get to irrational fractions using finite width ...


2

My suggestion is to use a Numerically Controlled Oscillator (NCO). A typical NCO effectively has one cycle of a sine wave in memory and can play back that sine wave as a continuous waveform with very high frequency resolution. But this needn't be a sine wave: you could have any waveform in memory and adjust the rate at which it plays back in the same fashion....


Top 50 recent answers are included