亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? testsdvd.cpp

?? 卷積碼的Viterbi解碼器
?? CPP
字號:
/* Soft decision Viterbi Decoder Test Driver                        */
/* Copyright (c) 1999, Spectrum Applications, Derwood, MD, USA      */
/* All rights reserved                                              */
/* Version 2.0 Last Modified 1999.02.20                             */

#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

#include "vdsim.h"
 
extern void gen01dat(long data_len, int *out_array);
extern void cnv_encd(int g[2][K], long data_len, int *in_array, int *out_array);
extern void addnoise(double es_ovr_n0, long data_len, int *in_array, double *out_array);
extern void sdvd(int g[2][K], double es_ovr_n0, long channel_length,
            double *channel_output_vector, int *decoder_output_matrix);

void output2matlab(char *filename, double data[], int N)
{
	FILE *fp;

	char OutputPath[100]={"D:\\Yushan\\MatlabFile\\"};
	strcat(OutputPath,filename);

	fp = fopen(OutputPath,"wb");

	fwrite(data, sizeof(double),N,fp);
	fclose(fp);
}

void output2matlab(char *filename, int data[], int N)
{
	FILE *fp;

	char OutputPath[100]={"D:\\Yushan\\MatlabFile\\"};
	strcat(OutputPath,filename);

	fp = fopen(OutputPath,"wb");

	fwrite(data, sizeof(int),N,fp);
	fclose(fp);
}
 
void main(void) {
 
    long iter, t, msg_length, channel_length; /* loop variables, length of I/O files */

    int *onezer;
    int *encoded;                    /* original, encoded, & decoded data arrays */
    int *sdvdout;

    int start;

    double *splusn;                   /* noisy data array */

    int i_rxdata, m;                 /* int rx data , m = K - 1*/

    double es_ovr_n0, e_threshold, e_ber, ue_ber; /* various statistics */\
	int ue_threshold, number_errors_unencoded, number_errors_encoded;

    #if K == 3        /* polynomials for K = 3 */
    int g[2][K] = {{1, 1, 1},     /* 7 */
                   {1, 0, 1}};    /* 5 */
    #endif

    #if K == 5        /* polynomials for K = 5 */
    int g[2][K] = {{1, 1,  1, 0, 1},  /* 35 */
                   {1, 0,  0, 1, 1}}; /* 23 */
    #endif
 
    #if K == 7        /* polynomials for K = 7 */
    int g[2][K] = {{1,  1, 1, 1,  0, 0, 1},  /* 171 */
                   {1,  0, 1, 1,  0, 1, 1}}; /* 133 */
    #endif

    #if K == 9        /* polynomials for K = 9 */
    int g[2][K] = {{1, 1, 1,  1, 0, 1,  0, 1, 1}, /* 753 */
                   {1, 0, 1,  1, 1, 0,  0, 0, 1}}; /* 561 */
    #endif
 
    printf("\nK = %d", K);

    #if K == 3
    printf("\ng1 = %d%d%d", g[0][0], g[0][1], g[0][2] );
    printf("\ng2 = %d%d%d\n", g[1][0], g[1][1], g[1][2] );
    #endif

    #if K == 5
    printf("\ng1 = %d%d %d%d%d", g[0][0], g[0][1], g[0][2], g[0][3], g[0][4] );
    printf("\ng2 = %d%d %d%d%d\n", g[1][0], g[1][1], g[1][2], g[1][3], g[1][4] );
    #endif

    #if K == 7
    printf("\ng1 = %d %d%d%d %d%d%d", g[0][0], g[0][1], g[0][2], g[0][3], g[0][4],
                     g[0][5], g[0][6] );
    printf("\ng2 = %d %d%d%d %d%d%d\n", g[1][0], g[1][1], g[1][2], g[1][3], g[1][4],
                     g[1][5], g[1][6] );
    #endif

    #if K == 9
    printf("\ng1 = %d%d%d %d%d%d %d%d%d", g[0][0], g[0][1], g[0][2], g[0][3], g[0][4],
                     g[0][5], g[0][6], g[0][7], g[0][8] );
    printf("\ng2 = %d%d%d %d%d%d %d%d%d\n", g[1][0], g[1][1], g[1][2], g[1][3], g[1][4],
                     g[1][5], g[1][6], g[1][7], g[1][8] );
    #endif

    m = K - 1;
    msg_length = MSG_LEN;
    channel_length = ( msg_length + m ) * 2;

    onezer = new int [msg_length];
    if (onezer == NULL) {
        printf("\n testsdvd.c:  error allocating onezer array, aborting!");
        exit(1);
    }

    encoded = new int [channel_length];
    if (encoded == NULL) {
        printf("\n testsdvd.c:  error allocating encoded array, aborting!");
        exit(1);
    }

    splusn = new double [channel_length];
    if (splusn == NULL) {
        printf("\n testsdvd.c:  error allocating splusn array, aborting!");
        exit(1);
    }

    sdvdout = new int [msg_length];
    if (sdvdout == NULL) {
        printf("\n testsdvd.c:  error allocating sdvdout array, aborting!");
        exit(1);
    }


    for (es_ovr_n0 = LOESN0; es_ovr_n0 <= HIESN0; es_ovr_n0 += ESN0STEP) {

        start = (int) time(NULL);
        
        number_errors_encoded = 0;
        e_ber = 0.0;
        iter = 0;

        #ifdef DOENC
        if (es_ovr_n0 <= 9)
            e_threshold = 100; /* +/- 20% */
        else
            e_threshold = 20; /* +/- 100 % */

        while (number_errors_encoded < e_threshold) {
            iter += 1;
 
            /*printf("Generating one-zero data\n");*/
            gen01dat(msg_length, onezer);
 
            /*printf("Convolutionally encoding the data\n");*/
			cnv_encd(g, msg_length, onezer, encoded);

            /*printf("Adding noise to the encoded data\n");*/
            addnoise(es_ovr_n0, channel_length, encoded, splusn);
  
            /*printf("Decoding the BSC data\n");*/

            sdvd(g, es_ovr_n0, channel_length, splusn, sdvdout);

//			output2matlab("RX",sdvdout,msg_length);

            for (t = 0; t < msg_length; t++) {
                if ( *(onezer + t) != *(sdvdout + t) ) {
//                   printf("\n error occurred at location %ld", t);
                       number_errors_encoded += 1;
                } /* end if */
			} /* end t for-loop */

//			printf("iter = %d, number_errors_encoded = %d\n",iter, number_errors_encoded);
 
           if (kbhit()) exit(0);
            /*printf("\nDone!");*/

        }

        e_ber = ((double) number_errors_encoded) / (1.0 * msg_length * iter);

//        printf("\nThe elapsed time was %d seconds for %d iterations", time(NULL) - start, iter);
        #endif
 
        number_errors_unencoded = 0;
        ue_ber = 0.0;
        iter = 0;

        #ifdef DONOENC
        if (es_ovr_n0 <= 12)
            ue_threshold = 100;
        else
            ue_threshold = 20;
 
 
        while (number_errors_unencoded < ue_threshold) {
            iter += 1;
 
            /*printf("Generating one-zero data\n");*/
            gen01dat(msg_length, onezer);
 
            /*printf("Adding noise to the unencoded data\n");*/
            addnoise(es_ovr_n0, msg_length, onezer, splusn);
 
            for (t = 0; t < msg_length; t++) {

                if ( *(splusn + t) < 0.0 )
                    i_rxdata = 1;
                else
                    i_rxdata = 0;
 
                if ( *(onezer + t) != i_rxdata )
                    number_errors_unencoded += 1;
            }
 
            if (kbhit()) exit(0);
            /*printf("\nDone!");*/

        }

        ue_ber = number_errors_unencoded / (msg_length * iter);
        #endif

        printf("\nAt %1.1fdB Es/No, ", es_ovr_n0);

        #ifdef DOENC
        printf("the e_ber was %1.1e ", e_ber);
        #ifdef DONOENC
        printf("and ");
        #endif
        #endif

        #ifdef DONOENC
        printf("the ue_ber was %1.1e", ue_ber);
        #endif


    }

    delete onezer; delete encoded; delete splusn; delete sdvdout; 

    while ( !kbhit() ) {
    }

    exit(0);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久亚洲蜜桃| 欧美色电影在线| 亚洲另类在线视频| 精品污污网站免费看| 韩国精品主播一区二区在线观看| 日本一区二区成人| 欧美色网站导航| 国产精品18久久久| 亚洲国产婷婷综合在线精品| 精品乱码亚洲一区二区不卡| 成人av在线播放网址| 亚洲伊人色欲综合网| 337p粉嫩大胆色噜噜噜噜亚洲| 99久久精品情趣| 五月天亚洲精品| 精品噜噜噜噜久久久久久久久试看| 91偷拍与自偷拍精品| 国内久久婷婷综合| 亚洲一区二区三区精品在线| 久久精品一区八戒影视| 欧美性淫爽ww久久久久无| 精品综合久久久久久8888| 中文字幕亚洲不卡| 欧美成人高清电影在线| 欧洲人成人精品| 成人午夜免费视频| 国产自产2019最新不卡| 亚洲一线二线三线视频| 国产精品色眯眯| 337p粉嫩大胆噜噜噜噜噜91av| 欧美日韩一区在线| 99精品国产91久久久久久| 精品一区二区三区香蕉蜜桃| 亚洲欧洲99久久| 日韩视频一区在线观看| 99久久er热在这里只有精品15 | 视频一区二区欧美| 日韩理论电影院| 国产精品视频一区二区三区不卡| 日韩午夜电影av| 欧美主播一区二区三区| 91小视频免费观看| 国产成人在线免费观看| 日韩av中文在线观看| 久久男人中文字幕资源站| 热久久国产精品| 亚洲va韩国va欧美va| 亚洲伦理在线精品| 亚洲视频在线观看一区| 欧美国产1区2区| 国产精品国产三级国产专播品爱网| 精品欧美黑人一区二区三区| 精品三级在线看| 日韩三级中文字幕| 日韩网站在线看片你懂的| 欧美一级片免费看| 日韩欧美国产一区二区三区| 日韩丝袜情趣美女图片| 日韩欧美国产综合| 欧美精品一区二区久久婷婷| 欧美一区永久视频免费观看| 日韩三级.com| 久久午夜羞羞影院免费观看| 国产亚洲欧洲997久久综合 | 一区二区三区欧美久久| 亚洲激情欧美激情| 一区二区免费看| 香蕉久久夜色精品国产使用方法| 午夜精品福利一区二区三区蜜桃| 视频一区中文字幕| 久久99精品久久只有精品| 国产美女精品人人做人人爽| 国产成人免费在线观看不卡| 成人精品亚洲人成在线| 99精品视频中文字幕| 色94色欧美sute亚洲13| 欧美日韩一区不卡| 日韩欧美成人午夜| 久久综合色之久久综合| 国产精品色在线| 亚洲国产日产av| 久88久久88久久久| 不卡视频一二三| 欧美性色aⅴ视频一区日韩精品| 欧美日韩亚洲不卡| 精品久久五月天| 国产精品日日摸夜夜摸av| 亚洲黄色性网站| 久久66热偷产精品| 92精品国产成人观看免费| 欧美日韩在线播| 精品成人一区二区三区四区| 一区二区中文视频| 性做久久久久久免费观看| 国产精品1区2区| 欧美在线免费观看亚洲| 日韩一区二区在线免费观看| 国产女主播在线一区二区| 亚洲男人天堂av| 日韩中文字幕区一区有砖一区 | 91精品国产欧美一区二区成人| 欧美日韩黄色一区二区| 2024国产精品| 亚洲网友自拍偷拍| 国产经典欧美精品| 666欧美在线视频| 国产精品素人视频| 天堂一区二区在线| 不卡一区二区三区四区| 欧美一级在线视频| 亚洲激情校园春色| 国产69精品久久久久777| 色av成人天堂桃色av| 亚洲精品在线免费播放| 亚洲精品伦理在线| 激情文学综合插| 欧洲一区在线电影| 久久综合九色综合久久久精品综合| 中文字幕日韩av资源站| 久久99国内精品| 欧美日韩视频在线第一区| 国产欧美视频一区二区| 日韩av不卡在线观看| 99re在线视频这里只有精品| 久久影院视频免费| 日本欧美久久久久免费播放网| 99re这里只有精品6| 久久久久99精品国产片| 日韩电影免费一区| 欧美在线视频不卡| 亚洲免费观看高清完整版在线| 国产一区二区成人久久免费影院| 在线电影院国产精品| 亚洲另类色综合网站| 风间由美性色一区二区三区| 精品久久久久99| 亚洲成人激情自拍| 色婷婷狠狠综合| 国产精品乱人伦中文| 国产经典欧美精品| www国产精品av| 国产不卡免费视频| 久久女同性恋中文字幕| 久热成人在线视频| 欧美一区二区三区色| 国产精品女同一区二区三区| 国产老妇另类xxxxx| 日韩一区二区三区电影在线观看| 亚洲国产cao| 欧美三级电影一区| 午夜视频在线观看一区| 欧美日韩中文字幕一区二区| 亚洲激情校园春色| 欧美午夜精品一区二区三区| 亚洲欧美综合色| 色综合久久久久综合| 亚洲免费观看高清完整版在线观看熊| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲人成网站影音先锋播放| 91国产免费看| 亚洲国产精品一区二区尤物区| 99久久久无码国产精品| 亚洲女人****多毛耸耸8| 99热这里都是精品| 亚洲欧洲国产日韩| 色香色香欲天天天影视综合网| 亚洲自拍与偷拍| 99精品欧美一区二区三区综合在线| 国产精品国产精品国产专区不片| 国产精品乡下勾搭老头1| 久久色在线视频| 国产精品主播直播| 亚洲欧洲国产日本综合| 91成人国产精品| 午夜欧美视频在线观看| 色视频一区二区| 琪琪一区二区三区| 国产欧美精品在线观看| 99久久99久久精品国产片果冻 | 亚洲欧美一区二区三区久本道91| 国产精品每日更新| 色哟哟一区二区在线观看 | 亚洲成人动漫av| 欧美亚洲综合在线| 狠狠久久亚洲欧美| 亚洲欧美视频在线观看| 91.com视频| 国产99精品在线观看| 久久嫩草精品久久久精品| 国产精品系列在线观看| 一区二区三区高清不卡| 制服丝袜亚洲精品中文字幕| 国产福利一区二区三区视频| 亚洲欧美日韩电影| 欧美成人国产一区二区| 99国产麻豆精品| 国产乱码一区二区三区| 亚洲色图制服诱惑| 欧美一级艳片视频免费观看| 国产精品自拍一区|