- •Техническое задание на проектирование
- •Введение
- •2 . Выбор типа упс
- •3. Оценка достоверности передачи
- •4. Выбор помехоустойчивого кода
- •5. Определение порождающего полинома
- •6. Построение схемы кодера циклического кода
- •7. Структурная схема спроектированной спдс
- •8. Оптимизация структуры резерва.
- •Заключение
- •Список использованных источников
- •Приложение а (обязательное) Листинг программы для кодера
- •Приложение б (обязательное) Листинг программы для оптимизации спдс
Заключение
В данном курсовом проекте была разработана система передачи дискретных сообщений, в соответствии с условиями технического задания. Для этого, сначала, была рассчитана минимальная скорость передачи, необходимая для передачи информации и выбрано УПС, удовлетворяющее требованиям. После определения характеристик канала, было принято решение о необходимости использования помехоустойчивого циклического кода. Однако, после применения помехоустойчивого кода минимальная необходимая скорость увеличилась, что потребовало применения УПС с более высокой скоростью передачи. Далее, для повышения надежности работы СПДС было определено необходимое количество дублирующих элементов, обеспечивающих максимальную надежность работы системы при ограниченном бюджете.
Список использованных источников
Проектирование СПДС: Методическое указание/ А.В Кулаев.; КГТУ 2004.
Методические указания к выполнению лабораторной работы № 4 «Циклические коды» по предмету «Теория электрической связи, часть 2» / В.В. Золотухин. – Красноярск, 2011. – 8 с.
Приложение а (обязательное) Листинг программы для кодера
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include "stdlib.h"
#include <conio.h>
#include <locale.h>
using namespace std;
void Vyvod(int g[], int kol)
{
int i;
for(i=0; i<kol; i++)
cout<<g[i]<<"\t";
cout<<endl;
}
void Prover(int kol, int n, int t, int m, int x[], int y[], int g[], int d[])
{
int i, r, k, j;
i=0;
r=0;
do
{
if(g[i]!=0)
{
for(j=i, k=0; k<m; j++, k++)
{
g[j]=g[i+k]+y[k];
if(g[j]>1)
g[j]=0;
}
Vyvod(g,kol);
}
else
{
r++;
i++;
}
}
while(r!=n);
cout <<"Проверочная комбинация : "<<endl;
for(i=0; i<t; i++)
{
d[i]=g[n+i];
cout<<d[i]<<"\t";
}
cout<<endl;
}
inline int *Pamyat(int kol)
{
int *g=new int[kol];
return g;
}
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "Russian");
int n, i, m, t, kol, r;
cout<<"Введите количество всех эелментов kol, и информационных кодов n (kol,n) : ";
cin>>kol;
cin>>n;
cout<<"("<<kol<<","<<n<<")"<<endl;
cout<<"Введите количество элементов производящего элемента : ";
cin>>m;
t=kol-n;
int *g1, *d, *x1, *y;
x1=Pamyat(n);
g1=Pamyat(kol);
d=Pamyat(t);
y=Pamyat(m);
cout<<"Введите производящий полином : "<<endl;
for(i=0; i<m; i++)
cin >>y[i];
cout<<"Кодирование : "<<endl;
cout<<"Введите комбинацию из "<<n<<" информационных элементов "<<endl;
for(i=0; i<n; i++)
cin >>x1[i];
for(i=0; i<kol; i++)
{
if(i>=n)
g1[i]=0;
else
g1[i]=x1[i];
}
Vyvod(g1,kol);
Prover(kol,n,t,m,x1,y,g1,d);
system("pause");
return 0;
Приложение б (обязательное) Листинг программы для оптимизации спдс
function TES_KURS
clc
p=[0.70 0.70 0.50 0.50 0.60 0.70;
0.80 0.80 0.70 0.70 0.70 0.80;
0.90 0.90 0.80 0.80 0.80 0.90;]
c=[10 20 20 30 40 10;
20 30 30 50 80 20;
30 50 50 80 110 30;]
Cmax=230
N=6
n=3
P1=0;
C1=0;
for i=1:1:n
for j=1:1:n
for k=1:1:n
for f=1:1:n
for h=1:1:n
for l=1:1:n
P=p(i,1)*p(j,2)*p(k,3)*p(f,4)*p(h,5)*p(l,N);
C=c(i,1)+c(j,2)+c(k,3)+c(f,4)+c(h,5)+c(l,N);
if(C<=Cmax)
if(P>P1)
C1=C;
P1=P;
ii=i;
jj=j;
kk=k;
ff=f;
hh=h;
ll=l;
end
end
end
end
end
end
end
end
C1
P1
M=[p(ii,1) p(jj,2) p(kk,3) p(ff,4) p(hh,5) p(ll,6)]
M1=[c(ii,1) c(jj,2) c(kk,3) c(ff,4) c(hh,5) c(ll,6)]
M2=[ii, jj kk ff hh ll]
end
ПРИЛОЖЕНИЕ В
(обязательное)
Структурная схема СПДС
ПРИЛОЖЕНИЕ Г
(обязательное)
Структурная схема кодера
ПРИЛОЖЕНИЕ Д
(обязательное)
График зависимости вероятности ошибки от кратности