Author Topic: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?  (Read 39696 times)

0 Members and 1 Guest are viewing this topic.

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Hello!

I have look "Rigol DS1102E Bandwidth problem" video (InstrumentVu)
( )

After this video I start some inspection.

In this video I see littlebit bad BW problem.
First I think that it is natural becouse Rigol use in lon memory mode 500Ms/s splitted to two channel (in two channel mode) So it is 250Ms/s CH1 + 250Ms/s CH2.

But something is still wrong... I think and look it many times.. also I start test with my own. (before my own BW test was really good. But I did not test Sinx and two channel in long-mem mode)

Oscilloscope is "100MHz". Of course it is good to carefully read machine specifications and also understand these before thinking what it can do and what not. Sad that Rigol have write specs where manufacturer do not tell this clearly in specs table. In specs table read that 500Ms/s (but not tell that it is splitted with two channel in LongMem mode).

On this video I see BW problem and I can easy see that something is wrong now becouse there is Sin(x)/x interpolation. Clearly it can not be so bad if all is ok. I remember Agilent related old article. This is not what I can expect with my experience with scopes. Also I know that analog channel in this scope is enough good. (I have tested it very carefully, freq response and risetime) This BW problem looks strange. Thinking...Nyquist..

I make some inspection with my scope in my lab. Oh what I see. Now my opinion is that Rigol have made something wrong! They need very fast do firmware update if problem is there.

With well made analoque channels and all other parts freq response and filtering this sample rate and right Sin(x)/x interpolation must give better BW.
(please read this article: http://i.cmpnet.com/planetanalog/2009/02/Sin(x)x_Agilent.pdf
Sin(x)/x Interpolation: An Important Aspect of Proper Oscilloscope Measurements
By Chris Rehorn, Agilent Technologies)

Here is pictures from my test and from this article.

http://www.box.net/shared/7ucvts853u

This picture is combined pic: inputs 100MHz.
Oscilloscope in LongMem mode, realtime. Lines: Sinx OFF, curves: Sinx ON and this made for just same captured signal.

Compare this with picture inside article:

http://www.box.net/shared/ng11pyctka

(I'm sorry I can not insert pics directly forum)


after this work I make my own opinion: Rigol have make mistake in Sin(x)/x handling. (I hope it can solve with new firmware. More bad it is if this stupid error is not in firmware. (I do not know how this is processed inside machine) This kind of error must not be in production so that customers need find it. This work need do inside Rigol test lab before as in prototype period! 
This problem can only littlebit avoit if use (slow) averaging and/or Equ-Time sampling mode.

I think Rigol need to take receive "consultation".  They need ask apologize from customers and very fast correct this issue if they want keep they faces.




I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #1 on: March 06, 2010, 02:10:42 pm »
Sin x/x has trade-offs in implementation. Closer the Nyquist you want to go, more samples you'll need to do the interpolation, and the step response becomes more ringy. 100 MHz is quite close to the 125 MHz Nyquist (ratio of 0.8). Strictly speaking, the sampling theorem deals only with stationary signals. Transients are considerably more difficult to deal with, and that is unfortunately the primary usage what we use oscilloscopes for.

CD players reproduce 20 kHz sine with only 44.1 kHz sampling rate quite nicely (ratio of .91), but in expense of relatively long latency. Of course that does not matter for that particular application.

Of course this drop in effective bandwidth should be mentioned in the manual.

Regards,
Janne
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #2 on: March 06, 2010, 03:25:22 pm »
But Rigol do this mathematics wrong. There is error in softw. It is very easy to find if look these pictures and result with open mind and tightly also remember and undertand what is basics for sinx. Agilent paper it is right, Rigol solution is wrong!
I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #3 on: March 06, 2010, 08:29:46 pm »
I see that interpolated curve does not match the sampling points. It is just due to choice of cut-off-frequency in lowpass-filter to do the sin x/x. Sin x/x is the impulse response function for ideal low-pass filter. However, sin x/x is not time-bounded function and thus to exactly calculate the result, one would need infinite number of samples to reconstruct the waveform. Thus in practice, one must truncate the function and the result is not exactly the input waveform. Another thing is that it is not feasible to calculate the interpolation directly in real time other than using the FIR-filter version (at least with this kind of sampling rate and price).

I'd say based on that evidence that the filter function is correct but cutoff of the interpolation function (e.g. FIR-filter) is just on the low side. For my Agilent MSO6034, specification says that sin x/x cutoff is sample rate/4 or analog bandwidth whichever is less, thus the theoretical maximum. Can you measure what is the cutoff exactly, i.e. when the interpolated waveform approximately match the sampling points?

Regards,
Janne
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #4 on: March 07, 2010, 07:46:53 am »
Hello!

I have tell that Rigol manual have wrong information. Yes, in my manual but, something have also happend...

Rigol have now new datasheet: DS1000E Series Datasheet 2010-03-02

and in this datasheet is corrected samplerates as you can see in this partial copy:

http://www.box.net/shared/g1iq9n4d6f

Also new user manual (jul 2009) have this right info.
(I have read old versions what I have)

Can find Rigol "better" internet sides: (not ...rigolna!) These sides have also FW updates to download.
http://www.rigol.com/templates/T_Support_en/download.aspx?nodeid=637&pagesize=6&pagenum=10

back to topic. Later  as I have time I try some more look  for this sinx/x cutoff
« Last Edit: March 07, 2010, 08:10:04 am by rf-loop »
I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #5 on: March 07, 2010, 07:32:24 pm »
Another thing is that it is not feasible to calculate the interpolation directly in real time other than using the FIR-filter version (at least with this kind of sampling rate and price).

I'd say based on that evidence that the filter function is correct but cutoff of the interpolation function (e.g. FIR-filter) is just on the low side.

jahonen: After more testing, I think about the same.
-----------------------------

Here is picture: http://www.box.net/shared/ufsr6rq45r  (download it and look with original size! )

Picture tell maybe enough. Exactly cutoff freq I do not still know. (or there is not ;) )
In picture there is several measurements with different frequencies with same level input signal.
1 to 100MHz.



Also some risetime test. Input 50 ohm terminated and source HP8161A pulse generator. HP risetime around <1,3ns. Pulse period now 100ns and width 50ns. Amplitude 350mV. Scope 50mV/div. Scope 2ns/div  250Ms/s.
Sinx ON long time average risetime ~6,4ns.
Sinx OFF long time average risetime ~5,25ns

After this if I can "only thinking with eyes":  My opinion is that 1102 is maximum "~50MHz scope" if use 2 channel and LongMemory mode.
I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline Mark_O

  • Frequent Contributor
  • **
  • Posts: 939
  • Country: us
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #6 on: March 20, 2010, 12:20:23 am »
Another thing is that it is not feasible to calculate the interpolation directly in real time other than using the FIR-filter version (at least with this kind of sampling rate and price).

I'd say based on that evidence that the filter function is correct but cutoff of the interpolation function (e.g. FIR-filter) is just on the low side.

jahonen: After more testing, I think about the same.

Here is picture: http://www.box.net/shared/ufsr6rq45r  (download it and look with original size! )

rf-loop,

your first signal captures looked pretty bad, and seemed to exhibit a failure to fit.  However, the problem there was that due to randomness, the instantaneous high-excursion samples you captured were not the same samples that the sin(x)/x interpolated.

This was confirmed by your excellent mosaic series.  In each case, the instaneous single captures fell within the envelopes of the sin(x) on the persistent traces.  Also, the Agilent article you referenced by Chris indicated waveform reconstruction could be successful with as few as 2.5 samples per cycle.  And at 250 MSa, it just barely meets that criteria.  Of course, to be most effective, you need very good filters for that, which the Rigol probably suffers a bit on.  But I do think it still qualifies as more than a 50 MHz scope, as you suggested.

Lastly, if there was anything actually wrong with the sin(x)/x implementation, I'm doubtful that Rigol could do much about it.  Most likely, this function is calculated by the DSP chip (a 400 MHz Analog Devices BlackFin ADSP-BF351 chip).  You can read more about them at Analog Device's site.

- Mark
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #7 on: March 20, 2010, 03:22:02 pm »
Mark_O

Pictures.

I have first run scope with Sinx OFF. Persist infinite. (so that can look all area what ADC samples have make)
After enough "persist" I have STOP scope. Then I store picture where you see lines between sample points and see all this "persist".  Then I switch Sinx ON. (scope remais STOP) And now Sinx curve is on same perist what is on upper picture. So, lines and Sinx are produced exactly from same ADC data points! These all pictures upper and lower are made with same rules.

"Sinx" curve do not hit any real sample point as it need do if sinx function is well made.

You can test it yourself.

Run scope with example 50 ...100MHz sine signal.... mode line... persist infinite.... long mem 2 channel (so this can see more clear becouse samplerate 250Ms/s)

After you see display as my upper pictures... press STOP

On the STOP state switch Sinx ON -- OFF -- ON .........

After this you maybe give opinion if something is wrong or not?  You can take pictures and look them as transparent...you can see where Sinx curve hit lines or most important... TRUE sample points. Sinx can not forget real samples... just as Agilent teach us.

I have see hundreds of oscilloscopes. Some of these are digital scopes and some of these have also Sin(x)/x.
Never I have see this kind of "sinx"what Rigol now show. (this is not big problem and most of things I am very satisfied specially in this price class)
 Some tell me that it is expensive and take time to make sinx ok.
I can ask... how my one Tektronix from 80's can do it without problems. Yes it is digital scope, CRT (vector)monitor, tiny old microprocessor... it do not lost any real sample points as it do some kind of Sinx and it do not need long capture of data as it do it. It do it more fast what my eyes never can separate. (model is TEK2440 workhorse) And just same with many Agilent/HP old workhorses. Now we speak about machines in y2k what have digital processing capacity just with different decades of handling power

Now we have machine with Blackfin processor, Altera, 10 * 100MHz (independent what is ADI code) ADC's and this machine can not do  better Sinx... really this sinx func button name is wrong. This scope have never see Sinx. This is not problem for me but... take example EEVblog one video... BW problem... yes it is not only Sinx but it makes it more worse becouse it works wrong (and sometimes I think that before make some public...maybe it is better first inspect and think and then do it also with data and not only with shaking all things like....).
For me it is like cosmetic problem becouse I do not need Sinx at all. (becouse this kind of construction can not do it right, it brokes all rules...)

But with this small detail I hope Rigol make better work. Overall this is good equipment in its class.

So maybe I want littlebit "adjust" this FW and change this function name in menu... ;) ;)
(but I do not want flash in new FW becouse I can not know how to take back if something goes wrong)
« Last Edit: March 20, 2010, 04:48:18 pm by rf-loop »
I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline armandas

  • Frequent Contributor
  • **
  • Posts: 336
  • Country: jp
    • My projects
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #8 on: March 22, 2010, 10:35:14 am »
I tried this with a 125MHz signal (see attached pictures). With the settings I used to measure, the sin(x)/x seems to be working.
I used only one channel, long memory - with two channels enabled, my waveform was jumping around like crazy. While it was jumping, I thought I'd set the acquisition mode to average, and the sin(x)/x seemed not to work in this case. This may be firmware bug or something, I don't know.
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #9 on: March 22, 2010, 11:19:47 am »
Yes it  "works" just like your nice pictures.  

Yes it "looks like" Sin(x)/x BUT it override every single true sample points! True digitized sample points are only "true" what are meaningfull and Rigol loose all them with this kind of bad "sinx".
« Last Edit: March 22, 2010, 02:40:37 pm by rf-loop »
I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline armandas

  • Frequent Contributor
  • **
  • Posts: 336
  • Country: jp
    • My projects
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #10 on: March 22, 2010, 12:10:35 pm »
Yeah, I see your point now.
 

Offline colinbeeforth

  • Contributor
  • Posts: 33
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #11 on: April 02, 2010, 09:33:24 am »
From what the video shows, no fault needed to explain what is observed.  the scope is workin gfine, it is an alias, plain and simple.

Hit the scope with 100MHz, and sample at what?  The timebase setting is 2 nanoseconds per division or displaying a total time, screen left to right of (menus on) 20 nanoseconds.  With a single channel running, the digitiser is sampling at 1 gigasample per second, you have got only 20 actual valid samples to show two complete sine waves - marginal.  When you switch to two channels, there are only 10 samples as the digitiser is shared between the two channels.  To reconstruct a rough representation of a sine wave you need at least 10 samples per sine wave.  Alias.  Nothing special, no errors, just undersampling.  The loss of amplitude demonstration is also no fault.  Sinx/x interpolation is the worst most stupid concept ever invented, and it has caused huge amounts of grief.  I sold high end DSOs for a few years, and saw heaps of side by side shoot outs, and quizzical customers.  Sinx/x interpolation tells lies (I'm not exaggerating) by drawing nice sine waves through miserably undersampled waveforms - they look pretty, but bear little resemblance to what might actually be there.  Don't use sinx/x ever, is my recommendation, it just tricks the brain into thinking "It looks good, maybe it's true."   It is downright dangerous.  LeCroy knew this and never had sinx/x interpolation on any of their earlier high powered scopes - but I have not looked at their range for 5 years, so I don't know what they do know.  Why it is a good idea to ony have linear interpolation? - if you under sample, the waveform looks like the Italian Alps and it is so distinctive, you know immediately to not trust the results as it is undersampled.  Many people seem to get it into their heads that 1 nanosecond sampling time is slow - it's blingingly fast, and we can't go a lot further without some serious money or new physics.  A light beam travels only 0.3 metres in that time for heaven's sake!  For the price, Rigol's 1 nanosecond is quite amazing.

There is a real problem in all of these small DSOs though.  And it is every bit as serious, maybe worse, it's display alias.  Assume 2 channels, say 1millisecond/division, a single shot sweep captures 240k points at 20 megasamples per second - which is an impressive amount of data.  Say there is a glitch in there, with just one data point 3 times higher than a long series of TTL pulses.  Will you see it?  It's highly unlikely.  The actual acquisition memory will be filled to 240k, but only about 112,500 of these points are displayed, or are they?  Since the waveform display area, with menus off, is only about 280 pixels wide.  How are the 112,500 data points reduced to be shown on the 280 horizontal pixels of the display???  There is your problem, the data is decimated, chopped out and reduced to only showing approx 0.28% of the total data points.  How on earth can you expect to see a glitch or spike with that???  Your chances of seeing it are very very slim.  That is a far more important issue than the screen update rate.  Who cares if it updates at 1000s per second, I can't see 24 frames per second with any reliability, and LCDs are slower to respond than that.  This makes the DSO is almost totally blind to spikes, and all that amazing acquisition memory is effectively rendered useless.

So, what is that you're saying?  Switch on that annoyingly slow Peak Detect mode?  Why should I do that?  I didn't see anything wrong.  Use zoom, and wind the knob through 112 thousand data points?  That is tedious as hell, and I didn't see anything that would make me the slightest bit suspicious that it was necessary.  Unless someone can explain how the DSO gets around this problem, I think we have a deal breaker for cheap DSOs.

Granted, if my primary work was unravelling the nightmare of USB or serial eeprom comunications, I could pretty much ignore glitch display, as I'd be using zoom all the time, to grind my way along the serial data stream and work out what was happening.  By comparison, an analogue scope scans the screen for for 50% or more of the time (the invisible retrace is quick).  Between the slow response of the human eye and the phospor, I'd see a flicker that would make me suspicious.

I have an older LeCroy 9310M.  If set to its max 50k acquisition length, then display a waveform 50k long with one single point at 15 volts over the top of a 0-5V pulse stream, and you will see that point on the screen without fail and without having to invoke any capture systems or take any other activity.  It it's there, it'll show you.  That is what all DSOs need to do, to be as useful as an analogue scopes..  I dearly hope that someone can explain why the Rigol 1052E will show this in it's display,  I would buy one - getting parts for the LeCroy is a nightmare and I know I won't be able to keep it going for ever, but I don't want to only have a 1 in 400 (0.25%) chance of seeing something that turns up, and sure as eggs, it's the thing you don't see that will bite you on the rear...

Cheers, Colin
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #12 on: April 02, 2010, 11:27:06 am »
May be you can explain what is wrong in this Chris Rehorn article:

http://i.cmpnet.com/planetanalog/2009/02/Sin(x)x_Agilent.pdf

As long as we do not violate Nyquist... and this is VERY important point to remember!
(example, some peoples may be think that more wide analog bandwith is good... no... it is not! (and it is very important also if we think aliasing... (I have not see cheap oscilloscope where is (very expensive) analog front end and analog adjustable filter and parameters are adjusted with samplerate)

I think also that Sin(x)/x function in many scopes are just as you tell... only lie.
Example this Rigol (and many nearly equal scopes) there is NOT true Sin(x)/x iterpreter.
There are many things what goes wrong and then we can se these "nice curves" what are only more lie than linear (or even better, only points.)

It totally different case if we do good sin(x)/x.

Two leaders in they own class: Agilent (or more better in history: Hewlett-Packard) and Tektronix have done quite good work.
If LeCroy tell that no need and it is only bad... of course they tell it if they can not do it.

But, for this Sin(x)/x case I hope you can tell what errors are in this Chris Rehorn (Agilent) pdf.

So what is exactly wrong.

Then if we talk about this kind of "fake" sinx/x what is in Rigol (and many others), then we can say that it is really as you tell:
" Sinx/x interpolation tells lies (I'm not exaggerating) by drawing nice sine waves through miserably undersampled waveforms - they look pretty, but bear little resemblance to what might actually be there.  Don't use sinx/x ever, is my recommendation, it just tricks the brain into thinking "It looks good, maybe it's true."   It is downright dangerous.  LeCroy knew this..."  If LeCroy do not understand theory it is very fun. (maybe reason is littlebit different... maybe they can not)

Of course Sin(x)/x give very bad things if (and many times it is) scope analog part is not designed with very tight rules for this and then whole sinx/x is done with very cheap way... only some kind of "smooth" function.  (real Sinx/x it works only if Nyquist rules are not violated in any point...from input connector to A/D conversion and all these parameters are also with calcualtion.)

Most bad thing in Rigol solution is that it put to garbage all real sampled values (maybe it use these but... to the screen they do not come. On the screen we see onlu total lie.  This can not do. If you see this happend you know that something is very bad... so we make just lie Sinx/x and then we can see just what we see on Rigol display and also many others... only "nice" curve... but totally lie. Nearly all points on the curve are out of true. Sinx/x must follow TRUE sample points just as we see Chris Rehorn paper. Of course we can not do this in practice if we violate all rules in all points of system. (nyquist is very highly violated in system and then some kind of filterin what make look like Sinx/x.) So also I can recommend, do NOT use it if you are measuring something. If you like look only "nice curves" you can use it... but this is only for some fun... not for serious working.

Yes I know that with this price it is nearly impossible to make this kind of analog front end what is need for good oscilloscope with "true" Sinx/x.

As I before tell my one very old Tektronix have Sinx/x and curve go exactly so that curve hit all real sample points.  Looks just same as Chris Rehorn paper. How they do it? With very old microprocessor? Some try tell me that it is very heavy calculation and so they in Rigol use some kind of (DSP) FIR filter. I am littlebit surpriced how these new fast processors can not do this. (more I think that this chinese boy who have desingn part of this scope ( set some parameters and test) have forget his middle scool books to home...).  As long as we forget every real sample point we are just "Deep in the swamp" and all what we see in display is just nice looking garbage. (line between sample points "may be" garbage if want think so ... but ...now we have loose every true sample points...only true thing what we have before this Sinx/x fake interpreter.
« Last Edit: April 02, 2010, 11:48:01 am by rf-loop »
I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #13 on: April 02, 2010, 12:37:39 pm »
I want add this as explanation and clarify my message before:


http://staff.science.uva.nl/~rein/multimedia/sampling-interpolation.pdf

"3.2 Sampling

How many samples from a signal are needed? I.e. how large (few samples) or how small (many
samples) should we take ¢t. Here we will consider the more precise question:
How many samples are needed such that the original signal can be perfectly reconstructed
from the samples?


The answer to this question has been answered by Nyquist and Shannon and it therefore is called
the Nyquist-Shannon sampling theorem.

Theorem 1 (Nyquist-Shannon Sampling Theorem) A periodic signal can be reconstructed
from its samples in case the sample frequency is larger then 2 times the maximal frequency in
the signal.



This boils down to the fact that we need more then 2 samples per period of the sine/cosine
wave of the highest frequency in the signal.
A signal obtained using a measuring device is band-limited. Physically it is impossible to
measure in¯nite high frequency signals. The highest frequency that occurs in the signal might
nonetheless be much higher then the frequencies one is interested in. A characteristic example is a
sound wave. In case it is our ¯nal goal to reproduce the sound for humans to listen to, then there
is no need to record all frequencies that are present in the sound. The human hearing system
cannot hear sounds with a frequency higher then 22000 Hz. Therefore the sample frequency for
sounds can be set at something higher then 44000 Hz.

But what happens when we sample a sound signal at 44000 Hz containing frequencies larger
then 22000 Hz. These high frequencies do not just disappear from the recording; they will
introduce frequencies lower then 22000 Hz in the recorded signal. This efect is called aliasing.
To prevent aliasing we need to remove all frequencies in the signal larger then 22000 Hz before
sampling at 44000 Hz.
"

I think it is easy to think what it means in oscilloscope.

As long as Nyquits-Shannon is highly violated in Rigol (and many others) we can not see good Sinx and we have lot of aliasing problems. And this can not solve good as long as analog bandwith characters before A/D is bad or very bad (for this purpose).
Oscilloscope is only compromice and what we see is sum of many errors.
I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #14 on: April 02, 2010, 02:26:15 pm »

Sinx/x interpolation tells lies (I'm not exaggerating) by drawing nice sine waves through miserably undersampled waveforms - they look pretty, but bear little resemblance to what might actually be there.  Don't use sinx/x ever, is my recommendation, it just tricks the brain into thinking "It looks good, maybe it's true."   It is downright dangerous. 

Actually wrong. Linear interpolation is very much more wrong, if the Nyquist criteria is satisfied. The theory behind that is proven to be correct. The best reconstruction function for bandwidth limited sampled signal is the sin x/x. If you get wrong results from sin x/x, then you'll have inadequate bandwidth equipment for your measurement. Alias actually does not happen until some frequency component of incoming signal does not exceed fs/2. When that happens, both linear and sin x/x will result equally wrong results (try it out if you don't believe me!).

A comment on "computationally heavy" sin x/x. Exact sin x/x reconstruction even for single point of time is not possible since it requires knowledge of the time samples from minus infinity to positive infinity. That obviously takes too long time and uses too much memory. So what is usually done, is that the sin x/x is truncated in time, or "windowed". The tradeoff of this truncation is that response transition band becomes non-zero, there is some ripple on the response and stopband attenuation is not infinite. But then it can be computed with reasonable effort, using the FIR-structure. Longer you'll make the window, more ideal the result, but it takes longer to process the samples and your screen update rate will go down. Yes it is perfectly possible to this with a 8-bit µP (or even with analog bucket-brigade delay line and some amplifiers!) but I don't think you'll get very fast waveform screen update rate. Old digital scopes are not that responsive on the UI or waveform update rate side :) But that is not an issue when taking single sweeps. Rigol implementation is wrong in sense that it seems to have less than ideal cutoff. Don't know why, as it doesn't make the implementation any more complicated than it already is.

I don't know how they do it in the Agilent 6000-series (or on older HP models), but I have never seen a problem with a sin x/x interpolation on it. Even on slow time base settings where sampling rate drops (see the next link for actual screenshots for severe undersamplings). Or any kind of alias problems, like Tektronix 3000-series seems to have plenty.

Regards,
Janne
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #15 on: April 02, 2010, 05:13:30 pm »



Actually wrong. Linear interpolation is very much more wrong, if the Nyquist criteria is satisfied.

Actually wrong (as long as we have Sinx/x interpreter what forget true samples. After this we have less truth) ;)

Linear interpolation is nearly wrong. Lines between real sample points are wrong. But real sample points are not wrong and these are displayed in all turn points in "curve". So linear interpolation include all truth what we have but of course only in these true sample points. Good practice is also higlight true points or posibility to do it.

But what have this kind of  "Rigol (+*/-^)sinfun(x)/x" what is in Rigol (and many other quite cheap scopes). We have some curve but after this "interpreter" we have lost all these true points, we do not know where they are and also curve what we see do not really hit any true points (try half day if you can find any screen where even one true point is randomly hit this "curve". Of course with eyes it is difficult to see lower frequencies becouse scope resolution is low). Test with 100MHz and 250Ms/s and you see it... small problem but it tell very clear that this function fails in its basics)  

Only truth what we have is lost and user see only curve without any true sample points. It simple flush to garbage this only truth what we have after A/D. Please look agen this Chris Rehorn pdf and picture. What ever this intrepreter do,   but most important is care that displayed curve fits true sample points - this only true what we have. If we put true sample points to garbage we have nearly nothing. Maybe we can see near right frequency but vertical information accuracy is bad and very extremely bad after we are going more close to Nyquist frequency. 100MHz sine to input and 250Ms/s give result where signal with Sinx function is attenuated more 10dB if compare result with Equaltime samples averaged (same 100MHz point). Averaged linear in same point and samplerate give less than 5dB attenuation. Well done Sinx/x must give better result than averaged linear. This high attenuation of course rescue Rigol and it do not display so much aliasing what is possible becouse analog channel is not good for sinx/x. (it is very bad for do good sinx/x)

With low frequencies it is clear that this fail can not see and it do not make any harm becouse scope resolution comes and hide this problem. It (maybe) also work only (in special case 10ns/div) 5 and 2 ns/div.

Overall it is not at all big problem  if know it, nearly as no problem. But Sin(x)/x name is wrong or minimum, it must give high alarm to user that this RigolSinx/x loose and forget all reality. More bad is that it goes on as default. Default it need be off.. and if someone want shut it on... it need give "red" alarm to user that all truth is loosed after you turn it on. With scope we need inspect something... nice pictures macines are different and for different use. If want sinx/x it must be working one. This sinx/x do not work at all if I give my opinion.
« Last Edit: April 02, 2010, 05:27:12 pm by rf-loop »
I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #16 on: April 02, 2010, 09:03:23 pm »
I made some examples with Matlab to illustrate the effect of reducing the sin x/x bandwidth as it probably is with Rigol. First, the optimal sin x/x-interpolation (cutoff exactly at Nyquist). Here are the indvidual samples made visual, or each sample's contribution to the final output. The green circles on top of the main lobe of sin x/x-function are the sample points of the actual signal. The signal here is a  100 MHz + 110 MHz signal with 250 MHz sampling, so we are quite near the Nyquist limit.



As you'll see, each other samples contribution is zero at each sample point. That is why the sin x/x interpolated curve should match the sample points exactly. There is no "intersymbol interference" between samples.

and here is the reconstructed signal:



Linear interpolation is also shown for comparison. It "cuts short" and is no way more accurate representation of the original signal.

Now, what happens if we reduce the sin x/x signal bandwidth by 80% of Nyquist (100 MHz cutoff). This is what results:



Other sample points are no longer zero at each sample points, so we have some kind of filtering effect. Note that the sample points are still at the top of the sin x/x main lobe peak. Let's see the reconstructed signal with this kind of suboptimal choice of sin x/x bandwidth:



The reconstructed signal has now attenuated and other frequency component has disappeared altogether due to bandwidth loss. This kind of effect is probably what happens with the Rigol.

Regards,
Janne
« Last Edit: September 17, 2018, 09:00:11 am by jahonen »
 

Offline armandas

  • Frequent Contributor
  • **
  • Posts: 336
  • Country: jp
    • My projects
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #17 on: April 02, 2010, 09:53:28 pm »
Impressive stuff, Janne! Would you mind sharing the matlab file?
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #18 on: April 03, 2010, 05:32:24 am »
Thank you jahonen.
But this is not what Rigol do. (Fig 4.)

You can easy test it and you see. Put scope to 2ch, real, longmem, 2ns/div. Sinx off. (connect dots line) Persistence infinite.
Input 100MHz sine CH1. Run scope some seconds. (you collect more data to displlay)
Stop scope. Now you see shadow yellow area what imagine all samples with dot connected line and inside this yellow you see this last sampled as highlighted lines with last real data points.
Keep scope stopped.
Push sinx on. Notice how it draw highlighted curve (just with these last shot samples). Push sinx on-off-on... maybe you then have idea what is going on.


We need remember what is this equipment. It is measuring equipment. For measure things. Measurements we do becouse we want get data.

In digital scope only data is sampled points. We know value Y (we know something about this value accuracy and keep in mind this also) We also know value X as long as we can trust also timing. (timing is also with errors and this we need also remember)

After this Rigol (and many others) Sin(x)/x joke we have not eguipment for make measurements (it can shut off...).

We have only equipment to do some nice pictures. I think it is better to use oscilloscope as measuring equipment what give some data out from DUT and then for nice pictures put some nice art picture on the wall if we want also look nice art pictures. Measurement equipment need keep as tightly in truth as we can.

Simple rule: for mesuring equipment: Do not flush truth (or as good "truth" what we have) to garbage.

Any "true" data must not put to garbage. If we forget data and change it with some other what we "like" more we have nothing to do with test and measurements area in house - it is better to put this kind of person to do some useful things in other part of house. Now if equipment do this... we keep it in test area, becouse it looks like test eguipment. Be careful, with this kind of sinx interpreter turned on it is not equipment for measurements. It is machine for draw art pictures. These do not need in test lab. If data is not nice and we forget it or change it with some "data" what we like more we need go to other hobby, just paint art pictures or do something else more or less abstract fun. With sinx on this rigol can put to "art and fun machines" class.

What ever we draw between real datapoints we need keep these datapoints (becousae this is only real data) we can do it as long as we also know truth (this truth what we have). Curve must fit real datapoints. And also more good if real datapoints can highlight on the display.

If it can not do: So simple. Scope manufacturer only need tell that we have not Sinx,  or better, they can lie to customers that we have not becouse sinx is not useful function.  It is useful if it is well done with tight rules. First rule is: Do not change original true datapoints to lie data.

 In some other life area we can do it but not in equipment what is made for get data from real world.
« Last Edit: April 03, 2010, 06:32:32 am by rf-loop »
I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #19 on: April 03, 2010, 08:55:00 am »
Impressive stuff, Janne! Would you mind sharing the matlab file?

Of course. I considered to attach that last time but thought that nobody would be interested enough. Feel free to experiment with it (especially with more complex input signal) and post the results if you find anything interesting.

I added black circles to indicate the real data points, otherwise the plot is same as above. I think that with reducing the sin x/x interpolation bandwidth reproduces the observed effect - interpolated curve no longer matches any real data points (marked here with black circles) (sorry, the graph is messy but didn't figure out how to make much better one):



Regards,
Janne
« Last Edit: September 17, 2018, 09:00:40 am by jahonen »
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #20 on: April 03, 2010, 09:45:14 am »
Remember, these matlab pics are nothing what Rigol do.

There is big and very important difference.

Rigol do it like this: (dark color points on the lines are true points. For clarify I also make light color points to "sinx" curve.)  From exactly same true samplepoints Rigol make Sinx/x just as in picture.



How to make this with Matlab from these datapoints. If someone find, I am very interest. After then we maybe know something about how Rigol make this fail.
« Last Edit: April 03, 2010, 12:10:39 pm by rf-loop »
I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #21 on: April 03, 2010, 04:40:14 pm »
I think this is pretty close (Rigol emulated with matlab :)):



It satisfies the required property that the interpolated signal (blue curve) does not match real data points (black circles). Original data points are destroyed in the result. We can make this correct by increasing the sin x/x function bandwidth to Nyquist:



Both plots are taken from "mid section" of data to suppress the truncation artifacts.

Regards,
Janne
« Last Edit: September 17, 2018, 09:01:25 am by jahonen »
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #22 on: April 03, 2010, 05:46:11 pm »
Fig 1 is lot of better than Rigol. As you can see in real picture directly from Rigol. Can not at all use any measurements near Nyquist. Oh..maybe it can solve frequency of input sinewave if do long averaging.
There is one question left. Why do this kind of sinxfake?

Fig 2 looks nearly like my one very old Tektronix. (2440) This equipment can use for measurements also with Sinx on and nearly Nyquist.

I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline colinbeeforth

  • Contributor
  • Posts: 33
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #23 on: April 04, 2010, 04:05:20 am »

Janne,

You have replied with lots of sampling theory, which may be useful for some people considering a DSO purchase.  My comments were intended for those with a less mathematical bent.

I could easily make a long and tedious reply, but it's not worth the effort.  So let me clarify just a few things:

My knowledge of DSOs comes from practical experience.  I spent years answering customer questions about DSO usage and onsite training of new users. That doesn't make me an expert, but I have a broad knowledge of the daily problems that many DSO users encounter.  Unless you had that same experience, you would only know about what you have personally discovered with DSOs.   That may account for the fact that you seem to be interested in the mathematics of undersampled signal reconstruction where my attitude is "undersampled = not fascinating, just useless, because it doesn't get my job done"

You have confirmed what I said.  Linear interpolation makes awful reconstructions of the waveform.  You say that's why it shouldn't be used.  I say that's <why> it's better.  With adequate samples, there is very little difference between sinx/x and linear, especially when displayed on a 320x240 LCD screen, which is what most users have.  If you undersample, linear interpolation looks awful and alerts even a DSO beginner that the resulting waveform record is not real.  Show a beginner undersampled sinx/x, it looks pretty, plausible at a glance, but it is still undersampled and no use as a record of the real waveform.  My attitude is, it's better to look at a slightly less "pretty" waveform, and not be gulled into accepting nonsense as real.

Your comment about needing better bandwidth equipment was glib.  If you see an alias, do you run out and spend $30,000+ for a new oscilloscope that has better bandwidth?  So why tell other people that?  It is not helpful.  Most people cannot afford to buy a DSO that costs more than their car.  Consequently we are always pushing the limits of the test equipment we can afford, so that's why I think being identifying undersampling is so important.

I maintain that alias occur all the time, although much of the time they are not gross and do not prevent the user from getting his job done.  That is why many users say they have never seen an alias - they've seen plenty, but not identified it.  Gross alias can easily occur even with audio signals if you are not alert.  Why do I see undersampling on my DSO regularly, and you don't?  Do you work with a wide variety of signals every day?  I do repair work on all sorts of RF, scientific and industrial equipment, so my daily DSO use is incredibly varied.  I'm constantly looking at all sorts of different signals.  Some days, I wish I had 1Meg of acquisition memory when I deal with serial eeproms. *sighs*  But 50k is far better than many DSOs on the market, and I cannot afford any better.

The information in my previous post is irrelevant to an experienced and thoughtful user.  I set the tone of my comments to my perception that many pf the posters to this group were not highly experienced with DSOs and were discussing buying choices.  I thought sharing my experience might be of use to them.  I respectfully suggest that my comments are irrelevant to you and your experience - it might be best if you ignore them in future.  My best wishes to you in your mathematical ruminations, it is interesting, but largely irrelevant to my daily work.

Cheers, Colin
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #24 on: April 04, 2010, 06:03:18 am »


I maintain that alias occur all the time, although much of the time they are not gross and do not prevent the user from getting his job done.  That is why many users say they have never seen an alias - they've seen plenty, but not identified it.  Gross alias can easily occur even with audio signals if you are not alert.  Why do I see undersampling on my DSO regularly, and you don't?  Do you work with a wide variety of signals every day?  I do repair work on all sorts of RF, scientific and industrial equipment, so my daily DSO use is incredibly varied.  I'm constantly looking at all sorts of different signals.  Some days, I wish I had 1Meg of acquisition memory when I deal with serial eeproms. *sighs*  But 50k is far better than many DSOs on the market, and I cannot afford any better.


Cheers, Colin


There is reason why I still have also good analog scope(s). Of course one reason is becouse I do not want spend one house price for High-End digital scope.

With my tens of years experience (and now also with quite cheap digital scopes like Rigol) I can not give out my analog scopes. They are very very useful specially with unknown signal situation in repair work. I have made my choice, I use both, digital and analog. Priority is, in practice, I use analog as nro 1. and digital I use only IF really need. Specially this Rigol is now also becouse sometimes need fast take some picture to computer and my old some digital scope(s) have not this feature. They have some but I do not want play with these heavy HP-IB or GP-IB connections with PC.

My point for start this topic was just this Sinx/x issue what Rigol have - first I think it is only some small cosmetic issue. Very fast and finally now I know that it fails totally. I am not so interest what we can do with matlab and theory, this is not Rigol. This Rigol breaks all rules in theory.. .. we can exactly see also - it do not work at all. It (sinx/x interpreter) is very bad. It is not this kind of Sinx/x what is sometimes maybe useful. This sinx/x what Rigol do can only make things more bad. I repeat, this is equipment for measurements - for data. Not for nice pictures or nice voices..  Sinx/x in this scope put to garbage all real data. Only acceptable Sinx/x in oscilloscope is solution where true datapoints are visble after Sinx/x. Good real Sinx/x for measuring equipments do NOT put any real data to garbage! Entertainment machines may do it... maybe.

This is Rigol made "Sinx/x" what really put all theory and good practices with test equipments to garbage... If I can hope something - Rigol simple take off this feature as long as they can not keep real data. (and same for other manufacturers)  This try be test/measuring equipment, not MP3 player - rules are also different.

« Last Edit: April 04, 2010, 06:20:53 am by rf-loop »
I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline Mark_O

  • Frequent Contributor
  • **
  • Posts: 939
  • Country: us
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #25 on: April 04, 2010, 06:18:38 am »
Colin,

actually, I've enjoyed reading both viewpoints.  Both are correct, yet come from differing perspectives.  Janne's excellent mathematical analysis clearly shows how/why we wind up with the kind of waveforms we do, with reduced amplitudes, and not "hitting" the true sample points that concern rf-loop so much.  Your comments are more pragmatic, and make the excellent point that it's all too easy to wind up with aliasing and artifacts, due to undersampling, and not even realize it.  

In the specific case of the Rigol's, it's even easier to wind up in this boat, since the actual sampling rate isn't even shown on-screen under normal conditions.  You have to go looking for it (in the Acquire menu on the older units, moved to the Horz timebase menu in the newer ones).  But no scope is immune from these types of considerations, and at least the newer Rigol's give the option to disable sinx/x, so the poor linear interpolations expose these limitations.

I appreciate the time everyone has taken to contribute, and I think we've all benefited from the discussions.  In particular, rf-loop's testing has shown that the Rigol's (and likely many other economy DSOs) sinx/x does not provide an accurate picture of the waveform, past a certain frequency less than its claimed BW... which will differ based on how many channels are in operation, as a result of the bandwidth and sampling limits.  Even though it still looks good.  This is something that's important to be aware of.

- Mark
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #26 on: April 04, 2010, 09:46:49 am »
Colin,

What I use the scope for at work most often, is the high-speed digital/mixed signal design debug/verification phase, for almost any kind of signal you can imagine (although most often it is SMPS or digital bus signals, but I think that the world is analog at the end, nevertheless what the people like to call it). I often need to make a characterization on a signal and that means if I need to measure something like a signal risetime or overshoot, the honeymoon is over. You simply need to have enough bandwidth to do that kind of task. Of course you can stretch it a bit by subtracting the scope rise time squared from the measured rise time square and then taking a square root, but that is a stretch at a best.

I imagine that repair work is a bit different, you don't very often actually need to get exact reading of any those properties I mentioned earlier. You just have to find out what has gone wrong. For example, it is not often necessary to adjust the termination on a signal when doing repairs. I also mean that trying to measure overshoot or almost any time-domain property of a signal near the scope specified bandwidth is a ill-conditioned operation (BW = 0.35/t with gaussian signal or BW = 0.5/t with trapezoid signal). But again, if you know what it should look like with a reduced bandwidth, then I that it is ok. But if the signal is completely unknown or the DUT has never worked yet, you can't use that.

What I mean by aliasing, are the gross cases where the frequency (or time axis more exactly) is completely wrong, but the waveshape seems to be okay. Actually, if analog bandwidth if sufficient, undersampled signal is just fine for examining the waveform, the time axis is just wrong but the signal shape is there (like I showed with Tek TDS3034A at the page I mentioned some posts ago). One of the most difficult signals for DSOs to measure is the envelope measurements on a high-frequency carrier (AM-modulated signal), although peak detect tends to solve this problem.

I didn't mean that I have never seen alias (if fact I see that all the time on some DSOs), but what I meant that I have never seen such a aliasing with MSO6034A, regardless of the time/div setting, the signal just turns to "bar" like on an analog scope, although I have deliberately tried to reproduce the aliasing. My working theory is that Agilent runs their ADC at full sample rate all the time, and then they just digitally decimate and filter the data to get the suitable "display sample rate". That makes it possible to avoid aliasing and reproduce the "analog look" even with long time/div-settings. So there is obviously a way to suppress the aliasing so that it does not confuse the user. I don't know why other scope manufacturers don't do the same thing. Even with the relatively old HP 54645A we have at work (which is far below the "$30,000+" price you mention at ebay, although quite more expensive than Rigol), it is very difficult to get any aliasing (certainly not anything that would confuse the user), although sample rate is just 200 MSa/s and specified bandwidth of 100 MHz.

As Mark mentioned, the Matlab idealized plots were made just to try understand why there is a loss of signal fidelity when using sin x/x-feature. Whenever I notice something odd, then I'll try to understand it through theory to have clear view what is actually wrong by varying the parameters to analyze what are the implications for my measurements. But anyway I'm going to investigate this effect rf-loop mentioned with my friend next week with his DS1102E. I'll post my results when I have something conclusive to show.

Regards,
Janne
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #27 on: April 06, 2010, 05:43:14 pm »
Ok, here are some measurements using the casual setup I use (abuse of the HP8753D VNA at work as a signal generator, some coaxial adapters to finally get the BNC output from PC7, and inline BNC terminator just at the scope end):



Here is the measured frequency response (actually, the roll-off or amplitude flatness is not required for characterizing the sin x/x roll-off!). I performed the measurement by using the scope's RMS measurement function, switching the sin x/x on and off in the Acquire menu. Sorry, this time I didn't bother building a LabView software to control the scope and perform the measurement automagically, so there are not so many frequency points. But I believe there are enough for making conclusions about sin x/x:



There indeed is quite a additional attenuation of high frequency signals when using sin x/x. Up to ~10 MHz, the results are essentially identical, whether the sin x/x is used or not. Above that, the discrepancy among two grow steadily.

An another side-effect I noticed is that if you have sin x/x turned on, and when zooming out the waveform, the sin x/x interpolation turns off at some point and the amplitude seemingly jumps up or vice versa. Kind of annoying effect.

We can calculate the additional attenuation caused by sin x/x by using the non-interpolated curve as an reference:



It seems that -6 dB bandwidth of the sin x/x is approximately 100 MHz. The roll-off is also quite shallow, which means that sin x/x windowing is probably quite short. There clearly is a room for an improvement.

And finally, here is a screenshot of that same 100MHz signal using a slow timebase, quite nice undersampling, isn't it? My point is that if the undersampling is severe, neither linear or sin x/x interpolation would give any hint that we are actually undersampling.



Regards,
Janne
« Last Edit: September 17, 2018, 09:03:16 am by jahonen »
 

Offline colinbeeforth

  • Contributor
  • Posts: 33
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #28 on: April 14, 2010, 04:52:44 am »
Hi Janne,

Thanks for the reply and description of your work. Repair work can be far more tricky than simply finding what is faulty.  Many old test instruments as still quite useful, so much of the repair work becomes restoration, and replacing obsolete output transistors require careful confirmation that a pulse generator's rise and fall times are still ok.  Many faults are intermittent and the ability to get some idea of a problem, set a complex trigger and leave it armed for a day or so, maybe using sequence mode, is a great way to identify tricky faults.  Even simple repair work is quite demanding when dealing with digital video.

On a more philosophical level, I feel that "digital scope" is an incorrect name.  In the rush to sell ever more test equipment, the manufacturers have built high speed digitisers with complex trigger and a display and called them a "digital oscilloscope".  I don't think this is a fair description of what they do, they are both much more and less than an analogue scope.  Both analogue and digital scopes have their place in electronic work.  The classical ham radio application of the trapezoid display, RF on one axis, modulating audio on the other, will always be a problem for the digital instrument.  I know also that many makers have struggled to make DSOs behave like analogue scopes to show things like eye diagrams of fast serial data.  I don't think the analogue scope can be replaced by digital for some applications.  In terms of results for your dollar, the analogue scope is a valuable instrument for many electronic jobs.

I wish maker's would give up on trying to make DSOs look like analogue scopes and just call them something else.  Unfortunately, the window of opportunity has passed for that and we are stuck with it.

You said, "Even with the relatively old HP 54645A we have at work (which is far below the "$30,000+" price you mention at ebay, although quite more expensive than Rigol), it is very difficult to get any aliasing (certainly not anything that would confuse the user), although sample rate is just 200 MS/s and specified bandwidth of 100 MHz."

I'm not surprised, the spec says it has 1M of acquisition memory per channel!  Long memory ensures far higher digitiser speeds over the middle range of timebase settings.  If DSO has short memory, then starting from the fastest time base settings down, you have to throttle back the digitiser to stay within the limits of the memory you have available.  If the memory is 1M, that is very long, and will the major factor in why you don't see alias as often.

You also said,  "My working theory is that Agilent runs their ADC at full sample rate all the time, and then they just digitally decimate and filter the data to get the suitable "display sample rate". That makes it possible to avoid aliasing and reproduce the "analog look" even with long time/div-settings. So there is obviously a way to suppress the aliasing so that it does not confuse the user. I don't know why other scope manufacturers don't do the same thing."

I'm sorry to be disagreeable, but I don't believe that using this technique contributes anything towards avoiding aliasing.  What is different between a single shot sampled at 1GS/s and decimating 1000 to 1, so the effective sample speed is 1MS/s, and a single shot taken at a digitser speed of 1MS/s?  Sample gates usually use the same fixed sample period, so that is no different.  There is no difference in the contents of the acquisition memory, so no edge against alias exists.  I think this is another spurious argument put out by salesmen keen to empty your wallet.

I don't wish to create discord, I just can't see how this can work.  If you have a DSP chip that can keep a running record and min/max bin data every 1 nanosecond, then it might be a workable technique.  I think this is another problem like the screen alias with low cost scopes decimating acquisition memory to squeeze it onto a 300 horizontal pixel display - you can 't see a glitch in the middle of the memory, so how is that any different to a 300 word acquisition memory?  I know you can take that single shot and zoom and scroll for a long time, but in reality, most folk look at the screen, don't see any reason for further investigation, and move on to the next job.   It might as well be a 300 word memory...  Without actually processing the data and compressing it at that maximum sample rate, it is of little practical use.  I have yet to see any DSP processor that can do this.  The other difficulty is that makers are unwilling to describe how they do whatever magic is in their wondrous box.  If they don't describe precisely how it works, how can you know it is good?  I'm not going to trust anything said by someone who is paid on commission!

Even moderate price scopes like the Tek DPO2000 series don't use any display algorithm.  I was shocked to learn this recently.  For low cost scopes you expect compromise, but for a Tek worth AU$3000, I would expect better.  It makes no sense, so there must be some missing information - I hope someone can explain why LeCroy managed this over 15 years ago, and modern Tektronix can't. *shakes head*

My best wishes, Colin
Melbourne, Australia
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #29 on: April 14, 2010, 07:48:07 am »
Colin,

My statements/speculations about Agilent DSO sampling/processing behavior was based just on my personal hands-on experience, not their marketing BS (but even those look pretty realistic for me based on the experience on that instrument) by any means. One of my personal favorite torture tests to any digital oscilloscope is the aliasing test. Just set the time base to convenient slow sweep time per div, and then start ramping up the input frequency, up to the point that signal vanishes (BW is reached). IMO, good DSOs do not show any kind of alias, at any input frequency or time/div setting combination. Unfortunately, I have not found many DSOs that pass this test. Actually, very expensive 6 GHz Agilent at my work didn't pass this test ;)

Sorry for large images, but didn't bother to build another web-page to just show these.

Here is a case of a measurement of modulated RF (at low end of UHF band, about 480 MHz) on a MSO6034 with 8 Mpts of sample memory and upto 2 GSa/s, 300 MHz DSO, so carrier is clearly beyond its specified bandwidth.



We can even zoom to the field sync region without changing the timebase and re-sweeping:



Or even to scan line level (not so nice anymore but perfectly readable still):



Of course that is nicer when sampled directly:



And finally, here is the measurement of the carrier frequency:



Of course, bottom line is that can't much argue about the price point. But just wanted to show that there exists technology today to measure something similar what you described. I would have tried exactly what you described, but unfortunately I don't have a appropriate signal generator around. Although personally I think that the spectrum analyzer is much better for RF work (DSO FFT is not very good substitute for various reasons), since specifications are usually frequency domain based.

Regards,
Janne
« Last Edit: September 17, 2018, 09:04:45 am by jahonen »
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #30 on: April 14, 2010, 09:01:02 am »
Colin,

On second thought, I did try the trapezoid you mentioned. Did you mean something like this? (RF on Y-axis and modulating video on X-axis):



here is a B/W version, you can clearly see the luminance levels:



Somewhat dark image at least on my monitor, but much better visible on the scope itself.

(I think this thread should be splitted to something else, as this has nothing to do with the Rigol sin x/x problem anymore)

Regards,
Janne
« Last Edit: September 17, 2018, 09:05:31 am by jahonen »
 

Offline colinbeeforth

  • Contributor
  • Posts: 33
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #31 on: April 15, 2010, 08:51:06 am »
Hi Janne,

Very interesting results from the MSO6034.  That scope costs $12,400 in Australia, I suppose I could sell my car...  Wait, my car is not worth that much...  Even my very nice motor bike cost less than that, and I know which I'd rather ride down the road, although the picture of me sitting on top of a digital scope holding reins and revving down the road has me laughing for a bit!
 
The DSO behaves very well with RF, and far better than any DSO I have seen before.  When they come down in price, I'll push my $800 analogue scope to the back of the bench.

It would be interesting to know how they can arrange for the scope to understand what is being thrown at it, and arrange itself to give a fairly analogue type display.  How does the scope know it is receiving modulated RF?  Did you trigger externally from the video signal?

Also, with the XY pictures, one picture showed a sample rate at 500MS/s, is that operator adjustable?  How did you get the video to be coherent, so it painted a series of levels?

I suspect that my earlier comments would still apply for Rigol and the others in that price range.  However, I am pleased to see that HP/Agilent have improved their earlier products.  It's an interesting thing, Tek has always had the reputation for scopes, but even their $3000 dollar scopes don't have display compression, they have long memory, which is horribly decimated to squeeze it onto their LCD screens.  I spoke to a Tek dealer yesterday about it and was assured that they don't do anything clever with displays.  For that sort of money, I would have expected some attempt to improve such a glaring problem.  They keep on saying, but you can use PeakDetect mode.  Yeah, if you know there is something there to use it on.  Many DSOs can do many clever things, if you know about it and can set up for it.  In research and even fault finding, it is always the unexpected that wastes your time, and that is one reason why I harp on about display algorithms - done right, you see what you <didn't> expect.   The cheap scopes don't often address this either, although all the responses aren't in yet, I'm still discussing this with some makers to ensure clear communication.  One maker recently replied that how they display their waveform was company proprietary information!  I said if they don't explain the broad principle of how their test gear worked it was a sad day.  Would you buy and fly an aeroplane when the maker refused to tell you whether his undercarriange was electric or hydraulic, or tell you where the emergency release was???

Cheers, Colin
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #32 on: April 15, 2010, 11:26:04 am »
Hi Colin,

It would be interesting to know how they can arrange for the scope to understand what is being thrown at it, and arrange itself to give a fairly analogue type display.  How does the scope know it is receiving modulated RF?  Did you trigger externally from the video signal?

No special setups were done. Actually, I did not use any kind of triggering on the RF plots, just untriggered single sweeps. It would not be very good if you had to setup the scope to show the signal just like it does.

Also, with the XY pictures, one picture showed a sample rate at 500MS/s, is that operator adjustable?  How did you get the video to be coherent, so it painted a series of levels?

The video was from old color bar generator what I happened to have lying around, thus the levels. I believe the sample rate and memory depth (certain channel combinations reduce that to half) is internally set and can't be set manually. Although I can't know if the ADC runs at constant rate and the data is processed afterwards. But unlike with Tek ones, the long memory does not reduce the waveform capture rate, there is no harm (turn the 10M record length on Tek 4000-series and you'll get seconds/waveform instead of waveforms/second!).

In fact I was a bit surprised too on the results since XY-plot looks really good, and even better on the scope itself. The update rate on the display is so good that it is easy to forgot that it actually is a DSO (which is common drawback on most DSOs). I guess one could look up the Agilent patents on the MegaZoom and how it works, but it really is enough for me if I don't need to worry about alias etc. Although you still need to use peak detect mode if chasing really narrow spikes, but usually casual spikes show nicely on the screen with normal display. But those would not be easy to see either on the analog scope, since they would be very faint.

If you have a chance, I suggest that you 5000/6000/7000-series by yourself, don't believe me :) I guess too that we have to wait still for some time to these techniques to become common. I know that Tek has DPO but that works sweep-wise, unlike Megazoom which seems to work even for single sweeps. I tried to reproduce the nice Agilent display with matlab but not much success there. According to Agilent Appnote 1604, MegaZoom uses an dedicated 0.13 µm ASIC chipset, thus it can achieve relatively cost effectively much things what would be very challenging and expensive (for manufacturing cost) using OTS parts.

I believe that cheapest scope having the same MegaZoom display processing on the Agilent lineup is the 2-channel 100 MHz DSO5012A, which should cost much less than MSO6034A. Their 1000-series is made by Rigol (essentially same machine branded as Agilent and some firmware tweaks). But I guess 5012A is still much above Rigol etc. and certainly no match for analog scope bang for the buck.

And finally, quite a coincidence that you mentioned motorbikes, since I like those too and intend to start the hobby again soon after some years of pause 8)

Regards,
Janne
 

Offline EEVblog

  • Administrator
  • *****
  • Posts: 37661
  • Country: au
    • EEVblog
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #33 on: April 15, 2010, 12:08:11 pm »
I miss my Agilent 6000 series scope I had at my previous company  :(
I used to have a 54621D at home and that was pretty darn good, but not a fast sample rate or high bandwidth, it had Megazoom too.
I thought it was "InfiniiVision" technology that gave the Agilent that kind of performance?, the megazoom I thought was just the deep memory architecture? But I could be mistaken.

Tek claim DPO is better than Megazoom:
www.tek.com/Measurement/App_Notes/41_18987/41W_18987_0.pdf

Dave.
 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #34 on: April 15, 2010, 01:58:52 pm »
Becouse off topic. And also talking about expensive oscilloscopes.
Bacround: I have tens of years experience with many kind of oscilloscopes and also I have many opinions what are good and so on... also in history I have change my opinions. Future I do not know if I need agen change my opinions. But if we talk cheap "oscilloscopes" and reasonable good if compare price. Rigol DS1000E is "not bad".

I have keep strong opinion that Tektronix and also some Agilent (and HP) are good equipments. Also today I think that ( also price question becouse today electronics for me is only hobby) never I do not loose my some Tek analog oscilloscopes... they are like Rolls-Royces.

But now this world is fast changing and China go so fast that...maybe we can not understand. It is not yet in full speed but it is going also fast now. Maybe I need in future change all my opinions what are good and bad...

"Who is this" and also I can more underline question... who is agilent... and who is Agilent or Tektronix tomorrow. My forecast is that some day Agilent wake up to this kind of  morning that all have changed.. how fast it come.. this can not know.

So if talk medium expensive scopes.. Who is this, what he can do? ;) :



I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #35 on: April 15, 2010, 03:09:55 pm »
I miss my Agilent 6000 series scope I had at my previous company  :(
I used to have a 54621D at home and that was pretty darn good, but not a fast sample rate or high bandwidth, it had Megazoom too.
I thought it was "InfiniiVision" technology that gave the Agilent that kind of performance?, the megazoom I thought was just the deep memory architecture? But I could be mistaken.

Tek claim DPO is better than Megazoom:
www.tek.com/Measurement/App_Notes/41_18987/41W_18987_0.pdf

Dave.

That is basically true what is shown at the PDF, although Agilent introduced later a "Freeze display" function which retains the display as it is, retaining the shades.

There has been a number of generations of MegaZoom. Agilent 6000-series has 3rd generation. We have at work one of the early ones, 54645D, which has 1 Mpoints of memory but does not perform shading of modulated signals. That must have been introduced later.

MegaZoom works nicer on modulated signals (i.e. RF), whereas DPO shows nicer sweep-wise shades, although the difference in practice is not so dramatic as the PDF shows. The only thing that 6000 misses is the variable persistence. I also guess that sweep-wise shading is much easier to implement than shading with the modulated RF, like in the pictures I shown. For that, the DPO fails miserably due to alias problems. And the nice DPO shades are gone instantly (and cannot be recovered) if you touch the time/div knob, whereas MegaZoom shading is perfectly retained even if you zoom around the captured waveform.

Having used quite a lot both Tek TDS3000 and Agilent 6000-series, my conclusion is that in practice, I like the MegaZoom much more. For some odd reasons, the DPO seems only to work as one expects on fairly limited sweep speeds (fast ones). That "loss of DPO" seems to happen just when you would have wanted to see the shades. And if you turn on the roll mode, the displayed trace sometimes flickers like a badly coded computer game, something what one wouldn't expect to see on expensive professional equipment. Although the PDF implies that 1 Mpoint memory is available only at special conditions, even halving that (512k) is very much more than Tek 3000's 11k per channel, what is not even expandable. I believe Agilent now ships all their models with all the installed 8 Mpoints of memory enabled :)

I think that InfiniiVision term was coined somewhat later on, since my early (autumn 2005 I think) model of MSO6034A is clearly labeled as MegaZoom.

Someone said that Agilent never know how to make a good scope and Tektronix couldn't make a decent spectrum analyzer. Well, I don't know about Tektronix spectrum analyzers but certainly current Agilent scopes are very good ones.

It is certainly possible that someone in China will make something similar in the future. I don't know if Agilent chipset is on sale for a price if anyone wishes to use this same technology, or if someone finds a way to do same cost-effectively using OTS components. I would certainly like to see same development in lower price range too, although that would not change things for me for quite a while.

(I'm not in any way affiliated with the Agilent, but maybe I should start selling the Agilent scopes since I seem to like them :P)

Regards,
Janne
« Last Edit: April 15, 2010, 03:17:28 pm by jahonen »
 

Offline chscholz

  • Regular Contributor
  • *
  • Posts: 85
  • Country: us
    • Hioki USA website
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #36 on: May 01, 2010, 11:29:11 pm »
Still the same. By default sinx/x is off, the user can enable sinx/x if he wants to.


[...] LeCroy knew this and never had sinx/x interpolation on any of their earlier high powered scopes - but I have not looked at their range for 5 years, so I don't know what they do know.  [...]


Don't trust me I work in marketing!

After a few years with LeCroy and R&S I work for HIOKI USA. If there is anything I can help with, please contact me.
 

Online Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11536
  • Country: my
  • reassessing directives...
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #37 on: March 25, 2011, 09:12:37 am »
well. i have alot of pending stuff to be done but i dont know why i got the chance to read this year old thread (maybe a link from another thread). i remembered passing by here time ago, but only for a quick look, this time i read the whole thread (except the war stuff). kinda interesting stuff, and i believe the knowledge is still relevant. some important point to highlight

1) the OP msg is lost in somekind of DSO performance, analog vs digital war.
2) this thread is unconcluded, most people argued with OP that sinc(x) is supposed to be that way. ie, not plotting through the real sample, but the OP still hold strong to his belief.
3) jahonnen as always, proved that its possible to curve fit the real data using sinc(x). both picture repeated below for comparison. first is i believe closer to OP (rf-loop) reported as Rigol implementation of sinc(x). and the second picture is what the "should" theory said. (who am i to argue with Nyquist ;) )

point (1) i believe its due to issue arise on "undersampling" which lead to the war (a healthy one i believe), and OP msg got lost from there. So i have to pick side ;D and i pick the OP himself and Janne pictures below, and... Mr Nyquist :D

My conclusion is based on a postulate (based on Nyquist "2 sample" Theorem and got it inversed) that if we have a set of N sampled data at consistent dt (time interval at each consecutive point), we should be able to reconstruct acceptable sinc(x) graph at half frequency (N/2dt) closer to the original data, the more point the more accurate it will be. And another postulate is based on my study years back on curve fitting algorithm, that there is (or are!) method to curve fit the real given points (spline IIRC) regardless of what the actual original data look like. and we can tune the parameters to get different but nicely shape curve (points) fitted graph.

And its apparent Rigol is not doing that (curve or point fitting). will be a good subject for my study on this later. Well, this is just my 2cnts and reply is not needed. And to be clear, i'm NOT talking about "accuracy of the plotted data compare to the original". I'm just talking, its possible to do "nicely shaped" curve fitting, just as the OP concern... even if its, not accurate and undersampled.




ps: All these theorems and algorithms, are just a gross approximation/speculation of what the real science is ;)
« Last Edit: March 25, 2011, 09:24:12 am by Mechatrommer »
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline saturation

  • Super Contributor
  • ***
  • Posts: 4787
  • Country: us
  • Doveryai, no proveryai
    • NIST
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #38 on: March 25, 2011, 11:03:16 am »
A simpler thing is if you're not sure, turn off sinc, turn off vector, and see what the actual sample dots look like, then connect the dots yourself and do the reconstruction in your head.
Best Wishes,

 Saturation
 

Online Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11536
  • Country: my
  • reassessing directives...
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #39 on: March 25, 2011, 12:56:30 pm »
...and do the reconstruction in your head...
well thats funny :D human brain can generate all kind of curves. maybe the point in this is that we somehow come out with some (automated) solution (curve fitting) that we think best (backed by proven [or best] theory) and settle with that, and the newbie will have a soothing feeling of what the display shows, and for more advance people, they will know how to find the true point (samples) from there (by means of measuring at some consistent interval etc, or simply turn the nice graph off). but the main point is to the former (newbie) from the manufacturer point of view (to have a nice curve display) and for the advance people have respect at them if they do it correctly (points lies within the curve). but we all know, there is no way that the nice curve is the true representation of the continuous data (at the limit of Nyquist frequency), just dont screw up already good known data, that was the OP's point, i think.

and this kind of fancy communication theorem, is very important in situation that reach the limit of human knowledge and capability, such as when try to communicate with someone at Mars etc. without it, we can get much worst data, if not accurate. now, why we should not use this "exploit" in the lower budget low BW scope? so the newbie wont get cheated by fake data? well, thats their problem, soon they will learn. but i agree with OP that rigol has erased the good sampled data from their sinc(x), and for me thats worst than the "true sinc(x)" or "point fitting algorithm". we tried to get data as accurate as possible, not rendering 3D model in PC using Bezier curve.
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline saturation

  • Super Contributor
  • ***
  • Posts: 4787
  • Country: us
  • Doveryai, no proveryai
    • NIST
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #40 on: March 25, 2011, 05:03:29 pm »
In repetitive waveforms and other common things, you can confirm what the actual waveform appears vs the reconstruction, I think your eyeball will see its less distorted than the reconstruction but I wouldn't do a formal harmonic analysis with something like this:

https://www.eevblog.com/forum/index.php?topic=2323.msg32022#msg32022

Best Wishes,

 Saturation
 

Online Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11536
  • Country: my
  • reassessing directives...
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #41 on: March 25, 2011, 05:27:02 pm »
A simpler thing is if you're not sure, turn off sinc, turn off vector, and see what the actual sample dots look like, then connect the dots yourself and do the reconstruction in your head.
i tried this on 2ns scale, set to dot, but the graph still connect itself. unless i press "stop" ??? is it normal or just me?
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline dfnr2

  • Regular Contributor
  • *
  • Posts: 240
  • Country: us
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #42 on: March 28, 2011, 03:28:30 pm »
I don't own a Rigol, so I'm curious to know what is the flaw in the sinc interpolation.  Does anyone know any details about the routine?

I am not inclined to believe that the originally demonstrated error is due to buggy sinc interpolation.  I rather suspect it's due to the samples not being evenly spaced, which violates an assumption of not only the sinc interpolation, but also the "human eye" interpolation of the uninterpolated points, since the scope displays the waveform samples with uniform spacing.

Higher bandwidth signals are more susceptible to sampling errors from jitter or DAC interleave timing errors.  This can be compounded if more DACs are interleaved at the higher sample rates.  For lower bandwidth signals, the signal simply doesn't change as much between the actual and expected sample times.  Not so for higher BW signals.

If the errors are due to random jitter, then it's better to limit the use of the scope to sufficiently low BW to not produce the distortions.  If there is a systematic error (e.g., one DAC always samples early or late) then it is possible to use a an interpolation algorithm that does not assume a uniform grid, but I doubt any scope manufacturers do this.  I suspect most focus on uniform sample timing.

I noticed this thread, because I observed something similar with my Hantek 200 MHz scope, with pics posted to the Hanktek/Tekway thread.

BTW, Sinc is handy to have sometimes, but I do agree that it's better, as a rule, to just sample much higher than the bandwidth without interpolation.

 

Offline saturation

  • Super Contributor
  • ***
  • Posts: 4787
  • Country: us
  • Doveryai, no proveryai
    • NIST
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #43 on: March 28, 2011, 03:57:02 pm »
Yes, turning off sinc or vector is only visible only when you press 'stop'.  Not sure why that is!

A simpler thing is if you're not sure, turn off sinc, turn off vector, and see what the actual sample dots look like, then connect the dots yourself and do the reconstruction in your head.
i tried this on 2ns scale, set to dot, but the graph still connect itself. unless i press "stop" ??? is it normal or just me?
Best Wishes,

 Saturation
 

Offline saturation

  • Super Contributor
  • ***
  • Posts: 4787
  • Country: us
  • Doveryai, no proveryai
    • NIST
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #44 on: March 28, 2011, 04:22:37 pm »
For the  Rigol, its detailed in the whole thread, pictures and analysis are superbly put by jahonen.  

I think the post you made on the Hantek thread is a similar issue, its likely from the number of sample points effect on the reconstruction algorithm.

I don't own a Rigol, so I'm curious to know what is the flaw in the sinc interpolation.  Does anyone know any details about the routine?
« Last Edit: March 28, 2011, 04:24:19 pm by saturation »
Best Wishes,

 Saturation
 

Offline dfnr2

  • Regular Contributor
  • *
  • Posts: 240
  • Country: us
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #45 on: March 28, 2011, 04:55:54 pm »
For the  Rigol, its detailed in the whole thread, pictures and analysis are superbly put by jahonen.  

I think the post you made on the Hantek thread is a similar issue, its likely from the number of sample points effect on the reconstruction algorithm.


I did read the thread, and I do think it's the same issue, but I do not believe that this artifact is due to too small a window for the sinc interpolation, as proposed by Jahonen.  The artifact he describes at length is real; in fact this is why on LeCroy scopes the sinc interpolation is available only in the math menu, not the acquire menu, and when selected, the outermost points are not displayed.  With too small a window, you'd expect a diminished artifact at the center of the screen, and I haven't observed it.  That's why I asked if anyone has actual knowledge of the sinc interpretation implementation on the rigol.

I think it is more likely that two separate manufacturers would have problems with timing of 5 interleaved DACs, to achive 1Gs/s than that they would have perfect DAC timing, and would both use too small a convolution window, especially for a relatively limited saving in processing time.

 

Offline rf-loopTopic starter

  • Super Contributor
  • ***
  • Posts: 4064
  • Country: fi
  • Born in Finland with DLL21 in hand
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #46 on: March 28, 2011, 05:43:33 pm »
Mainly it is not timing problem with interleaved ADC's. Not in Rigol, and specially not in Tekway/Hantek.

I have do some amount of work with Rigol for inspect this issue and issue (what I talk in this thread is absolutely "error" in Sin(x)/x (there is not any real Sinx, there is only simple filter nearly as "smooth".) If do Sinx there is not any reason to "hide" real sample point. Example some Tektronix model highlight real points in sinx display (and this highlight can select off/on. Why? Becouse Tektronix know what is oscilloscope and what is Sinx)

This Rigol issue can see very easy if you plau littlebit with scope itself. This comparation is included my original pics.

Also I have done some inspection for finding sampling timing jitter... of course as we know.. ADC is also "modulator."  You can modulate output with sample timing... ;)

But with simple method it can look if situation is very bad or not. All you need for this is read littlebit about how these machines work and example some nice articles from example Agilent library.

For Hantek I have not yet make enough isnpections. Only what I have look is spectrum analyze sampling clock (9288 signal ENCx) and it is not bad. Phasenoise and "jitter" I have not check but with my "eyes" and simple method look... not very bad.


Mechatrommer show nearly just what what Rigol do in Figure 1.
If this is not issue in Sin(x)/x then what is... and this pic is not from sleeping dreams... it very good estimate just about what Rigol do in real world.  Most bad is that they do not correct it never. Who care... scope sell good so no problem...just this.

But it is not bad if you tightly stay <50MHz



Just same: Hantek DSO5102B is 100MHz oscilloscope. Stay below 100MHz and no big problem at all.

What I have think... maybe these economy class scopes give less problems if they do analog front end BW as "brick wall". There go away many small problems.

(do not open it more wide... reject it better. ;) )



I drive a LEC (low el. consumption) BEV car. Smoke exhaust pipes - go to museum. In Finland quite all electric power is made using nuclear, wind, solar and water.

Wises must compel the mad barbarians to stop their crimes against humanity. Where have the wises gone?
 

Offline saturation

  • Super Contributor
  • ***
  • Posts: 4787
  • Country: us
  • Doveryai, no proveryai
    • NIST
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #47 on: March 28, 2011, 06:18:37 pm »
I never read much on this until now, but it does explain why very high frequency spurs occur on an FFT at high frequencies, far above the frequency under examination, and at an inconsistent amplitude:



http://www.analog.com/library/analogdialogue/archives/37-08/post_processing.html

A practical question is what do we do about it since its a hardware issue?  I guess it comes down to the useful frequency response of the DSO independent of the input analog BW limit.

Thus, hacking the analog filter off, as with both the Rigol and Hantek threads, won't make this artifact go away, so one has to weigh the benefit of the hack given the limits imposed by the sampling rate and other artifacts.

I think it is more likely that two separate manufacturers would have problems with timing of 5 interleaved DACs, to achive 1Gs/s than that they would have perfect DAC timing, and would both use too small a convolution window, especially for a relatively limited saving in processing time.
« Last Edit: March 28, 2011, 06:35:00 pm by saturation »
Best Wishes,

 Saturation
 

Online Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11536
  • Country: my
  • reassessing directives...
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #48 on: March 28, 2011, 07:41:28 pm »
...If this is not issue in Sin(x)/x then what is... and this pic is not from sleeping dreams...
if what you are showing is true, then it a Bezier Curve to me, not sinc(x).

jitter problem is another issue and will need lengthy discussion in different place.
in this thread, lets just assume there is no jitter. its already simulated by Jahonen.

maybe some people get confused with this Nyquist Theorem. From what "he taught" me, if say rigol sampling at 1Gs/s, we can pretty much confident that sinc(x) will render accurately "the 500MHz harmonics (or a little bit lesser) and including the FFT anaysis. pls note i said "harmonics", NOT "fundamental". So if you want to analyze up to 10th harmonics, then you only can measure 50MHz system (fundamental) with it.

in other word, rigol will only be good for 50MHz measurement at maximum sample rate if your design requirement need stability up to 10th harmonics. at long memory double channel (ie 250Ms/s) = 125Mhz 10th harmonics, ie only good for 12.5MHz design.

thats it. i stand to be corrected.
« Last Edit: March 28, 2011, 07:45:28 pm by Mechatrommer »
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Online Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11536
  • Country: my
  • reassessing directives...
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #49 on: March 28, 2011, 07:58:11 pm »
...but it does explain why very high frequency spurs occur on an FFT at high frequencies...
...A practical question is what do we do about it since its a hardware issue?
from my fast read on the link, it seems about the discussion on inconsistency of ADC reading (spur?), that aspect i cannot help, and imho is why there is dso thats more expensive than a house. for the sake of simplicity of this thread, lets just assume the hardware capture mechanism is perfect (spur, jitter, noise etc). the only question is how the implementation of post processing is done (after capture/sampling, which previously i assume to be perfect), ie things like sinc(x), and fft if you want to be off topic. if we want to include hardware side (or even if sinc and fft is done in hardware), then we are in deep shit if we want to measure serious design (high speed high accuracy) with rigol ds1052e. just my humble 2cnt opinion.

Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 

Offline dfnr2

  • Regular Contributor
  • *
  • Posts: 240
  • Country: us
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #50 on: March 28, 2011, 08:06:51 pm »
I have do some amount of work with Rigol for inspect this issue and issue (what I talk in this thread is absolutely "error" in Sin(x)/x (there is not any real Sinx, there is only simple filter nearly as "smooth".) If do Sinx there is not any reason to "hide" real sample point. Example some Tektronix model highlight real points in sinx display (and this highlight can select off/on. Why? Becouse Tektronix know what is oscilloscope and what is Sinx)

There sure is such a thing as sinc interpolation.  Or more correctly, a windowed sinc interpolation.  As you say, it could be implemented as an FIR filter (convolution), with a windowed sinc impulse response.  I suppose if they try to use a different filter for the convolution, then it wouldn't be a sinc interpolation, but rather, for example, a Butterworth interpolation, or such. It can also be implemented in the frequency domain, although I doubt so in this case.

For Hantek I have not yet make enough isnpections. Only what I have look is spectrum analyze sampling clock (9288 signal ENCx) and it is not bad. Phasenoise and "jitter" I have not check but with my "eyes" and simple method look... not very bad.

To examine the DAC timing, a spectrum analyzer is not very helpful.  You will need another--higher performance--scope, preferably equipped with a jitter/timing analyzsis package.

But with simple method it can look if situation is very bad or not. All you need for this is read littlebit about how these machines work and example some nice articles from example Agilent library.


There is some good stuff in the agilent library, especially the older stuff.  Interestingly, on searching it, I found an article on just this artifact in the agilent library. Here's the link to a PDF, and also a video (didn't check the video; it requires registration).  While it contains marketing material about why agilent is better than LeCroy or Tek, it does explain the phenomenon clearly, and also includes description on how you can analyze the waveforms to characterize the distortion.  It also explains the extra harmonics in the FFT, noted by Saturation.

http://cp.literature.agilent.com/litweb/pdf/5989-5732EN.pdf.  

http://event.on24.com/eventRegistration/EventLobbyServlet?target=lobby.jsp&eventid=199821&sessionid=1&key=6AA1B51DB51B7425AC75D3E8CA7B7490&eventuserid=47823303  

Just same: Hantek DSO5102B is 100MHz oscilloscope. Stay below 100MHz and no big problem at all.

But the DSO5202B is a 200 MHz scope, and should have no problem with a 100-150 MHz signal.

What I have think... maybe these economy class scopes give less problems if they do analog front end BW as "brick wall". There go away many small problems.(do not open it more wide... reject it better. ;) )
I don't think that aliasing is a factor here.  With a sufficiently pure sinewave, signal BW, scope BW, and aliasing shouldn't be a factor.


« Last Edit: March 28, 2011, 08:26:41 pm by dfnr2 »
 

Online tautech

  • Super Contributor
  • ***
  • Posts: 28137
  • Country: nz
  • Taupaki Technologies Ltd. Siglent Distributor NZ.
    • Taupaki Technologies Ltd.
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #51 on: January 02, 2016, 06:32:52 am »
Sorry guys for bumping this thread that I only discovered today and it's nothing at all about the brand involved but the now missing imagery and as most of the members that posted are still active, is there any chance the image links can be restored?
Or placed on Dave's server?

Anyway it's a brilliant read for anybody with a DSO.  :-+

Thanks in advance.
Avid Rabid Hobbyist
Siglent Youtube channel: https://www.youtube.com/@SiglentVideo/videos
 

Offline jahonen

  • Super Contributor
  • ***
  • Posts: 1052
  • Country: fi
Re: Rigol DS1000E series: Possible error/fail in Sin(x)/x interpolation?
« Reply #52 on: September 17, 2018, 09:07:07 am »
Hello All,

I have restored the links to my images so they should work now. Sorry for not remembering to fix this.

Regards,
Janne
 
The following users thanked this post: MrW0lf


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf