Лайонс Р. Цифровая обработка сигналов. Второе издание. Пер. с англ. (2006) (1095937), страница 90
Текст из файла (страница 90)
Вспомните теперь, что любой непрерывный сигнал в реальном мире имеет свое собственное отношение сигал/шум, так что использование АЦП, ЯАгЯА/~> которого намного превышает отношение сигнал/шум сигнала, не имеет смысла. В этом случае дополнительные биты АЦП будут использованы для оцифровки шума непрерывного сигнала с большей точностью. Здесь необходимо сделать одно предупреждение относительно рассматриваемого анализа ошибок квантования АЦП. Вывод выражений (12-13) и (12-15) основан на трех предположениях: 1.
Причиной ошибок квантования является случайный стационарный процесс, т. е. характеристики АЦП не меняются со временем. При заданном входном напряжении мы всегда ожидаем получить от АЦП один и тот же двоичный код. 1 Кстати, для описания того, насколько сильно нагружен вход АДП, некоторые специалисты используют пик-фактор. Пик-фактор и коэффициент нагрузки являются взаимно обратными величинами, или СГ = 1т /(СКЗ сигнала).
12.3. кты конечной длины слова... 461 2. Функция плотности вероятности ошибки квантования равномерна. Мы предполагаем, что АЦП идеален, и все значения ошибки в пределах от — 9/2 до +д/2 равновероятны. АЦП, у которого имеются пропущенные коды, этому условию не удовлетворяет. Высококачественные АЦП, на вход которых подается сигнал, пересекающий множество уровней квантования, даст необходимую нам равномерную функцию плотности вероятности ошибки квантования. 3. Ошибки квантования не коррелированы с непрерывным входным сигналом.
Если бы мы оцифровывали непрерывный синусоидальный сигнал, частота которого кратна частоте дискретизации, мы фактически оцифровывали бы одно и то же напряжение, н последовательность ошибок квантования не была бы случайной. Ошибка квантования была бы в этом случае предсказуемой и повт'оряющейся, а наша формула для дисперсии ошибки квантования оказалась бы недействительной.
На практике для таких сложных сигналов, как музыка или речь с их богатым спектральным составом, эта проблема не возникает. Чтобы завершить обсуждение АЦП, рассмотрим последний вопрос. В литературе читатель может встретить выражение Ь // = (ЯФЯ вЂ” 1.76)/6.02 . (12-16) Это выражение используется производителями измерительных приборов, чтобы указать чувствительность приборов, используя параметр Ь,г/, известный как количество эффективных битов, или эффективное количество битов (Е)чОВ) 13 - 81. Выражение (12-16) — это просто (12-15), решенное относительно Ь.
Изготовители измерительных приборов измеряют реальное отношение сигнал/шум их прибора, характеризующее его способность воспринимать входные сигналы на фоне внутреннего шума прибора. Имея это реальное отношение сигнал/шум, они используют (12-16) для вычисления значения Ь,у/. Чем больше Ь // тем больше непрерывное напряжение, которое можно точно оцифровать, по отношению к внутренним шумам оборудования.
12.3.2. Переполнение данных Следующее явление, связанное с конечной длиной слова, которое мы рассмотрим, называется переполнением. Переполнение — это то, что происходит, когда результат арифметической операции содержит слишком много битов, или разрядов, и не может быть представлен в регистрах, предназначенных для его хранения. Мы можем показать такую ситуацию достаточно легко, используя простой восьмиразрядный калькулятор, реализующий четыре функции.
Сумма десятичного 9.9999999 и 1.0 равна 10.9999999,но на восьмиразрядном калькуляторе сумма равна 10.999999, т. к. 9.9999999 +1.0000000 10.9999999. этот разряд отброшен 462 Глава 12. и овые о матыданныхи их ль в об аботке сигналов Регистры, которые содержат результат арифметической операции и управляют дисплеем, могут хранить только восемь десятичных разрядов, так что младший разряд отбрасывается. Хотя ошибка в приведенном примере меньше одной миллионной, эффект переполнения может быть поражающим, когда мы работаем с большими числами.
Если мы используем наш калькулятор для сложения 99999999 и 1, вместо правильного результата в 100 миллионов мы получим 1. Теперь это настоящая ошибка переполнения! Покажем эффекты переполнения на примерах, которые теснее связаны с обсуждением форматов двоичных чисел. Прежде всего, сложение двух двоичных беззнаковых чисел так же просто, как и сложение двух десятичных чисел.
Сумма 42 и 39 дает 81, или 1 1 1 биты переносов +42 в двоичном беззнаковом формате. 1 0 1 01 0 +39 в двоичном беззнаковом формате — + 1 0 0 1 1 1 +81 в двоичном беззнаковом формате - 1 0 1 0 0 0 1 В этом случае два шестибитовых двоичных числа требуют 7 битов для представления результата. Общее правило гласит, что сумма т Ь-битовьх чисел может требовать для предсглаеления результата до 1Ь + 1о82(т)) битов.
Следовательно, для накопления суммы шестнадцати 20-битовых чисел потребуется 24-битовый регистр (аккумулятор), т. к. 20 + 1о82(16) = 24. Сумма 256 восьмибитовых слов потРебУет аккУмУлЯтоР длиной в [8 + 1о8з(256)1, илн 16 бит, длЯ того, чтобы не было переполнений. В предыдущем примере, если бы длина слова аккумулятора была равна 6 битам, возникла бы ошибка переполнения: 1 1 1 - биты переносов +42 в двоичном беззнаковом формате - 1 0 1 0 1 0 +39 вдвоичном беззнаковом формате + 1 0 01 1 1 +17 в двоичном беззнаковом формате .
1 О 1 О 0 0 1 — ошибка переполнения перенос из знакового разряда игнорируется, что приводит к ошибке переполнения Здесь старший бит результата вызвал переполнение 6-битового аккумулятора, и возникла ошибка. В отношении ошибок переполнения двоичный дополнительный формат обладает двумя интересными свойствами. Во-первых, при определенных условиях переполнение при суммировании двух чисел не приводит к ошибке. Во-вторых, при выполнении множества сложений промежуточные ошибки переполнения не сказываются на окончательной сумме, если результирующий модуль суммы Ь-битовых двоичных дополнительных чисел меньше 2ь 1.
Проиллюстрируем эти свойства, рассмотрев четырехбитовый двоичный дополнительный формат на рисунке 12.5, двоичные значения которого взяты из таблицы 12.2. 463 12.3. Э екты конечной длины слова... Десятичный эквивалент шп +7 +в +з аюа Рис. 12.6. Четырехбитовые двоичные дополнительные числа Первое свойство двоичного дополнительного переполнения, которое иногда не дает ошибок, можно показать на следующих примерах: 0 1 0 - биты переноса -5 в двоичном дополнительном формате - 1 0 1 1 +2 в двоичном дополнительном формате - + 0 0 1 0 -3 в двоичном дополнительном формате— 01101 -правильный отрицательный результат нулевой перенос из знакового бита 1 1 0 - биты переноса -2 в двоичном дополнительном формате- 1 1 1 0 +6 в двоичном дополнительном формате- + 0 1 1 0 +4 в двоичном дополнительном формате- 1 0 1 0 0 — правильный положительный результат перенос из знакового бита игнорируется, ошибка не возникает 464 Глава 12.
и овые о матыданныкиих аль в об аботкв сигналов Следующие примеры показывают, как иногда переполнение двоичных дополнительных чисел приводит к ошибкам: 0 0 0 - биты переноса -7 в двоичном дополнительном формате- 1001 -6 в двоичном дополнительном формате - + 1 0 1 0 10011 -неверный положительный результат +3 в двоичном дополнительном формате -. перенос из знакового бита игнорируется, что вызывает ошибку 1 1 1 биты переноса +7 в двоичном дополнительном формате - 0 1 1 1 +7 в двоичном дополнительном формате - + 0 1 1 1 0 1 1 1 0 - неверный отрицательный результат -2 в двоичном дополнительном формате- нулевой перенос из знакового бита +7 в двоичном дополнительном формате - 0 1 1 1 +6 в двоичном дополнительном формате - + 0 1 1 0 -3 в двоичном дополнительном формате - 1 1 0 1 - ошибка переполнения -7 в двоичном дополнительном формате - + 1 0 0 1 +6 в двоичном дополнительном формате - 1 0 1 1 0 — правильный положительный результат переполнение игнорируется без последствий Модуль суммы трех четырехбитовых чисел был меньше 24 ! (<8), следовательно, результат оказался правильным.
Если мы сложим +6 и +7, а затем прибавим — 5, мы получим переполнение промежуточной суммы, и окончательный результат будет неверным, потому что его модуль не меньше 8. Правило, применяемое в случае сложения двоичных дополнительных чисел, гласит, что, если бит переноса в знаковый разряд совпадает с битом переноса из знакового разряда, бит переполнения можно игнорировать без риска вызвать оигибку; если же бит переноса в знаковый бит отличается от бита переполнения, резулыпат неверный. Еще более интересно свойство двоичного дополнительного кода, состоящее в том, что последовательность Ь-битовых сложений может приводить к ошибкам переполнения промежуточных результатов, но конечная сумма оказывается правильной, если ее модуль меньше 2ь 1.
Мы покажем это на следующем примере. Если мы складываем «-6 с +7, а затем к сумме прибавляем — 7, мы получим ошибку переполнения промежуточной суммы, но наша конечная сумма будет правильной: 12.3. Э кты конечнойдлины слова... 455 +7 в даоичном дополнительном формате - О 1 1 1 +6 в двоичном дополнительном формате - + О 1 1 О -3 вдвоичном дополнительном формате - 1 1 О 1 -ошибка переполнения -5 в двоичном дополнительном формате - + 1 О 1 1 +6 вдвоичном дополнительном формате- 1 1 О О О - правильный положительный результат Другая ситуация, в которой проявляются проблемы переполнений — вычисление БПФ.
На первых порах трудно себе представить, что умножение комплексных чисел на синусы и косинусы может привести к чрезмерному росту длины слова данных — особенно потому, что синусы и косинусы по модулю меньше единицы. Мы можем'показать, как растет длина слова данных, рассмотрев бабочку БПФ с прореживанием по времени, показанную на рисунке 4.14(с), которую мы повторяем на рисунке 12.6, и пройдя через некоторые алгебраические преобразования. Выражение для выхода х'атой бабочки, согласно (4-26), имеет вид х' = х +%'ч ° у .