Компенсируйте сигнал BSPK

Компенсируйте сигнал BPSK использование линейного эквалайзера с алгоритмом наименьшее количество среднего квадратичного (LMS).

Сгенерируйте случайные двоичные данные и примените модуляцию BPSK.

data = randi([0 1],1000,1);
modData = pskmod(data,2);

Примените 2D касание статическое исчезновение к модулируемому сигналу.

rxSig = conv(modData,[0.5 0.05]);

Создайте адаптивный объект алгоритма LMS с размером шага 0,06.

alg = lms(0.06);

Создайте линейный объект эквалайзера, имеющий 8 касаний с помощью ранее созданного объекта алгоритма. Установите ссылочный индекс касания на 4.

eqlms = lineareq(8,alg);
eqlms.RefTap = 4;

Компенсируйте полученный сигнал, rxSig, при использовании первых 200 битов данных в качестве обучающей последовательности.

trSeq = data(1:200);
[eqSig,~,e] = equalize(eqlms,rxSig,trSeq);

Отфильтруйте и постройте степень полученного (некомпенсируемого) сигнала. Значение сигнала было ослаблено каналом.

rxSigPwr = filter(0.1*ones(10,1),1,abs(rxSig)).^2;
plot(rxSigPwr)
title('Received Signal')
xlabel('Bits')
ylabel('Power (W)')

Постройте компенсируемый сигнал. Сигнал достигает намеченного уровня мощности 1 Вт.

eqSigPwr = filter(0.1*ones(10,1),1,abs(eqSig)).^2;
plot(eqSigPwr)
title('Equalized Signal')
xlabel('Bits')
ylabel('Power (W)')

Постройте значение ошибочной оценки, e. Ошибочные уменьшения, пока это не почти нуль после 400 битов.

plot(abs(e))
title('Error Estimate')
xlabel('Bits')
ylabel('Amplitude (V)')

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