Принципиальные схемы для кодеров и декодеров систематических сигналов. Кодеры и декодеры с линейной шкалой квантования

5.3. Кодирующее и декодирующее устройства (КОДЕК). Устройство и работа ИКМ-30

5.3. Кодирующее и декодирующее устройства (КОДЕК)

Кодер аппаратуры ИКМ-30 предназначен для нелинейного кодирования (аналого-цифрового преобразования) последовательности АИМ-сигналов, поступающих от передающей части индивидуального оборудования телефонных каналов и канала вещания, в последовательность восьмиразрядных групп двоичного кода.

Декодер, аппаратуры ИКМ-30 предназначен, для нелинейного декодирования (аналого-цифрового преобразования) последовательности групп восьмиразрядного двоичного кода в последовательность АИМ-сигналов, поступающую далее на приемную часть индивидуального оборудования телефонных каналов и канала вещания.

Технические данные

Входным сигналом кодера является последовательность биполярных АИМ-сигналов с максимальной амплитудой 1,0 В и длительностью 2,0 мкс. поступающая с индивидуального оборудования.

Выходной сигнал кодера - восьмиразрядный симметричный двоичный код, получаемый следующим образом:

  • максимальный положительный сигнал кодируется как - 11111111;
  • минимальный положительный – 10000000;
  • максимальный по величине отрицательный – 01111111;
  • минимальный по величине отрицательный – 00000000.

Все кодовые комбинации на выходе кодера претерпевают дополнительное преобразование, заключающееся в инверсии четных разрядов кода. На приеме осуществляется обратное преобразование. Указанное преобразование имеет целью уменьшение вероятности появления в передаваемом по линии ИКМ-сигнале длинных последовательностей нулевых посылок.

Частота повторения кодовых групп - 256 кГц.

Входным сигналом декодера, является вышеуказанный восьмиразрядныйдвоичный код.

Выходной сигнал декодера - последовательность АИМ-сигналов с максимальной амплитудой 2,0 В.

С целью увеличения отношения сигнал/шум квантования в диапазоне малых входных сигналов в кодере осуществляется нелинейное кодирование, которое эквивалентно применению компрессированию входного сигнала на передающей стороне и экспандирования на приемной.

Закон компандирования – логарифмический, А-87,6

; ;

; .

где ; .

А=87,6 – параметр компрессирования;

Входной кодируемый сигнал;

Его максимальное амплитудное значение;

N – номер шага квантования, считая от середины характеристики;

N МАКС – число шагов в каждой половине характеристики;

Шаг квантования – интервал между двумя дискретными уровнями квантования.

Указанный закон аппроксимирован 13-сегментной характеристикой с отношением наклонов характеристики на соседних сегментах равным двум.

Полная характеристика содержит 256 шагов квантования. Отношение величин шагов на соседних сегментах равно двум. В пределах сегмента шаг является равномерным. На рисунке 16 приведена характеристика кодирующего устройства (участок, соответствующий положительным сигналам). Указанная нелинейная характеристика квантования обеспечивает по сравнению с равномерной характеристикой с таким же числом шагов расширение динамического диапазона на величину

Рабочая точка кодера находится на границе между шагами квантования.

В процессе кодирования кодер определяет шаг, в пределах которого находится данный входной сигнал, и выдает на выходе номер этого шага в виде 8-разрядного двоичного кода.

На приемной стороне декодер выполняет обратную операцию в соответствии с поступившим кодом номера шага квантования восстанавливает амплитуду АИМ - сигнала.

Каждому из 256 интервалов амплитуд (шагов), подлежащих кодированию на передающей стороне, должен соответствовать на приемной стороне такой же интервал амплитуд на шкале выходных напряжений, подлежащих воспроизведению. Всевозможные амплитуды сигнала, заключенные в пределах одного интервала, должны воспроизводится одним дискретным,уровнем декодера. Наилучшее воспроизведение обеспечивает уровень декодера, находящийся на середине этого-интервала. При таком размещении всех 256 уровней декодера погрешность воспроизведения любой амплитуды внутри интервала не превосходит половины шага квантования на сегменте. Из этого следует различие в шкалах уровней кодера и декодера, т.е. уровни декодера должны быть смещены на 1/2 шага на сегменте по отношению к уровням кодера.

В отсутствии посегментного смещения уровней декодера, т.е. в случае, когда уровни кодера и декодера совпадают, на характеристике передачи вход кодера - выход декодера появляются разрывы на концах сегментов, а коэффициент передачи становится меньше единицы. При этом входные амплитуды будут воспроизводиться декодером с ошибкой большей, чем половина шага квантования.

Рисунок 16. Характеристика компандирования.

Структурная схема кодера

Кодер аппаратуры ИКМ-30 по принципу действия представляет собой аналого-цифровой преобразователь последовательного взвешивания с обратной связью.

Структурная схема кодера приведена на рисунке 17 . Она содержит следующие функциональные части:

Последовательность работы кодера

Процесс кодирования заключается в определении на характеристике кодирующего устройства шага квантования, в пределах которого находятся входной преобразуемый сигнал, и формирований двоичного кода, выражающего номер этого шага на характеристике. Кодирование по методу последовательного взвешивания можно рассматривать как последовательный поиск шага путем подбора суммы эталонов различных весов для достижения наиболее точного уравновешивания кодируемого сигнала.При этом результат каждого включения эталонов оценивается устройством сравнения (компаратором), последовательность решений которого образует код преобразуемого сигнала.

Кодируемый сигнал представлен неизменным по величине в течение цикла кодирования током Is, который пропорционален отсчету мгновенного значения напряжения на огибающей входного АИМ – сигнала. Отсчеты (выборки) мгновенных значений напряжения входного сигнала берутся с частотой временной дискретизации 256 кГц (8 кГц для телефонных каналов, 32 кГц для канала вещания). Для формирования токовогосигнала Is входной АИМ - сигнал поступает на устройствовыборки и хранения, производящее фиксацию мгновенного значения входного сигнала путем кратковременного заряда накопительной емкости до напряжения поступающего АИМ - сигнала и последующего хранения напряжения на ней. С выхода устройства выборки и хранения усиленный соответствующим образом сигнал выборки поступает на вход усилителя ввода. Усилитель ввода представляет собой управляемый напряжением генератор тока, вырабатывающий токи Is и –Is, которые затем подаются в точки суммирования А и В.

В одну из точек суммирования в зависимости от полярности входного сигнала на последующих этапах процесса кодирования подаются суммы эталонных токов I , вычитаемые из тока, кодируемого сигнала Is. Разность токов Is-I в общей точке суммирования и ток -Is в другой точке создадут на выходных сопротивлениях БЭК падения напряжения Us-U и Us соответственно. Компаратор, входы которого подключены к точкам суммирования, производит операцию вычитания:

(Us- U )-(-Us)=2Us-U

и вырабатывает сигнал “0”, если 2Us>U и сигнал “I”, если 2Us

В рассматриваемой процедуре поиска необходимой суммы эталонов, уравновешивающих входной сигнал, переход к следующему эталону производится на основании всех предыдущих решений компаратора, хранящихся в регистре памяти. На выходах 8 триггеров регистра памяти по мере записи в него решений компаратора формируется 8-резрядный параллельный код Q 1 ….Q 8 преобразуемого сигнала.

Первый разряд Q 1 кода регистра памяти содержит информацию о полярности входного сигнала. Определение полярности производится без подачи в точки суммирования эталонных токов (I ). Вторым, третьим и четвертым разрядами кода кодируются номер сегмента характеристики, которому соответствует входной сигнал. В связи с этим во время поиска сегмента посредством трех взвешиваний среди эталонных токов с весами 2 10 , 2 9 , 2 8 , 2 7 , 2 6 , 2 5 , 2 4 и 0 условных единиц отыскивается ближайший ко входному сигналу меньше его по величине (условная единица - ток соответствующий наименьшему шагу характеристики кодера). Указанные эталоны соответствуют граничным точкам сегментов. Поиск начинается со среднего по номеру сегмента - с входным сигналом сравнивается эталон 2 7 у.е. В соответствии с решением компаратора“0” или “1” производится переход к эталону 2 9 у.е. либо к эталону 2 5 у.е,; далее - обусловленный следующим решением компаратора переход к одному из эталонов – 2 10 , 2 8 , 2 6 , 2 4 у.е. и т.д.

Разрядами с 5-го по 8-й кодируется номер одного из 16 шагов на сегменте, в пределах которого находится входной сигнал. Определение номера шага на сегменте ведется начиная со старшего по весу для данного сегмента эталона к младшему.

Включение эталонных токов производится с помощью логики управления БЭК. Входными сигналами логики являются 8 разрядов кода (Q 1….. Q 8) поступающие с выходов триггеров регистра памяти. Логика преобразует 7 разрядов (0 2 ….. Q 8) этого линейного кода в II разрядов линейного кода для управления БЭК. От состояния триггера первого разряда (Q 1) зависит подключение БЭК соответствующей полярности для формирования биполярной характеристики квантования.

На каждое из 8 взвешиваний отводится время равное полупериоду частоты 2048 кГц.

Выходной сигнал кодера формируется последовательным считыванием кода (Q 1…… Q 8) с выходов триггеров регистра памяти.

Четные разряды кода считываются с инверсных выходов триггеров.

В кодирующем устройстве предусмотрена автоматическая коррекция "нуля" кодера, которая осуществляется во время 0 и 16 канальных интервалов. В эти моменты на входе кодера отсутствует АИМ-сигнал. В схеме выборки и хранения фиксируется напряжение выборки, которое принимается за “нуль”. Далее, компаратор определяет знак смещения на своих входах по отношению к "нулевому" входному сигналу. Смещение обусловлено разбросом и дрейфом параметров элементов устройства выборки и хранения, схемы ввода и компаратора. На основании решения компаратора в узле управления работой кодера определяется сигнал коррекции соответствующего знака и корректор нуля производит изменение напряжения на накопительной емкости. Напряжение на накопительной емкости определяет, в свою очередь, начальный ток схемы ввода, причем, изменение начального тока схемы ввода уменьшает смещение на входах компаратора.

Структурная схема декодера

Структурная схема декодера приведена на рисунке 18 и включает в себя следующие узлы:

  • преобразователь последовательного кода в параллельный, осуществляющий преобразование каждой 8-разрядной кодовой группы, поступающей последовательно во времени на вход декодера, в параллельную;
  • регистр памяти, запоминающий результат преобразования последовательного кода в параллельный и формирующий длительность выходного сигнала;
  • два блока эталонов кодека, формирующих сумму эталонных токов, каждая из которых соответствует определенному шагу квантования характеристики кодера; БЭК декодера аналогичны по структуре БЭК кодера, но количество источников эталонных токов в них на один больше, чем в кодере;
  • логику управления БЭК, преобразующую восьмиразрядную кодовую группу, хранящуюся в регистре памяти, в двенадцатиразрядную группу, управляющую работой БЭК;
  • дифференциальный усилитель, объединяющий однополярные последовательности сумм эталонных токов, поступающие с выходов БЭК в биполярную последовательность выходных АИМ-сигналов;
  • элемент задержки, предназначенный для коррекции временного положения группового ИКМ-сигнала относительно разрядных последовательностей.

Преобразование кодовой группы в АИМ-сигнал (декодирование) происходит следующим образом.

Символы кодовой группы последовательного кода записываются в регистр преобразователя последовательного кода в параллельный. С поступлением на вход последнего символа кодовой группы на выходе преобразователя образуется полная кодовая группа параллельного кода, которая переписывается в регистр памяти. После перезаписи кодовой группы начинается формирование следующей кодовой группы параллельного кода, а регистр памяти в течении промежутка времени равного длительности выходного АИМ-импульса, декодера, хранит предыдущую кодовую группу.

Логика управления БЭК в соответствие с информацией о полярности и амплитуда закодированного данной группой сигнала включает в одном из БЭК необходимые для формирования выходного уровня эталонные точки.

Выходные токи БЭК создают на сопротивлениях нагрузок напряжения которые подаются на входы дифференциального усилителя. На выходе дифференциального усилителя воспроизводятся АИМ - импульсы, с точностью до ошибки кантования воспроизводящие закодированный сигнал. Далее АИМ - последовательность с выхода декодера поступает на приемную часть индивидуального преобразования.

Логические устройства разделяют на два класса: комбинационные и последовательностные.

Устройство называют комбинационным , если его выходные сигналы в некоторый момент времени однозначно определяются входными сигналами, имеющими место в этот момент времени.

Иначе устройство называют последовательностным или конечным автоматом (цифровым автоматом, автоматом с памятью). В последовательностных устройствах обязательно имеются элементы памяти. Состояние этих элементов зависит от предыстории поступления входных сигналов. Выходные сигналы последовательностных устройств определяются не только сигналами, имеющимися на входах в данный момент времени, но и состоянием элементов памяти. Таким образом, реакция последовательностного устройства на определенные входные сигналы зависит от предыстории его работы.

Среди как комбинационных, так и последовательностных устройств выделяются типовые, наиболее широко используемые на практике.

Шифраторы

Шифратор - это комбинационное устройство, преобразующее десятичные числа в двоичную систему счисления, причем каждому входу может быть поставлено в соответствие десятичное число, а набор выходных логических сигналов соответствует определенному двоичному коду. Шифратор иногда называют «кодером» (от англ. coder) и используют, например, для перевода десятичных чисел, набранных на клавиатуре кнопочного пульта управления, в двоичные числа.

Если количество входов настолько велико, что в шифраторе используются все возможные комбинации сигналов на выходе, то такой шифратор называется полным, если не все, то неполным. Число входов и выходов в полном шифраторе связано соотношением n= 2 m , где n- число входов, m- число выходов.

Так, для преобразования кода кнопочного пульта в четырехразрядное двоичное число достаточно использовать лишь 10 входов, в то время как полное число возможных входов будет равно 16 (n = 2 4 = 16), поэтому шифратор 10×4 (из 10 в 4) будет неполным.

Рассмотрим пример построения шифратора для преобразования десятиразрядного единичного кода (десятичных чисел от 0 до 9) в двоичный код. При этом предполагается, что сигнал, соответствующий логической единице, в каждый момент времени подается только на один вход. Условное обозначение такого шифратора и таблица соответствия кода приведены на рис. 3.35.

Используя данную таблицу соответствия, запишем логические выражения, включая в логическую сумму те входные переменные, которые соответствуют единице некоторой выходной пере­менной. Так, на выходе у 1 будет логическая «1» тогда, когда логическая «1» будет или на входе Х 1 ,или Х 3 , или Х 5 , или Х 7 , или X 9 , т. е. у 1 = Х 1 + Х 3 + Х 5 + Х 7 +X 9

Аналогично получаем у 2 = Х 2 + Х 3 + Х 6 + X 7 у 3 = Х 4 + Х 5 + Х 6 + Х 7 у 4 = Х 8 + X 9

Представим на рис. 3.36 схему такого шифратора, используя элементы ИЛИ.
На практике часто используют шифратор с приоритетом. В таких шифраторах код двоичного числа соответствует наивысшему номеру входа, на который подан сигнал «1», т. е. на приоритетный шифратор допускается подавать сигналы на несколько входов, а он выставляет на выходе код числа, соответствующего старшему входу.

Рассмотрим в качестве примера (рис. 3.37) шифратор с приоритетом (приоритетный шифратор) К555ИВЗ серии микросхем К555 (ТТЛШ).

Шифратор имеет 9 инверсных входов, обозначенных через PR l , …, PR 9 . Аббревиатура PR обозначает «приоритет». Шифратор имеет четыре инверсных выхода B l , …, B 8 . Аббревиатура B означает «шина» (от англ. bus). Цифры определяют значение активного уровня (нуля) в соответствующем разряде двоичного числа. Например, B 8 обозначает, что ноль на этом выходе соответствует числу 8. Очевидно, что это неполный шифратор.

Если на всех входах - логическая единица, то на всех выходах также логическая единица, что соответствует числу 0 в так называемом инверсном коде (1111). Если хотя бы на одном входе имеется логический ноль, то состояние выходных сигналов определяется наибольшим номером входа, на котором имеется логический ноль, и не зависит от сигналов на входах, имеющих меньший номер.

Например, если на входе PR 1 - логический ноль, а на всех остальных входах - логическая единица, то на выходах имеются следующие сигналы: В 1 − 0, В 2 − 1, В 4 − 1, В 8 − 1, что соответствует числу 1 в инверсном коде (1110).

Если на входе PR 9 логический ноль, то независимо от других входных сигналов на выходах имеются следующие сигналы: В 1 − 0 , В 2 − 1 , В 4 − 1, В 8 − 0, что соответствует числу 9 в инверсном коде (0110).

Основное назначение шифратора - преобразование номера источника сигнала в код (например, номера нажатой кнопки некоторой клавиатуры).


Дешифраторы

Называется комбинационное устройство , преобразующее n-разрядный двоичный код в логический сигнал, появляющийся на том выходе, десятичный номер которого соответствует двоичному коду. Число входов и выходов в так называемом полном дешифраторе связано соотношением m= 2 n , где n- число входов, а m- число выходов. Если в работе дешифратора используется неполное число выходов, то такой дешифратор называется неполным. Так, например, дешифратор, имеющий 4 входа и 16 выходов, будет полным, а если бы выходов было только 10, то он являлся бы неполным.

Обратимся для примера к дешифратору К555ИД6 серии К555 (рис. 3.38).


Дешифратор имеет 4 прямых входа, обозначенных через А 1 , …, А 8 . Аббревиатура A обозначает «адрес» (от англ.address). Указанные входы называют адресными. Цифры определяют значения активного уровня (единицы) в соответствующем разряде двоичного числа. Дешифратор имеет 10 инверсных выходов Y 0 , …, Y 9 . Цифры определяют десятичное число, соответствующее заданному двоичному числу на входах. Очевидно, что этот дешифратор неполный.

Значение активного уровня (нуля) имеет тот выход, номер которого равен десятичному числу, определяемому двоичным числом на входе. Например, если на всех входах - логические нули, то на выходе Y 0 - логический ноль, а на остальных выходах - логическая единица. Если на входе А 2 - логическая единица, а на остальных входах - логический ноль, то на выходе Y 2 - логический ноль, а на остальных выходах - логическая единица. Если на входе - двоичное число, превышающее 9 (например, на всех входах единицы, что соответствует двоичному числу 1111 и десятичному числу 15), то на всех выходах - логическая единица.

Дешифратор - одно из широко используемых логических устройств. Его применяют для построения различных комбинационных устройств.

Рассмотренные шифраторы и дешифраторы являются примерами простейших преобразователей кодов.

Преобразователи кодов

В общем случае, называют устройства, предназначенные для преобразования одного кода в другой, при этом часто они выполняют нестандартные преобразования кодов. Преобразователи кодов обозначают через X/Y.

Рассмотрим особенности реализации преобразователя на примере преобразователя трехэлементного кода в пятиэлементный. Допустим, что необходимо реализовать таблицу соответствия кодов, приведенную на рис. 3.39.



Здесь через N обозначено десятичное число, соответствующее входному двоичному коду. Преобразователи кодов часто создают по схеме дешифратор - шифратор. Дешифратор преобразует входной код в некоторое десятичное число, а затем шифратор формирует выходной код. Схема преобразователя, созданного по такому принципу, приведена на рис. 3.40, где использован матричный диодный шифратор. Принцип работы такого преобразователя довольно прост. Например, когда на всех входах дешифратора логический «О», то на его выходе 0 появляется логическая «1», что приводит к появлению «1» на выходах у 4 и у 5 , т. е. реализуется первая строка таблицы соответствия кодов.


Промышленность выпускает большое число шифраторов, дешифраторов и преобразователей кодов, таких как дешифратор 4×16 со стробированием (К555ИДЗ), преобразователь кода для управления светодиодной матрицей 7×5 (К155ИД8), преобразователь кода для управления шкальным индикатором (К155ИД15) и др.

Целесообразность использования регистров сдвига для построения циклических кодеров и декодеров объясняется структурой циклических кодов. При несистематическом кодировании циклических кодов для формирования кодового слова с надо соответствующий информационный многочлен умножить на фиксированный порождающий многочлен Эту операцию можно реализовать на КИО-фильтре над Такой кодер для (15, 11)-кода Хэмминга представлен на рис. 6.1.3. Для кодирования непрерывного потока информационных битов последовательностью слов (15, 11)-кода Хэмминга информационная последовательность просто разбивается на блоки но 11 битов, каждый блок дополняется «прокладкой» из четырех нулей, а результирующий поток битов пропускается через КИО-фильтр. На выходе получается последовательность непересекающихся 15-битовых слов кода Хэмминга Такой кодер, показанный на рис. 6.14, очень прост, но кодовые слова оказываются несистематическими.

Для получения слов кода в систематическом виде надо воспользоваться другим кодером. Поместим информационные биты в старшие разряды кодового слова и подберем проверочные символы так, чтобы получить допустимое кодовое слово. Кодовое слово записывается в виде

Для реализации систематического кодера используется цепь деления на Для (15, 11)-кода Хэмминга

соответствующее устройство показано на рис. 6.15. Одиннадцать информационных битов, занимающих старшие разряды, вводятся слева в цепь деления на Умножение на учитывается временем работы цепи. Первый бит понимается как коэффициент при Деление не начинается до тех пор, пока не выполнены четыре тактовых сдвига, так что первые четыре бита оказываются записанными в разрядах регистра сдвига. Поэтому ниже цепи деления в устройство включен буфер из четырех разрядов, так, что первые четыре бита начинают поступать в канал одновременно с началом деления. После 11 тактов работы все 11 информационных битов поданы в канал, деление закончено и

Рис. 6.13. Несистематический кодер для (15, 11)-кола Хэмминга.

Рис. 6. 14. Кодирование длинного потока битов.

Рис. 6.15. Систематический кодер для (15, 11)-кода Хэмминга.

вычисленный остаток готов для подачи в канал в качестве проверочных символов. В течение этих последних четырех тактов работы цепь обратной связи в устройстве деления разомкнута. В общей сложности полное кодирование занимает 19 тактов.

Можно несколько ускорить кодирование, удалив первые четыре такта. Такой кодер изображен на рис. 6.16. Чтобы понять эту схему, нужно заметить, что поступающие информационные символы не вводятся немедленно для выполнения деления на , а поступают тогда, когда необходимо сформировать сигнал обратной связи. Таким образом, обратная связь в устройстве на рис. 6.16 такова же, как и в устройстве на рис. 6.15. Далее, так как последние биты многочлена всегда равны нулю, то ничего не случится, если мы прибавим их к остатку от деления. Таким образом, остаток, вычисляемый устройством на рис. 6.16, равен остатку, вычисляемому устройством на рис. 6.15, но вычисление происходит только за 15 тактов, что, конечно, удобнее.

Рис. 6.16. Другой систематический кочер для (15, 11)-кода Хэмминга.

Теперь обратимся к декодеру. В канал поступаю! коэффициенты многочлена с К ним прибавляется многочлен ошибок На выходе канала принимаемся многочлен

В § 5.2 была описана очень простая но идее процедура декодирования, основанная на просмотре таблицы. Принятая последовательность делится на и остаток отделения полагается равным синдромному многочлену. Синдромный многочлен используется для выбора из таблицы оценки для многочлена ошибки. В двоичном случае синдром можно использовать непосредственно как адрес хранящейся в таблице оценки вектора ошибок

В русском языке появилось так много слов за последний 20 лет, что знать их всех просто невозможно. С активным развитием интернета начали возникать и новые профессии. Причем над одним и тем же делом могут работать люди разных специальностей. Конечно, обычный человек не обязан разбираться во всем подряд. Особенно в том, что ему неинтересно. Но если вы как-то связаны с программированием, то однозначно захотите знать, что такое кодер.

Предпосылка

С одной стороны, вопрос о разнице между специальностями кодер и программист можно считать надуманным. Никакой проблемы на первый взгляд нет. Но если присмотреться ближе к ним, то становится понятно, почему так часто путают эти две профессии.

Во многом неточность формулировок и переводов связана с англоязычными понятиями. С этим сейчас сталкивается весь массив новомодных слов, которые приходят в русский язык. У одного предмета начинает появляться огромное количество имен, и уже становится непонятно, перед нами корпус компьютера, системный блок или шасси.

То же самое происходит и с профессиями. Особенно остро проблема стала со Интересно, что даже сейчас может возникнуть перепалка в споре о кодере и программисте. В чем разница этих специальностей, может решить для себя каждый самостоятельно.

Два лагеря

Неточность определений этих слов появилась еще в середине 2000-х годов. Так можно было выделить два противоборствующих лагеря. Они вступали в спор на каждом форуме, доказывая свою правоту. На деле мы получили полемистов, которые полагают, что программисты - это люди, работающие с кодом и архитектурой. Отсюда можно сделать логический вывод, что кодер и программист - это синонимические профессии.

Представители второго лагеря считали несколько иначе. По их мнению, программист - это продвинутый специалист, которого можно назвать архитектором. А вот кодер - это программист начального уровня.

Второе мнение дает право утверждать, что программист считается главенствующей особой, которая разрабатывает и создает алгоритмы, по которым будет работать программа, а кодер просто исполняет все задуманное.

Универсальность

Это два наиболее распространенных мнения, к которому смогли прийти жители интернета. Главная проблема в том, что разделить кодера и программиста крайне тяжело. Зачастую они выполняют и первую, и вторую задачу. Эта ситуация отдаленно напоминает редактора и корректора. Когда очевидно, что первый - это руководитель, который работает над изданием по всем фронтам, а второй - исправляет ошибки в тексте. Но в последнее время редактор часто превращается в корректора по совместительству, особенно если требуется сократить штат и сэкономить.

Та же история происходит и с программистом, который часто не только разрабатывает алгоритмы, но и после реализует их в качестве кодера.

Оскорбление

Конечно, глупо было бы полагать, что форумчане и завсегдатаи интернета идеально поделились на два лагеря. Были и те, кто выдвигал свои безумные теории. О них стоит вкратце упомянуть. Итак, в погоне за единым определением появлялись обидные и не очень толкования.

Кодер - это быдлокодер. Вот такое странное мнение удалось найти в сети. Не трудно догадаться, что объяснение этой специальности довольно оскорбительное. Некоторые посчитали, что кодер - это не профессионал своего дела. Он лишь «страдает» над неоптимизированным кодом, который пишет с ошибками. У кодера нет опыта, он - возомнивший себя программистом неуч.

Творчество

Еще одно мнение уже было описано ранее, но в другой формулировке. Творцом называют программиста, а вот ремесленником - кодера. Возможно толкование и имело бы право на жизнь, но есть одна загвоздка. Редко работу программиста можно назвать творчеством. Творцы - это дизайнеры, художники, музыканты. Программисты пишут коды, стараются угодить заказчику, реализовать его задачи и т. д. Конечно, случается, что программист становится главой одного из отделов, тогда он работает над творческими задачами. Но штатный специалист обычно выполняет монотонную работу.

Если вы убеждены, что программирование - это творчество, пусть будет так. Но тогда отрицать то, что кодер занимается этим же творчеством, бессмысленно. Ведь оба специалиста работают над одним объектом - кодом.

Происхождение

Чтобы не путаться в мнениях и решить, чем кодер отличается от программиста, можно зайти с другой стороны. Как уже упоминалось выше, это два заимствованных слова. Значит, у них есть перевод, которой даст четкие определения.

Оказывается, английский не очень помогает в решении этого вопроса. Будь-то «programmer», «coder» или «developer», в русском все равно оказывается, что это программист. То есть с лингвистической точки зрения это синонимы.

Есть предположение, что изначально слово «кодер» стали использовать, потому что оно короче и его легче и быстрее писать. А мы знаем, что русский язык стремится стать проще. Так понятия «кодер» и «программист» в один момент слились.

Необходимость

Вообще, проблема русского языка состоит как раз в том, что часто в нем появляются слова, которые не имеют практического смысла. То есть, был себе программист, никого не трогал, и вдруг, слово стало трудно писать, и решили использовать его синоним «кодер». Это простая замена слов, которая не принесла в язык нового понятия, а лишь упростила имеющееся.

В доказательство этого мнения можно напомнить и об использовании «программера». Оказывается, что некоторые пользователи для себя решили, что именно так правильно использовать название этой профессии. В итоге мы получаем то, что люди в последнее время используют либо привычные слова, либо новомодные.

Уровень квалификации

Поскольку перевод с английского не дает никаких новых фактов использования этих слов, вернемся к предыдущему мнению. Кодер или программист имеют разные квалификации. Это наиболее распространенное разделение специальностей. Получается, что к кодеру относят программиста самой низкой категории.

На деле доказать это убеждение не получится. Но были сведения о том, что имелся принятый стандарт, который позволял всех программистов поделить на четыре квалификационные группы. В первую попали стажеры, кодировщики, младшие программисты и разработчики. Во второй находились инженеры и программисты. В третью поместили старших разработчиков и программистов, а также инженеров. В последней находился ведущий программист, старший специалист и главный инженер.

Интересно, что для каждой группы были прописаны требования и задачи. Но возникла другая проблема - кодера в списке нет. За то есть кодировщик. Снова столкновение двух синонимических понятий, которые можно было бы разделить на два лагеря.

Вообще, кодировщик и кодер - это не просто синонимы. Это одно и то же понятие, поскольку первое и второе на английском будет «coder». Так, мы возвращаемся снова к тому, что кодер - это просто исполнитель, а программист - идейный вдохновитель и в некоторых случаях руководитель.

Принципиальная электрическая схема кодера Хэмминга

Принципиальная электрическая схема кодера Хэмминга с поэлементным формированием проверочных элементов кода (7,4) приведена на рисунке 5. Эта схема построена в соответствии с выражениями, полученными в п. 3.6 или в соответствии с проверочной матрицей данного кода записанной в п. 3.8. Кодер включает в себя: сдвигающий регистр, осуществляющий преобразование параллельного кода в последовательный, и логические элементы сложения по модулю два, которые осуществляющие формирование проверочных символов. Количество этих элементов определяется количеством проверочных элементов кодовой комбинации.

Рисунок 5 - Принципиальная электрическая схема кодера Хэмминга (7,4)

Принципиальная электрическая схема декодера Хэмминга

Декодер Хэмминга должен не только произвести проверку на верность принятой комбинации, но и при наличии ошибки должен осуществить ее исправление, поэтому декодер содержит две части: схему определения синдрома и схему исправления ошибки. Кроме того декодер содержит регистр, который служит для преобразования последовательного кода в параллельный. Принципиальная электрическая схема декодера представлена на рисунке 6. Схема определения синдрома кода состоит из логических элементов сложения по модулю два. В них осуществляется определение проверочных символов b i ’’ в соответствии с принятыми информационными символами a i ’ и проверочной матрицей. В следующих сумматорах по модулю два осуществляется сложение принятых проверочных элементов с полученными на приеме, в результате чего получают синдром кода С i . Схема исправления ошибки состоит из логических элементов И, в которых формируется сигнал ошибки для ошибочного разряда, и логических элементов сложения по модулю два, в которых и осуществляется исправление ошибочного разряда (его инвертирование). Количество элементов И и сумматоров по модулю два определяется количеством информационных элементов кодовой комбинации, т. к. ошибка в проверочной части не приводит к искажению сообщения и в дальнейшей обработке эта часть не участвует. Элементы НЕ, на входах элементов И предотвращают формирование ложных сигналов ошибки для элементов а 1 , а 2 и а а при появлении синдрома вида 111.

Рисунок 6 - Принципиальная электрическая схема декодера Хэмминга (7,4)

Принципиальная электрическая схема кодера циклического кода

Принципиальная электрическая схема кодера циклического кода (7,4) приведена на рисунке 7.

Рисунок 7 - Принципиальная электрическая схема кодера циклического кода (7,4)

Кодер построен на многотактном фильтре (МФ) в качестве которого используется регистр. Количество D-триггеров в МФ соответствует степени порождающего полинома. Также в состав МФ входят логические элементы сложения по модулю два, их количество на один меньше ненулевых членов порождающего полинома. Данные элементы располагаются на месте нулевого члена порождающего полинома и после триггера соответствующего члену х 0 . В данной схеме МФ соответствует полиному G(x)=х 3 +х 2 +х 0 . Также в схему кодера входит два ключа в качестве которых используются логические элементы И, тактового RS-триггера и логического элемента ИЛИ.

Формирование кодовой комбинации на выходе схемы происходит за 7 тактов. За первые четыре такта на выход поступают информационные разряды: тактовые импульсы подаются на установочный вход единицы «S» RS-триггера, в результате чего открывается ключ К1 и входные информационные разряды через элемент ИЛИ поступают на выход. Одновременно информационные разряды поступают в МФ где осуществляется вычисление проверочных разрядов. С пятого по седьмой такты формируются проверочные разряды. При этом тактовые импульсы подаются на установочный вход нуля «R» RS-триггера. Ключ К1 закрывается а К2 открывается и проверочные разряды из МФ через К2 и элемент ИЛИ поступают на выход.

Принципиальная электрическая схема декодера циклического кода

Принципиальная электрическая схема декодера циклического кода (7,4) представлена на рисунке 8.

Рисунок 8 - Принципиальная электрическая схема декодера циклического кода (7,4)

Данный декодер способен только обнаруживать ошибки и не способен их исправлять. В его состав входят так же как и в кодер тактовый RS-триггер, два ключа К1 и К2, элемент формирования ошибки ИЛИ и декодирующий регистр, принцип построения которого аналогичен построения МФ кодера. Кроме того устройство содержит буферный регистр состоящий из D-триггеров и логических элементов И у которых один из входов инверсный.

За первые четыре такта информационные разряды поступающей кодовой комбинации, через К1, записываются в буферный регистр: Тактовые импульсы поступают на установочный вход единицы «S» RS-триггера и К1 открывается. Одновременно разряды кодовой комбинации поступают в декодирующий регистр, где вычисляется синдром. Если синдром кода не равен нулю, то схема или формирует сигнал ошибки «1», который поступает на вход К2. За 5 -7 такты открывается К2 и закрывается К1. В случае ошибки на входе и выходе К2 действуют единицы, а следовательно логические элементы И в схеме буферного регистра закрыты и информация хранимая в регистре стирается. Если же комбинация принята верно, т. е. синдром равен нулю, то информационные разряды поступают на выход декодера и используются для дальнейшей обработки.

Принципиальная электрическая схема декодера мажоритарного циклического кода

Принципиальная электрическая схема декодера мажоритарного кода (7,3) представлена на рисунке 9.

Рисунок 9 - Принципиальная электрическая схема декодера циклического мажоритарного кода (7,4)

Декодер включает в себя буферный регистр и схему вычисления линейных выражений. Количество ячеек буферного регистра соответствует разрядности кодовой комбинации Bip(x). Схема вычисления линейных выражений содержит логические элементы сложения по модулю два и мажоритарные элементы (М). Количество логических элементов соответствует количеству линейных выражений кода, а количество мажоритарных элементов соответствует разрядности информационной части комбинации, т. е. разрядности Ai(x).

В начале цикла вся кодовая комбинация Bip(x)’ через ключ (К) записывается в ячейки буферного регистра, причем, старший разряд а 1 ’ записывается в триггер Т1, а 2 ’ в Т2, а 3 ’ в Т3, а 4 ’ в Т4, b 1 ’ в Т5, b 2 ’ в Т6, b 3 ’ в Т7. Затем ключ размыкается и происходит вычисление линейных выражений для всех информационных символов. Результаты вычисления поступают в мажоритарные элементы. Кроме этих выражений в соответствующие мажоритарные элементы поступают символы тех разрядов, для которых определяются линейные выражения. Мажоритарные элементы выносят решения о принятых символах а i . Затем информационная комбинация Аi(х) поступает на выход декодера.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: