Подсчет Ошибки На Бит

  • Автор темы sunni
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

sunni

#1
Нужно написать тест-программу для подсчета ошибки на бит. Передающая программа формирует последовательность Баркера или м-последовательность и передает эту последовательность по Com-порту в течении какого-то времени( например в течении минуты). Принимающая программа производит синхронизацию и подсчет ошибки. Т.е принимающая программа сравнивает эталонную последовательность(которая д.б уже задана) с входящей последовательностью. Для сравнения эти две последовательность складываются, если сумма равна 0,то они равны, если сумма равна 1,то не совпадают. При сравнении следует учитывать время задержки прихода сигнала, т.е чтобы выровнять сигнал, надо сначала рассчитать задержку, после чего сдвинуть входящую последовательность на эту величину и уже потом сравнивать. Так же необходимо учитывать длину последовательностей, эталонная и кусок входящей последовательность д.б одинаковыми.
Как это реализовать?
У меня пока мысли только в передающей программе сформировать последовательность, а в принимающей считать эту последовательность и сравнить с данной.
Формирую последовательность, в передающей программе
C++:
void Copen_comDlg::OnBnClickedRadio9()
{
DWORD d;
int arr[13]={1,1,1,1,1,-1,-1,1,1,-1,1,-1,1};
int i;


for( i=0; i<=12; i++)
{
sprintf(buffer,"%d",arr[i]);	
WriteFile(h,buffer,sizeof(buffer),&d, NULL); 
}

}
в принимающей:
C++:
void CpriemDlg::OnBnClickedButton2()
{
DWORD d;
char buf_in[20];
char arr[2]={1,-1};
int i;
if(ReadFile(h,&buf_in,sizeof(buf_in)-1,&d,NULL)==0)
{
for(i=0; i<2; i++)
{ 
for(d=0; d<sizeof(buf_in); d++)
{
if (arr[i] != buf_in[d]) 
{
myfile.open ("d:/my_file_name1.txt");
myfile<< "ошибка";
myfile.close();
}
else 
{
myfile.open ("d:/my_file_name1.txt");
myfile<<"совпали";
myfile.close();
}
}
}
}

else
{
buf_in[d]='\0';
command_word1+=buf_in;
UpdateData(false);
}
Последовательность из 1 и -1 просто передается и принимается, сравнения массивов не происходит. Ну и как что делать дальше с временем, подсчетом ошибки мыслей нет((((
 
Статус
Закрыто для дальнейших ответов.