
Часть II
В соответствии с вариантом задания, выданным преподавателем, в исследовательской части работы необходимо выполнить моделирование процессов, реализующих использованные методы улучшения свойств потенциальных кодов, в среде MatLab.
Справку по операторам MatLab можно получить следующим образом:
Нажать кнопку со знаком вопроса на командной панели,
Выбрать вкладку поиска (Search)
В окне поиска Search for ввести запрос (operators)
Рассмотрим на конкретном примере, как реализуется операция скремблирования в среде MatLab.
Скремблирование
Операция скремблирования выполняется в соответствии с алгоритмом, который задается формулой:
Bi= Ai
Bi-k
Bi-n,
где Ai - это i-й элемент исходного массива, который подвергается скремблированию, а Bi-k и Bi-n - элементы i-k и i-n массива B, который получается в результате скремблирования.
- символ исключающего “ИЛИ”.
Операция исключающего “ИЛИ” для двух переменных, например, Ai и Bi-k в обозначениях принятых в программе MatLab реализуется так
(~Ai&Bi-k)|(~Bi-k&Ai),
где ~ обозначает логическое отрицание, & - операция конъюнкции (логическое И), | - операция дизъюнкции (логическое ИЛИ).
Рассмотрим пример части программы в MatLab, осуществляющей скремблирование при следующих параметрах:
m – длина исходной и результирующей последовательностей (количество элементов в массивах A и B) в битах,
k и n – значения параметров задержек при скремблировании.
% Код скремблирования
m=28; k=5; n=13;
t=0:1:m-1;
A=[1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 0 1];
B=zeros(1,m);
for I=1:m,
if I<k+1
B(:,I)=A(:,I); end;
if (I>k)&(I<n+1)
B(:,I)=(~B(:,I-k)&A(:,I))|(~A(:,I)&B(:,I-k)); end;
if I>n
BP=(~B(:,I-k)&A(:,I))|(~A(:,I)&B(:,I-k));
B(:,I)=(~B(:,I-n)&BP)|(~BP&B(:,I-n)); end;
end;
Внимание: на самом деле вместо матрицы A, которая приведена в нашем примере, следует подставить реальную последовательность Вашего сигнала!
В рассмотренном примере BP – это промежуточный результат, полученный с использованием первого двухвходового элемента Исключающее ИЛИ.
Дескремблирование
Операция дескремблирования выполняется в соответствии с алгоритмом, который задается формулой:
Bi= Bi Bi-k Bi-n.
Код программы, выполняющей дескремблирование, предлагается разработать самостоятельно.
Коды следующих друг за другом скремблирования и дескремблирования должны быть завершены кодом построения графиков:
subplot(3,1,1); bar(t,A);
subplot(3,1,2); bar(t,B);
subplot(3,1,3); bar(t,BB);
здесь BB – результирующая последовательность на выходе дескремблера.
Вычисление спектров
С целью исследования спектра, полученного в результате дискретного преобразования Фурье скремблированного и дескремблированного сигналов, следует воспользоваться следующими функциями MatLab:
% Вычисление спектра
C=A; x=fft(C);
% Перегруппировка выходного массива
y=fftshift(x);
Перегруппировка выходного массива преобразования Фурье применена с целью локализации постоянной составляющей спектра в начале координат.
ВАРИАНТЫ ЗАДАНИЙ
по части II
Выполнить моделирование в среде MatLab скремблирования и дескремблирования исходной последовательности (удлиненной в 2 раза). Сравнить ширину спектров исходного и скремблированного сигналов на заданном преподавателем уровне. Убедиться, что в результате дескремблирования получается исходный код. Построить графики кодов и их спектров. Сделать вывод о том, какой из этих кодов по одной и той же линии связи может передаваться с более высокой скоростью.
Выполнить моделирование в среде MatLab кодирования исходной последовательности (удлиненной в 2 раза) с использованием кодов NRZI и AMI. Сравнить ширину спектров получившихся сигналов на заданном преподавателем уровне. Сделать вывод о том, какой из кодов по одной и той же линии связи может передаваться с более высокой скоростью. Разработать программу, выполняющую обратное преобразование кодов. Убедиться в совпадении результатов декодирования с исходной последовательностью.
Выполнить моделирование в среде MatLab кодирования исходной последовательности (удлиненной в 2 раза) с использованием кодов NRZI и манчестерского. Сравнить ширину спектров получившихся сигналов на заданном преподавателем уровне. Сделать вывод о том, какой из кодов по одной и той же линии связи может передаваться с более высокой скоростью. Разработать программу, выполняющую обратное преобразование кодов. Убедиться в совпадении результатов декодирования с исходной последовательностью.
Выполнить моделирование в среде MatLab кодирования исходной последовательности (удлиненной в 2 раза) с использованием кодов AMI и манчестерского. Сравнить ширину спектров получившихся сигналов на заданном преподавателем уровне. Сделать вывод о том, какой из кодов по одной и той же линии связи может передаваться с более высокой скоростью. Разработать программу, выполняющую обратное преобразование кодов. Убедиться в совпадении результатов декодирования с исходной последовательностью.
Для исходной последовательности (удлиненной в 2 раза) подобрать наилучший алгоритм скремблирования (выбор параметров задержек k и n), с точки зрения получения нулевых последовательностей минимальной длины. Проанализировать не менее 10 различных алгоритмов. Разработать программу, выполняющую дескремблирование. Убедиться, что в результате дескремблирования получается исходный код.