开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

frequency correction #tinysa


 

What does the menu item 'correct frequency' under the 'expert config' menu do? The frequency displayed by the marker is 159.861 MHz for an actual input frequency of 160 MHz. Under the same 'expert config' there is an 'actual power' item. What does it do? The level calibration seems to be a fixed table with interpolation. Is it possible to modify that? The level is consistently off by 0.5 to 1dB.
Gary


 

On Fri, Aug 14, 2020 at 01:52 PM, gary wrote:

1. What does the menu item 'correct frequency' under the 'expert config' menu do?
? ??
? ?[I haven't used that setting yet, so I'll leave it to Erik to answer.? I'm guessing it isn't for correcting a marker frequency at full span.]

2. The frequency displayed by the marker is 159.861 MHz for an actual input frequency of 160 MHz.

? [The frequency resolution of the display is dependent on the frequency span and and the display points.? From your marker reading it appears you are measuring the 160MHz input using a 0 - 350MHz span. The tinySA has 290 display points, so for a frequency span of 350MHz each display point is:?350e6/290 = approx. 1.2MHz apart.? The closest points to 160MHz using that increment are 159.861MHz and 161.072MHz.? If you need finer frequency resolution you need to use the 290 display points over a narrower span (i.e center frequency = 160MHz and span = 10MHz).]

3. Under the same 'expert config' there is an 'actual power' item. What does it do?

[Expert Config->Actual Power works like Config->Level Cal but allows you to use an external signal generator instead of the built in calibration output as your reference source.? If you want to perform a level cal on the HIGH INPUT then actual power using an external generator is the only way to do so.]

4. The level calibration seems to be a fixed table with interpolation. Is it possible to modify that?

[See the wiki topic???regarding modifying the correction table]??

5. The level is consistently off by 0.5 to 1dB.

?[From the CALIBRATE wiki, "?Directly after calibration the power level display error is expected to be below +/- 2dB".? If you are measuring 0.5 to 1dB off then your measurements are well within the expected display error.

As a comparison the display error for my Wavetek 8541 power meter is +/- 1dB, and I could purchase 15 tinySA's for what I paid for it and the accessory power sensors.? If I need to measure with better than 1 dB accuracy I substitute? a signal from my rf generator at the same level as the signal displayed on the tinySA and record my generator output as the measured level. ]

- Herb


 

On Fri, Aug 14, 2020 at 01:52 PM, gary wrote:
What does the menu item 'correct frequency' under the 'expert config' menu do? The frequency displayed by the marker is 159.861 MHz for an actual input frequency of 160 MHz. Under the same 'expert config' there is an 'actual power' item. What does it do? The level calibration seems to be a fixed table with interpolation. Is it possible to modify that? The level is consistently off by 0.5 to 1dB.
Herb, Thanks for the good explanation.

Gary,
Thanks for find the ACTUAL FREQUENCY was missing in the wiki. Its added now:?
I added the frequency uncertainty in the FAQ :?


 

You can get a better frequency estimate for a marker that is set to "Tracking the peak". I modified this bit with some extra code to estimate the actual carrier frequency ..

=========
sa_core.c line 2070

????? while (m < MARKERS_MAX)
????? {
??????? if (markers[m].enabled && markers[m].mtype & M_TRACKING)
??????? {?? // Available marker found
????????? markers[m].index = max_index[i];
????????? markers[m].frequency = frequencies[markers[m].index];

????????? { // calculate the predicted frequency - OneOfEleven .. parabolic method (their are other methods)
??????????? const int idx????????? = markers[m].index;
??????????? if (idx > 0 && idx < sweep_points)
??????????? {
????????????? const float y1???????? = actual_t[idx - 1];
????????????? const float y2???????? = actual_t[idx + 0];
????????????? const float y3???????? = actual_t[idx + 1];
????????????? const float d????????? = 0.5f * (y1 - y3) / ((y1 - (2 * y2) + y3) + 1e-12f);
????????????? //const float bin????? = (float)idx + d;
????????????? const int32_t delta_Hz = abs((int64_t)frequencies[idx + 0] - frequencies[idx + 1]);
????????????? markers[m].frequency?? += (int32_t)(delta_Hz * d);
??????????? }
????????? }

????????? m++;
????????? break;????????????????????????? // Next maximum
??????? }
??????? m++;????????????????????????????? // Try next marker
????? }
????? i++;

=========

It doesn't yet use the calculated carrier frequency on my TinySA that this calculates as the display is still getting it from the frequencies[] array rather than the marker[].frequency value. I'll leave that to Erik if he so wishes to use the code.

But this would display a more accurate frequency that simply using the spot frequency from the frequencies[] array.


 

Line should be ..

if (idx > 0 && idx < (sweep_points - 1))


 

On Sat, Aug 15, 2020 at 04:26 AM, OneOfEleven wrote:
You can get a better frequency estimate for a marker that is set to "Tracking the peak". I modified this bit with some extra code to estimate the actual carrier frequency .
Integrated including using the calculated frequency i.s.o. the frequency array when printing
Will be in next FW release


 

On Sat, Aug 15, 2020 at 05:41 AM, Erik Kaashoek wrote:
Integrated including using the calculated frequency i.s.o. the frequency array when printing
Will be in next FW release
FW released, version v1.0-52


 

That little bit of code I put here only really helps if the carrier of interest is somehow spread across 2 or 3 spot frequencies (bins in the FFT world). Otherwise it has little to no effect at improving the indicated frequency. It's main use is with FFT's, but I thought might help here too.

I haven't looked at the receiver architect in your TinySA, so I don't yet know how you detect the amplitude of the carriers as you scan across the frequency range. Do you just have a single real value given to you from the detector chip, or do you have an I/Q pair which you use to create the power spectrum lines I wonder ?

Is there a schematic available ?

Mines been working OK, though have noticed a couple of firmware bugs at times. I really like the unit, extremely handy for RF sniffing while out in the car, interesting what you come across at times ;)


 

I checked.
On purpose I let the resolution filters overlap somewhat? so this helps the interpolation.
There is no I/Q signal and FFT but 57 resolution filters ranging 2.4kHz to 600kHz and then a log? detector chip delivering a single dBm value.
Have a look at the technical desciption in the wiki:?


 

Thanks all for the clarification.
Gary W9TD


 

On Sat, Aug 15, 2020 at 11:50 AM, gary wrote:
Thanks all for the clarification.
Gary W9TD
Gary,?
? What is your current application of the tinySA?? Knowing how the tinySA is being used by its users would probably help Erik to beef-up the Wiki in those relevant areas.

- Herb?


 

I intend on using it for general lab work like identifying and quantifying spurious and harmonic emissions.
Gary W9TD


 

On Sat, Aug 15, 2020 at 04:50 PM, gary wrote:
I intend on using it for general lab work like identifying and quantifying spurious and harmonic emissions.
Great Gary,
? Erik should be a big help if you have questions about either measurement.? You will want to look over the Wiki to learn how to identify spurious emissions within the tinySA itself and how to mitigate them.? Its more of a issue on the HIGH INPUT range because it doesn't have the filtering and attenuation that the LOW INPUT does.

? I recommend that you use an external high pass filter and variable attenuator on the HIGH INPUT if you plan doing a lot of measurements in that range.

- Herb


 

On Sat, Aug 15, 2020 at 05:46 AM, Erik Kaashoek wrote:
On Sat, Aug 15, 2020 at 05:41 AM, Erik Kaashoek wrote:
Integrated including using the calculated frequency i.s.o. the frequency array when printing
Will be in next FW release
FW released, version v1.0-52

Erik,
? Is that the only change in FW release v1.0-52?

- Herb


 

On Sat, Aug 15, 2020 at 07:06 PM, hwalker wrote:
Is that the only change in FW release v1.0-52?
I think so.