Post Go back to editing

Adding my own DPD module to FMCOMMS2 HDL

I have built the FMCOMMS2 HDL code and I have a few questions.

1) Where is the best place to get information on what the AD IP modules do and their interface (read the code maybe?)
2) What AD937x  interface  mode is being used to talk to the IP (FDM dual port?).
3) Where would be the best place to get access to the TX and RX stream in a deterministic way?

Bit of background. I am trying to add a simple Transmitter Digital Pre-distortion module to the AD HDL code.
To do that I need access to the TX samples and RX (tx monitor) samples, the TX and RX samples need to
maintain alignment so I can distort the TX samples and then update the LUT from the RX (monitored) samples.
I am currently thinking of intercepting the samples between the de-multiplex block and the FIFO block.

Unfortunately because I need to do the correction on oversampled data I won't be able to use some of the features
on the transceiver chip. I am using a Zedboard and an FMCOMMS4 board but I won't need symbol rates above 4 MS/s.

The transmitted waveform is DVB-S2 which is a single carrier QPSK - 32APSK waveform.

Yes I know AD do a transceiver with integrated DPD but that is a bit expensive for this application which is to provide a
high power DVB-S2 signal into the Es'hail 2 Geostationary satellite Amateur Radio Wideband transponder uplink on 2.405 GHz.

- Charles

Corrected interface mode to Full Duplex Mode (FDM)
[edited by: g4guo at 11:23 AM (GMT 0) on 30 Dec 2018]

Top Replies

Parents Reply
  • Just wanted to add that you can use the TXMonitor inputs. In this mode, the part feeds the TX LO into the RX path. You lose the LNA but you don't really need that for DPD.

    To do the necessary time alignment you likely have to use a farrow filter to give fractional sample offset estimation. This is pretty common for DPD.


  • Travis, I have just looked at the AD9361 block diagram and that looks like the proper way to do it as you say I have plenty of signal available. The next challenge is to figure out whether it can be done using iio or whether I will have to modify registers directly. The FMCOMMS4 board brings out TX mon to a not fitted SMA.

    I am planning to do the filter update calculations on the ARM cores in non real time with the PS running a tight loop requesting a new block of TX / MON samples when it can.

    - Charles