Raw waveforms and triggering with X4M03?

Discussion in 'X2 & X4 SoC' started by Stephen Brown, Mar 15, 2017.

  1. Stephen Brown

    Stephen Brown New Member

    Hi I am interested in R&D using pulsed radars by analyzing backscatter. I need to access raw waveforms and be able to trigger the radar pulses from an external source, so I can control timing to external events and do my own stacking. If the X4MO3 can do it, I will give it a try.

    Is it possible to access raw waveforms in this way with the XM403 hardware and the accompanying software development kit? Can external triggering be done? What are the time sampling rates of the data?

    Are there any example codes I can look at to see the details?

    Thank you
    Stephen Brown
    Last edited: Mar 15, 2017
  2. Olav Liseth

    Olav Liseth Administrator Staff Member

    Hi Stephan,

    X4M03 comes with XeThru Embedded Platform (XEP) running on X4M03's MCU and ModuleConnector, a computer library for accessing data from the module. The XEP interface gives direct access to the X4 chip and you can sample raw rf data or downconverted baseband data. RF data is sampled at 23.328 GHz and can be downconverted and decimated, resulting in a sampling rate of 2.916 GHz.

    Sampling of a new frame is timed by the X4 chip giving a constant Frames Per Second (FPS). Starting sampling of a frame cane be timed from the computer or you can extend XEP to trigger sampling on a GPIO event. See this post on FPS versus X4 chip integration time: https://www.xethru.com/community/threads/i-wonder-about-refresh-rate.147/

    The following matlab example in ModuleConnector shows how to connect, setup, start streaming of data and plotting the resulting radar data:
    From the examples folder, you can run it with:

    >> addpath('../');
    >> addpath('../../include/');
    >> addpath('../../lib/');
    >> test_BasicRadarClassX4
    Remember to set the variable COM to the correct com port. The example plots live radar data, in this case downconverted baseband data:
    The first strong component is static and caused by the TX/RX isolation, energy straight from TX to RX, then there's clutter from the rom and the strong reflection at bin number 50+ is the reflection from the ceiling.


    Hi Olav,
    Do we have enough memory to store complex algorithms without additionnal external memory ? Is it possible to protect X4 in write/read by an non authorized person ?

    Best regards,
  4. Olav Liseth

    Olav Liseth Administrator Staff Member



    Many thanks,

    Oll likes this.
  6. EdJ

    EdJ New Member

    Hi Olaf, could you share some more info about how you would extend XEP to trigger sampling on a GPIO event?
  7. Stephen Brown

    Stephen Brown New Member

    Hi Olav,

    Thank you for your reply. I have several more questions for clarification. First what I am interested in is having I+Q waveform data collected after triggering based on an external event. These data should have good fidelity of the waveforms, so that I can do cross-correlations and matched filtering among waveforms to look for small changes in phase. That said ultimately I would need high or shall I say dense time sampling rates. In the ideal world this would be with raw data, but sampling rates are obviously limited in this high frequency RF world and as you mention the 8GHz X4 pulse is sampled at about 24 Gsa/s, which implies more or less 4 samples per cycle. That is not good enough for what I have in mind.

    However if down-conversion to baseband (by the way what is the base-band frequency?) were done with analog electronics and the digitization rates were high enough then I could have the waveforms sampled much more frequently in time, then the down-converted baseband I+Q signals would be usable. How is up/down-conversion done?

    Can you clarify the technical specs of the x4m03 in light of these requirements?

    Thank you so much!



  8. Olav Liseth

    Olav Liseth Administrator Staff Member

    Hi Stephan,

    You are right by the RF sampling rates, but I am not sure what you lose by sampling the RF pulse with 23.328GS/s. The precision is not dictated by the system sampling rate, you can e.g. interpolate the RF data or use the phase information in the baseband data.

    The downconvertion is done digitally, equivalent to multiply the sampling signal with a complex sine with a frequency equal to the pulse center frequency. The energy is shifted down to a center of 0 Hz and the result is lowpass filtered.

    The sweep can be started by an SPI command from the MCU.

  9. Amita

    Amita New Member

    Hi Olav,
    It seems that the frame length in your uploaded graph is 186 bins. I am also using a MATLAB code to plot the raw data and am getting 186 bins, despite setting the number of bins to 1536 using rx_mframes and rx_mframes_coarse registers. Do you have any ideas as to why this is occurring?
  10. Olav Liseth

    Olav Liseth Administrator Staff Member

  11. Hammad Tariq

    Hammad Tariq New Member

    Hi Olav,

    Is there any example code for cpp and X4M03? I can see the cpp files in ModuleConnector, there are cpp files for X4M300 but nothing for X4M03. Any pointers?
    Klaus Petersen and smrkang like this.
  12. Sruthy Skaria

    Sruthy Skaria New Member

    Would you help me with location of test_BasicRadarClassX4.m ?
  13. Charlie Shao

    Charlie Shao Moderator Staff Member

    It is located at ModuleConnector-win32_win64-1.6.2\matlab\examples\BasicRadarClassX4.m