I am new to Picoscope, just receiving my 4224 today. However, I am not new to spectrum analyzers. I am interested in low frequency spectra (1Hz - 200 KHz), so began testing the spectrum analyzer with low frequency signals. Specifically, I connected a Rigol DG1022 sourcing a 10 Hz signal with amplitude 100 mVp-p to the Picoscope hardware using a RG-58 coax. I terminated the coax at the Picoscope using a BNC Tee and a 50 ohm terminator on one side of the Tee. The center of the Tee connects to input A of the Picoscope and the other side goes to the DG1022. I am running the Picoscope software on Centos 7. It is Picoscope 6 Beta (6.13.7.707).
The oscilloscope shows the signal correctly (see screenshot 1). However, the SA is displaying the dBm value approximately 10 dB down from what it should. Specifically, a 100 mVp-p signal corresponds to -16 dBm. However, the Picoscope SA shows the strength of the 10 Hz signal as ~-27dBm, which is about -11 dB down (see screenshot 2). I could understand a reading of, say -17 dBm, since there will be losses in the coax and the DG1022 may not be perfectly accurate. But, -27 dBm is way off the mark and does not correspond to the signal shown in the oscilloscope plot.
Is there something in the SA setup that I need to change to obtain a correct dBm reading?
There's nothing wrong with the SA setup. It's your calculation for dBm.
Decibel ratios are calculated using RMS voltages, so the RMS of 100mV p-p is 35.35mV, which when divided by 0.7746V (the RMS voltage for 1mW dissipated into 600Ω) in a decibel ratio gives you -26.8dBm.
I see now that the problem is the Picoscope software assumes 600 ohm termination, whereas I am using 50 ohm termination. That is where the discrepancy arises. Specifically,
Power(in mW) = 1000*(Vrms^2)/R, which in the 50 ohm case is:
So, it appears I will not be able to use the dBm figure provided by the Picoscope for my application and will have to compute dBm from the linear mV value provided. It would be useful if the assumption of 600 ohm termination was documented. I couldn't find it when I looked, but perhaps I missed it.
You might want to consider in a future version of the software providing the user an ability to select the termination resistance when calculating dBm. 600 ohms is used for audio. However, 75 ohm is the standard for CATV and 50 ohms is standard for RF. My interest is computing phase noise characteristics for RF oscillators, which exist in the 50 ohm domain, so allowing users to select the termination resistance when computing dBm would increase the software's utility and expand the product's customer base.
If you can’t access the dBm resistance value, an alternative solution might be to just work out what the voltage would be across the 50 ohm load to give you 1mW dissipation (which I calculate as 0.1414V), and use that as a reference voltage (the spectrum plot is a voltage plot rather than a power plot as PicoScope 6 applies coherent gain to the window function so that the amplitude level can be conserved both before and after the FFT calculation). On windows we can select 'Arbitrary dB' to enter the voltage reference, which would provide the automatic scaling, so it’s worth checking if you have that on Linux.
Btw, apologies for my last hasty response to you. I just assumed that because you were using a 10Hz signal the 50 ohm impedance you mentioned was a red herring, because you typically wouldn't use that with such a slow signal (so I didn’t bother to check if the calculation was right with 50 ohms).
The unix version allows the selection of logarithmic units and specification of dBm. However, it doesn't support the specification of the termination resistance.
Don't worry about the "hasty reply". These things happen.
The "Arbitrary dB" selection is there on the Linux version, but it doesn't allow the specification of the resistance value. What I have decided to do is specify linear for the y axis and download a CSV file of the data. I then will use Octave (open-source Matlab clone) to compute the discrete power spectrum using the formulas I provided in an earlier post.
It would be nice to bring the Windows and Linux versions in sync with respect to the specification of the resistance value. Using the method above (saving the data and processing it with Octave) doesn't allow the user to see the power spectrum in real-time.
That you have a project bringing parity to the Windows and Linux versions is good news. Right now I can survive with computing the power spectrum from the linear output selection, so I am able to move forward.