Flame war.... ENGAGE! Kidding. I'll have to look over what you wrote and I'll get back to you. there's a perfectly good chance I'm missing something. Thanks for the detailed reply! On Apr 8, 2013 10:42 PM, "David Hawkins" <d...@ovro.caltech.edu> wrote:
> Hi Ryan, > > So truncate is actually kind of hard to decide on. In general, I've had >> mixed results with regard to using round-to-even, versus "truncate, but >> use one extra bit". I think that the round choice is more important on >> a coherent application, but this is still guesswork. >> >> Saturate is much easier. Anytime you saturate, your snr is basically >> ruined. It's like clipping your ADC. In DSP land, it's like adding a >> huge delta function at each saturate/wrap point (bigger delta for a >> wrap). Do it once in a thousand times and your SNR is instantly down to >> ~30 dB. That being said, the rule of thumb is "never, EVER clip any >> part of your signal chain". So its reasonable to use wrap... since once >> you saturate, it's so bad (and obvious) that using saturate isn't even >> important anymore. >> >> With bit growth, I used to go for an analytical solution -- or even just >> a strong rule-of-thumb. I have a few of the latter nowadays, but I >> pretty much just do robust SNR analysis against expected values, reduce >> until I'm just marginal and then add back 2-3 bits to be safe. >> > > Saturation and quantization noise for noise-like signals are > intimately related. As you comment above when you clip you > add a delta function, which is the same as wideband noise. > So long as that wideband noise does not exceed the quantization > noise you're doing ok. > > http://www.ovro.caltech.edu/~**dwh/carma_board/digitizer_**tests.pdf<http://www.ovro.caltech.edu/~dwh/carma_board/digitizer_tests.pdf> > http://www.ovro.caltech.edu/~**dwh/wbsddc/correlator_**efficiency.pdf<http://www.ovro.caltech.edu/~dwh/wbsddc/correlator_efficiency.pdf> > > In these documents you will see noise power ratio (NPR) plots. > > How does this factor into anything we care about? Well, the > "correlator efficiency" of say a 2-bit correlator, or 2-bit > correlator with deleted inner products is ~87%. This efficiency > comes about not due to the loss-in SNR due to heavy quantization, > but due to the non-linearity in the correlation estimate caused > by the heavy quantization. > > Anyway, a certain level of saturation is fine. It occurs when you > sample the input signal, and it should also be happening when you > requantize (saturate and round) signals within the DSP processing > pipeline. > > Check out this tutorial for a discussion of rounding techniques > and why only convergent (bankers) rounding should really be used > > http://www.ovro.caltech.edu/~**dwh/correlator/pdf/ESC-** > 104Paper_Hawkins.pdf<http://www.ovro.caltech.edu/~dwh/correlator/pdf/ESC-104Paper_Hawkins.pdf> > > Eg., check out the comparisons of all the MATLAB rounding methods > in Figure 13 on page 26. > > Wrapping should never be allowed in a DSP chain. Truncation adds a > bias (keeping more bits just decreases the bias) so should not be > used in applications where you care about the DC offset, eg. > complex-valued baseband processing. Re-quantization stages should > saturate and convergent round. If you're saturating "too hard", > then that is an error in the power-detection and scaling logic > preceding the re-quantization stage. > > I don't mean to start a DSP flame war, I just thought you might > like to hear an alternate opinion :) > > Cheers, > Dave > > >