Исследование сверточных кодов в Simulink
Для исследования сверточных кодов запускаем файл модели vitharddec.mdl, производим выбор параметров сверточного кода и декодера Витерби в соответствии с вариантом. Структурная схема модели показана на рисунке 3.1 Схема также может быть построена в рабочем окне Симулинк используя библиотеки элементов. Блок Data Source генерирует псевдослучайную последовательность с распределением Бернулли. Настройка блока выполняется при двойном щелчке правой кнопкой мыши. Значения параметров: Probability of a zero – вероятность появления нулевых значений на выходе блока Initial seed – начальное значение для генератора случайных чисел Sample time – интервал дискретизации Frame-based outputs – настройка выхода блока в виде фреймов Samples per frame – количество отсчетов во фрейме
Рисунок 4.1 Структурная схема модели исследования сверточных кодов и декодера Витерби
Рисунок 4.3 Блок Data Source
Блок Convolutional Encoder,рисунок 4.4, формирует кодированную последовательность двоичного сверточного кода в соответствии с выбранной схемой кодера и порождающими полиномами. Рисунок 4.4 Блок Convolutional Encoder
Параметры блока Convolutional Encoder Для определения сверточного кода применяется его решетчатая структура. Параметр Trellis structure задает сверточный код через его длину кодового ограничения, генераторные полиномы, и, при необходимости, через обратные связи. В поле блока Trellis structure задается команда poly2trellis,которая преобразует генераторные полиномы в решетчатую форму представления кодера. Например, для задания кода с кодовым ограничением 7, и генераторными полиномами в восьмеричной форме 171 и 133 применяется команда poly2trellis(7, [171 133]). Первоначальнорегистры кодера находятся в нулевом состоянии. В непрерывном режиме Continuous mode блок сохраняет состояние кодера в конце каждого фрейма для использования в последующем фрейме. Выход кодера сверточного кода подается на блок двоичной фазовой модуляции BPSK Modulator Baseband. Рисунок 4.5 Блок фазовой модуляции BPSK Modulator Baseband Phase offset (rad) – фаза нулевой точки в сигнальном созвездии, Output data type – тип данных выходного сигнала. Далее модулированный сигнал подается на вход канала с белым гауссовским шумом AWGN Channel
Рисунок 4.6 Блока канала с гауссовым шумом AWGN Channel Блока канала с гауссовым шумом AWGN Channel добавляет к входному сигналу шум с нормальным распределением значений. Параметр Initial seed инициализирует генератор шума. Дисперсию шума можно регулировать в нескольких режимах. Режим Signal to noise ratio (Eb/No) Eb/No – отношение энергии на один бит к спектральной плотности мощности шума, в децибелах, Number of bits per symbol – количество бит на символ, Input signal power – мощность входного сигнала, Symbol period – период символов.
Режим Signal to noise ratio (Es/No) Es/No – отношение энергии сигнала к спектральной плотности мощности, в децибелах, Input signal power – мощность входного сигнала, Symbol period – период символов.
Режим Signal to noise ratio (SNR) SNR – отношение мощности сигнала к мощности шума Input signal power – мощность входного сигнала.
Изменение длительности периода сигнала влияет на дисперсию шума, добавляемого к отсчетам сигнала.
- мощность сигнала, - Длительность символа, - интервал дискретизации. Для комплексного входного сигнала связь между Eb/No, Es/No, и SNR выражается следующим образом: Es/N0 = ( / ) · SNR Es/N0 = Eb/N0 + 10log10(k), дБ К – количество информационных бит на один символ. Для реальных сигналов Es/N0 = 0.5( / ) · SNR. Выход канала подается на вход демодулятора двоичной ФМ BPSK Demodulator Baseband. Рисунок 4.7 демодулятор двоичной ФМ BPSK Demodulator Baseband.
Параметры блока Phase offset (rad) – начальная фаза нулевой точки, Samples per symbol – количество отсчетов на один период входного сигнала.
Выход демодулятора после преобразования типов сигнала (если это требуется) подается на вход блока декодера Витерби - Viterbi Decoder. Параметры блока декодера Витерби Trellis structure – решетчатая структура сверточного кода, применяется то же значение, что и в кодере сверточного кода. Punctured code – устанавливается режим выкалывания. Enable erasures input port – разрешение на применение стирания в канале. Decision type – тип выхода демодулятора, входа декодера. Возможно неквантованные, жесткие и мягкие решения. Number of soft decision bits – разрядность представления квантованных значений (при мягких решениях) Traceback depth – глубина ветвей кодовой решетки, применяемой при нахождении выжившего пути
Рисунок 4.8 блок декодера Витерби - Viterbi Decoder
Выход декодера подается на блок вычисления вероятности ошибки Error Rate Calculation. В данном блоке происходит подсчет количества ошибок и вычисляется вероятность ошибки декодирования. На один вход блока подается неискаженный каналом сигнал, с выхода источника дискретного сигнала, на второй вход – сигнал с выхода декодера. В блоке происходит подсчет несовпадающих символов, с учетом задержки на декодирование в декодере Витерби. Параметры блока Error Rate Calculation Receive delay – количество отсчетов сигнала, на которое выходной сигнал задержан относительно переданных данных. Output data – передача результата в рабочее пространство. Target number of errors – требуемое количество ошибок, необходимое для достижения заданной точности.
Рисунок 4.9 блок вычисления вероятности ошибки Error Rate Calculation
|