Данный раздел Вам необходимо прочесть в том случае, если Вы хотите внести какие-либо изменения в программы турбо кодирования-декодирования, модели канала связи и т.д. Для этого Вам потребуются некоторые сведения о структуре исходного кода программы-ядра, навыки программирования на языке C, а также наличие инсталлированного раздела Matlab Compiler в Вашей системе Matlab.
3.2. Структура исходного кода программы-ядра TurboCore.c.
Весь исходный код программы-ядра располагается в одном текстовом файле TurboCore.c. Программа-ядро состоит из следующих функций (по порядку следования в файле):
§ генератор бинарных псевдослучайных чисел RandBin;
§ генератор нормально распределенных псевдослучайных чисел RandNorm;
§ генератор псевдослучайных чисел, распределенных по закону Релея RandRayleigh (используется при моделировании совместного использования турбо кода и сигнальной конструкции из 8 ортогональных сигналов при некогерентном приеме);
§ турбо кодер TurboCoder;
§ функция моделирования характеристик канала связи TurboChannel;
§ турбо декодер TurboDecoder;
§ функция TurboCore, обеспечивающая последовательный запуск всех необходимых подпрограмм в процессе моделирования;
§ функция mexFunction (Gateway Routine), обеспечивающая реализацию интерфейса между средой Matlab и mex приложением.
Далее мы приводим очень короткие описания каждой из функций, т.к. исчерпывающие сведения чрезвычайно тяжело отразить в приемлемом объеме, однако, более подробные сведения можно получить у автора.
Функция RandBin. Генератор бинарной псевдослучайной последовательности, используемый для формирования информационного наполнения пакета, передаваемого по каналу связи. Данная функция использует стандартный генератор псевдослучайных чисел с равномерным распределением из библиотеки языка C. 0 генерируется этой функцией, если значение возвращаемое C функцией rand() меньше среднего значения генерируемых ею чисел, а 1 — в противном случае.
Функция RandNorm. Генерирует последовательность нормально распределенных псевдослучайных чисел с математическим ожиданием 0 и дисперсией 1. Данная функция использует стандартный генератор псевдослучайных чисел с равномерным распределением из библиотеки языка C. Два псевдослучайных нормально распределенных числа генерируются этой функцией как координаты конца вектора величина модуля, которого распределена по закону Релея, а фаза — по равномерному закону [8].
Функция RandRayleigh. Генерирует последовательность псевдослучайных чисел, распределенную по закону Релея с параметром s=1 [9]. Данная функция использует стандартный генератор псевдослучайных чисел с равномерным распределением из библиотеки языка C.
Функция TurboCoder. Осуществляет формирование последовательности проверочных символов турбо кода, выкалывание четных проверочных символов, формирование стабилизирующих последовательностей (устанавливают кодеры составных кодов в нулевые состояния после окончания информационного пакета — по 4 бита на каждый составной код) и формирует массив двоичных символов, предназначенный для передачи по каналу связи (он включает информационные, проверочные символы и стабилизирующие последовательности для каждого составного кода). Биты стабилизирующих последовательностей не перемежаются турбо перемежителем-деперемежителем в этой функции, что улучшает характеристики всей конструкции [10].
Функция TurboChannel. Производит все необходимые операции, связанные с добавлением шума к передаваемому по каналу связи сообщению, формирует значения логарифмов отношений правдоподобия для каждого информационного символа по результатам его приема (с учетом и проверочных символов данного ребра сверточного составного кода), а также проводит необходимые операции модуляции-демодуляции в системе связи без кодирования и подсчитывает вероятность ошибки на бит в ней.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.