Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИС_КР_2011.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.17 Mб
Скачать

Часть 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

  1. Выполнить моделирование в среде MatLab скремблирования и дескремблирования исходной последовательности (удлиненной в 2 раза). Сравнить ширину спектров исходного и скремблированного сигналов на заданном преподавателем уровне. Убедиться, что в результате дескремблирования получается исходный код. Построить графики кодов и их спектров. Сделать вывод о том, какой из этих кодов по одной и той же линии связи может передаваться с более высокой скоростью.

  1. Выполнить моделирование в среде MatLab кодирования исходной последовательности (удлиненной в 2 раза) с использованием кодов NRZI и AMI. Сравнить ширину спектров получившихся сигналов на заданном преподавателем уровне. Сделать вывод о том, какой из кодов по одной и той же линии связи может передаваться с более высокой скоростью. Разработать программу, выполняющую обратное преобразование кодов. Убедиться в совпадении результатов декодирования с исходной последовательностью.

  1. Выполнить моделирование в среде MatLab кодирования исходной последовательности (удлиненной в 2 раза) с использованием кодов NRZI и манчестерского. Сравнить ширину спектров получившихся сигналов на заданном преподавателем уровне. Сделать вывод о том, какой из кодов по одной и той же линии связи может передаваться с более высокой скоростью. Разработать программу, выполняющую обратное преобразование кодов. Убедиться в совпадении результатов декодирования с исходной последовательностью.

  1. Выполнить моделирование в среде MatLab кодирования исходной последовательности (удлиненной в 2 раза) с использованием кодов AMI и манчестерского. Сравнить ширину спектров получившихся сигналов на заданном преподавателем уровне. Сделать вывод о том, какой из кодов по одной и той же линии связи может передаваться с более высокой скоростью. Разработать программу, выполняющую обратное преобразование кодов. Убедиться в совпадении результатов декодирования с исходной последовательностью.

  1. Для исходной последовательности (удлиненной в 2 раза) подобрать наилучший алгоритм скремблирования (выбор параметров задержек k и n), с точки зрения получения нулевых последовательностей минимальной длины. Проанализировать не менее 10 различных алгоритмов. Разработать программу, выполняющую дескремблирование. Убедиться, что в результате дескремблирования получается исходный код.