- AuthorSearch Results
Found in Replies
Andrew posted on January 31, 2018 at 3:05 pm View this postIn reply to: Noise Bandwidth of Resolution Bandwidth Filter
AndrewModeratorHello David,
I think the biggest issue I see is that since you specified a linear scale output from the API, the sweep is in the units of mV. In the Spike software we specify a log scale output and then convert each sweep bin to mW (power units) before summing them up, and then convert the final result back to dBm. If you want to stay with the linear scale (mV) output from the API, just square each sweep bin before summing.
I will attach a file I have sent others from the Spike software. It has some additional details that are irrelevant here, such as only summing up the power in a range specified by the user, but you will notice the same logic for summing the bins as mW and then dividing by the window bandwidth.
If you aren’t already, you can test the output of your code to the values Spike provides. Assuming similar channel widths, it should match very closely.
Regards,
AndrewAttachments:
You must be logged in to view attached files.Found in Replies
bittware posted on November 21, 2017 at 4:47 pm View this postIn reply to: Pulsed RF signal spectrum measurement
bittwareParticipantIf the center frequency drift is of concern, which API function should be used to get the instantaneous frequency measurement value?
Found in Replies
Justin Crooks posted on November 21, 2017 at 11:49 am View this postIn reply to: Pulsed RF signal spectrum measurement
Justin CrooksModeratorIf you are using the API, we provide streaming I/Q data at 40 MSPS, which you could have centered at 3 GHz.
For amplitude, use I*I+Q*Q, and for phase use the atan2 function.
By relative phase, I mean 2 things:
1) If your generator time base does not exactly match the BB60C, the phase angle in the I/Q data will rotate at the frequency difference.
2) If you lock time bases together, there will be a fixed phase offset between the generator and the BB60C. In most cases, there will be a *new* fixed phase offset each time you start I/Q streaming, but exact multiples of 20 MHz may avoid this.
You can download the API manual from our website for more information.
Using the API, you can measure amplitude and phase 40 million times per second. By adjusting sample rate and signal bandwidth, and adding some averaging, you can make more accurate, but slower, amplitude and phase measurements.Found in Replies
bittware posted on November 20, 2017 at 5:22 pm View this postIn reply to: Pulsed RF signal spectrum measurement
bittwareParticipantIt’s great to know BB60C could get it done.
Could you elaborate on “measurements on the instantaneous amplitude (including pulse width at 25 nanosecond resolution), frequency, and relative phase of the pulse.”?
In fact, I’m going to tune my 3GHz signal generator to my RF Cavity in real-time.
I’m particularly interested in what API may be involved to interpret the amplitude, frequency and relative phase. These three factors are the key to drive my tuner. How fast is the API running at the remote? Within 3ms interval, can all these three parameters per pulse be recorded without missing in streaming mode?
Thanks again.Found in Replies
Andrew posted on November 13, 2017 at 8:59 am View this postIn reply to: Sweep Recording
AndrewModeratorHello HHonza501,
There are no plans currently to allow the user to change sweep configurations during the recording. If users needed this kind of flexibility on the sweep recordings I would recommend using the API to retrieve sweeps from the device and storing them in a custom file format that suits the customers needs.
You are correct, as you scroll the recording it will move the sweeps into the waterfall. I can see how this wouldn’t be desired. I will make a note of this and potentially resolve this for future versions. Thank you for the feedback.
Let me know if you have additional questions or need clarification.
Regards,
AndrewFound in Replies
Andrew posted on November 12, 2017 at 6:14 pm View this postIn reply to: Floor noise of BB60c
AndrewModeratorThat is correct. There is no configurable DSP on the unit, other than the processing associated with individual measurements (sweep/real-time/IQ). The API will be very similar to our other devices.
Regards,
AndrewFound in Replies
jthienel posted on November 6, 2017 at 8:13 am View this postIn reply to: SA124B Manual Gain and Attenuation settings.
jthienelParticipantUsing Linux for this application and no anti-virus is running.
Have only received one type of error code from the unit.
The subsequent trace is correct.
Is there some sort of CRC error checking between the SH and the api? I can work with a trace that has errors but I need to know to reject it.
This application will send alarms if the trace is out of tolerance so it is critical that false alarms are not generated.
Is there a different or better FTDI driver available?
Does running the FTDI driver or USB communications in priority mode help?
Thanks,
JayFound in Topics
jthienel posted on November 1, 2017 at 11:05 am View this postTopic: SA124B Manual Gain and Attenuation settings.
in forum SA Series DiscussionsHello,
Using Labview to control an SA124B.
Changing the attn and gain inputs to the gain attn vi it appears to not control the SA124B attenuation or gain controls.
The controls are integers and the api manual shows values of -1 to 3 are valid for the attn control and -1 to 2 are valid for the gain control.
Is there any thing else that has to be done to manually control the attn and gain.
Thanks.Found in Replies
Andrew posted on October 6, 2017 at 11:18 am View this post
AndrewModeratorHi Fabrice,
So, what’s going on here is that the API is limiting the IF bandwidth to 50kHz and the GUI is not showing you the clamped value. If you opened the spectrum plot in zero-span you would notice that as you decrease the bandwidth past 50kHz it is being limited. (IE you wouldn’t notice a difference spectrum at 10 and 50kHz bandwidth)
The proper fix here is to have the GUI report the bandwidth that was clamped. The reason there is IF bandwidth limits here, is due to the filter sizes required to get reasonable rolloff at very narrow bandwidths. There are fixed sized filter passes on the downsampling processing in the BB60C API.
If you are able, a workaround is to simply lower your sample rate to something closer to 10kHz. 50kHz bandwidth is less than 1/10th the sample rate you are using. A good target might be between 1/2 and 1/4.
I realize it may not be a viable option, but we do have a programming interface for the BB60C. If you need a very specific setup, polling the IQ data from the device into your C/Matlab/Python/other program, and then filtering down to 10kHz can be straightforward. Then you can save the data in whatever format is best for your application.
Again, open up the spectrum plot to visualize where the lower IF bandwidth cutoff hits. I can make a note to fix the GUI to show the clamped values.
I apologize for the inconvenience. Let me know if you have further questions or feedback.
Regards,
AndrewFound in Replies
Andrew posted on September 18, 2017 at 3:09 pm View this postIn reply to: any expert use BB60C to decode LTE signal?
AndrewModeratorHi Testpoint,
I agree with Jared. Tools like Matlab (they do have an LTE toolbox https://www.mathworks.com/products/lte-system.html) will be the best way forward. I’m not aware of any third party applications that solve this problem directly using our receiver. As Jared stated, you will need to pull the IQ data directly from the receiver (using the BB60C API) and push it through some processing libraries. There are Matlab examples for getting IQ data from the BB60C into your Matlab script, you can find these examples in the API SDK. (link: https://signalhound.com/download/bbsa-application-programming-interface-for-windows-3264-bit/)
Regards,
AndrewFound in Replies
Andrew posted on August 29, 2017 at 8:59 am View this postIn reply to: Controlling USB-SA124/44B
AndrewModeratorDragan,
The API does not perform the sweep averaging you desire.
To accomplish sweep averaging, you will need to acquire N sweeps and accumulate them into a single sweep (add bin-by-bin) and when finished divide each bin by N.
Let me know if you have additional questions.
Regards,
AndrewFound in Replies
blackmore90 posted on August 3, 2017 at 1:02 am View this postIn reply to: BB60C Sweep Test CPU Load Issue
blackmore90ParticipantThank you very much for your fast response Andrew.
I have decided to minimize the test complexity to eliminate potential effects of other sub-projects. I have created the following very simple CPP code:
#include <iostream>
#include “bb_api.h”int main()
{
int handle = 0;
bbStatus openStatus = bbOpenDevice(&handle);
bbConfigureAcquisition(handle, BB_AVERAGE, BB_LOG_SCALE);
bbConfigureCenterSpan(handle, 3.000005e9, 5.999991e9);
bbConfigureLevel(handle, -30, BB_AUTO_ATTEN);
bbConfigureGain(handle, BB_AUTO_GAIN);
bbConfigureSweepCoupling(handle, 5e3, 5e3, 1e-3, BB_RBW_SHAPE_FLATTOP, BB_NO_SPUR_REJECT);
bbConfigureProcUnits(handle, BB_POWER);
bbStatus initStatus = bbInitiate(handle, BB_SWEEPING, 0);
unsigned int sweepsize;
double binsize, startfreq;
bbQueryTraceInfo(handle, &sweepsize, &binsize, &startfreq);
float *min_swp = new float[sweepsize];
float *max_swp = new float[sweepsize];
for(int i = 0; i<1e6; i++){
bbStatus swpStatus = bbFetchTrace_32f(handle, sweepsize, min_swp, max_swp);
}
return 0;
}It results in about 18% CPU usage on my ASUS laptop. The system has i7-4700hq CPU, 16GB of RAM and the BB60C is connected to USB 3.0 port. Configuration is x64. This code uses about 8 threads and I have attached the thread display if you would like to check.
Actually, I am planning to port the code to another computer which will have Intel Atom series processor. My project will likely result in a huge CPU load on that PC.
Does that test really make sense in roughly measuring the CPU load?
Thank you.
Attachments:
You must be logged in to view attached files.Found in Replies
Andrew posted on August 2, 2017 at 9:16 am View this postIn reply to: BB60C Sweep Test CPU Load Issue
AndrewModeratorHello blackmore90,
The Vtune report is probably not reporting symbols properly, as the bbGetTimebaseCorrection function appears in there erroneously, although I would expect both the log function and the fft functions to appear at the top of the list.
The API should be idle between bbFetchTrace function calls yes? The bbFetchTrace function will perform the full acquisition and processing necessary to get you the sweep requested. Very little processing takes place on the receiver. The receiver sends ADC IF samples to the PC for further processing, which includes potentially hundreds/thousands of FFTs, logarithmic, and arithmetic functions on the data. The processing is also spread out on several threads to finish the processing as quickly as possible. If you are continually requesting sweeps the API will be continually processing these sweeps as quickly as your computer will allow.
If you think you are seeing behavior outside of this, we can investigate further. I don’t see anything suspect in your code snippet.
Let me know if you have further questions.
Regards,
AndrewFound in Topics
blackmore90 posted on August 2, 2017 at 2:08 am View this postTopic: BB60C Sweep Test CPU Load Issue
in forum BB Series DiscussionsHello,
I am working on a project in which i need to get sweep data from BB60C and then process those dB-scaled samples on PC. My goal is to divide the 0-6GHz band into two subbands, obtain one sweep for each using two different RBWs and merge them. However, I end up with too much CPU load. The development platform is Visual Studio 2010. To investigate this problem, I use Intel’s V-Tune XE Amplifier 2013 integrated to VS2010. It points to somewhere in bb_api.dll file as most CPU-time utilizing point.I use the following CPP code in a loop so i can continually get sweep data for each spectrum part and merge them:
double reflvl = -30.0;
uint64_t timestamp=0;// Get First Sweep
configure_sweep(362.5e6, 675e6, 30e3, 30e3, 0.2, BB_RBW_SHAPE_FLATTOP, BB_NO_SPUR_REJECT,reflvl, BB_AUTO_ATTEN);
initialize_sweep(timestamp);
bbQueryTraceInfo(devhandle, &swpsize_first, &binsize_first, &startfreq_first);
float* sweep_first_copy = new float[swpsize_first];
bbFetchTrace_32f(devhandle, swpsize_first, sweep_first_copy, sweep_first);// Get Second Sweep
configure_sweep(3.345e9, 5.29e9, 300e3, 300e3, 0.2, BB_RBW_SHAPE_FLATTOP, BB_NO_SPUR_REJECT,reflvl, BB_AUTO_ATTEN);
initialize_sweep(timestamp);
bbQueryTraceInfo(devhandle, &swpsize_second, &binsize_second, &startfreq_second);
float* sweep_second_copy = new float[swpsize_second];
bbFetchTrace_32f(devhandle, swpsize_second, sweep_second_copy, sweep_second);// Merge Sweep
memcpy(merged_sweep, sweep_first, swpsize_first*sizeof(float));
memcpy(merged_sweep+swpsize_first, sweep_second, swpsize_second*sizeof(float));delete [] sweep_first_copy;
delete [] sweep_second_copy;Also, I have attached the V-Tune’s Bottom-Up report. Actually, I could not figure out the problem. Maybe I am calling API functions in an improper way. I will be very happy if you could give an idea on that.
Thank you.
Attachments:
You must be logged in to view attached files.Found in Replies
Andrew posted on July 24, 2017 at 9:35 am View this postIn reply to: programming manual
AndrewModeratorHello Dragan,
I just emailed you the link for the API download which includes the manual. I will link it here as well.
https://signalhound.com/download/bbsa-application-programming-interface-for-windows-3264-bit/
A link to just the manual. https://signalhound.com/sigdownloads/SA44B/SA-API-Manual.pdf
Regards,
AndrewFound in Replies
AttilaTheHun posted on July 23, 2017 at 1:26 pm View this postIn reply to: Cannot connect SA44B with Spike
AttilaTheHunParticipantI’ve got a similar problem. I have two Windows 10 machines. My SA44B works just fine on one, but I can’t run it on the other. I’m getting a “Device Connection Issues Detected, Ensure the device is connected before opening again via File Menu” message from Spike. Interestingly, the File/Connect menu lists my device SA44/124: 3000329.
————————–
Spike 3.1.7
BB API Version 3.0.19
SA API Version 3.0.18Windows 10 Home Version 1703 (KB4025376)
i7-4790K CPUCDM v2.12.00 WHQL Certified.exe
————————–Device Manager lists
USB Serial Converter A
USB Serial Converter BLoad VCP unchecked
Driver => FTDI 2.12.24.0————————–
and here’s some output from the Windows EventViewerDevice USB\VID_0403&PID_6010&MI_00\7&21d6526d&0&0000 requires further installation.
Device USB\VID_0403&PID_6010&MI_01\7&21d6526d&0&0001 was started.
Driver Name: oem8.inf
Class Guid: {36fc9e60-c465-11cf-8056-444553540000}
Service: FTDIBUS
Lower Filters:
Upper Filters:Device USB\VID_0403&PID_6010&MI_01\7&21d6526d&0&0001 was configured.
Driver Name: oem8.inf
Class Guid: {36fc9e60-c465-11cf-8056-444553540000}
Driver Date: 09/28/2016
Driver Version: 2.12.24.0
Driver Provider: FTDI
Driver Section: FtdiBus.NTamd64
Driver Rank: 0xFF0001
Matching Device Id: USB\VID_0403&PID_6010&MI_01
Outranked Drivers: oem17.inf:USB\VID_0403&PID_6010&MI_01:00FF0001 oem19.inf:USB\VID_0403&PID_6010&MI_01:00FF0001 oem23.inf:USB\VID_0403&PID_6010&MI_01:00FF0001
Device Updated: false
Parent Device: USB\VID_0403&PID_6010\03000329Device USB\VID_0403&PID_6010&MI_01\7&21d6526d&0&0001 was migrated.
Last Device Instance Id: USB\VID_0403&PID_6010&MI_01\7&21d6526d&0&0001
Class Guid: {36fc9e60-c465-11cf-8056-444553540000}
Location Path:
Migration Rank: 0x0
Present: falseDevice USB\VID_0403&PID_6010&MI_01\7&21d6526d&0&0001 requires further installation.
————————–
The Device Manager data looks the same on both computers, so I’m suspicious of Windows settings, especially any related to the virtual com port.I’ve also shutdown any antivirus software.
Any thoughts or suggestions will be greatly appreciated.
tia,
Bruce RaymondFound in Replies
JasonS posted on July 5, 2017 at 4:18 pm View this postIn reply to: Understanding SA44B Limitations – Windows/Linux/ARM
JasonSParticipantDid a quick and dirty test on linux 64 bit intel processor running low latency kernel with the new FTDI drivers.
Getting same results as with previous drivers. If you’re not after absolute accuracy then its fine, if you’re looking for the 1.5dB stated amplitude accuracy then the linux/ARM API is not going to meet this for channel power type measurements anyway. Or anything that is close to the noise floor.
Would like to work with Signal Hound to get it working on the other platforms as well as it does on windows.
Let me know how I can help … it would benefit a large range of industries to use non-windows PCs!
Regards
JasonFound in Replies
Andrew posted on July 5, 2017 at 9:49 am View this postIn reply to: SA44B (ARM / Pi2 version) for spur hunting
AndrewModeratorHi Ron,
I would consider a small windows PC or laptop for best use. There are several restrictions on the RPi2 platform due to driver and throughput issues we have over USB 2. The PC restrictions are very low for the SA44B if you are going to use the API (most PCs will have no problem)
Regards,
AndrewFound in Replies
Andrew posted on June 16, 2017 at 12:57 pm View this postIn reply to: exporting .csv files
AndrewModeratorSounds good David.
Additionally, in case you weren’t aware, we have C DLL programming interface for our devices, if you wanted to retrieve IQ data directly from the receiver programmatically, you can do that. The API files are found on the devices respective downloads page, you will find an IQ streaming example in the downloads folder.
Regards,
AndrewFound in Replies
mikes posted on June 12, 2017 at 3:31 pm View this postIn reply to: Well that came in under the radar…
mikesParticipantIs the smallest RBW using the onboard FPGA then 250 MHz / 16384 =~ 15.26 kHz? Also, can the FPGA be configured (via the SM200A API) to yield nice even bin sizes, like 25 kHz? That would yield about 800,000 bins / sweep or about 3.2 MB sweep (4 bytes/bin)? With 120 uS min dwell time, it appears you can do a sweep in 15.625 mS + tune time, at least on paper. Is 50 sweeps / sec doable then with 25 kHz RBW? (50 * 3.2 MB / sweep = 160 MB/sec)
- AuthorSearch Results