9.4. МОДУЛЯЦИОННЫЕ КОДЫ ДЛЯ ФОРМИРОВАНИЯ СПЕКТРАМы видели, что спектральную плотность мощности сигнала в цифровой системе связи можно контролировать (управлять) и формировать путём выбора формы импульса передаваемого сигнала и введением корреляции посредством кодирования, которая используется для борьбы с искажениями в канале и шумом при передаче сигнала. Кодирование для формирования сигнала выполняется после канального кодирования, так что спектр передаваемого сигнала согласовывается со спектральными характеристиками базового или эквивалентного низкочастотного сигнала. Коды, которые используются для формирования спектра обычно называются или модуляционными кодами, или линейными кодами, или кодами перевода данных. Такие коды, в общем, вводят ограничение на последовательность символов, поступающих на модулятор, и таким образом, вводят корреляцию и, следовательно, память в передаваемый сигнал. Именно этот тип кодирования рассматривается в этом разделе. Модуляционные коды обычно используются в магнитной записи, в оптической записи и цифровой связи по кабельным системам, для достижения формирования спектра и для ограничения или минимизации постоянной составляющей, имеющейся в передаваемом (или записываемом) базовом сигнале. В каналах магнитной записи модуляционный код синтезируется для увеличения расстояния между переходами в записанном сигнале и, таким образом, также уменьшается влияние МСИ. Как пример использования модуляционного кода рассмотрим систему магнитной записи, которая состоит из элементов, показанных на блок-схеме рис. 9.4.1. Рис 9.4.1. Блок-схема системы записи/считывания при магнитном хранении данных Чтобы хранить двоичную последовательность данных она используется для создания (генерирования) записывающего тока. Этот ток можно рассматривать как выход «модулятора». Наиболее общий используемый метод для отображения информационной последовательности в сигнал записывающего тока - это ДБНП, который был описан в разделе 4.3.2. Напомним, что в ДБНП переход от одной амплитуды к другой ( в или в ) осуществляется только если информационный символ «1». Перехода нет, если информационный символ «0», т.е. в этом случае сохраняется уровень амплитуды предыдущего такта. Положительный импульс амплитуды приводит к намагничиванию среды в одной (прямой) полярности, а отрицательный импульс амплитуды намагничивает среду в противоположной полярности. Поскольку входная последовательность данных в принципе случайная с равной вероятностью 1 и 0, мы можем встретить переходы от до и от до с вероятностью 1/2 для каждого символа данных. Считывающий сигнал для положительного перехода (от до ) является импульсом, который хорошо моделируется математически так , (9.4.1) где определён как ширина импульса на уровне 50 % его амплитуды, как показано на рис. 9.4.2. Аналогично, считывающий сигнал для отрицательного перехода (от до ) является импульсом . Величина определяется характеристиками среды, считывающей и записывающей головками и расстоянием от головки до среды. Рис. 9.4.2. Считывающий импульс в магнитной системе записи Теперь предположим, мы записали положительный переход, следующий после отрицательного перехода. Пусть изменяется интервал времени между двумя переходами, который мы обозначим через (битовый интервал). Рис. 9.4.3 иллюстрирует импульсы считывающего сигнала, полученного суперпозицией и . Рис. 9.4.3. Отклик считывающего устройства на смену знака перехода Параметр определён как нормированная плотность. Чем плотнее битовые переходы ( меньше), тем больше величина нормированной плотности и, следовательно, тем больше будет плотность упаковки информации на магнитном носителе. Заметим, что если увеличивается, пиковые амплитуды сигнала считывания уменьшаются и сдвигаются во времени от желательных моментов времени. Другими словами, импульсы интерферируют друг с другом, ограничивая таким образом плотность упаковки. Эта проблема служит мотивом для синтеза модуляционных кодов, которые берут исходную последовательность данных и преобразуют (кодируют) в другую последовательность, которая приводит к форме сигнала записи, в котором переходы амплитуд рассеиваются дальше друг от друга. Для примера, если мы используем ДБНП, закодированная последовательность на входе модулятора должна содержать один или больше нулей между единицами. Вторая проблема, встречающаяся в магнитной записи – это необходимость подавления (или минимизации) постоянной составляющей, содержащейся в модулированном сигнале (записывающем токе) и обусловленной частотными характеристиками считывающей системы и связанной с ней электроники. Это требование также возникает в цифровой связи по кабельным каналам. Эту проблему можно преодолеть путём изменения (кодирования) последовательности данных на входе модулятора. Класс кодов, которые удовлетворяют этим целям (задачам) являются модуляционные коды, описываемые ниже. Коды с ограниченным разбегом. Коды, которые имеют ограниченное число последовательных единиц или нулей в последовательности обычно называют кодами с ограниченным разбегом. Эти коды в общем описываются двумя параметрами, скажем и , где означает минимальное число нулей между двумя единицами в последовательности, а означает максимальное число нулей между единицами в последовательности. Применяя их совместно с ДБНП модуляцией, влияние расположения нулей между последовательными единицами сводится к рассеянию переходов дальше друг от друга, тем самым сокращается перекрытие канальных откликов, вызванных последовательными переходами и таким образом сокращается МСИ. Установка верхней границы для пачки нулей обеспечивает достаточно частое появление переходов, так что информация символьной синхронизации может быть восстановлена из принимаемого модулированного сигнала. Коды с ограниченным разбегом обычно называют кодами. Ограниченную кодовую последовательность кода можно представить конечным автоматом – последовательной системой с ограниченным числом состояний, именно состояниями, обозначаемые как , как показано на рис. 9.4.4. Рис. 9.4.4. Последовательный конечный автомат для -кодовой последовательности Видно, что выходной символ 0 последовательность принимает переходя от состояния до . Выходной символ кодера может быть 1 только тогда, когда последовательность находится в состоянии . Когда последовательность находится в состоянии , выходной символ всегда 1. Конечный автомат можно также представить через матрицу переходов состояний, обозначаемую , которая является квадратной с элементами , где (9.4.2) Пример 9.4.1. Определим матрицу переходов состояний для кода. Код (1,3) имеет четыре состояния. Из рис. 9.4.4 получаем его матрицу переходов состояний, которая равна . (9.4.3) Важным параметром любого кода является число последовательностей определённой длины, скажем , которые удовлетворяют ограничениям кода. Если позволено расти, то число последовательностей , удовлетворяющих ограничениям кода, также растёт. Число информационных символов, которые можно однозначно представить посредством кодовых последовательностей, равно , где означает наибольшее целое, содержащееся в . Тогда максимальная скорость кода . Пропускная способность кода определяется так . (9.4.4) Ясно, что - это максимально возможная скорость, которую можно достичь при ограничениях на . Шеннон (1948) показал, что пропускная способность определяется так: , (9.4.5) где - наибольшее вещественное собственное число матрицы состояний переходов . Пример 9.4.2. Определим пропускную способность кода. Используя матрицу состояний переходов из примера (9.4.1) для (1,3) кода имеем . (9.4.6) Максимальный вещественный корень этого полинома найден и равен . Следовательно, пропускная способность кода . Пропускная способность кодов для и даны в табл. 9.4.1. Видим, что для при любом . Наиболее часто используемые коды для магнитной записи имеют , следовательно, их скорость по крайней мере . Теперь обратим наше внимание на конструирование некоторых кодов с ограниченным разбегом. В общем коды можно конструировать или как коды фиксированной длины, или как коды переменной длины. В коде фиксированной длины каждый символ или блок из символов кодируется в блок из символов. В принципе конструкция кода с фиксированной длиной стандартна. Для данной длины блока мы можем выбрать подмножество кодовых слов, которые удовлетворяют специфическим ограничениям для кодов с ограниченным разбегом. Из этого подмножества мы исключаем кодовые слова, которые не удовлетворяют ограничениям при их каскадном соединении. Так мы получаем набор кодовых слов, которые удовлетворяют ограничениям, и могут использоваться в отображениях входных символов данных кодера. Операции кодирования и декодирования можно выполнить табличным методом. Табл. 9,4.1. Пропускная способность как функция от параметров и
Пример 9.4.3. Синтезируем код с и длиной и определим его эффективность. Из списка кодовых слов мы находим пять кодовых слов, удовлетворяющих ограничениям (0, 2) кода: (010), (011), (101), (110), (111). Мы можем выбрать любые четыре из этих кодовых слов и использовать их для кодирования пар кодовых символов (0 0), (01), (10), (11). Так мы получаем код со скоростью , который удовлетворяет условиям (0, 2) кода. Код фиксированной длины в этом примере не очень эффективен. Его пропускная способность , так что этот код имеет эффективность . Конечно, лучшие (0, 2) коды можно сконструировать увеличением длины блока . В следующем примере, мы не накладываем ограничение на максимальное простирание нулей. Пример 9.4.4. Сконструируем код длиной с параметрами . В этом случае, мы не накладываем ограничения на число последовательных нулей. Для конструирования кода мы выберем из 32 возможных кодовых слов те, которые удовлетворяют ограничению . Имеется восемь таких кодовых слов, что подразумевает, что мы можем кодировать три информационных символа с каждым кодовым словом. Код дан в таблице 9.4.2. Заметим, что первый символа каждого кодового слова есть 0, в то время как последний символ может быть или 0, или 1. Следовательно, когда эти кодовые слова каскадно соединяются, ограничение удовлетворяется. Этот код имеет скорость . Если её сопоставить с пропускной способностью , полученной из таблицы 9.4.1, то эффективность кода равна 0,864, что вполне приемлемо. Таблица 9.4.2. Код с фиксированной длиной,
Метод конструирования кодов, описанный выше в двух примерах, приводит к кодам фиксированной длины, которые независимы по состояниям. Под независимостью состояний мы имеем в виду, что кодовые слова кода фиксированной длины могут быть каскадно объединены без нарушения ограничений на коды. В обшем, когда велико, коды фиксированной длины с независимостью по состояниям требуют большую длину блока символов. Возможны более простые (короткой длины) коды, в которых допустима зависимость состояний и переменная длина кодовых слов. Ниже мы рассмотрим коды, для которых как длина входных блоков на кодер, так и выходные блоки могут иметь переменную длину. Для однозначного декодирования кодовых слов в приемнике коды переменной длины должны удовлетворять префиксному условию, описанному в главе 3. Пример 9.4.5. Очень простым уникальным декодируемым кодом переменной длины с параметрами является код Код в этом примере имеет фиксированный размер выходного блока, но переменный размер входного блока. В общем, входные и выходные блоки могут иметь переменные размеры. Следующий пример иллюстрирует последний случай. Пример 9.4.6. Сконструируем код (2,7) с переменными размерами блока. Это несложный код. Мы выбрали этот пример потому, что код (2, 7) широко известен в технике ПЭВМ для многих дисковых систем хранения информации. Код иллюстрируется в таблице 9.4.3. Мы видим, что входные блоки данных из 2, 3, и 4 символов отображаются в выходные блоки данных из 4, 6 и 8 символов, соответственно. Следовательно скорость кода . Поскольку это скорость кода для всех кодовых слов, код называется кодом с фиксированной скоростью. Это код имеет эффективность . Заметим, что этот код удовлетворяет префиксному условию. Другой код, который широко используется в магнитной записи – это код со скоростью , иллюстрированный табл. 9.4.4. Видим, что когда информационный входной символ , то первый выходной символ , если предшествующий входной символ был , или первый выходной символ , если предшествующий входной символ был , а второй выходной символ . Таблица 9.4.3. Кодовая таблица для кода переменной длины (2,7).
Таблица 9.4.4. Кодер для кода Миллера (1,3)
Если входной информационный символ 1, то выход кодера 01. Декодирование этого кода простое. Первый символ двухсимвольного блока избыточный и может быть отброшен. Второй символ – это информационный символ. Этот код обычно называется кодом Миллера. Видим, что это код с зависимыми состояниями, которые описываются диаграммой состояний, показанный на рисунке 9.4.5. Имеются два состояния, обозначаемые и , с переходами, указанными на рисунке. Когда кодер в состоянии , то входной символ 1 приводит к тому, что кодер остается в состоянии , а выход кодера 01. Это обозначено 1/01. Если входной символ 0, кодер переходит в состояние , а выход кодера 00. Это обозначено 0/00. Аналогично, если кодер в состоянии , то входной символ 0 не вызывает переход, а выход кодера 10. С другой стороны, если входной символ 1, кодер переходит в состояние , а выход кодера 01. Рис. 9.4.6 показывает решётку для кода Миллера. Рис. 9.4.5. Диаграмма состояний для кода Миллера Рис. 9.4.6. Решетка для кода Миллера Отображение кодовых символов в сигналы. Выходная последовательность кодера отображается модулятором в сигнал для передачи по каналу. Если двоичный символ 1 отображается прямоугольным импульсом амплитуды , а двоичный символ 0 отображается прямоугольным импульсом с амплитудой результатом является кодированный сигнал ДБН (NRZ). Заметим, что длительность прямоугольных кодовых импульсов равна где - информационная скорость на входе кодера, - битовый интервал (не кодированных символов), а - скорость кода для кода. Когда код с фиксированной длинной и независимыми состояниями имеет скорость , мы можем рассматривать образование каждого -символьного блока, как генерирование одного сигнала длительностью . Таким образом мы имеем сигналов, один для каждого из возможных символьных блоков. Эти кодированные сигналы имеют общую форму, определённую (4.3.6) и (4.3.38). В этом случае нет зависимости между передаваемыми последовательными сигналами. В противоположность ситуации, рассмотренной выше, модулированный сигнал имеет память, если используют сигнал ДБНП и (или) код имеет зависимые состояния. Рассмотрим влияние отображения кодовых символов в ДБНП сигнал. Напомни, что зависимость состояний ДБНП сигнала обусловлена дифференциальным кодированием информационной последовательности. Дифференциальное кодирование является формой предварительного кодирования, которое описывается математически так , где является двоичной последовательностью на входе предварительного кодера предкодера, - выходная последовательность символов предкодера, а означает суммирование по . Это кодирование характеризуется диаграммой состояний, показанной на рис. 9.4.7(а). Рис. 9.4.7. Диаграмма состояний и решётка состояний для сигнала ДБНП (NRZI) Последовательность передаётся посредством сигнала ДБН. Таким образом, когда , то выход модулятора является прямоугольным импульсом амплитуды , а когда - выходом модулятора является прямоугольный импульс амплитуды . Когда кодирование отображается диаграммой состояний рис. 9.4.7(а) мы получаем соответствующую диаграмму состояний, показанную на рис. 9.4.7(b). Соответствующая решётка показана на рис. 9.4.7(с). Когда выход кодера с зависимыми состояниями подаётся на ДБНП модулятор, мы можем просто сочетать две диаграммы состояний в единую диаграмму состояний для кода с предварительным кодированием. Аналогичное сочетание можно выполнить с соответствующими решётками. Следующий пример иллюстрирует подход для кода Миллера (1, 3) обслуживающий ДБНП модулятор. Пример 9.4.7. Определим диаграмму состояний комбинации кода Миллера (1, 3), за которым следует предварительное кодирование, свойственное ДБНП модуляции. Поскольку код Миллера (1, 3) имеет два состояния и предкодер имеет два состояния, диаграмма состояний комбинированного кодера имеет четыре состояния, которые мы обозначим так , где представляют два состояния кода Миллера, a представляют два состояния предкодера для ДБНП. Для каждого символа входных данных кодера Миллера мы получаем два выходных символа, которые затем идут на предкодер, превращаясь в два выходных символа предкодера. Результирующая диаграмма состояний показана на рис. 9.4.8, где первый символ означает информационный символ на входе кодера Миллера, а следующие два символа представляют соответствующий выход предкодера. Решётчатую диаграмму состояний для подвергающейся предварительному кодированию последовательности Миллера можно получить непосредственно из комбинированной диаграммы состояний или из комбинаций решёток двух кодов. Результатом такого комбинирования является решетка с четырьмя состояниями, одна ступень которой показана на рис. 9.4.9. Читатель в порядке упражнения может попытаться показать, что четыре сигнала, полученные отображением каждой пары символов предварительно кодированной последовательности Миллера в ДБН сигнал, биортогональны и что результирующий модулированный сигнал идентичен сигналу, полученному модуляцией с задержкой, описанной в разделе 4.3.2. Рис. 9.4.8. Диаграмма состоянии каскадного соединения кода Миллера и ДБНП Рис. 9.4.9. Один шаг решётчатой диаграммы каскадного соединения кода Миллера и ДБНП Из диаграмм состояний с зависимыми состояниями можно получить матрицу вероятностей переходов, как описано в разделе 4.3.2. Затем можно определить спектральную плотность мощности кодированных сигналов, как показано в разделе 4.4.3.
|