ListBox2->Clear();
ListBox3->Clear();
ListBox4->Clear();
ListBox5->Clear();
ListBox6->Clear();
ListBox7->Clear();
//d=2
if(ComboBox1->ItemIndex==0)
for(i=11;i<=31;i++)
{s="("+IntToStr(i)+","+IntToStr(i-1)+")";
ListBox1->Items->Add(s);
Pbo=pow(1-P,i);
sprintf(B,"%.8f",Pbo);
ListBox2->Items->Add(B);
Poo=0;
Poo=C(i,1)*pow(P,1)*pow(1-P,i-1);
sprintf(B,"%.8f",Poo);
ListBox3->Items->Add(B);
Pno=1-Pbo-Poo;
sprintf(B,"%.8f",Pno);
ListBox4->Items->Add(B);
Pls=Pno/(1-Poo);
sprintf(B,"%.8f",Pls);
ListBox5->Items->Add(B);
lgPls=log10(Pls);
sprintf(B,"%.2f",lgPls);
ListBox6->Items->Add(B);
Series1->AddXY(i,lgPls,s,clRed);
M[i-11]=(Pdop-Pls);
}
//d=3
if(ComboBox1->ItemIndex==1)
{for(i=11;i<=15;i++)
{s="("+IntToStr(i)+","+IntToStr(i-4)+")";
ListBox1->Items->Add(s);
Pbo=pow(1-P,i);
sprintf(B,"%.8f",Pbo);
ListBox2->Items->Add(B);
Poo=0;
for(k=1;k<=2;k++)
Poo+=C(i,k)*pow(P,k)*pow(1-P,i-k);
sprintf(B,"%.8f",Poo);
ListBox3->Items->Add(B);
Pno=1-Pbo-Poo;
sprintf(B,"%.8f",Pno);
ListBox4->Items->Add(B);
Pls=Pno/(1-Poo);
sprintf(B,"%.8f",Pls);
ListBox5->Items->Add(B);
lgPls=log10(Pls);
sprintf(B,"%.2f",lgPls);
ListBox6->Items->Add(B);
Series2->AddXY(i,lgPls,s,clLime);
M[i+10]=(Pdop-Pls);
}
for(i=17;i<=31;i++)
{s="("+IntToStr(i)+","+IntToStr(i-5)+")";
ListBox1->Items->Add(s);
Pbo=pow(1-P,i);
sprintf(B,"%.8f",Pbo);
ListBox2->Items->Add(B);
Poo=0;
for(k=1;k<=2;k++)
Poo+=C(i,k)*pow(P,k)*pow(1-P,i-k);
sprintf(B,"%.8f",Poo);
ListBox3->Items->Add(B);
Pno=1-Pbo-Poo;
sprintf(B,"%.8f",Pno);
ListBox4->Items->Add(B);
Pls=Pno/(1-Poo);
sprintf(B,"%.8f",Pls);
ListBox5->Items->Add(B);
lgPls=log10(Pls);
sprintf(B,"%.2f",lgPls);
ListBox6->Items->Add(B);
Series2->AddXY(i,lgPls,s,clLime);
M[i+9]=(Pdop-Pls);
}
}
//d=4
if(ComboBox1->ItemIndex==2)
{for(i=11;i<=15;i++)
{s="("+IntToStr(i)+","+IntToStr(i-5)+")";
ListBox1->Items->Add(s);
Pbo=pow(1-P,i);
sprintf(B,"%.8f",Pbo);
ListBox2->Items->Add(B);
Poo=0;
for(k=1;k<=3;k++)
Poo+=C(i,k)*pow(P,k)*pow(1-P,i-k);
sprintf(B,"%.8f",Poo);
ListBox3->Items->Add(B);
Pno=1-Pbo-Poo;
sprintf(B,"%.8f",Pno);
ListBox4->Items->Add(B);
Pls=Pno/(1-Poo);
sprintf(B,"%.8f",Pls);
ListBox5->Items->Add(B);
lgPls=log10(Pls);
sprintf(B,"%.2f",lgPls);
ListBox6->Items->Add(B);
Series3->AddXY(i,lgPls,s,clYellow);
M[i+30]=(Pdop-Pls);
}
for(i=17;i<=31;i++)
{s="("+IntToStr(i)+","+IntToStr(i-6)+")";
ListBox1->Items->Add(s);
Pbo=pow(1-P,i);
sprintf(B,"%.8f",Pbo);
ListBox2->Items->Add(B);
Poo=0;
for(k=1;k<=3;k++)
Poo+=C(i,k)*pow(P,k)*pow(1-P,i-k);
sprintf(B,"%.8f",Poo);
ListBox3->Items->Add(B);
Pno=1-Pbo-Poo;
sprintf(B,"%.8f",Pno);
ListBox4->Items->Add(B);
Pls=Pno/(1-Poo);
sprintf(B,"%.8f",Pls);
ListBox5->Items->Add(B);
lgPls=log10(Pls);
sprintf(B,"%.2f",lgPls);
ListBox6->Items->Add(B);
Series3->AddXY(i,lgPls,s,clYellow);
M[i+29]=(Pdop-Pls);
}
}
int h=0;
for (i=0;i<=60;i++)
if (M[i]>0) h++;
H.resize(h);
k=0;
for (i=0; i<=60;i++)
if (M[i]>0) {H[k]=M[i]; k++;}
for (i=0;i<=60;i++)
if (M[i]==*min_element(H.begin(),H.end()))
{if (i>=0&&i<=20)
{s="("+IntToStr(i+11)+","+IntToStr(i+10)+")-кодс d=2";
ListBox7->Items->Add(s);}
if (i>=21&&i<=25)
{s="("+IntToStr(i-10)+","+IntToStr(i-14)+")-кодс d=3";
ListBox7->Items->Add(s);}
if (i>=26&&i<=40)
{s="("+IntToStr(i-9)+","+IntToStr(i-14)+")-кодс d=3";
ListBox7->Items->Add(s);}
if (i>=41&&i<=45)
{s="("+IntToStr(i-30)+","+IntToStr(i-35)+")-кодс d=4";
ListBox7->Items->Add(s);}
if (i>=46&&i<=60)
{s="("+IntToStr(i-29)+","+IntToStr(i-35)+")-кодс d=4";
ListBox7->Items->Add(s);}
}
ListBox7->Items->Add("");
ListBox7->Items->Add("Минимальная разность");
sprintf(B,"%.12f",*min_element(H.begin(),H.end()));
ListBox7->Items->Add("Рдоп-Рлс");
ListBox7->Items->Add(B);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{ComboBox1->ItemIndex=1;
Series4->AddXY(0,log10(Pdop),"lg Pдоп",clBlack);
Series4->AddXY(31.3,log10(Pdop),"lg Pдоп",clBlack);
}
//---------------------------------------------------------------------------
Построить функциональные схемы кодера и декодера для найденного (n,k)-кода и заданного для него порождающего многочлена g3(X). При изображении схем кодера и декодера использовать условные изображения элементов:
элемент умножения | элемент памяти | элемент сложения по модулю 2 |
Исходные данные:
g3(x)=x5+x3+x2+x+1;
r=5.
Описание работы схемы:
Кодер 1 с последовательным вводом информационных символов (a12, a11, …, a1, a0) состоит из регистра проверочных символов (РПС), регистра задержки (РЗ) с 5 элементами памяти и трех ключей. В исходном состоянии в элементах памяти регистров – нули, ключи Кл1 и Кл2 разомкнуты, Кл3 замкнут.
При подаче первых 5 импульсов сдвига (ИС) 5 информационных символов, начиная со старшего, вводятся в оба регистра. С окончанием 5-го ИС ключи Кл1 и Кл2 замыкаются, а Кл3 размыкается.
В течение последующих k ИС информационные символы выводятся из РЗ, а в РПС образуются 5 проверочных символов. После этого ключи Кл1 и Кл2 размыкаются, а Кл3 замыкается.
За последующие 5 импульсов сдвига проверочные символы выдаются на выход кодера, после чего схема возвращается в исходное состояние. Таким образом, первый символ комбинации УЦК появляется на выходе кодера с задержкой на 5 ИС.
1. Хохлов Г.И., Пособие к выполнению лабораторной работы №3 по дисциплине «Системы и сети связи». – М.: 2005. – 18 с.
2. Хохлов Г.И., Пособие по выполнению курсовой работы по дисциплине «Системы и сети связи». – М.: 2005. – 15 с.