Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы по телекомуникации.doc
Скачиваний:
52
Добавлен:
02.05.2014
Размер:
10.88 Mб
Скачать

Лабораторная работа № 9

ИССЛЕДОВАНИЕ ПРОГРАММНОГО МЕТОДА КОДИРОВАНИЯ ДВОИЧНЫХ СЛОВ С ПОСТОЯННЫМ ВЕСОМ

ЦЕЛЬ РАБОТЫ:

  1. Ознакомление с алгоритмом и БЕЙСИК – программой кодирования двоичных слов для заданных значений веса (w) и длинны (n).

  2. Расчет числа двоичных слов и получение списка двоичных слов и их десятичных эквивалентов для заданных значений веса и длинны двоичных слов.

Теоретическая часть.

Процесс программного метода кодирования двоичных слов с постоянным весом состоит из двух этапов:

а) Определение числа возможных кодовых комбинаций, когда длина комбинаций задана.

б) Установление перечня образуемых кодовых комбинаций.

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

Cnw = n!/ w!(n-w)! (1)

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

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

  1. С целью понимания принципа программного метода кодирования двоичных слов используется проблемно-ориентированная блок-схема.

  2. Для облегчения процесса БЕЙСИК – программирования используется блок-схема программы кодирования двоичных слов.

Рис.1. Проблемно-ориентировочная блок-схема алгоритма кодирования ДС с постоянным весом

Описание блок-схемы БЕЙСИК –программы (рис.2.)

Рис.2. Блок-схема БЕЙСИК-программы

Блок 1 предназначен для размеров массива «В», в котором осуществляется формирование кодовых комбинаций ( в данном случае размер указанного массива равен 22, означающий, что кодируемые двоичные слова могут иметь длину не более 22 разрядов).

Блок 2 предназначен для введения количества разрядов кода (I) и количества единиц (J) в кодовой комбинации/

В 3,4,5 – блоках осуществляются вспомогательные переименования переменных.

Блоки с 6 по 20 предназначены для расчета количества исходных комбинаций:

Nkl = k!/L!(k-L)!

При этом:

  1. блоки с 6 по 10 рассчитывают факториал к! ;

  2. блоки с 11 по 14 рассчитывают факториал L!;

  3. блоки с 16 по 19 вычисляют (k-L)!;

  4. блоки с 15 по 20 осуществляют расчет по формуле (1).

Блок 21 предназначен для контрольного вывода I-ой длины кодовой комбинации. J – количество единиц в комбинации, N – общее количество кодовых комбинаций с заданным весом.

Блок 33 выводит рассчитанный код веса. Блок 34 предназначен для контроля конца работы по количеству сформированных в данный момент кодовых комбинаций.

Блоки с 35 по 39 предназначены для осуществления операции прибавления к сформированной кодовой комбинации единицы.

Блок, содержащий J9 – это счетчик количества единиц в кодовой комбинации.

Блоки 40,41,42,43,44 рассчитывают количество единиц в кодовой комбинации.

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