Моделирование передачи информации по кабельной линии связи
Коды Боуза-Чоудхури-Хоквингема как широкий класс циклических кодов, применяемых для защиты информации от ошибок. Особенности коаксиальных магистральных кабелей КМ-4, основное назначение. Способы моделирования передачи информации по кабельной линии связи.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 07.01.2013 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
коаксиальный магистральный кабель связь
Для выполнения курсовой работы мы использовали пакет прикладных программ Matlab, синтаксис которого является синтаксисом одноименного языка программирования.
Выполняя курсовой проект, мы должны были освоить некоторые программные моменты задания и расчета прохождения сигнала по линии связи, а также приемы кодирования двоичной информации на примере код Боуза - Чоудхури - Хоквингема. Размерность кодировки была задана (31,15).
Основной целью выполнения работы являлась возможность осуществлять эмпирический расчет количества ошибок при искажении сигнала по средствам ПК, что позволяет избежать лишних затрат при прокладывании кабеля для компьютерных сетей.
Теоритическая часть
Коды Боуза - Чоудхури - Хоквингхема (БЧХ-коды) - в теории кодирования это широкий класс циклических кодов, применяемых для защиты информации от ошибок. Отличается возможностью построения кода с заранее определенными корректирующими свойствами, а именно, минимальным кодовым расстоянием.
Коаксиальные кабели магистральные КМ-4 рассчитаны на многоканальную связь и телевидение с уплотнением коаксиальных пар в диапазоне частот до 17 МГц. Кабели состоят из четырех стандартизованных коаксиальных пар 2,52/9,4 и пяти служебных симметричных четверок с жилами диаметром 0,9 мм. По любым двум коаксиальным парам можно организовать передачу программ телевидения в прямом и обратном направлениях и 300 или 1920 каналов ТЧ. Кабели поставляются следующих марок: КМГ- 4, КМБ - 4, КМБГ-4, КМБл - 4, КМБШп - 4, КМК - 4, КМКл - 4, КМЭБ - 4, КМЭБл - 4.
Спектр сигнала - в радиотехнике это результат разложения сигнала на более простые в базисе ортогональных функций. В качестве разложения обычно используются преобразование Фурье, разложение по функциям Уолша, вейвлет - преобразование и др.
Фильтр нижних частот (ФНЧ) - один из видов аналоговых или электронных фильтров, эффективно пропускающий частотный спектр сигнала ниже некоторой частоты (частоты среза), и уменьшающий (подавляющий) частоты сигнала выше этой частоты. Степень подавления каждой частоты зависит от вида фильтра.
В отличие от фильтра нижних частот (НЧ), фильтр верхних частот пропускает частоты сигнала выше частоты среза, подавляя низкие частоты.
Реализация фильтров нижних частот может быть разнообразной, включая электронные схемы, программные алгоритмы, акустические барьеры, механические системы и т. д.
Амплитудная модуляция, изменение амплитуды колебаний (электрических, механических и др.), происходящее с частотой, намного меньшей, чем частота самих колебаний. А. м. применяют в радиотехнике, например в радиовещании. Звуковые колебания преобразуются в электрические колебания низкой частоты W (модулирующий сигнал), которые периодически изменяют (модулируют) амплитуду колебаний высокой частоты w (несущей частоты), генерируемых радиопередатчиком.
Описание работы программы
Концептуальная схема алгоритма программы, реализованной в курсовой работе, приведена на рисунке 1.
Рисунок 1 - Алгоритм программы: ГСЧПГ - генератор случайных чисел поле Галуа; К - кодер; М - модулятор; ЛС - линия связи; В - выпрямитель; ФНЧ - фильтр низких частот; И - интегральный приемник; Д - декодер.
Генератор случайных чисел
n=16;%символов информационных
N=7;%число блоков по 16 бит
a=randi([0 1],1,(N*n));
Первая строка указывает нам переменную n, которая отвечает за количество символов в одном, условном блоке информации. Выбор числа 16 строго привязан к заданному размеру кодирования.
Вторая строка дает нам количество блоков для кодирования, выбирая число N, мы исходили из необходимости определения вероятности допущения ошибки на 100 бит при использовании корректирующего кода. Так что бы длина послания была 100 бит, мы должны 100 разделить на 16, длина информационного блока, в результате мы получим 6,25. Это число округляем до большего целого, т.е. до 7.
Третья строка задает массив а из 112 символов, использую встроенную функцию П.О. Matlab.
Кодер
Для кодирования информации была создана функция a=coder_all(a,g). Где первым аргументом является массив из двоичных случайных чисел, длина которого кратна 16.
Второй аргумент функции порождающий полином, который мы получили путем умножения по модулю два трех других простых полиномов, для достижения s=3, т.е. возможность исправлять три ошибки, в блоке длиной 31 бит. Но алгоритм не дает возможности исправления ошибок при неправильности 1 и 16 бита.
Дочерней функцией выше приведенной, является функция b=sumost(b,g). Она прибавляет остаток деления информационных бит на образующий полином. Прибегая в свою очередь к функции [a]=Mdeconv(a,g), которая создана по аналогии со стандартной функцией матлаба deconv.
Функция Mdeconv использует вложенные функции:
- srav для сравнения двух массивов;
– nuli для удаления всех нулей до первой единицы слева.
Модулятор
Модуляция сигнала происходит по средствам функции simulation_signal. Входными аргументами которой являются:
– длина модуляции одного бита;
– количество бит для модуляции;
– массив из случайных значений двоичного кода.
Частота модуляции огибающей равна 100 Гц, а несущей 10 кГц.
При заданном количестве отсчетов, а именно 7*31*10=1240, примем участок за отрезок времени равный 0,1 секунде. Так как несущая должна совершить 10000 колебаний в секунду, а один период несущей равен 360 градусов, то уравнением для задания несущей будет sin((2*3.14159*x)/124). Аналогично находим уравнение для огибающей. На рисунке 2 показана модуляция бинарного сигнала, шаг модуляции одного бита равен 10.
Рисунок 2 - Модуляция сигнала.
Линия связи и шум
Для имитации прохождения линии связи сигналом мы создали функцию link. Входными значениями для нее послужили длина линии связи в километрах и передаваемый сигнал.
Из-за сдвига фазы при прохождении сигнала по линии связи пришлось добавить в эту функцию автокорректор фаз. В ходе эмпирических измерений было подтверждено, что сдвиг фазы линейно зависит от количества дискретизации передаваемого сигнала и линейно зависит от длины линии связи. Так как число отсчетов сигнала было постоянным, то мы ввели константу, при домножении на которую можно определить сдвиг фаз. Так же учтена возможность смещения фазы больше чем длина самого сигнала.
При моделировании прохождения вещественного сигнала мы учли, что он имеет симметрично сопряженный спектр.
Значения параметров линии связи были взяты из таблиц, но по причине большой квантованности частот, мы были вынужденны составить уравнение дя R и G.
Для наложения шума на сигнал была использована стандартная функция AWGN. В ней мы указывали сигнал на который накладываем шум, а также отношение сигнала к шуму, измеряемое в дБ. Чем больше это отношение тем точнее передается сигнал.
Результат прохождения линии сигналом, а также наложение на него шума представлен на рисунке 3.
Рисунок 3 - Сигнал прошедший линию связи с наложенным шумом.
Выпрямитель и ФНЧ
Выпрямителем сигнала послужила стандартная функция matlab abs, дающая нам модуль сигнала.
Фильтром низких частот является функция ogib, которая зануляет гармоники спектра отвечающие за область высоких частот. Для этого мы получили спектр нашего сигнала, занулили необходимый диапазон значений, а после этого восстановили реальную часть спектра.
На рисунке 4 показан сигнал прошедший выпрямитель и ФНЧ, на этом рисунке можно увидеть огибающую сигнала, по которой мы будем осуществлять прием бит.
Рисунок 4 - Сигнал после выпрямителя и ФНЧ.
Интегральный приемник
Для оптимальной работы приемника сигнал был смещен относительно его амплитуды, так что бы максимальная и минимальная амплитуда были равноудалены от 0. Это позволило не подбирать коэффициент стробирования при изменении длины линии связи и шума.
Цикл изменения положения сигнала:
for(i=1:bbb) s(i)=s(i)-(www-wwww)/2-wwww; end
Где www максимальная амплитуда сигнала, а wwww минимальная.
Интегральный приемник реализован в функции integr, аргументами которой являются сигнал и количество отсчетов для одного бита. Сам приемник сравнивает сумму значений относительно определенного бита с нулем. Например, что бы определить бит номер 4, приемник суммирует все значения массива в промежутке от 30 до 40, а их среднее арифметическое с 0.
На рисунке 5 приведен результат выполнения программы при уровне сигнал/шум 30 дБ.
Рисунок 5 - Количество ошибок интегрального приемника при малой длине линии связи и шуме 30 дБ.
Декодер
Декодер - функция позволяющая из закодированного сигнала информационную часть с исправленными битами.
В нашем случае декодер реализован в функции decoder_all, которая разбивает весь бинарный код на отрезки по 31 биту. После чего каждый блок по порядку передается в функцию coder которая делит входной блок на образующий полином g, с помощью функции sdvig, которая при остатке более чем 3, корректирует входные данные путем последовательных циклических сдвигов и проверки веса остатков.
Рисунок 6 дает нам возможность оценить работу кода БЧХ, который исправил 3 ошибки, путем проверки веса остатков при последовательных циклических сдвигах.
Рисунок 6 - Количество ошибок при исправлении 3 ошибок заданных вручную.
Вероятность ошибки при изменении длины линии связи
Для построения графика зависимости вероятности ошибки от длины линии связи, было произведено 350 запусков основной программы, путем записи ее как функции и запуска в новой программе внутри цикла.
На рисунке 7.1 показана вероятность совершить ошибку, в коде с применением БЧХ, при приеме бита, без учета правильности остальных бит комбинации.
Рисунок 7.1 - Зависимость вероятности ошибки от длины линии связи в корректирующем коде БЧХ.
Рисунок 7.2 - Зависимость вероятности ошибки от длины линии связи в бинарном коде.
Рисунок 7.2 показывает нам вероятность ошибки в бите, при передачи не кодированной информации, в зависимости от длины линии связи.
Исходя из этих графиков, можно сделать вывод, что вероятность ошибки, относительно длины линии связи примерно линейна, и при значительном расстоянии линии, вероятность ошибки будет колебаться около 50%, из-за равно вероятности 0 и 1 на генераторе чисел.
Рисунок 7.3 - Вероятность одной ошибки в ста битах корректирующего кода в зависимости от длины линии связи.
На рисунке 7.3 представлен логарифмический график вероятности совершения ошибки в одном бите из ста, в коде с применением кода БЧХ. Из данного графика видна экспоненциальная зависимость совершения ошибки в одном бите при изменении длины линии связи.
Рисунок 7.4 - Вероятность одной ошибки в ста битах не корректирующего кода в зависимости от длины линии связи.
Из графика на рисунке 7.4, показывающего зависимость вероятности передачи комбинации из ста бит с одной допустимой ошибкой, можно сделать вывод о лавинном уменьшении вероятности, которое можно оценить только при логарифмической шкале по оси значений вероятности ошибки.
Изменение вероятности ошибки при различном уровне сигнал/шум
Для проведения наблюдений мы воспользовались стандартной функцией AWGN, вторым входным параметром которой является отношение сигнал/шум. На рисунке 9 показана вероятность совершения ошибки в бите без учета правильности остальных в коде БЧХ при изменении уровня сигнал/шума от 0 до 30 дБ, а на рисунке 10 отражена та же зависимость вероятности, но в коде не использующем кодирование БЧХ.
Рисунок 9 - Вероятность ошибки при изменении шума в корректирующем коде.
Рисунок 10 - Вероятность ошибки в простой последовательности 0 и 1.
Исходя из построенных графиков можно сделать вывод, что при очень большом соотношении сигнал/шум сигнал будет искажен достаточно мало, а при значениях близких к 0, вероятность ошибки будет колебаться около 50%.
Рисунок 11 - Вероятность более чем одной ошибки в комбинации из 100 бит в БЧХ коде.
Рисунок 12 - Вероятность более чем одной ошибки в комбинации из 100 бит.
На рисунке 11 логарифмически показана вероятность совершения более чем одной ошибки в комбинации из 100 бит, при изменении уровня шума от 0 до 30 дБ, в коде при применении БЧХ кодирования, а на рисунке 12 в коде с применением БЧХ.
Заключение
В ходе курсовой работы мы промоделировали прохождение сигнала по линии связи, наложения на него белого, нормального шума, а также кодирование сигнала методом БЧХ (31,16).
Благодаря проделанной работе, мы можем судить о качестве передачи сигнала при различных детерминантах технических заданий по передачи сигналов.
Библиографический список
1 Гроднев, И.И. Линии связи / И.И. Гроднев, С.М. Верник, Издание 5-е, исправленное и дополненное. Радио и связь, Москва: 1988.
Приложение А
Листинг главной функции программы
function [D,f]=project_11lab(par)
n=16;%символов информационных
N=7;%число блоков по 16 бит
l=11;%длина линии связи
g=[1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1];
a=randi([0 1],1,(N*n));
ccc=a;
a=coder_all(a,g); % кодер одних 16 бит
DD=a;
s=simulation_signal(a,N*31,10);
s=link(6,s);
bbb=length(s);
s=awgn(s,30);
s=ogib(s);
wwww=100;
www=-100;
figure(1)
plot(s)
for(i=1:bbb)
if(s(i)>www) www=s(i); end
if(s(i)<wwww) wwww=s(i); end
end
for(i=1:bbb) s(i)=s(i)-(www-wwww)/2-wwww; end
[a]=integr(s,N*31);
DDD=a;
a=decoder_all(a,g);
bbb=length(a);
f=0;
for(i=1:bbb)
if(a(i)~=ccc(i))
f=f+1;
end
end
D=0;
for(i=1:((bbb/16)*31)) if(DD(i)~=DDD(i)) D=D+1; end
end
end
Листинг А.1 - Главная функция программы, лист 1
function [c]=coder_all(a,g)
q=length(a)/16;
for(i=1:q)
for(j=1:16)
b(j)=a((i-1)*16+j);
end
b=sumost(b,g);
for(j=1:31)
c((i-1)*31+j)=b(j);
end
end
end
function [a]=cycle_sdvig(a,sw)
d=length(a);
if(sw>0)
b=a(1);
for(i=1:(d-1))
a(i)=a(i+1);
end
a(d)=b;
end
q=a;
if(sw<0)
b=a(d);
for(i=1:(d-1))
a(i+1)=q(i);
end
a(1)=b;
end
end
function [c]=decoder_all(a,g)
q=length(a)/31;
for(i=1:q)
for(j=1:31)
b(j)=a((i-1)*31+j);
end
b=sdvig(b,g);
for(j=1:16)
c((i-1)*16+j)=b(j);
end
end
end
function [integ]=integr(sig,N)
char=fix(length(sig)/N);
for(i=1:N)
s=0;
for(j=1:char)
s=s+sig((i-1)*char+j);
end
s=s/char;
if(s>0)
integ(i)=1;
else
integ(i)=0;
end end end
Листинг А.1, лист 2
function [a]=invers(a)
if(a==1)
a=0;
else
a=1;
end
end
function [mmm]=link(l,v2)
m=length(v2);
for(tt=1:m)
G(tt) = (0.0174673*(tt-1)-0.00000019*(tt-1)*(tt-1)+0.0000000000019*(tt-1)*(tt-1)*(tt-1))* 0.000001/100;
R(tt) = 18.9297+0.073*((tt-1))-0.0000047438*((tt-1))*((tt-1))+((tt-1))*((tt-1))*(tt-1)*0.00000000012;
end
f=0:m-1;
L(f+1) = 1j*0.00028*2*pi*f*10000;
C(f+1) = 1j*49.6 * 0.000000001*2*pi*f*10000;
for k = 1 : m
y(k) = sqrt((R(k)+L(k))*(G(k)+C(k)));
end;
h = exp(-y*l);
for k=1:m/2-2
h(m/2+k+2) = real(h(m/2-k)) -1j*imag(h(m/2-k));
end
% Пропускаем через линию связи
sp = fft(v2);
for(r=1:m)
sp1(r) = sp(r) * h(r);
end
mmm=(real(ifft(sp1)));
GG=mmm;
sdvig=fix(m*0.187*l/5);%Сдвиг фазы в линии
if(sdvig>m) sdvig=sdvig-m; end
for(d=1:(m-sdvig))
mmm(d)=GG(sdvig+d);
end
ee=1;
for(d=(m-sdvig):m)
mmm(d)=GG(ee);ee=ee+1;
end
function [a]=Mdeconv(a,g)
ng=length(g);
na=length(a);
for(y=1:50)
if(na>(ng-1))
a=srav(a,g);
a=nuli(a);
na=length(a);
end end end
Листинг А.1, лист 3
function [a]=nuli(a)
sw=5;
dl=length(a);
k=1;
for(i=1:dl)
if(a(i)==0&&sw<10)
k=i+1;
else
sw=12;
end
end
b=0;
for(i=k:dl)
b(i-k+1)=a(i);
end
a=0;a=b;
end
function [a]=ogib(a)
a=abs(a);
b=length(a);
c=fft(a);
for(i=fix(b*0.05):fix(b*0.90))
c(i)=0;
end
a=real(ifft(c));
end
function [a]=sdvig(a,g)
for(www=1:30)
r=Mdeconv(a,g);
t=0;
w=sum(r);
if(w>3)
for(i=1:30)
r=Mdeconv(a,g);
w=sum(r);
if(w>3)
a=cycle_sdvig(a,1);
r=Mdeconv(a,g);
w=sum(r);
t=t+1;
end
end
for(x=1:t)
a=cycle_sdvig(a,-1);
end
a(t)=invers(a(t));
end end end
function [a]=srav(a,g)
nb=length(g);
for(i=1:nb)
if(a(i)==g(i))
a(i)=0;
else
a(i)=1;
end end end
Листинг А.1, лист 4
function [s]=simulation_signal(bin,N,character_length)
Um=1; M=1;
for(i=1:N)
if(bin(i)>0)
for(j=1:character_length)
s((i-1)*character_length+j)=Um*((1+M*sin((2*3.14159*j)/124))*sin((2*3.14159*j)/1.24));
end
else
for(j=1:character_length)
s((i-1)*character_length+j)=0;
end
end
end
end
function [a]=sum(a)
d=length(a); s=0;
for(i=1:d) s=a(i); end
end
function [a]=sumost(a,g)
for(i=17:31) a(i)=0; end
r=Mdeconv(a,g);
dlr=length(r);
for(i=1:dlr)
if(a(32-i)==r(dlr-i+1))
a(32-i)=0;
else
a(32-i)=1;
end
end
end
clear all;
r=0;w=0;
disp('начало');
for(i=1:2)
[D,f]=project_11lab(21);
r(i)=D;w(i)=f;
end
ss=0;s=0;
for(i=1:2) s=r(i)+s; ss=ss+w(i); end
t2=(ss/2);
t1=(s/2);
disp(t1);
disp(t2);
disp('конец')
Листинг А.1, лист 5
Размещено на Allbest.ru
Подобные документы
Коды Боуза-Чоудхури-Хоквингема (БЧХ) – класс циклических кодов, исправляющих многократные ошибки. Отличие методики построения кодов БЧХ от обычных циклических. Конкретные примеры процедуры кодирования, декодирования, обнаружения и исправления ошибок.
реферат [158,2 K], добавлен 16.07.2009Помехоустойчивое кодирование, правильность передачи информации. Устранение ошибок в симплексных каналах связи с помощью корректирующих кодов. Способы обнаружения ошибок - контрольное суммирование, проверка на нечетность. Применение циклических кодов.
реферат [28,1 K], добавлен 03.08.2009Схема передачи информации по каналам сети. Определение необходимого сетевого оборудования и типа кабельной системы. Разработка схем кабельной разводки и размещения рабочих станций и серверов в помещениях. Создание оптоволоконной связи. Установка АТС.
курсовая работа [3,6 M], добавлен 05.01.2013Базовые технологии, протоколы и стандарты построения локальных и глобальных сетей. Протоколы передачи данных в телекоммуникационных системах. Стеки коммуникационных протоколов, линии связи, стандарты кабелей, коаксиальные и волоконно-оптические кабели.
курсовая работа [47,9 K], добавлен 15.07.2012Изучение сущности циклических кодов - семейства помехоустойчивых кодов, включающих в себя одну из разновидностей кодов Хэмминга. Основные понятия и определения. Методы построения порождающей матрицы циклического кода. Понятие открытой системы. Модель OSI.
контрольная работа [99,5 K], добавлен 25.01.2011Разработка протоколов передачи данных электросвязи для систем сотовой и кабельной связи по аналого-цифровым телефонным линиям связи. Одновременная передача данных и голоса, коррекция ошибок и сжатия; их возможности. История и прогноз на будущее.
реферат [72,9 K], добавлен 06.04.2010Содержательный и кибернетический подходы к определению и измерению информации. Кодирование символьной информации в компьютере. Линия информации и информационных процессов. Обзор процесса передачи информации по техническим каналам связи. Языки информатики.
презентация [173,0 K], добавлен 19.10.2014Сравнение результатов имитационного моделирования и аналитического расчета характеристик. Исследование узла коммутации пакетов данных, обработки пакетов в процессоре, буферизации и передачи по выходной линии. Определение коэффициента загрузки процессора.
курсовая работа [59,7 K], добавлен 29.06.2011Понятие и методы поиска информации, способы ее хранения и особенности процесса передачи от источника к получателю. Предназначение канала связи и кодирующего устройства. Правила обработки информации, ее использование при принятии решений и меры по защите.
презентация [59,8 K], добавлен 14.10.2013Принципы защиты от ошибок информации при ее передаче по каналам связи. Блоковые коды и методы их декодирования. Построение линейных блочных аддитивных алгебраических кодов и принципы их декодирования синдромным методом. Основные возможности SciLab.
курсовая работа [394,4 K], добавлен 17.05.2012