Моделирование передачи информации по кабельной линии связи

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,1 Мб
  • Опубликовано:
    2012-12-13
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Моделирование передачи информации по кабельной линии связи

Введение

коаксиальный магистральный кабель связь

Для выполнения курсовой работы мы использовали пакет прикладных программ 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;%символов информационных=7;%число блоков по 16 бит=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.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).

Благодаря проделанной работе, мы можем судить о качестве передачи сигнала при различных детерминантах технических заданий по передачи сигналов.

Библиографический список

Гроднев, И.И. Линии связи / И.И. Гроднев, С.М. Верник, Издание 5-е, исправленное и дополненное. Радио и связь, Москва: 1988.


Приложение А

Листинг главной функции программы

function [D,f]=project_11lab(par)=16;%символов информационных=7;%число блоков по 16 бит=11;%длина линии связи=[1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1];

a=randi([0 1],1,(N*n));=a;=coder_all(a,g); % кодер одних 16 бит=a;=simulation_signal(a,N*31,10);=link(6,s);=length(s);=awgn(s,30);=ogib(s);=100;=-100;(1)(s)(i=1:bbb)(s(i)>www) www=s(i); end(s(i)<wwww) wwww=s(i); end(i=1:bbb) s(i)=s(i)-(www-wwww)/2-wwww; end

[a]=integr(s,N*31);=a;=decoder_all(a,g);=length(a);=0;(i=1:bbb)(a(i)~=ccc(i))=f+1;=0;(i=1:((bbb/16)*31)) if(DD(i)~=DDD(i)) D=D+1; end

end

Листинг А.1 - Главная функция программы, лист 1

function [c]=coder_all(a,g)=length(a)/16;(i=1:q)(j=1:16)(j)=a((i-1)*16+j);=sumost(b,g);(j=1:31)((i-1)*31+j)=b(j);[a]=cycle_sdvig(a,sw)=length(a);(sw>0)=a(1);(i=1:(d-1))(i)=a(i+1);(d)=b;=a;(sw<0)=a(d);(i=1:(d-1))(i+1)=q(i);(1)=b;[c]=decoder_all(a,g)=length(a)/31;(i=1:q)(j=1:31)(j)=a((i-1)*31+j);=sdvig(b,g);(j=1:16)((i-1)*16+j)=b(j);[integ]=integr(sig,N)=fix(length(sig)/N);(i=1:N)=0;(j=1:char)=s+sig((i-1)*char+j);=s/char;(s>0)(i)=1;(i)=0;end end

Листинг А.1, лист 2[a]=invers(a)(a==1)=0;=1;[mmm]=link(l,v2)=length(v2);(tt=1:m)(tt) = (0.0174673*(tt-1)-0.00000019*(tt-1)*(tt-1)+0.0000000000019*(tt-1)*(tt-1)*(tt-1))* 0.000001/100;(tt) = 18.9297+0.073*((tt-1))-0.0000047438*((tt-1))*((tt-1))+((tt-1))*((tt-1))*(tt-1)*0.00000000012;=0:m-1;(f+1) = 1j*0.00028*2*pi*f*10000;(f+1) = 1j*49.6 * 0.000000001*2*pi*f*10000;k = 1 : m(k) = sqrt((R(k)+L(k))*(G(k)+C(k)));;= exp(-y*l);k=1:m/2-2(m/2+k+2) = real(h(m/2-k)) -1j*imag(h(m/2-k));

end

% Пропускаем через линию связи= fft(v2);

for(r=1:m)(r) = sp(r) * h(r);=(real(ifft(sp1)));

GG=mmm;=fix(m*0.187*l/5);%Сдвиг фазы в линии

if(sdvig>m) sdvig=sdvig-m; end(d=1:(m-sdvig))(d)=GG(sdvig+d);=1;(d=(m-sdvig):m)(d)=GG(ee);ee=ee+1;[a]=Mdeconv(a,g)=length(g);=length(a);(y=1:50)(na>(ng-1))=srav(a,g);=nuli(a);=length(a);end end

Листинг А.1, лист 3[a]=nuli(a)=5;=length(a);=1;(i=1:dl)(a(i)==0&&sw<10)=i+1;=12;=0;(i=k:dl)(i-k+1)=a(i);=0;a=b;[a]=ogib(a)=abs(a);=length(a);=fft(a);(i=fix(b*0.05):fix(b*0.90))(i)=0;=real(ifft(c));[a]=sdvig(a,g)(www=1:30)=Mdeconv(a,g);=0;=sum(r);(w>3)(i=1:30)=Mdeconv(a,g);=sum(r);(w>3)=cycle_sdvig(a,1);=Mdeconv(a,g);=sum(r);=t+1;(x=1:t)=cycle_sdvig(a,-1);(t)=invers(a(t));end end[a]=srav(a,g)=length(g);(i=1:nb)(a(i)==g(i))(i)=0;(i)=1;end end

Листинг А.1, лист 4[s]=simulation_signal(bin,N,character_length)=1; M=1;(i=1:N)(bin(i)>0)(j=1:character_length)((i-1)*character_length+j)=Um*((1+M*sin((2*3.14159*j)/124))*sin((2*3.14159*j)/1.24));(j=1:character_length)((i-1)*character_length+j)=0;[a]=sum(a)=length(a); s=0;(i=1:d) s=a(i); end[a]=sumost(a,g)(i=17:31) a(i)=0; end=Mdeconv(a,g);=length(r);(i=1:dlr)(a(32-i)==r(dlr-i+1))(32-i)=0;(32-i)=1;all;=0;w=0;('начало');(i=1:2)

[D,f]=project_11lab(21);(i)=D;w(i)=f;=0;s=0;(i=1:2) s=r(i)+s; ss=ss+w(i); end=(ss/2);=(s/2);(t1);(t2);('конец')

Листинг А.1, лист 5

Похожие работы на - Моделирование передачи информации по кабельной линии связи

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!