Hi Guys,
Few comments I have in mind please correct me if you don't agree with something
Perhaps I misused the term aliasing - I was using it as short hand for the erroneous results arising from sinc(x) interpolation when the signal is not band limited to below the Nyquist frequency.
Well aliasing in my opinion is not a result of an interpolation. It is actually result of a sampling of the analog signal with bandwidth more than Nayquist rate (half of sampling rate). In this case we have 'folding' of the high frequency components in the signal main frequency band and this is unrecoverable by any means.(We have to increase the scope sampling frequency (reduce time base) to fix). If however the Nyquist rule is met then we can use interpolation to recover (show on screen) the exact 'analog' signal (this is done by interpolation)
Interpolation is a way to reconstruct the analog signal from the sampled data and this is what the DSO tries to do - after all we want to see picture on screen as close as possible to the original analog signal.
-If we know that our analog signal has no energy above current scope Nayquist rate (fs/2) we should use sinc interpolation.
For example if I have 100Mhz scope and I think I have analog signal covering roughly those 100Mhz and if i sample with 500Msamples/s (to get bigger time frame for example) It is very important to turn sinc interpolation on, as in this case for the fast frequency components the scope got only 5 points per period and interpolation will greatly provide the 'true' analog behavior in between sampled points.
-If we know we sample much faster then the signal band width (20 times for example) then we know we have captured all signal details with enough sample points so interpolation is not that important anymore in my opinion.
- If we sample with rate below signal bandwidth*2 we know we have aliasing for sure. This is more subtle and my thinking are as follows:
In this case sinc interpolation will show on screen picture less accurate then if we use linear interpolation. This is because sinc interpolation means filtering with ideal brick wall with cut at fs/2. Linear interpolation is equivalent with filtering with sinc^2 filter with nod at fs - bigger bandwidth of interest, so in this case we get more true signal energy shown on screen.
Probably this is why Roigol switches the interpolations (linear sinc) as it was mentioned before?
- If we have analog signal 1Ghz band but my scope is only 100Mhz and I have set fs=1Gsamples/s then we don't have much aliasing because the scope analog channel filter will probably drop down a lot at the Nyquist rate 500MHz and we will see on scope the 'true' part of the signal with energy in the band below 100MHz. (in this case we have no clue about the part above 200MHz let say but important is that this doesn't affect the accuracy of what scope shows)
This (rather old) LeCroy app note gives some experimental results.
http://cdn.teledynelecroy.com/files/whitepapers/wp_interpolation_102203.pdf
Thank you jpb it is very useful readings!
Probably someone can try with Rigol DS2000 to experiment with the edge and sine wave test
they described in this document?
Presumably upsampling and then digital filtering would be equivalent to linear interpolation followed by a low pass digital filter.
Well I think this is the way Rigol actually do the interpolation I think. Yes this is a complex thing if you need to do on the whole sampled data real time but note that they probably do this only on the sampled data currently fit on the screen (1400 byte as Marmad noted).
So what they do I think for sinc interpolation is check how many original data points fit in the current screen.
Calculate how much they need to up sample so have enough points on screen - n. Insert n-1 zeros in between each original sample points and then filter with sinc filter (approximation of it )(ideal brick wall fs/2 in frequency domain) and the result is 1400 bytes shown on screen.
Of course if we have sampled data on the current screen more then 1400 bytes no need to sinc interpolate.
Regards
Dimitar