ad936x-filter-wizard icon indicating copy to clipboard operation
ad936x-filter-wizard copied to clipboard

Filters with leading and ending zeros

Open kylex2 opened this issue 3 years ago • 8 comments

Hi,

I generated a filter (Tx) which returned 128 taps with first and last 8 taps all zeros. I wonder if this is expected and if there's any reason it wasn't a 112 tap filter instead?

kylex2 avatar Feb 11 '22 10:02 kylex2

The hardware+driver doesn't support loading arbitrary tap lengths. They need to be 16,32,64, or 128.

tfcollins avatar Feb 11 '22 17:02 tfcollins

Thank you for your reply. This information is contradicting UG-570 revA pg 31 and pg 34.

The filter taps are configurable in groups of 16 between a minimum of 16 and a maximum of 128 taps.

kylex2 avatar Feb 11 '22 17:02 kylex2

Yes you are correct. So I believe this comes from the constraint that RX and TX filters need to be the same length.

tfcollins avatar Feb 11 '22 19:02 tfcollins

I tried to find information about the constraints in relevant sections in UG-570 but couldn't find anything about that the Tx and Rx filter must be of same length. Maybe I missed it so my question is where can I read about this?

Thanks

kylex2 avatar Feb 12 '22 12:02 kylex2

With the AD9361 - there are lots of undocumented constraints that are built into the tools or drivers.

rgetz avatar Feb 12 '22 17:02 rgetz

Yesterday I read the source for the AD9361 no-os driver and I couldn't see any checks for this constraint. I could for example see checks validating number of taps (!ntaps || ntaps > 128 || ntaps % 16) and if interpolation/decimation factors are valid for chosen number of taps. Both of these are also mentioned in UG-570.

Can you please show me where is the check for Tx taps == Rx taps?

kylex2 avatar Feb 13 '22 11:02 kylex2

I still haven't seen any clues in the no-OS code that suggests that Rx and Tx must have same lengths. I do see the ftr parsing code however assumes they are always the same but none of the functions to program the filter to the chip does any check for it. To me it looks like it's an issue with the ftr file format where the Tx and Rx coefficients are stored in pairs and the number of lines determines the number of taps. The export to no-OS shouldn't have this issue since in that case the number of taps are stored in separate variables but then #28 breaks it instead.

kylex2 avatar Feb 15 '22 11:02 kylex2

You won't find it in the driver - it's in the filter designer.

rgetz avatar Feb 15 '22 13:02 rgetz