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

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

?? sratematch.c

?? matlab實現wcdma的全過程
?? C
?? 第 1 頁 / 共 2 頁
字號:
 *              Algorithm can be used either to static or dynamic rate matching. */int wcdma_rate_dematch(           double Inputs[],     /* IN: input data symbol vector */           int nInputs,         /* IN: length of input data vector */           double max_punct_ratio,  /* IN: Max. ratio to puncture/repetite */           int target_block_size,   /* IN: block size to match */           double outData[])    /* OUT: Dematched output */{    double block_ratio;    double temp_double_vector[MAX_BLOCK_SIZE];    double temp_output_vector[MAX_BLOCK_SIZE];    double *temp_input;    int current_input_size;    double *out_ptr;    int output_size;    int i, j, k, l, x, y, z, puncture;    /*     * Check the size of input block related to the allowed     * output block size.     * Check whether we need to puncture or repeat bits.     */    block_ratio = (target_block_size - nInputs) / (float)nInputs;    if (block_ratio > max_punct_ratio) {        printf("wcdma_rate_match: puncture/repetition ratio %g too large.\n",               block_ratio);        return(-1);    }    puncture = (block_ratio > 0) ? FALSE : TRUE;    /*     * Now puncture, if needed.     * Puncture every z'th bit, until input fits to TC block.     */    temp_input = Inputs;    if (puncture == TRUE) {        x = nInputs;        y = nInputs - target_block_size;        if (y <= 1) {            memcpy(temp_output_vector, temp_input, nInputs*sizeof(double));            output_size = nInputs;        }        while (y > 1) {            z = (int)ceil((double)x/(double)y);            k = x / z;            l = 0;            /*             * Puncture every z'th bit.             */            for (i=0; i < x; i++) {                if ((i % z) != (z-1)) {                    temp_double_vector[l++] = temp_input[i];                }            }            x -= k;            y -= k;            memcpy(temp_output_vector, temp_double_vector, sizeof(double)*l);            output_size = l;            temp_input = temp_output_vector;        }        if (y == 1) {            output_size -= 1;            memcpy(outData, temp_output_vector+1, sizeof(double)*(output_size));        } else {            memcpy(outData, temp_output_vector, sizeof(double)*(output_size));        }    } else {        /*         * Repetition.         */        x = nInputs;        y = target_block_size - nInputs;        current_input_size = nInputs;        if (y <= 1) {            memcpy(temp_output_vector, temp_input, nInputs*sizeof(double));            output_size = nInputs;        }        while (y > 1) {            z = (int)ceil((double)x/(double)y);            k = x / z;            l = 0;            /*             * Repeat every z'th bit.             */            for (i=0; i < current_input_size; i++) {                if ((i % z) != (z-1)) {                    temp_double_vector[l++] = temp_input[i];                } else {                    temp_double_vector[l++] = temp_input[i];                    temp_double_vector[l++] = temp_input[i];                }            }            x -= k;            y -= k;            memcpy(temp_output_vector, temp_double_vector, sizeof(double)*l);            output_size = l;            temp_input = temp_output_vector;            current_input_size = l;        } /* while */        if (y == 1) {            output_size += 1;            temp_output_vector[output_size-1] =                                   temp_output_vector[output_size-2];            out_ptr = &(outData[0]);        } else {            out_ptr = outData;        }        memcpy(out_ptr, temp_output_vector, sizeof(double)*output_size);    } /* else for repetition */    return(0);} /* wcdma_rate_dematch *//* -------------------------------------------------------------------- *//* * Static rate matching algorithm for a Transport Channel (TC). * The algorithm gets a vector of allowable bits per block, * size of input bit block, maximum puncturing ratio (1=all, 0.0=none). * Depending on the given pucturing ratio, it either punctures  * or repeats bits.  */int wcdma_srate_match4TC(        int no_of_allowed_sizes,/* size of allowed_bit_sizes -vector */	int allowed_block_sizes[],/* vector of allowed block sizes */	float max_punct_ratio,	/* max puncturing ratio (0.0 .. 1.0) */ 	int input_size,		/* size of input block */	int input_data[],	/* vector of input data bits */	int *output_size,	/* size of output block */	int output_data[])	/* vector of output data bits */{    int i, j, k, x, y, z, puncture;    int ratio_to_upper_size, ratio_to_lower_size, l;    int temp_int_vector[MAX_BLOCK_SIZE];    int temp_output_vector[MAX_BLOCK_SIZE];    int *temp_input;    int *out_ptr;    int upper_block_size, lower_block_size;    int current_input_size;    float lbs;    float needed_punct_ratio;    /*     * Check the size of input block related to the allowed     * output blocks.     * Check whether we need to puncture or repeat bits.     */    i = 0;    while ( (i < no_of_allowed_sizes) &&            (input_size > allowed_block_sizes[i] ) ) {        i++;    }    if (i < no_of_allowed_sizes) { /* between two output sizes */        lower_block_size = allowed_block_sizes[i-1];        upper_block_size = allowed_block_sizes[i];        ratio_to_upper_size  = upper_block_size / input_size;        /*         * If input block fits N (N>1) times to output block,         * then repeat every bit N times.         */        if ( (ratio_to_upper_size > 1) && (input_size != lower_block_size) ) {            l = 0;	    for (j=0; j < input_size; j++) {		for (k=0; k < ratio_to_upper_size; k++) {                    temp_output_vector[l++] = input_data[j];                }	    }        }        lbs = (float)lower_block_size;        needed_punct_ratio = ((float)input_size - lbs) / (float)input_size;;        puncture = (needed_punct_ratio > max_punct_ratio) ? FALSE : TRUE;    }    else /* bigger than maximum output size */    {        lower_block_size = allowed_block_sizes[i];        upper_block_size = NO_UPPER_BLOCK_SIZE;        ratio_to_lower_size  = (float)input_size / (float)lower_block_size;        if (ratio_to_lower_size > max_punct_ratio) {            fprintf(stderr,                    "wcdma_srate_match4TC: Too much pucturing required.\n");            return(-1);        } else {            puncture = TRUE;        }    }        /*     * Now puncture, if needed.     * Puncture every z'th bit, until input fits to TC block.     */    temp_input = input_data;    if (puncture == TRUE) {        x = input_size;        y = input_size - lower_block_size;        while (y > 1) {            z = (int)ceil((double)x/(double)y);            k = x / z;            l = 0;            /*             * Puncture every z'th bit.             */            for (i=0; i < x; i++) {                if ((i % z) != (z-1)) {                    temp_int_vector[l++] = temp_input[i];                }            }            x -= k;            y -= k;            memcpy(temp_output_vector, temp_int_vector, sizeof(int)*l);            *output_size = l;            temp_input = temp_output_vector;        }        if (y == 1) *output_size -= 1;        memcpy(output_data, temp_output_vector, sizeof(int)*(*output_size));    } else {        /*         * Could not puncture, do repetition to fill up to upper block size.         */        x = input_size;        y = upper_block_size - input_size;        current_input_size = input_size;        while (y > 1) {            z = (int)ceil((double)x/(double)y);            k = x / z;            l = 0;            /*             * Repeat every z'th bit.             */            for (i=0; i < current_input_size; i++) {                if ((i % z) != (z-1)) {                    temp_int_vector[l++] = temp_input[i];                } else {                    temp_int_vector[l++] = temp_input[i];                    temp_int_vector[l++] = temp_input[i];                }            }            x -= k;            y -= k;            memcpy(temp_output_vector, temp_int_vector, sizeof(int)*l);            *output_size = l;            temp_input = temp_output_vector;            current_input_size = l;        } /* while */        if (y == 1) {            *output_size += 1;            output_data[0] = temp_output_vector[0];            out_ptr = &(output_data[1]);        } else {            out_ptr = output_data;        }        memcpy(out_ptr, temp_output_vector, sizeof(int)*l);    } /* else for repetition */    return(0);} /* wcdma_srate_match4TC *//* ----------------------------------------------------------- */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美另类图片小说| 成人黄色在线网站| 国产91丝袜在线观看| 欧美日韩久久不卡| 国产精品久久久久久久岛一牛影视 | 亚洲乱码一区二区三区在线观看| 日韩高清不卡在线| 99久久er热在这里只有精品15| 久久综合狠狠综合久久综合88| 一区二区三区国产精品| 成人av小说网| 久久久久高清精品| 韩国三级在线一区| 91精品国产黑色紧身裤美女| 一区二区久久久久久| 99国产精品国产精品毛片| 久久久www免费人成精品| 日韩高清在线不卡| 欧美理论电影在线| 亚洲一区二区在线观看视频 | 欧美剧在线免费观看网站| 国产精品无码永久免费888| 精品一区二区三区蜜桃| 欧美一区二区三区在线观看视频 | 精品美女一区二区| 日韩成人一区二区| 91超碰这里只有精品国产| 亚洲成av人片一区二区梦乃| 色悠悠久久综合| 伊人性伊人情综合网| 99国产精品久久| 亚洲色图欧美激情| 色偷偷久久一区二区三区| 亚洲区小说区图片区qvod| 99久久精品免费看国产| 亚洲欧美日韩精品久久久久| 色婷婷久久一区二区三区麻豆| 亚洲男人的天堂av| 欧美午夜视频网站| 日韩av中文字幕一区二区| 日韩一级在线观看| 国产麻豆精品theporn| 久久先锋影音av鲁色资源网| 国产精品1024| 亚洲日本成人在线观看| 欧美日韩一级黄| 青青草91视频| 中文字幕第一页久久| www.欧美日韩国产在线| 亚洲精品乱码久久久久久久久| 精品视频一区 二区 三区| 日韩黄色在线观看| 久久久久国产成人精品亚洲午夜| 不卡一区二区三区四区| 一区二区三区 在线观看视频| 欧美猛男gaygay网站| 国产呦精品一区二区三区网站 | 欧美精品一区二区三区蜜臀| 国产精品资源在线| 亚洲综合清纯丝袜自拍| 日韩欧美资源站| 成人免费视频视频在线观看免费| 亚洲美女视频一区| 欧美一区二区三区在| 国产高清视频一区| 亚洲麻豆国产自偷在线| 欧美岛国在线观看| 96av麻豆蜜桃一区二区| 免费观看一级欧美片| 国产精品理论片| 67194成人在线观看| 国产精品一区二区黑丝| 一级精品视频在线观看宜春院| 日韩精品一区二区三区在线观看| 99精品偷自拍| 国产精品69毛片高清亚洲| 亚洲免费观看高清完整版在线| 26uuu国产电影一区二区| 91九色最新地址| 国产成人av在线影院| 亚洲高清免费视频| 国产精品高清亚洲| 日韩免费视频一区二区| 欧美视频第二页| 成人h动漫精品| 精品一区二区在线播放| 性感美女久久精品| 亚洲欧美日韩精品久久久久| 久久夜色精品国产噜噜av| 51精品视频一区二区三区| 一本一道久久a久久精品| 国产99久久久精品| 久久国产精品72免费观看| 亚洲成人精品在线观看| 中文字幕中文乱码欧美一区二区| 337p粉嫩大胆色噜噜噜噜亚洲| 精品视频在线免费| 欧美色男人天堂| 色婷婷综合中文久久一本| 国产91色综合久久免费分享| 国产乱色国产精品免费视频| 日韩国产欧美在线视频| 午夜成人免费电影| 五月综合激情日本mⅴ| 亚洲精品ww久久久久久p站| 国产精品国产自产拍高清av王其| 久久九九影视网| 久久久久国产精品麻豆| 精品对白一区国产伦| 日韩欧美高清在线| 精品99999| 精品免费国产一区二区三区四区| 日韩精品影音先锋| 欧美精品一区二区高清在线观看| 91精品国产欧美一区二区18| 91精品午夜视频| 日韩欧美一区二区久久婷婷| 欧美一区二区三区四区视频| 7777精品久久久大香线蕉| 91精品国产综合久久久久久久 | 欧美一卡二卡三卡| 欧美一级夜夜爽| 精品免费国产二区三区| 久久久久国产精品麻豆ai换脸 | 午夜精品免费在线观看| 日韩在线一二三区| 麻豆一区二区三| 国产精品亚洲一区二区三区妖精| 丁香激情综合五月| 99re这里只有精品视频首页| 欧美亚洲一区二区在线| 日韩视频免费观看高清完整版在线观看 | 国产成人精品免费| caoporm超碰国产精品| 91麻豆自制传媒国产之光| 欧美综合在线视频| 日韩欧美在线123| 国产欧美精品一区二区三区四区| 国产精品福利电影一区二区三区四区| 亚洲色图色小说| 奇米色777欧美一区二区| 粉嫩av一区二区三区粉嫩 | 久久美女高清视频| 国产精品久久久久久久久图文区| 亚洲综合成人网| 久久91精品久久久久久秒播 | 国产精品亚洲а∨天堂免在线| zzijzzij亚洲日本少妇熟睡| 欧美亚洲国产一区在线观看网站| 欧美一级黄色录像| 成人欧美一区二区三区视频网页| 天天综合色天天| 大陆成人av片| 日韩免费高清视频| 亚洲图片激情小说| 久久99久久99小草精品免视看| www.亚洲激情.com| 日韩你懂的电影在线观看| 亚洲欧美国产77777| 免费成人在线网站| 色av成人天堂桃色av| 国产亚洲一区二区在线观看| 亚洲国产精品麻豆| 国产v综合v亚洲欧| 日韩三级精品电影久久久| 夜夜嗨av一区二区三区四季av | 国产在线视视频有精品| 在线亚洲人成电影网站色www| 精品对白一区国产伦| 亚洲动漫第一页| 99综合电影在线视频| 日韩欧美国产午夜精品| 夜夜亚洲天天久久| 91亚洲精华国产精华精华液| 久久人人爽爽爽人久久久| 日本伊人色综合网| 在线看日本不卡| 亚洲欧美在线视频| 成人午夜免费av| 久久影院视频免费| 久久99国产精品免费网站| 欧美精品在线观看播放| 亚洲午夜视频在线| 91一区在线观看| 中文字幕视频一区| 国产69精品一区二区亚洲孕妇| 日韩女优av电影在线观看| 免费的成人av| 日韩免费福利电影在线观看| 日韩av一区二| 91精品黄色片免费大全| 日本va欧美va瓶| 日韩一区二区在线观看视频| 首页亚洲欧美制服丝腿| 在线不卡免费欧美| 丝袜诱惑制服诱惑色一区在线观看| 欧美中文字幕不卡| 亚洲一区二区三区国产| 欧美日韩一区二区电影| 日韩精品久久久久久|