I have been reading on different ways to do this. I have seen this Linear-phase DC Removal Filter This seems like it would work just fine, but it would take some time to implement.
Is there any reason you can't just say average 16192 * 256 samples and every time this completes, use this latest output value to subtract each input sample by this amount?
I have new samples every 12.5 MHz, system clock is 150 MHz.
Resource wise this will take more, but are there any fundamental issues doing this vs a moving average?