3. Коды, используемые в ацп и цап
Цифровые данные, полученные в результате преобразования аналоговых величин, должны иметь такое представление, которое было бы «понятно» системам, обрабатывающим эти данные. Чаще всего цифровые системы оперируют с данными, представленными в прямом двоичном, обратном двоичном, двоичном дополнительном и двоичном смещенном коде., Как правило, эти данные нормированы таким образом, чтобы все вычислительные операции выполнялись с числами, по абсолютному значению меньшими единицы:
(1.14)
Преобразуемые аналоговые сигналы в большинстве случаев являются двухполярными, поэтому при кодировании результата их преобразования код числа должен предусматривать специальный разряд, характеризующий его полярность. Этот разряд так и называется знаковым, и располагается на крайней левой позиции в записи кода.
Разрядность двоичного кода определяет точность представления числа. Если код числа имеет m+1 двоичный разряд (старший разряд знаковый, остальные – числовые), то такой код позволяет представить 2m+1 различных числе (2m положительных и 2m отрицательных с шагом 2–m) в диапазоне
(1.15)
3.1. Прямой код
Правила кодирования прямым кодом, который обозначается как [A]пр, следующие.
Для положительных чисел в знаковый разряд его записывается 0, для отрицательных – 1. Оставшиеся m разрядов представляют числовые разряды (дробную часть) исходного числа, причем самый младший разряд располагается на крайней правой позиции, т.е., вес разрядов возрастает справа налево в направлении к знаковому разряду.
(1.16)
Например, положительное число А = +0,10101 в прямом коде будет выглядеть как [A]пр = 0,10101, а равное ему по модулю отрицательное число В = –0,10101 как [В]пр = 1,10101.
3.2. Обратный код
Правила кодирования обратным кодом, который обозначается как [A]обр, похожи на правила кодирования прямым кодом, но числовые разряды отрицательных чисел здесь инвертируются
(1.17)
Например, отрицательное число В = –0,10101 из предыдущего примера в обратном коде будет выглядеть следующим образом [В]обр = 1,01010.
3.3. Дополнительный код
Обозначается как [A]доп. Правила кодирования положительных чисел те же, что и для прямого и обратного кодов, т.е. [A]доп = [A]пр = [A]обр.
Правило кодирования отрицательных чисел: в знаковый разряд кода так же, как и при прямом и обратном кодировании, записывается 1; числовые разряды исходного числа инвертируются (как при обратном кодировании) и к младшему разряду прибавляется «единица»:
(1.18)
Например, отрицательное число В =
–0,10101 в дополнительном коде будет
выглядеть как
3.4. Смещенный код
Этот код очень похож на дополнительный и отличается от него только обозначением знакового разряда. Если в дополнительном коде положительные числа имеют в знаковом разряде 0, а отрицательные – 1, то у смещенного кода картина противоположная: положительные числа имеют в знаковом разряде 1, а отрицательные – 0. Нулевой символ, который считается положительным числом, здесь также имеет в знаковом разряде 1. Обозначается смещенный код как [A]смещ. В остальном правила кодирования смещенным кодом те же, что и у дополнительного:
(1.19)
Например, положительное число В = +0,10101 в смещенном коде будет выглядеть как [В]смещ = 1,10101, а отрицательное С = –0,10101 как
Свое название «смещенный» код получил оттого, что вся шкала кодирования из 2m+1 чисел получается путем последовательного сдвига (смещения) первой ее половины от 0 до 2m+1 в область отрицательных значений, при этом вторая половина, начиная со значения 2m, остается в области положительных значений. Это хорошо видно из таблицы 1, где представлены все четыре описанных способа кодирования двоичных чисел.
Таблица 1
Представление двоичных чисел
Десятичное число |
Прямой код |
Обратный код |
Дополнительный код |
Смещенный код |
+0,7 |
0,111 |
0,111 |
0,111 |
1,111 |
+0,6 |
0,110 |
0,110 |
0,110 |
1,110 |
+0,5 |
0,101 |
0,101 |
0,101 |
1,101 |
+0,4 |
0,100 |
0,100 |
0,100 |
1,100 |
+0,3 |
0,011 |
0,011 |
0,011 |
1,011 |
+0,2 |
0,010 |
0,010 |
0,010 |
1,010 |
+0,1 |
0,001 |
0,001 |
0,001 |
1,001 |
+0,0 |
0,000 |
0,000 |
0,000 |
1,000 |
–0,0 |
1,000 |
1,111 |
0,000 |
1,000 |
–0,1 |
1,001 |
1,110 |
1,111 |
0,111 |
–0,2 |
1,010 |
1,101 |
1,110 |
0,110 |
–0,3 |
1,011 |
1,100 |
1,101 |
0,101 |
–0,4 |
1,100 |
1,011 |
1,100 |
0,100 |
–0,5 |
1,101 |
1,010 |
1,011 |
0,011 |
–0,6 |
1,110 |
1,001 |
1,010 |
0,010 |
–0,7 |
1,111 |
1,000 |
1,001 |
0,001 |
–0,8 |
– |
– |
1,000 |
0,000 |
Из таблицы 1 также видно, что в прямом и обратном кодах «нуль» имеет двоякое обозначение, что создает известные трудности при вычислениях. Поэтому в системах цифровой обработки сигналов чаще всего используются дополнительный и смещенный коды.
3.5. Связь способа кодирования с характером ошибки квантования
В разделе 2 описан случай квантования аналогового сигнала s(t), когда квантованный сигнал sвых(t) принимает значение того или иного уровня квантования в тот момент, когда аналоговый сигнал s(t) достигает центра соответствующего интервала квантования. Ошибка квантования Екв в этом случае находится в пределах
где Q = 1/2m – интервал (шаг) квантования, равный по величине младшему значащему разряду кода, которым обозначаются номера уровней квантования.
Такая ошибка называется ошибкой округления и обозначается символом Е0.
Квантованию может подвергаться не только аналоговый сигнал, но и цифровой. Квантование цифрового сигнала заключается в сокращении числа разрядов кода с некоторой величины m до величины b (m>b) и является обычной процедурой в цифровых фильтрах. Поскольку любые арифметические операции с цифровыми сигналами являются нелинейными, результаты их могут содержать сколь угодно много значащих разрядов кода.
Сокращение их числа до некоторого значения b может осуществляться двумя способами: округлением и усечением.
Округление – это замена исходного m-разрядного числа на ближайшее к нему b-разрядное (b<m<∞), т.е. соответствует выбору ближайшего уровня квантования. Ошибка округления Е0 удовлетворяет неравенству
(1.20)
С
ледует
заметить, что при выборе способа
сокращения разрядности двоичного кода
(или способа квантования аналогового
сигнала) ошибка квантования может
зависеть от способа представления
двоичного числа. Однако в случае
округления ошибка будет одинакова для
всех четырех вышеописанных кодов –
прямого, обратного, дополнительного и
смещенного. Характеристика нелинейности,
соответствующая операции округления,
показана на рис. 1.8а. Она тождественна
характеристике квантования, представленной
на рис. 1.6б.
Плотность вероятности ошибки округления Р(Е0), в предположении, что все значения ошибки равновероятны, показана на рис. 1.9а.
Усечением m-разрядного числа до b разрядов (b<m<∞) называется отбрасывание младших m–b разрядов исходного числа. При аналого-цифровом преобразовании усечению соответствует случай, когда квантованный сигнал принимает значение того или иного уровня квантования только после пересечения его верхней границы.
Ошибка усечения Еу удовлетворяет неравенствам:
а) для положительных чисел при любом способе кодирования и отрицательных чисел в дополнительном и смещенном кодах
(1.21)
б) для отрицательных чисел в прямом и обратном кодах
(1.22)
В (1.21) и (1.22) считается, что m»b.
Характеристика нелинейности, соответствующая операции усечения для дополнительного и смещенного кодов, показана на рис. 1.8 б, для прямого и обратного кодов – на рис. 1.8 в.
Плотности вероятности ошибки усечения Р(Еу) показаны на рис. 1.9 б для дополнительного и смещенного кодов, на рис. 1.9 в – для прямого и обратного кодов.
