QA40xPlot Thread

Thanks for the comments. In answer to your question, yes, the test measurement channel should set which channel determines the output level based on output power or output voltage. The auto-scaling uses both channels to determine the attenuation amount to avoid overloading the QA403.

I’d note my documentation for QA40xPlot is quite minimal and I’m just starting a Wiki type of documentation to help with that. The Youtube tutorial linked in the on-line help is very good but a little old at this point and I’m hoping to redo that soon.

Mark

This works, but only in the graph. Summary data doesn’t show changes in dBs. It just shows 0dBr, but the voltage display does change. For example I output 1V from the generator, put 0dBV to dBr Add and then change input levels i.e. generator output voltages.

@TimoJ The data summary in the Spectrum test isn’t really designed for that purpose. Try this in the frequency response test and the dBR value can be easily read off the mouse value in the bottom right or from the plot. It will do this in the spectrum test also but you can’t point at the frequency peak effectively there.

Mouse cursor value is not automatically updating, looks like it updates only when the mouse is moved.

That’s a fair point. I’ve fixed that for the next release in the Response tests.

With the release of 1.2.5 I thought I’d just point the updates to the requestors→

  1. @TimoJ This version updates the cursor display on each run without having to move the mouse.
  2. @MichaelT As of 1.2.4 the amplitude unit of measure in each test is saved in the configuration. Set them as you wish, then save the configuration as default (check the Command menu).
  3. @LHQuam, @restorer-john , @adams_leo I’ve added a Residual Plot option to the Scope test. When enabled, the display will include a residual line. This is still very early and if you all like it as is I’ll add enhancements to let you determine how that line is calculated. Check the What’s New for info on the math.

Mark

3 Likes

@MarkZ Perfect. Thanks.

1 Like

Thanks for the residual plot. Typically, the residual voltage range is very small compared to the total signal, requiring different y-axis scales for the two.
When the x-range is zoomed out to the total signal time range, the residual is huge at each end, suggesting an interaction the windowing function. The residual looks good in the middle of the x-range.

1 Like

If you have the current build (I did an update mid-day) it has a primitive scaling function for the Residual since I agree it wasn’t useful without two different scales. It also has a way to just use harmonics (removing power hum for example).

Yes, the ends will have funny stuff because there’s no windowing going on to ensure fidelity. As you note the not-ends are fine. In my testing I just skipped the first 80ms. I may try windowing again (my algorithm changed) but it doesn’t seem too major without it.

Oh btw, those two GUI lines are hidden when Residual Plot is turned off.

The residual algorithm that I use does the following:

  1. The complex fft of the signal is computed. The fundamental frequency of the signal has been adjusted so that in falls exactly on a fft bin, ensuring that all of the harmonics do the same.

  2. The complex values H(h) of the harmonics are extracted from the complex fft.

  3. The magnitude of the complex values are the same as those presented in your legend and response data on the Spectrum page.

  4. The residual waveform is computed from the complex values of of the harmonics:

    sum (H(h) exp(2*pi*h*j)), for k ranging over the harmonic numbers

The residual should be everything after the fundamental is subtracted, including noise and any DC trend / subharmonic content. When not sampling synchronously an FFT doesn’t provide an accurate frequency for the fundamental so other methods are needed to notch out the fundamental.

@MarkT That’s precisely the current residual display with num harmonics set to 0 (all). Although the current acquisition code does some DC removal in the signal capture.

@LHQuam That is pretty much the current residual display with num harmonics set > 0. Just inclusion of background noise.

I’m still working on the final results, so thanks for the feedback but please be patient.

1 Like

I just shipped 1.2.7 with this nice new feature. The graph popup menu has useful options : ) In particular Snapshot autosaves the test as SnapX and then autogets it to show on-screen. Essentially, keep my current test visible as I continue.

And, for those of you thinking about residuals, they’ve been moved to their own axis so you can keep a constant window size.

For those not paying attention: the Command menu has a fairly-new option “What’s New” that shows what is new in a pretty format.

Whoops: known bug - the app will crash if you try to see group delay with a swept gain test. Fixed in next version.

1 Like

This is a pretty amazing project. I have an unusual use case that if possible a version that works in a 32 bit machine would be great. Matt’s version does work on a 32 bit Win 10 system. The current .net requires a 64 bit system. Maybe this suggests an way to enable both 32 bit and 64 bit OS: Will .net8 support 32 bit Application when built on "Any CPU" Configuration - Microsoft Q&A

I notice the top right voltage/current/temp panel is at zero until you activate the run. Is there any reason why it can’t give a reading once the program has loaded and is talking to the QA403?

image

running:

@restorer-john Yes and no. It’s mainly historical.

No, this is the first delivery of that feature and I didn’t want to add additional risk. At the moment it only updates the second you run a test. I’d like it to update during tests and at startup but that takes a slightly risky update I wanted to delay until the panel was tested by users.

Yes. QA40xPlot doesn’t actually connect to your device until a test runs the first time. At first, QA40xPlot ran via REST interface and it was easy to forget to first start up the QA40x app which caused all sorts of issues with connects at startup.

@1audio I have no idea if an ANY build will support 32 bit. The doc says there’s a way to make a 32 bit build but I haven’t dug into it. I did build one just now using Any/Portable (I think) and zipped it up for you to try. It is here: https://dnsproxy.com/Files/QA40xPlot_1_2_7_2.zip – no guarantees. To try it out just unzip the folder anywhere and run the qa40xplot.exe inside of it.

Mark

1 Like

The version you made for me did not work. Same issue. However I discovered (after a lot of false starts) that manually downloading and installing the .net desktop runtime 4.8.1 (?) it included the 32 bit support and the standard version (6) runs now on a Windows 10 32 bit IOT install. (The Win 10 IOT has extended support). The auto download version seems to have left the 32bit stuff out and refuses to run on a 32 bit OS.

Thanks for your efforts.

Hi @1audio

I’m not entirely sure what you said here. What does this mean?

“and the standard version (6) runs now on a Windows 10 32 bit IOT install”

Is this

a) you got the version of QA40xPlot I uploaded for you working,

b) or the auto download works, or

c) none of the above?

Thanks for testing this.

Mark

Sorry for the imprecise response. b) the autodownload works on 32 bit systems if you manually download and install the correct .net version.

Thanks again for your efforts.

1 Like

@MarkZ , great software! A question: I searched this thread for ‘THD+N bandwidth’ (and just ‘THD+N’), but I did not quite find what I was looking for. It seems that when THD+N is computed the noise bandwidth integration limit is also applied to cut off the harmonics. Is that right, and is that intended? Naively I’d thought you limit the noise bandwidth to whatever is specified in the settings, but keep the distortions up to the maximum allowed by the sampling frequency, as (I assume) is done for THD.

Here’s a plot that shows how THD+N dips below THD; the red curve steps below the black curve above 5kHz (for a 20 kHz noise bandwidth; this particular amp seems to be H5 dominated…):