We are trying to do a spectrum monitoring application using FMCOMMS3 + ZED board.
The spectrum that we plan to sweep is from 2400 MHz to 2500 MHz.
We are using the "SDR Receiver" simulink block provided with the Communication Toolbox support package.
And we are able to set the receive LO frequency ( example 2410 MHz ), Bandwidth ( 20 MHz ) and then down convert and do 4000 point FFT. Everything looks fine so far.
As next step, we tried to change the receive LO frequency in steps of 20 MHz ( like 2430, 2450, 2470 and 2490 MHz) and maintain the bandwidth as 20MHz .
This needs to be done in real-time ( without break ) so that at the end of one full sweep, we will get FFT from 2400 to 2500 MHz.
SDR is something new to us and we are not quite sure how to proceed. Would appreciate if you can give us some suggestions.
Tq and have a good day...
If you are using MATLAB/Simulink or any host-based streaming control of the transceiver, any configuration is purely asynchronous. Meaning it can be difficult to determine what data is related to what frequency depending on configuration. This is partially due to the buffer latency inside the system.
To guarantee data of a specific configuration you will need to modify the default IIO context settings, which is part of the low-level driver on the host. Basically setting "iio_device_set_kernel_buffers_count" (libiio: Device ) to 1 should provide the necessary "fresh" data with the most up to date configuration. However, you will see overflows since there is no backup buffer. So contiguous streaming is not possible.
Alternatively, you can release the system object in MATLAB between frequency hops. This is very slow but will guarantee correct data for a configuration. However, again you cannot stream contiguously.
To stream contiguously and be in sync with hops you will need to implement control on the FPGA itself.
Hope you are doing fine.
We managed to do the frequency sweep without releasing the object. The drone detector is able to detect DJI Phantom 4 Pro at a distance of nearly 1Km in urban environment and more than 2Km in a rural environment. So far so good. A photo of the drone sensor is attached with this note. Works within ISM 2400 MHz and ISM 5800 MHz band.
Right now planning to do a drone locator which gives azimuth and elevation angles using FMCOMMS5. Managed to get the date streaming in all 4 channels. In this connection, would like to clear some doubts regarding the Receiver sampling frequency and Receiver bandwidth.
In FMCOMMS5.m program, the sampling freq is 30.72MHz and receive bandwidth is 18 MHz. Normally one would expect the sampling frequency to be above the Nyquist frequency which is 36MHz. I am a bit confused here...Where can we find some extra information regarding the sampling frequency and receive band-width relationship for FMCOMMS5 board. We are using FMCOMMS5+ ZC706 base-band board.
Travis, thanks again and look forward to your reply...
The 18 MHz RF bandwidth refers to the 3dB bandwidth of the front-end analog filters. The 30.72 MHz is the complex channel bandwidth, which is the output/input rate of the transceiver.
Thanks. Appreciate your quick reply.
If we were to use higher bandwidth, say 50 MHz, can we specify Channel bandwidth= 50 MHz and Front end low pass bandwidth as 28 MHz? Does this combination work?
Look forward to your reply....Tq
We are planning to evaluate ADR9008-1W/PCBZ which offers 200 MHz RF bandwidth.
From what is given in the website, the compatible processor board with FMC connector is EVAL TPG ZYNQ3 with the following specifications;