diff options
author | ariff <ariff@FreeBSD.org> | 2009-07-05 18:15:06 +0000 |
---|---|---|
committer | ariff <ariff@FreeBSD.org> | 2009-07-05 18:15:06 +0000 |
commit | 488931f6d96dba8045a1f97876133c24072f46e9 (patch) | |
tree | e82f9cb385e02e883604993ec01e90531d962a0b /sys/net80211/ieee80211.c | |
parent | edf89f716262ec28b66e3ba8f49c4a1c11ff0f4c (diff) | |
download | FreeBSD-src-488931f6d96dba8045a1f97876133c24072f46e9.zip FreeBSD-src-488931f6d96dba8045a1f97876133c24072f46e9.tar.gz |
- Increase dynamic range of filter coefficients from 28bit to 30bit.
This cause dramatic effect in overall precision and conversion quality
by pushing down most aliasing artifacts around -180 dB.
Spectrogram analysis/comparison:
http://people.freebsd.org/~ariff/z_comparison/z_28vs30/
- Guard against possible 64bit overflow during accumulation process by
slightly normalize and saturate sample and coefficient multiplication,
possible during extreme 32bit downsampling (eg. 380KHz -> 8KHz) with
custom preset that require more than ~7000 taps filter (which is
overkill).
- Add knobs through FEEDER_RATE_PRESETS to set dynamic range of filter
coefficients/accumulator and prefered polynomial interpolator:
COEFFICIENT_BIT:X
(where 1 <= X <= 30, default: 30)
ACCUMULATOR_BIT:X
(where 32 <= X <=64, default: 58)
INTERPOLATOR:I
(where I = ZOH, LINEAR, QUADRATIC, HERMITE, BSPLINE,
OPT32X, OPT16X, OPT8X, OPT4X, OPT2X)
Approved by: re (kib)
Diffstat (limited to 'sys/net80211/ieee80211.c')
0 files changed, 0 insertions, 0 deletions