Post Go back to editing

ADRV9008-2 problem signal

I am working on ADRV9008-2 on FPGA ZC706 Evaluation Boardfor the Zynq-7000XC7Z045 SoC.
I set up an OFDM signal on matlab and imported it to the ADRV. When I transmit from Tx2 to ORx, I export the data at the ORx level to process it on Matlab.
However, I have a bad bit error rate (BER). At first I thought it was because of the synchronization problem. I solved this problem and I still have a bad BER.
I wanted to see the data at the Tx level before the transmission to the ORx. But when I export the data at the Tx level, and try to process the data on matlab, I realize that the BER is still bad. I therefore understood that the data is degraded at the Tx level even before the transmission to the ORx.
I attached the data before the import on the Tx and the data after the import on the Tx.
At a glance, the data is not the same.
I thought it was a sample rate issue. But when I change the sample rate on the ADRV with the values ​​245.76 MHz or 491.52, the exported data is still the same.
So I don't know why the data is changed at the Tx level before it is even transmitted.

Can you help me please

Parents
  • You haven't attached anything.

    Can you provide details on how you are passing data to the ADRV9008-2 transceiver in MATLAB? Are you scaling this data?

    -Travis

  • I set up a classic OFDM signal i.e., DATA, ENCODING, M-QAM,IFFT AND CYCLIC PREFIX


    Then I saw in the manual that the complex data must be between +32767 to −32768. So I put the data on this scale. And I import the data in txt format.

    Now if there is another scaling then I don't know it.

  • Can you provide more detail on the output level you are observing for your waveform, what you expect it to be, and the same for a simple one-tone waveform?

    -Travis

  • Sorry, I accidentally deleted the post.
    I re-send the message.

    Figure 1 : plot of OFDM before import on ADRV

    Figure 2 : plot of OFDM signal after export on ADRV Tx2 level

    Figure 3 : OFDM signal in ADRV Tx2

    Then, I simulated the signal one tonality which is already on ADRV and I exported it to see its plot on matlab.

    Figure 4 : SIgnal one tonality of ADRV9008-2

    Figure 5 : Signal one tonality of ADRV9008-2 imported on matlab

    I noticed for example that the signal level displayed in matlab is different from that displayed on the ADRV.

    I use an OFDM signal example put on the matlab site: www.mathworks.com/.../f-ofdm-vs-ofdm-modulation.html
    I just changed the random data to constant data.

  • For the question you asked me, '''' How are you measuring Figure 2 ? How are you calculating the PSD in dBw/Hz ? What is your reference ? '''


    I just used a function for display.
    [psd,f] = periodogram(txSigFOFDM, rectwin(length(txSigFOFDM)), ...
    numFFT*2, 1, 'centered')
    where f is the frequency, 1 is the normalized sampling frequency (fs).
    In the descriptions of the ''periodogram'' it is said that the function displays results in the range [0, fs/2].

    Now the dBw, I don't know why it's there. But I also don't see its influence on what I do.

    I just use an OFDM filtered signal example put on the matlab site: www.mathworks.com/.../f-ofdm-vs-ofdm-modulation.html

  • How are you measuring Figure 2

    Is this exported from TES? is this recaptured data from the RX path or from an instrument is really what I'm trying to understand.

    -Travis

  • I redisplayed the complex data before the import on the TES and after the import on the TES.

    For the moment, I don't work with the ORx, I import the data on the Tx2 and at the same time, I import them. And I notice that the display of the samples is not the same.

    When I compare the two plots, I notice an attenuation of around 40 dB.

    Then the BER is bad. I really don't know why

  • The power that you are reading from the GUI tab is read in dBFs. 0dBFs corresponds to +8dBm. In matlab, you need to scale down the data by 2^15(16 bit resolution) and then plot.

  • I have already done the scaling.
    Before importing the complex data on the TES, I multiply the I/Q by 2^15. And then when I finish the transmission on the TES, I designed a function to divide the I/Q data by 2^15.

    I made a comment.
    I found that the TES always puts the data in the interval [-1 , 1]. For example, I imported some data and the TES divided it by 10000 to keep it within the range.
    Then I imported another signal and the TES divided them by 20520 so that it remained in the range.

    But in the manual, I saw that the data must be between -2^15 and 2^15. But the TES does not respect this.

    However, at the ORx level the data is in the range -2^15 and 2^15.

    Also, when I myself put the data in the interval [-1 , 1], the power of the data is very small. Thus, the ORx does not receive them.

  • I found that the TES always puts the data in the interval [-1 , 1]. For example, I imported some data and the TES divided it by 10000 to keep it within the range.

    What do you mean by this statement? How are you knowing that the TES GUI puts the data in the interval [-1,1]?

    When you load a data into TES GUI at TX input, it should be in the scale range of 2^15 to -2^15. Load the waveform into the TES GUI in this format and check the output in a spectrum analyzer.

    Similarly, when you capture the data at ORX or RX output from TESGUI, it is in the range of 2^15 to -2^15. 

  • There is an option on the TES at the Tx level where the signal can be exported.
    Before importing the data on the TES, I check. My I/Q data is between -2^15 and 2^15.
    But when the data is on the TES I see the waveform on the Tx2 for example. And before the transmission to the ORx, I export the data to check them. And when I export them, I divide the data by 2^15 to respect what is in the manual. And there, the data is different.
    that's what I'm trying to explain to you. Even when my data is in the range -2^15 and 2^15, the TES divides them by a factor so that they are between -1 and 1.
    However, when I check the waveform on a spectrum analyzer, it's correct. But that's not my concern for the momment.

    I need to process the data later on matlab to see EVM, SNR of the signal.
    But the SNR is very bad.
    Why  SNR is bad ?
    I've been trying to solve this problem for 2 months now.
    At first I thought it was a problem of synchronization. But after solving this problem, the SNR is still the same.

Reply
  • There is an option on the TES at the Tx level where the signal can be exported.
    Before importing the data on the TES, I check. My I/Q data is between -2^15 and 2^15.
    But when the data is on the TES I see the waveform on the Tx2 for example. And before the transmission to the ORx, I export the data to check them. And when I export them, I divide the data by 2^15 to respect what is in the manual. And there, the data is different.
    that's what I'm trying to explain to you. Even when my data is in the range -2^15 and 2^15, the TES divides them by a factor so that they are between -1 and 1.
    However, when I check the waveform on a spectrum analyzer, it's correct. But that's not my concern for the momment.

    I need to process the data later on matlab to see EVM, SNR of the signal.
    But the SNR is very bad.
    Why  SNR is bad ?
    I've been trying to solve this problem for 2 months now.
    At first I thought it was a problem of synchronization. But after solving this problem, the SNR is still the same.

Children
  • There is an option on the TES at the Tx level where the signal can be exported.

    Can you explain how are you capturing the TX data from the TES GUI in IQ format? 

    If you are using TX to ORX feedback, then see the ORX output directly from the ORX tab in GUI. If you want to check the ORX EVM, then capture the ORX output from TESGUI and plot the EVM in matlab.

  • This is how I export the IQ data at the Tx level.

    Now, I have already done everything you explained. I find an SNR = 0.25

    EVN cannot be good in this scenario.

    I would like you to give me a signal.
    I will send the signal through the equipment and then I will send you.
    And you will check the SNR or EVM on matlab.

    Here is my email: mamadou.bagayogo@supcom.tn


    I am a PHD sutdent. I am blocked in this since 2-3 months

  • Instead of taking out the TX data from the GUI, you can check the EVM and SNR for your original input waveform, as the data that you are capturing from the GUI is nothing but the digital data that you are feeding into the chip to TX input. That is why we donot use the GUI to capture the TX data in  I Q format.

    You can take the TX data in the spectrum analyser and then check the EVM.