comm.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.

Методы

шагКомпенсируйте оценку последовательности наибольшего правдоподобия использования
Характерный для всех системных объектов
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