exponenta event banner

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

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

Описание

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

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

  1. Определите и настройте объект эквалайзера оценки последовательности максимального правдоподобия. См. раздел Строительство.

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

Примечание

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

Строительство

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

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

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

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

Constellation

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

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

TracebackDepth

Глубина отслеживания алгоритма Витерби

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

TerminationMethod

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

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

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

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

SamplesPerSymbol

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

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

Методы

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

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

reset

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

Примеры

свернуть все

В этом примере показано, как использовать корректор 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. Свойства объекта соответствуют параметрам блока.

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

.
Представлен в R2012a