коммуникация. MLSEEqualizer

Компенсируйте оценку последовательности наибольшего правдоподобия использования

Описание

Объект MLSEEqualizer использует алгоритм Viterbi, чтобы компенсировать линейно модулируемый сигнал через дисперсионный канал. Объект обрабатывает входные кадры и выводит оценку последовательности наибольшего правдоподобия (MLSE) сигнала. Эта обработка использует оценку канала, смоделированного как фильтр конечного импульсного ответа (FIR).

Компенсировать линейно модулируемый сигнал и выводить оценку последовательности наибольшего правдоподобия:

  1. Задайте и настройте свой оценочный объект эквалайзера последовательности наибольшего правдоподобия. Смотрите Конструкцию.

  2. Вызовите step, чтобы компенсировать линейно модулируемый сигнал и вывести оценку последовательности наибольшего правдоподобия согласно свойствам comm.MLSEEqualizer. Поведение step характерно для каждого объекта в тулбоксе.

Примечание

При запуске в R2016b, вместо того, чтобы использовать метод step, чтобы выполнить операцию, заданную Системой object™, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Конструкция

H = comm.MLSEEqualizer создает Системный объект эквалайзера оценки последовательности наибольшего правдоподобия (MLSEE), H. Этот объект использует алгоритм Viterbi и оценку канала, чтобы компенсировать линейно модулируемый сигнал, который был передан через дисперсионный канал.

H = comm.MLSEEqualizer(Name,Value) создает объект MLSEE, H, с каждым заданным набором свойств к заданному значению. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).

H = comm.MLSEEqualizer(CHANNEL,Name,Value) создает объект MLSEE, H. Этот объект имеет набор свойств Channel к CHANNEL и другой заданный набор свойств к заданным значениям.

Свойства

ChannelSource

Источник коэффициентов канала

Задайте источник коэффициентов канала как один из Input port | Property. Значением по умолчанию является Property.

Channel

Коэффициенты канала

Задайте канал как числовое, вектор-столбец, содержащий коэффициенты КИХ-фильтра. Значением по умолчанию является [1;0.7;0.5;0.3]. Длина этого вектора определяет время хранения в памяти канала. Это должно быть целочисленным кратным выборки на символ, который вы задаете в свойстве SamplesPerSymbol. Это свойство применяется, когда вы устанавливаете свойство ChannelSource на Property.

Constellation

Совокупность входного сигнала

Задайте совокупность входа модулируемый сигнал как комплексный вектор. Значением по умолчанию является [1+1i -1+1i -1-1i 1-1i].

TracebackDepth

Глубина Traceback алгоритма Viterbi

Задайте количество ответвлений решетки (количество символов), использование алгоритма Viterbi, чтобы создать каждый traceback путь. Значением по умолчанию является 21. traceback глубина влияет на точность декодирования и задержку. Задержка декодирования представляет количество нулевых символов, которые предшествуют первому декодируемому символу в выводе. Когда вы устанавливаете свойство TerminationMethod на Continuous, задержка декодирования равняется количеству нулевых символов этого свойства. Когда вы устанавливаете свойство TerminationMethod на Truncated, нет никакой выходной задержки.

TerminationMethod

Метод завершения алгоритма Viterbi

Задайте метод завершения алгоритма Viterbi как один из Continuous | Truncated. Значением по умолчанию является Truncated. Когда вы устанавливаете это свойство на Continuous, объект инициализирует метрики алгоритма Viterbi всех состояний к 0 в первом вызове метода step. Затем объект сохраняет свою метрику внутреннего состояния в конце каждого кадра для использования со следующим кадром. Когда вы устанавливаете это свойство на Truncated, объект сбрасывает в каждом кадре. Алгоритм Viterbi обрабатывает каждый кадр информационно-независимо, сбрасывая метрику состояния в конце каждого кадра. traceback путь всегда запускается в состоянии с минимальной метрики. Инициализация метрик состояния зависит от того, задаете ли вы преамбулу или постиноходь. Если вы устанавливаете свойство PreambleSource на None, объект инициализирует метрики всех состояний к 0 в начале каждого кадра данных. Если вы устанавливаете свойство PreambleSource на Property, объект использует преамбулу, которую вы задаете в свойстве Preamble, чтобы инициализировать метрики состояния в начале каждого кадра данных. Когда вы задаете преамбулу, traceback путь заканчивается в одном из состояний, представленных той преамбулой. Если вы устанавливаете свойство PostambleSource на None, traceback путь запускается в состоянии с самой маленькой метрики. Если вы устанавливаете свойство PostambleSource на Property, traceback путь начинается в состоянии, представленном постиноходью, которую вы задаете в свойстве Postamble. Если постиноходь не декодирует к уникальному состоянию, декодер идентифицирует самое маленькое из всех возможных декодируемых состояний, которые представлены постиноходью. Декодер затем начинает traceback, декодирующий в том состоянии. Когда вы устанавливаете это свойство на Truncated, сигнал входных данных метода step должен содержать, по крайней мере, символы TracebackDepth, не включая дополнительную преамбулу.

ResetInputPort

Включите вход сброса эквалайзера

Установите это свойство на true включать дополнительный вход к методу step. Значением по умолчанию является false. Когда этот вход является ненулевым, или логическим скалярным значением с двойной точностью, объект сбрасывает состояния эквалайзера. Это свойство применяется, когда вы устанавливаете свойство TerminationMethod на Continuous.

PreambleSource

Источник преамбулы

Задайте источник преамбулы, которая, как ожидают, будет предшествовать входному сигналу. Выберите из None | Property. Значением по умолчанию является None. Установите это свойство на Property задавать преамбулу с помощью свойства Preamble. Это свойство применяется, когда вы устанавливаете свойство TerminationMethod на Truncated.

Preamble

Преамбула, которая предшествует входным сигналам

Задайте преамбулу, которая, как ожидают, будет предшествовать данным во входном сигнале как целое число, вектор - строка. Значением по умолчанию является [0 3 2 1]. Значения преамбулы должны быть между 0 и M-1, где M является длиной сигнального созвездия, которое вы задаете в свойстве Constellation. Целочисленное значение k1 в векторе соответствует k-th запись в векторе, сохраненном в свойстве Constellation. Это свойство применяется, когда вы устанавливаете свойство TerminationMethod на Truncated и свойство PreambleSource к Property.

PostambleSource

Источник постиноходи

Задайте источник постиноходи, которая, как ожидают, будет следовать за входным сигналом. Выберите из None | Property. Значением по умолчанию является None. Установите это свойство на Property задавать постиноходь в свойстве Postamble. Это свойство применяется, когда вы устанавливаете свойство TerminationMethod на Truncated.

Postamble

Постиноходь, которая следует за входными сигналами

Задайте постиноходь, которая, как ожидают, будет следовать за данными во входном сигнале как целочисленный вектор - строка. Значением по умолчанию является [0 2 3 1]. Значения постиноходи должны быть между 0 и M1. В этом случае M указывает на длину свойства Constellation. Целочисленное значение k1 в векторе соответствует k-th запись в векторе, заданном в свойстве Constellation. Это свойство применяется, когда вы устанавливаете свойство TerminationMethod на Truncated и свойство PostambleSource к Property. Значением по умолчанию является [0 2 3 1].

SamplesPerSymbol

Количество выборок на символ

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

Методы

сбросСбросьте состояния объекта MLSEE
шагКомпенсируйте оценку последовательности наибольшего правдоподобия использования
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

развернуть все

Этот пример показывает, как использовать эквалайзер MLSE, чтобы удалить эффекты выборочного частотой канала.

Задайте статические коэффициенты канала.

chCoeffs = [.986; .845; .237; .12345+.31i];

Создайте объект эквалайзера MLSE. Создайте объект калькулятора коэффициента ошибок.

mlse = comm.MLSEEqualizer('TracebackDepth',10,...
    'Channel',chCoeffs,'Constellation',pskmod(0:3,4,pi/4));
errorRate = comm.ErrorRate;

Основной цикл обработки включает эти шаги:

  • Генерация данных

  • Модуляция QPSK

  • Фильтрация канала

  • Коррекция сигнала

  • Демодуляция QPSK

  • Ошибочное вычисление

for n = 1:50
    data= randi([0 3],100,1);
    modSignal = pskmod(data,4,pi/4,'gray');

    % Introduce channel distortion.
    chanOutput = filter(chCoeffs,1,modSignal);

    % Equalize the channel output and demodulate.
    eqSignal = mlse(chanOutput);
    demodData = pskdemod(eqSignal,4,pi/4,'gray');

    % Compute BER.
    errorStats = errorRate(data,demodData);
end

Отобразите частоту ошибок по битам и количество ошибок.

ber = errorStats(1)
numErrors = errorStats(2)
ber =

     0


numErrors =

     0

Постройте сигнальное созвездие до коррекции.

constDiagram = comm.ConstellationDiagram;
constDiagram(chanOutput)

Постройте сигнальное созвездие после коррекции.

constDiagram(eqSignal)

Компенсируемые символы выравниваются отлично с совокупностью ссылки QPSK.

Алгоритмы

Этот объект реализует алгоритм, входные параметры и выходные параметры, описанные на странице с описанием блока MLSE Equalizer. Свойства объектов соответствуют параметрам блоков.

Расширенные возможности

Смотрите также

Функции

Системные объекты

Блоки

Представленный в R2012a