PCLAB2000SE. Digital phosphor in "Persistence" mode request

Dear Velleman!
Can You implement a feature for Persistence mode, the analogue of “Digital Phosphor” from Textronix?
See the article http://www.hit.bme.hu/~papay/edu/DSOdisp/gradient.htm

I’m understanding that the hardware possibilities of the scopes are limited and most of examples in article above can’t be realized with current hardware (data compression, for example). But I think, it’s definitely possible implement the feature, described at the end of article, the beginning is from sentences:

Take a look at thee pictures below the sentences: ART, DSO and DPO. It seems to me, that DPO picture can be easily computed by PC-software.
I can imagine the 2D (x,y) array of integer - the counters. The array dimensions should be the same size as the DSO data have. Each pixel of each trace line should increment corresponding integer counter value in array. The several traces, accounted in array, can be simply visualized pixel-by-pixel from counters array to pixel array on screen. Only the normalization (linear or logarithmic) and possibly color painting is needed.

It will be excellent if it’s possible to implement someting like this:

I didn’t require such screen in real-time, but in current persistence mode it can be implemented well.
I need a visual information about probability of trace hits certain screen pixel. The information about number of acquired traces is needed to.
There may be new trigger option “Number traces to acquire” for Persistence mode, when one can select the required number of traces to acquire and analyze. The run will stop after requested number of traces will be acquired. This trigger feature can help to provide more stable analysis and comparison for several runs because equal trace numbers.
If the integer counters in array will be 32-bit, there 2^32 traces can be acquired and analyzed flawlessly. The question is the normalization algorithm only. I’m suggesting three methods: Percent linear, Percent logarithmic and dB. In any cases there should be user ability to select arbitrary limits for normalization and rendering. It may be better to colorize the diagram by trace hit probability and to attach the marked color scale for reference.

Thank you for the link and the suggestion.
The Digital Phosphor Oscilloscope (DPO) feature would be very nice!
This feature can be considered for future releases.

My Lecroy WaveJet 322 does it like this, where the color temperature of the dots “sort of” represent the frequency of the “hits”…

There would be a bit (no pun intended) of statistical analysis involved, however the algorithm would not be that difficult…


BTW–The displayed signals are the synch (the stable trace) and function outputs of a PCGU1000 square wave at 1MHz. The image colors were inverted (“negative” imaged) after the screen capture which also inverted the color “temperature” of the captured samples. I prefer this to the raw display which assigns the highest “occurrences” a lower color temperature and vice versa–I find the low to high rendition to be more intuitive.

It is also interesting to note that the jitter of the function output, relative to the trigger, has a 50Mhz span–the same as the PCGU1000’s FPGA clock…

I’m a color management specialist at free time. So I can compute the scale of RGB values from blue to red with equal color difference between adjacent color in human vision perception. Such scale can be more intuitive clear to visual analyze the density of traces. The linear RGB change along scale may be less pictorial.
This task can take a time and results should be tested. I didn’t check this idea yet.

The “Persistence with Intensity Grading” option for the PCSU1000 is advancing.

The options “Number of traces to acquire” and the “Color increment value” will be there too.
The “Color Increment value” specifies how much the color of the pixel increments on each hit.
The color increment will be linear in the first software release.
There are also color scales for the first 100 “hit” colors as reference on the screen.

The color is incremented starting from the original trace color. Using dark trace colors gives biggest amount of different colors for the “hits”.
Here an example screenshot:

It’s a good news! Thank You for Your attention!
I’ll waiting for new release or beta…

Once again all I can say is WOW!!!

Really nice work 255!!
Any chance you could do that for the PCSGU250?

[quote]Any chance you could do that for the PCSGU250?[/quote]This new “Digital Phosphor” option can be put also to the PCSGU250.
Most probably will be done in the next release.

The first beta test release is now ready.
Here is the link to download the setup file: box.net/shared/3ch9v92ly1

This setup installs only the updated PCSU1000 files to the PcLab2000SE.

The new persistence options will be found in the Options menu and in the View menu.

Enter 0 to the “Number of acquisitions” for infinite acquire.
Other values will stop the “Run” mode after the number of acquisitions.
Press “Persist” button to clear the screen and to set the acquisitions counter for next run.

All these settings are remembered to next session.

In the next release there will be option to select the order of the colors to increment.
Now the increment order is for channel CH1 BRG and for channel CH2 RGB.

For channel CH1 the color B is first incremented to as near value 255 as possible using the selected increment step size, then R is incremented and finally G.

Example:

Here is my first “DPO”-gramm:

At a glance:

[ol]
[li]Gradation scale works only for second channel. The first channel is just yellow only, without gradations. The OS is Windows Vista x86 with all Microsoft updates.[/li]
[li]The “Number of acquisitions” counter works only one time after entering value and pressing “OK” in Options. It didn’t work at the next runs or persistent mode activations unless You press “OK” in persistent mode options.[/li]
[li]Custom saturation limits for both minimum and maximum are needed.[/li]
[li]Logarithmic scale may be useful.[/li]
[li]Controllable fade period is needed.[/li]
[li]Spatial aliasing for color gradation may be useful.[/li][/ol]

The third point can help to highlight the area of interest, for example when there are noise traces (minimum level involved) or not so high signal-of-interest probability (maximum saturation level involved). There can be two saturation sliders for gradations: min and max. All pixels which have less count than minimum level, should be displayed by one color - the color of scale beginning. All pixels which have a count higher than maximum saturation level, should be colored by one color of the end of scale. All pixels between minimum and maximum saturation levels should have appropriate scale gradations. The analogy for this sliders - the “Levels” sliders in most of photo editing software. They can help to tune the “contrast” of diagram.

The fourth point. I suppose it can be useful in case of high trace numbers and high “dynamic range” of traces probabilities in areas of interest. It can be used for statistical analysis.

The fifth point is interesting and mandatory. As I’ve understood, there is simple accumulation in current persistence realization. It’s not quite appropriate method. When there is simple accumulating, the gradation on diagram depends only on trace count through certain pixel. Such approach is quantitative analysis. But I’m interesting in qualitative one too. As qualitative analysis I have in mind the probability representation. I.e. the diagram should stabilize after sufficient number of traces and should represent the probability of the trace pass at certain diagram pixel. In current realization it’s not is the case. The diagram goes to saturation.
As I’ve wrote before, the pixel gradation should be determined by division of pixel counter by number of traces. Then it should be scaled into gradation range with regard to min and max saturation levels.
The fade function can decrease all array counters simultaneously at each acquisition for certain decrement in “probability” persistent representation. There are floating point counters for diagram pixels needed because need of smooth fading speed adjustment. With higher decrement value the fading will be faster.
I’ll try to formulate.

I’m suggesting the following user controlled parameters for intensity grading persistence mode:

[ul][li]AcquisitionsNumber:=0 [0…N). Implemented in current release.[/li]
[li]SaturationMax:=1 (0…1].[/li]
[li]SaturationMin:=0 [0…SaturationMax).[/li]
[li]FadingSpeed [0…1]. With FadingSpeed=0 there will be simple probability accounting through the whole persistent mode operation. All of the acquired traces will be displayed if SaturationMin=0. If FadingSpeed is higher than 0, there fill be fade of the probability picture at each next acquisition. If FadingSpeed is 1, only the last trace can be displayed, so the “FadingSpeed” parameter can regulate the “degree of persistence”.[/li][/ul]

At persistence mode start:

PixelCounter():=0;
TraceNumber:=0.

After each acquisition:

TraceNumber:=TraceNumber+1; For each diagram pixel: If TraceHit(x,y)=true then PixelCounter(x,y):=PixelCounter(x,y)+1; Probability(x,y):=PixelCounter(x,y)/TraceNumber; If Probability(x,y)>0 and Probability(x,y)<SaturationMin then ScaleValue(x,y):=ScaleMin else { If Probability(x,y)>SaturationMax then ScaleValue(x,y):=ScaleMax else { ScaleValue(x,y):=(Probability(x,y)-SaturationMin)/(SaturationMax-SaturationMin) } } PixelCounter(x,y):=PixelCounter(x,y)-FadingSpeed; If PixelCounter(x,y)<0 then PixelCounter(x,y):=0; Update screen by ScaleValue() array; Repeat until Number of acquisitions limit.

This algorithm with suggested parameters can smoothly regulate DSO screen from classic scope to storage scope in persistent mode. For example there are several mode equivalences:

[ul][li]Classic digital scope: FadingSpeed:=1; SaturationMax:=1; SaturationMin:=0. Will be displayed only the last trace without gradations.[/li]
[li]PCLAB2000SE old persistence mode: FadingSpeed:=0; SaturationMax:=1; SaturationMin:=0.99999999999. All acuqired traces will be displayed without gradations.[/li]
[li]Probability map: FadingSpeed:=0; SaturationMax:=1; SaturationMin:=0. All acuired traces will be displayed with gradations of trace probability at certain diagram point.[/li]
[li]“Analog scope”: FadingSpeed:=0.01; SaturationMax:=1; SaturationMin:=0. Like a “Probability map”, but with fading like on CRT-scope.[/li][/ul]

I didn’t consider the logarithmic representation, which can be introduced by proper probability(x,y) normalization…

Six point. The aliasing for the pixels of each trace can be applied. The sharp steps on each trace with tilt between 0 and 90 degrees are visible. Aliasing for each pixel line can help to plot more analog-like diagram.

Thank you for your comments and suggestions.
All the suggestions will be considered for the next release.

[quote]Gradation scale works only for second channel. The first channel is just yellow only, without gradations.[/quote]The yellow is so “high” color there is no much to increment it. Please select “lower” color for CH1. Please see the example plot in my previous post.

[quote]The “Number of acquisitions” counter works only one time after entering value and pressing “OK” in Options. It didn’t work at the next runs or persistent mode activations unless You press “OK” in persistent mode options.[/quote]In this software version you have to click the “Persist” button to clear the screen and reset the acquisition counter. Then click “Run” button for the next group of acquisitions.

There are some minor updates made to the software.
Here is the link to download: box.net/shared/3ch9v92ly1

Should I change the trace color in “Options\Color”?

I suppose the acquisition number counter should be resetted in case of disabling/reenabling of Persistence mode, without stopping and running. Just for convenience.
Tank You for Your work.

[quote]Should I change the trace color in “Options\Color”?[/quote]Yes.

[quote]I suppose the acquisition number counter should be resetted in case of disabling/reenabling of Persistence mode, without stopping and running. Just for convenience.[/quote]Indeed, now you have to click “Persist” button to reset the counter and then click the “Run” button to start the selected number of the acquisitions.

Now the next persistence mode “Variable Persistence” is under development.
Here is a screenshot image of a sweeping sine wave:

This mode uses color intensity to indicate the age of the waveform data. The latest data is drawn at full intensity in the selected color for that channel, with older data being represented by successively paler shades of the same color.

The number of waveform records displayed simultaneously on the screen can be selected to be 8, 16 or 32.

In the “Black Screen” mode the latest data is drawn at full intensity and the older data is represented by darker shades of the color.
This new mode simulates very well the analog phosphor persistence:

Now the PCSU1000 software is updated. The View menu option “Variable Persistence” is added. Also the menu option Options “Persistence Options” is updated.
Please use the bright default colors.
Select Options -> Colors and then click either the “Bright Screen” or “Black Screen” button to get the default colors.

Here is the download link: box.net/shared/3ch9v92ly1

Now there are two useful options added to the PCSU1000 “Persistence with Intensity Grading” mode:

  • Custom saturation limits for both minimum and maximum.
  • Controllable fade period.

Now the oldest waveform data continuously fades from the display as new waveform records are acquired. You can control the duration of persistence by selecting the number of acquisitions, after which persistence data will be erased.
The alternatives are: 32, 64, 128, 256 acquisitions or infinity.

Persistence options “control panel”:

Example plot of a noise signal who never saturates with the settings above:

Here is the link to download the updated PCSU1000 program:
box.net/shared/3ch9v92ly1

Thanks!!!

[quote=“Wrong Way”]Any chance you could do that for the PCSGU250?[/quote]Now the PCSGU250 software is updated too.
The persistence modes are now: “Infinite Persistence”, “Color Graded Persistence” and “Variable Persistence”. You’ll find these options in the View menu.
To the Options menu there is added option: “Persistence Options”.
Please see also the Help menu for more info.

Here is the link to download the updated PcLab2000LT v1.11:
velleman.eu/downloads/files/ … _setup.zip

The Color Graded Persistence mode is useful in the Spectrum Analyzer mode too.
In this screenshot the “most popular” spurious signals can be easily seen.

Here is the same plot using the “normal” Infinite Persistence. The missing info about the “popularity” makes this more difficult to analyze.

Also the PCSU1000 software is now updated. Here is the full installation package for the
PcLab2000SE v4.04: box.net/shared/c9nis5ro05if3oop9ptk