Forums › SA Series Discussions › How to change from "Measuring Receiver" to "FM Modulation Analysys"
- This topic has 9 replies, 4 voices, and was last updated 8 years ago by Andrew.
- AuthorPosts
zhubajeiParticipantI am making an application that uses SA44B in LabVIEW.
We want equipped with the same function as the “Measuring Receiver” of the Signal Hound Ver2.18D of application.
I want the measurement value is five below.
1.RFCounter; // RF frequency count out (Hz)
2.FMAudioFreq; // AF frequency count out after FM demod (Hz)
3.FMPeakPlus; // Peak Positive Modulation, in Hz
4.FMPeakMinus; // Peak Negative Modulation, in Hz
5.FMRMS; // RMS Modulation, in HzIn Signal Hound API version 2012_01_05 thru 09_17, there is a function called “SHAPI_RunMeasurementReceiver”, but does not have the same kind of function in the new API “Version 3.0”.
“Spike-> menu-> Analysys mode-> zero Span” the measured value is displayed in.
However, I do not know what is displaying these values using any function.saConfigIQ?
saQueryStreamInfo?
saGetIQ_32f?
saConfigAudio?
saGetAudio?How Please tell me the procedure to get these values.
In addition, “SHAPI_RunMeasurementReceiver” is likely to be acquired these values in one function.
sa_api.dll(Ver3.0) and sh_api.dll the (Ver2.18D), Is it possible to be used at the same time?
AndrewModeratorHello zhubajei,
The sa_api version 3.# does not have direct functions for calculating the values you are looking for. We calculate the values directly in the Spike application from the I/Q data received from the saGetIQ functions. I do not believe the two APIs can be used in conjunction.
Calculating these values might be very easy in Labview with the built in functionality.
You will need to collect data with the saGetIQ functions,
then FM demodulate the data. Once you have the FM data, you can perform the necessary statistics on the data, such as averaging the FM array and finding the peaks.You can see our implementation here
https://github.com/SignalHound/BBApp/blob/master/BBApp/src/model/demod_settings.cpp
In the IQSweep::Demod function, you can see how we demodulate to FM. Then in the IQSweep::CalculateReceiverStats function, between lines 337 – 379, you can see our main FM calculations.We do our calculations on about 1/4 second of contiguous data.
Regards,
A.J.
zhubajeiParticipantThank you for replying it last time.
After it was considered, I think I’ll make an application using Legacy APIs.The question about the contents written on a manual of Legacy APIs Ver2012_01_05 thru 2012_09_7.
Because English is weak , I can not understand the contents of the instruction manual enough .
Please help understand it.1. Setting with the FFT size
Are you OK with “16,32,54,128,256,512,——65535”?2. calculation formula of RBW Are you OK with “RBW (Hz) = 1638400 / Decimation / FFT size”?
(This is the same value as the value that would be obtained in GetRBW ())3. calculation formula of Data number of points.Are you OK with “Data Point number = 2.5 * SPAN (Hz) / RBW (Hz)”?
4. list covers two types calculation formula of the execution time.
Execute Time = 40+ (FFTsize × AvgCount × Decimation / 486) mS/slice — (1)
= Decimation * (stop – start) / 201kHz mS/slice — (2)FFTsize = 1024, AvgCount = 8, Decimation = 1,start freq = 440.4MHz, stop freq = 440.8MHz
When I calculate on this condition(1) Execute Time = 40+ (1024*8*1)/486 = 56.856 mS/slice
(2) Execute Time = 1*(440.8M-440.4M)/201k = 400k/201k=1.99 kHz?The answers to be provided are different. Which is right?
5. setting panel of the Legacy API (Ver2.11A), only the setting of RBW is there, FFTsize and Decimation can not be set.
Does this software design is correct?The RBW and FFTsize and Decimation, we understand that there is a relationship to each other.
However, in the Signal Hound (SA44B), please tell me the relationship of these three values.6. When I call SHAPI_RunMeasurementReceiver(),
I construct five numerical value of “RFFrequency,AudioLPFreq,AudioBPFreq,UseLPF,UseBPF” across API.
However, it is set in the Measuring Receiver panel “IFBandwidth” does not pass.
Do not have a problem?7. I make application to check an electric wave state of the fixed station (frequency 400MHz zone) of the specific small electricity now.
Because it is an electric wave of the fixation station, the data update speed does not have to be early.
SHAPI_LVC_ConfigureFast -> SHAPI_LVC_GetSlowSweep -> SHAPI_LVC_ConfigureFast -> SHAPI_RunMeasurementReceiver
Call the API in this order, it was continuous operation.
In the program that made the test, it has successfully operate.Is there a possibility that the problem occurs in this way?
Regards.
zhubajei.
Justin CrooksModerator1. Yes. Powers of 2. 16, 32, 64, 128, …
2. Yes.
3. Number of points varies a little based on window bandwidth. For the legacy API, it is closer to 3.5 * span / RBW
4. 440.4 to 440.8 MHz would probably be 2 slices (440.4 – 440.6, 440.6 – 440.8). If each slice is 56 ms, your sweep time would be 112 ms.
5. The API expects FFT size. The user interface expects RBW. Use the relationship from question 2.
6. IF bandwidth is set using decimation (IF BW = 240 kHz / decimation)
7. I would expect this to work. Configure, sweep, configure, use measuring receiver (actually more of a modulation analyzer).
Let me know if you have more questions.
AnonymousInactiveDo you have an example for GetIQ of SA44B in Labview?
I tried to get IQ, but always nothing.
I don’t know where is the problem?Regards,
Randy
AndrewModeratorHello Randy,
I apologize, we do not have any examples for IQ acquisition in Labview. We only have the sweep example found in the API download folder and there are some sweep examples developed by customers on our forums.
Regards,
A.J.
AnonymousInactiveDear Andrew
Thank you for your reply!
Could you tell me how to make the API GetIQ work?
It seems doesn’t work.Regard,
Randy
AndrewModeratorHello Randy,
Have you taken a look at the IQ examples we provide in the C programming language? They are freely available in the API download folder. These examples will show you all the functions required to configure IQ acquisition. I suggest getting the functionality to work in C before moving to Labview.
The download link for the API files is on the downloads page at,
https://signalhound.com/support/product-downloads/sa44b-sa124b-downloads/The download also includes the API manual which will help with any questions you have while looking over the API examples.
Regards,
A.J.
AnonymousInactiveDear Andrew
Thank for your suggestion.
I already read the example(simple_stream_iq) in cpp file.
I can’t understand how to input values to pkt?
In C++, just claim the name, but in Labview, I don’t know how to input the value like iqData, iqCount, purge…etc.Regard,
Randy
AndrewModeratorHi Randy,
We haven’t developed a Labview example yet for IQ acquisition, so we don’t have any experience or examples of this yet. There are several help forums and Labview help pages that discuss dealing with C structures and DLLs. They would be a good place to start.
Regards,
A.J.- AuthorPosts
You must be logged in to reply to this topic.