Подсчет Вероятности Ошибки

Тема в разделе "MS Visual C++", создана пользователем sunni, 9 июл 2014.

Статус темы:
Закрыта.
  1. sunni

    sunni New Member

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

    for( i=0; i<11; i++)
    {
    sprintf(buffer,"%d",arr[i]);   
    WriteFile(h,buffer,strlen(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 просто передается и принимается, сравнения массивов не происходит. Ну и как что делать дальше с временем, подсчетом ошибки мыслей нет((((
     
Загрузка...
Похожие Темы - Подсчет Вероятности Ошибки
  1. maliy
    Ответов:
    1
    Просмотров:
    320
  2. zamanov
    Ответов:
    1
    Просмотров:
    656
  3. sunni
    Ответов:
    0
    Просмотров:
    1.051
  4. alturgrey
    Ответов:
    10
    Просмотров:
    1.668
  5. ZMihail
    Ответов:
    2
    Просмотров:
    1.691
Статус темы:
Закрыта.

Поделиться этой страницей