usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

Configure FPGA + AD9361 to function as a RRC upsampling filter

FA
Francisco Albani
Wed, Jul 27, 2016 9:09 PM

Hi again.

I'm working with the DVB S2 TX GNURadio example [4].

It uses a 2X upsampling filter after constellation points and before UHD
Sink: firdes.root_raised_cosine(1.0, samp_rate, samp_rate/2, rolloff,
taps)

(modulator outputs one zero between each symbol, because there is no
interpolating FFT FIR Filter to do the 2X)

I'm working with a host that reached its maximum sample rate without
UNDERFLOWS bellow the point I desire.

Reading page 31 of AD9361 Reference Manual [1], I learned that there is
some room for customization of TX Filters so I wondered if I can send
constellation symbols directly to UHD Sink and instruct it to perform
upsampling and pulse shaping.

Navigating the uhd/host code [2] I understand that UHD handles all this
internally. In the 3.9.0 release announcement there is a mention to a
"AD9361 filter api" [3] so maybe there is already support for doing this.

So, are the any examples or guides to achieve it?

I don't expect this to be easy; I will appreciate any "big picture" guiding.

Bye and thanks.

[1]
http://www.analog.com/media/en/technical-documentation/user-guides/AD9361_Reference_Manual_UG-570.pdf
http://www.analog.com/media/en/technical-documentation/user-guides/AD9361_Reference_Manual_UG-570.pdf[2]
https://github.com/EttusResearch/uhd/blob/master/host/lib/usrp/common/ad9361_driver/ad9361_filter_taps.h
https://github.com/EttusResearch/uhd/blob/master/host/lib/usrp/common/ad9361_driver/ad9361_filter_taps.h[3]
http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2015-August/015554.html
http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2015-August/015554.html[4]
https://github.com/gnuradio/gnuradio/blob/master/gr-dtv/examples/dvbs2_tx.grc
https://github.com/gnuradio/gnuradio/blob/master/gr-dtv/examples/dvbs2_tx.grc

Hi again. I'm working with the DVB S2 TX GNURadio example *[4]*. It uses a 2X upsampling filter after constellation points and before UHD Sink: *firdes.root_raised_cosine(1.0, samp_rate, samp_rate/2, rolloff, taps)* (modulator outputs one zero between each symbol, because there is no interpolating FFT FIR Filter to do the 2X) I'm working with a host that reached its maximum sample rate without UNDERFLOWS bellow the point I desire. Reading page 31 of AD9361 Reference Manual *[1]*, I learned that there is some room for customization of TX Filters so I wondered if I can send constellation symbols directly to UHD Sink and instruct it to perform upsampling and pulse shaping. Navigating the uhd/host code *[2]* I understand that UHD handles all this internally. In the 3.9.0 release announcement there is a mention to a "AD9361 filter api" *[3]* so maybe there is already support for doing this. So, are the any examples or guides to achieve it? I don't expect this to be easy; I will appreciate any "big picture" guiding. Bye and thanks. *[1] http://www.analog.com/media/en/technical-documentation/user-guides/AD9361_Reference_Manual_UG-570.pdf <http://www.analog.com/media/en/technical-documentation/user-guides/AD9361_Reference_Manual_UG-570.pdf>[2] https://github.com/EttusResearch/uhd/blob/master/host/lib/usrp/common/ad9361_driver/ad9361_filter_taps.h <https://github.com/EttusResearch/uhd/blob/master/host/lib/usrp/common/ad9361_driver/ad9361_filter_taps.h>[3] http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2015-August/015554.html <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2015-August/015554.html>[4] https://github.com/gnuradio/gnuradio/blob/master/gr-dtv/examples/dvbs2_tx.grc <https://github.com/gnuradio/gnuradio/blob/master/gr-dtv/examples/dvbs2_tx.grc>*