LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

sensitivity search algorithm

Hi all!

 

I'm implementing (or better said, battling with it! 😉 ) a search sensitivity test case for a FM receiver. That is, I have to find the power value received in the FM receiver (usually about -100 dBm), which is needed to obtain a determinate a signal-to-noise-ratio SNR (26 dB), see figure.

 

So I usually start at -106dBm (an FM modulated signal created with a Signal Generator and feed in the antenna port) and increase the value until reach the expected 26 dB (measure done with the Audio Analyzer). I use the typical approximation by steps (see attached figure). Each measure requires some time, and the whole process (the whole FM radio band must be sweep) takes too long.

 

Initially, for the next frequency I used the last power value obtained. But sometimes there are glitches or disturbances, which cause some wrong measurements, so then I improved the algorithm using the mean value of the last 5 measurements (Mean.vi function). The first 5 measurements are done in the usual way

 

Anyway, sometimes due to gray-channels and/or disturbances the measurement varies significantly, and I guess the algorithm could be improved. So I would like to look for an interpolation method (roughly, a 10 dBm increment of power in the input of the radio produces an increment of 3 dB in the SNR).

 

Furthermore, I would like to implement a detection of unstable measurements (for example a really bad answer from the FM receiver or a disturbance). That is if, for example, after 10 iterations there is no measurement, warn about it and skip to the next frequency.

 

Unfortunately, it is quite complicated to attach code, since there are a lot of instrument/drivers inputs and so on, who makes it impossible to run without the required devices. Anyway I would try to answer as well as possible any of your questions!

 

I would really thank any info you can offer me. Thanx in advance!

 

Cheers!

 

Gatet.

Download All
0 Kudos
Message 1 of 8
(3,551 Views)
Hi, Gatet:
 
     Are you doing this test for a prototype receiver, or for a production line?  I can't imagine for a prototype, doing a reiteration for every frequency will take that long.  I don't think using a previous measurement as a calibration point is a good idea, as your errors will tend to accumulate.  Are you looking for something like PLL lockin time as well, or strictly looking at ultimate SNR?  I think we could use a few more details.
 
Eric
0 Kudos
Message 2 of 8
(3,543 Views)

Hi Eric,

 

First of all, thanks for your quick answer!

And yes, it is a prototype radio, included in a mobile device. And you are right, usually doesn't takes much time (with this mean value search), but when there are disturbances they really slow down the system. Take into accout that some times the receiver has a really bad answer... So here comes the necesity to get a "more clever" solution.

And I'm only looking at the ultimate SNR.

Hope it helps!

0 Kudos
Message 3 of 8
(3,541 Views)
I guess it's a bit complicated with no code, so I attach a very simplified version (all instrument communication functions are removed), so that you can at least see what I'm speaking about! 😉
 
At the moment I don't get the expected behaviour, does anybody knows how to implement efficiently the half-step algorithm (see attachment in the first message)? Any tips about the implementation in general?
 
I really would appreciate any clue you can give me!
 
Gabi

Mensaje editado por Gatet

0 Kudos
Message 4 of 8
(3,505 Views)

Does anybody knows, how to implement the step approximity algorithm, represented in the picture? I have to fin the appopiate level, which gives me the correct SNR value (for more info, please see above!). To find the next point where I should start my search, is there a better way than show before (sensitivity.zip), which is the mean of the last 5 measurements? Can be the "curve fitting.vi" used for that?

Thanks in advance!

Gatet

Mensaje editado por Gatet

0 Kudos
Message 5 of 8
(3,483 Views)
Gatet,

I looked at your original post again. I wonder if the problem is not the search algorithm but the ability to detect the unstable measurement. From your description it sounds as though the existing step algorithm works reasonably well for "clean" meausrements.

Can you describe more explicitly what happens when you get one of the "bad" measurements? How long does each measurement take (for one step of the search algorithm)?

Do you get a SNR vaue from your test equipment or do you calculate it from other data? I ask this because your simplified VI mentions data from a Spectrum Analyzer.

Lynn
Message 6 of 8
(3,461 Views)
Hi Lynn,
 
First of all, thanx for your time!
 
Well, the step algorithm is still not working properly. The desired behaviour, shown in the image file, is not obtained. At the moment it goes straight to 0.1 steps, even if it is far away...
 
And u are right, the problem is when there are some unstable measurements. A normal measurement takes about 10-20 sec, if the values differ it can take up to some minutes.
 
And about the Spectrum analyzer was a mistake, I get the SNR measurement directly from the Audio Analyzer! Sorry!
 
What I'm exactly looking for is first,  a good methode to guess the next value. At the moment, i just do the mean of the last 5 values. I wonder if there is a better way to get it (like some king of polinomial interpolation...
 
Second, to improve the step algorithm. I'm also considering about using a variable step, depending on the distance to the searched value. That is not difficult, would be just a rule of three, the exact values I will find out with some SNR vs FM level measurements. The problem is the step algorithm itself...
 
Hope it helps!!!
0 Kudos
Message 7 of 8
(3,455 Views)
I´m a step forward now and I get the SNR response tendency, measuring SNR vs. power. (Results are in the attached vi)
 
What I'm not sure about now is how can I use this approximations (note that it is just an approximation, and can differ from one deviced measured to another). How can I use this data to calculate the step I should apply to get the corrected value?
0 Kudos
Message 8 of 8
(3,433 Views)