comm.MLSEEqualizer

Выравнивайте с помощью оценки максимальной последовательности правдоподобия

Описание

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

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

  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

Глубина трассировки алгоритма Viterbi

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

TerminationMethod

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

Задайте метод завершения алгоритма Viterbi как один из Continuous | Truncated. Значение по умолчанию является Truncated. Когда вы устанавливаете это свойство на Continuousобъект инициализирует метрики алгоритма Viterbi всех состояний, в 0 при первом вызове step способ. Затем объект сохраняет свою метрику внутреннего состояния в конце каждой системы координат для использования со следующей системой координат. Когда вы устанавливаете это свойство на Truncatedобъект сбрасывается в каждой системе координат. Алгоритм Viterbi обрабатывает каждую систему координат данных независимо, сбрасывая метрику состояния в конце каждой системы координат. Путь трассировки всегда начинается в состоянии с минимальной метрики. Инициализация метрики состояния зависит от того, задаете ли вы преамбулу или постамб. Если вы задаете PreambleSource свойство к Noneобъект инициализирует метрики всех состояний, в 0 в начале каждой системы координат данных. Если вы задаете PreambleSource свойство к Propertyобъект использует преамбулу, заданную в Preamble свойство, чтобы инициализировать метрики состояния в начале каждой системы координат данных. Когда вы задаете преамбулу, путь трассировки заканчивается в одном из состояний, представленных этой преамбулой. Если вы задаете PostambleSource свойство к Noneпуть трассировки начинается в состоянии с наименьшей метрики. Если вы задаете PostambleSource свойство к Property, путь трассировки начинается с состояния, представленного postamble, который вы задаете в Postamble свойство. Если постамб не декодируется в уникальное состояние, декодер идентифицирует наименьшие из всех возможных декодированных состояний, которые представлены постаматом. Декодер затем начинает декодирование обратного вызова в этом состоянии. Когда вы устанавливаете это свойство на 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 свойство. Целое число значения k - 1 в векторе соответствует k-й записи в векторе, хранящемся в Constellation свойство. Это свойство применяется, когда вы устанавливаете TerminationMethod свойство к Truncated и PreambleSource свойство к Property.

PostambleSource

Источник постамбла

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

Postamble

Postamble, который следует за входными сигналами

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

SamplesPerSymbol

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

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

Методы

шагВыравнивайте с помощью оценки максимальной последовательности правдоподобия
Общий для всех системных объектов
release

Разрешить изменение значения свойства системного объекта

reset

Сброс внутренних состояний Системного объекта

Примеры

свернуть все

В этом примере показано, как использовать эквалайзер 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
Для просмотра документации необходимо авторизоваться на сайте