Одним из основных источников шума в SDR-приемнике (RTL-SDR, HackRF, LimeSDR, ...) является шум квантования. Попробуем разобраться, откуда он берется, какими свойствами обладает, и можем ли мы что-нибудь предпринять для его уменьшения.
Примечание: В данном контексте вас может заинтересовать статья Шпаргалка по работе DSP фильтров, если вдруг вы ее пропустили.
Шум квантования возникает по той причине, что АЦП имеет конечную разрядность:
Пусть АЦП имеет диапазон входных напряжений Vpp. Тогда значение каждого сэпла округляется с точностью до шага квантования:
q = Vpp 2n... где n представляет собой разрядность АЦП. Это равносильно внесению шума, который и называется шумом квантования.
Обычно предполагается, что ошибка квантования распределена равномерно в пределах от −q/2 до q/2. Помимо прочего, это позволяет оценить мощность источника шума (через Urms и предполагая R). Точное значение нам сейчас не сильно интересно. Важно лишь то, что мощность шума зависит только от разрядности АЦП.
Также предполагается, что ошибки квантования являются случайными и независимыми друг от друга. В реальных условиях оцифровываемый сигнал сложен и зашумлен, в связи с чем данное предположение вполне правдоподобно. В сочетании с теми фактами, что 1) среднее значение шума равно нулю и 2) мощность шума постоянна, приходим к выводу, что шум является белым. Важное свойство белого шума заключается в том, что его мощность распределена равномерно в полосе пропускания рассматриваемой системы.
Оказывается, что шум квантования может быть уменьшен. Суть идеи состоит в следующем. Будем использовать частоту дискретизации выше той, что нужна для задачи. За счет этого мы растянем шум квантования по большей полосе. Ведь мы установили, что его мощность фиксирована и распределена в полосе равномерно:
Здесь мы смотрим на сигналы в частной области. Шум квантования изображен в виде заштрихованных трапеций. Левая и правая трапеции имеют разную высоту, но одинаковую площадь. Полезный сигнал с частотой F обозначен вертикальной стрелкой.
Далее применяем децимацию. Вспомним, что она из себя представляет. Сначала сигнал пропускается через ФНЧ, для борьбы с алиасингом. Затем из каждых N последовательно идущих сэплов остается только один, где N – это коэффициент децимации.
Полезный сигнал попадает в полосу ФНЧ целиком, а шум квантования обрезается. Как результат, мощность шума становится меньше в N раз. В децибелах выигрываем:
ΔSNR = 10 · log10 NВ английском языке описанный прием называется oversampling. Обычно его переводят, как «передискретизация». Следует однако учитывать, что последний термин имеет и второе значение: изменение частоты дискретизации в целом, как в меньшую, так и в большую сторону.
Перейдем к практике. С генератора сигналов подадим -73 dBm на частоте 145 МГц. Данный сигнал будем принимать при помощи LimeSDR и программы Gqrx. В первом случае воспользуемся 156250 sps без децимации, а во втором – 10 Msps с коэффициентом децимации 64. Итоговая частота дискретизации одинакова:
>>> 10_000_000/64
156250.0
... однако в первом случае децимация не используется, а во втором – используется.
Сравним результаты:
На глаз выигрыш в динамическом диапазоне составил ~12 dB. Вспомним, что каждый бит разрядности АЦП улучшает динамический диапазон на 6 dB. Таким образом, 12-битный SDR превратился по меньшей мере в 14-битный.
Fun fact! Если зафиксировать частоту дискретизации и сравнивать уровень шума с децимацией и без, то также будет видно улучшение. Однако данное улучшение лишь визуальное. Оно вызвано сужением полосы при фиксированном числе точек FFT. Для корректного сравнения необходим постоянный RBW.
Теоретически, ожидался выигрыш в 18 dB. Тот факт, что на практике получилось меньше, говорит о том, что сделанные ранее предположения не вполне верны. Ошибка квантования распределена не равномерно. Настоящего белого шума в природе не существует. АЧХ цифровых фильтров не является идеальной. Неточность представления чисел с плавающей запятой и ошибки округления не учтены в модели. Наконец, помимо шума квантования имеются и другие источники шума.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | What is decoherence in consistent histories? | 0 | 5 | 07-07-2026 |
| 2 | Explanation requested for a relativistic scenario wherein two seemingly valid measurement procedures lead to different results for the same observable | 0 | 5 | 18-05-2026 |
| 3 | Детектор наличия ВЧ сигнала от передатчика | 0 | 5 | 28-04-2026 |
| 4 | How do recessions happen? | 0 | 5 | 23-06-2025 |
| 5 | Applicability of Spin-2 Field Interpretation of GR | 0 | 5 | 27-06-2026 |
| 6 | Допустимые отклонения по балкам | 0 | 5 | 11-11-2025 |
| 7 | Точность длинного висячего хода | 0 | 0 | 10-09-2025 |
| 8 | About the definition of Born rigidity | 0 | 5 | 24-02-2026 |
| 9 | Is the variation of the metric ##\delta g_{\mu\nu}## a tensor? | 0 | 5 | 04-05-2026 |
| 10 | Measuring EVM and Modulation Distortion in a Reverberation Chamber | 0 | 10 | 10-07-2026 |