Discussion and technical support related to USRP, UHD, RFNoC
View all threadsWe'd like to bypass the Tx FIR filter and I'm wondering how to go about
this using the C++ api.
For the filter_base_info class there is the is_bypassed() function to read
the state, but no function to set it.
Should we be creating a new filter pointer with bypass set, and then using
it to overwrite the filter via uhd::usrp::multi_usrp::set_filter ?
Does anyone have some sample code that sets the bypass on FIR or HB1/HB2 ?
Thanks,
Sean Hamilton
Sean,
if I remember correctly, the filter configuration (whether or not a filter is bypassed) is determined by the ratio of DAC rate to master-clock rate (the interpolation that needs to happen inside the ad9361) thus, you can only somewhat,
indirectly, control it by changing the master-clock rate.
However, if you can live with the interpolation inside the FIR, you can reprogram the fir taps to whatever suits your needs.
For examples take a look at:
https://github.com/jarn0ld/uhd-filter-tool
Hope that helps.
Cheers,
Julian
Julian Arnold, M.Sc
On 10. Apr 2019, at 22:30, S Hamilton via USRP-users usrp-users@lists.ettus.com wrote:
We'd like to bypass the Tx FIR filter and I'm wondering how to go about this using the C++ api.
For the filter_base_info class there is the is_bypassed() function to read the state, but no function to set it.
Should we be creating a new filter pointer with bypass set, and then using it to overwrite the filter via uhd::usrp::multi_usrp::set_filter ?
Does anyone have some sample code that sets the bypass on FIR or HB1/HB2 ?
Thanks,
Sean Hamilton
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Yeah, the driver tries to keep the DAC clock close to it’s max legal frequency with the highest possible interpolation ratio from master_clock_rate.
That code doesn’t have any API access but I can show Sean how to hack it into UHD if necessary.
On Apr 10, 2019, at 10:57 PM, Julian Arnold via USRP-users usrp-users@lists.ettus.com wrote:
Sean,
if I remember correctly, the filter configuration (whether or not a filter is bypassed) is determined by the ratio of DAC rate to master-clock rate (the interpolation that needs to happen inside the ad9361) thus, you can only somewhat,
indirectly, control it by changing the master-clock rate.
However, if you can live with the interpolation inside the FIR, you can reprogram the fir taps to whatever suits your needs.
For examples take a look at:
https://github.com/jarn0ld/uhd-filter-tool https://github.com/jarn0ld/uhd-filter-tool
Hope that helps.
Cheers,
Julian
Julian Arnold, M.Sc “The Intern of the month"
On 10. Apr 2019, at 22:30, S Hamilton via USRP-users <usrp-users@lists.ettus.com mailto:usrp-users@lists.ettus.com> wrote:
We'd like to bypass the Tx FIR filter and I'm wondering how to go about this using the C++ api.
For the filter_base_info class there is the is_bypassed() function to read the state, but no function to set it.
Should we be creating a new filter pointer with bypass set, and then using it to overwrite the filter via uhd::usrp::multi_usrp::set_filter ?
Does anyone have some sample code that sets the bypass on FIR or HB1/HB2 ?
Thanks,
Sean Hamilton
USRP-users mailing list
USRP-users@lists.ettus.com mailto:USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com