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

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

?? blockcollect.c

?? matlab實現wcdma的全過程
?? C
字號:
/* | | Copyright disclaimer: |   This software was developed at the National Institute of Standards |   and Technology by employees of the Federal Government in the course |   of their official duties. Pursuant to title 17 Section 105 of the |   United States Code this software is not subject to copyright |   protection and is in the public domain. | |   We would appreciate acknowledgement if the software is used. |*//* | Project:	WCDMA simulation environment | Module:      Collects received symbols from rake and outputs |              data when desired amount of symbols is available. | Author:      Tommi Makelainen, Nokia/NIST | Date:        April 20, 1999 | | History: |              April 20, 1999 Tommi Makelainen |                      Initial version. | */#include <stdio.h>#include <stdlib.h>#include <math.h>#include "config_wcdma.h"#include "spreading.h"#include "blockcollect.h"#ifndef TRUE#define TRUE 1#define FALSE 0#endif /* TRUE *//* -------------------------------------------------------------------- */static symbol_buffer_count = 0;static enum instance_state symbuf_alloc_list[MAX_SYMBOL_BUFFERS];static int general_init_flag = 0;static symbol_buffer_t symbolbuffers[MAX_SYMBOL_BUFFERS];/* -------------------------------------------------------------------- *//* * Function:	wcdma_symbolbuffer_init * Desc.:	Inits symbol collect buffer. * * Returns:	=> 0 allocated instance number, -1 if no free buffers. * * Note:	 */int wcdma_symbolbuffer_init(        int block_size)		/* IN: block size to collect */{    int instance, i;    /*     * Check for free symbol buffers.     */    if (symbol_buffer_count < MAX_SYMBOL_BUFFERS) {        /*         * If first call, initialize static data.         */        if (general_init_flag == FALSE) {            for (i=0; i < MAX_SYMBOL_BUFFERS; i++) {                symbuf_alloc_list[i] = FREE_INSTANCE;            } /* for */            general_init_flag = TRUE;        } /* if general_init_flag */        /*         * Find first free instance number.         */        instance = -1;        for (i=0; i < MAX_SYMBOL_BUFFERS; i++) {            if (symbuf_alloc_list[i] == FREE_INSTANCE) {                instance = i;                break;            }        } /* for */        if (instance == -1) return(-1); /* no free instances */        /*         * Init new buffer.         */        symbolbuffers[instance].size = block_size;        symbolbuffers[instance].fill_index = 0;        symbolbuffers[instance].read_index = 0;        symbolbuffers[instance].buffer =                      (double *)calloc(2*block_size, sizeof(double) );        /*         * Update symbol buffer allocation list.         */        symbuf_alloc_list[instance] = INSTANCE_IN_USE;        symbol_buffer_count++;        return(instance);    } else {        return(-1);    } /* else symbol_buffer_count */}/* -------------------------------------------------------------------- *//* * Function:	wcdma_symbolbuffer_free * Desc.:	Frees one frame buffer. * * Note:	 */void wcdma_symbolbuffer_free(int instance){    symbolbuffers[instance].size = 0;    symbolbuffers[instance].fill_index = 0;    symbolbuffers[instance].read_index = 0;    free( symbolbuffers[instance].buffer );    symbuf_alloc_list[instance] = FREE_INSTANCE;    symbol_buffer_count--;    return;}/* -------------------------------------------------------------------- *//* * Function:	wcdma_symbolbuffer * Desc.:	Collects input symbols until symbols enough for *              one frame is available. Then outputs one frame. * * Note:	 */int wcdma_symbolbuffer(           int instance,	/* IN: instance number */	   double data[],	/* IN: input data symbol vector */           int data_len,	/* IN: length of input data vector */           int *output_ready,   /* OUT: 1=output available, 0=no output */           double out[])	/* OUT: output symbols for one block */{     int i;    int blocksize;    double *symbolbuf;    int symbols_in_buffer;    int fill_index;    int first_part;    /*     * Get settings for this buffer.     */    blocksize = symbolbuffers[instance].size;    fill_index = symbolbuffers[instance].fill_index;    symbolbuf = symbolbuffers[instance].buffer;    /*     * Copy data to buffer.     */    if ( (fill_index + data_len) < (2*blocksize) ) {       memcpy(symbolbuf+fill_index, data, data_len * sizeof(double) );    } else {       first_part = 2*blocksize - fill_index;       memcpy(symbolbuf+fill_index, data, first_part * sizeof(double) );       memcpy(symbolbuf, data+first_part,                         (data_len - first_part) * sizeof(double) );    }    symbolbuffers[instance].fill_index = (fill_index+data_len) % (2*blocksize);    /*     * If enough data, copy one blocksize of data to output vector.     */    if (symbolbuffers[instance].fill_index >                          symbolbuffers[instance].read_index) {        symbols_in_buffer = symbolbuffers[instance].fill_index -                            symbolbuffers[instance].read_index;    } else {        symbols_in_buffer = 2*blocksize -                            symbolbuffers[instance].read_index +                            symbolbuffers[instance].fill_index;    }    if (symbols_in_buffer >= blocksize) {        if (symbolbuffers[instance].fill_index >                          symbolbuffers[instance].read_index) {            memcpy(out, symbolbuf+symbolbuffers[instance].read_index,                   blocksize * sizeof(double) );        } else {            first_part = 2*blocksize - symbolbuffers[instance].read_index;            memcpy(out, symbolbuf+symbolbuffers[instance].read_index,                   first_part * sizeof(double) );            if (first_part < blocksize) {                memcpy(out+first_part, symbolbuf,                       (blocksize-first_part) * sizeof(double) );             }        }        symbolbuffers[instance].read_index =             (symbolbuffers[instance].read_index + blocksize) %             (2*blocksize);        *output_ready = 1;    }    return(0);} /* wcmda_symbolbuffer *//* -------------------------------------------------------------------- */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区视频在线| 成人av影院在线| 精品美女在线播放| 成人动漫av在线| 亚洲一区日韩精品中文字幕| 日韩精品中午字幕| 成人精品电影在线观看| 国产精品乱人伦| 欧美一区二区久久久| 丁香天五香天堂综合| 亚洲成在人线免费| 日韩欧美中文字幕公布| 99久久er热在这里只有精品15 | 亚洲欧洲国产日本综合| 91麻豆精品国产91久久久久久 | 91精品免费在线观看| 日韩电影网1区2区| 国产精品美女久久久久久久久| 欧美日韩小视频| 国产一区二区免费看| 一区二区高清在线| 国产人妖乱国产精品人妖| 欧美巨大另类极品videosbest | 777午夜精品免费视频| 国产精品自拍在线| 午夜a成v人精品| 一区在线中文字幕| 久久午夜免费电影| 欧美一区二区三区不卡| 欧美自拍丝袜亚洲| 成人app下载| 国内外精品视频| 日韩中文欧美在线| 亚洲一区欧美一区| 亚洲欧美日韩电影| 精品国产一区二区三区久久久蜜月| 色综合中文综合网| 成人精品一区二区三区四区 | 91高清在线观看| 成人激情免费电影网址| 久久国产乱子精品免费女| 亚洲综合区在线| 久草精品在线观看| 天堂久久久久va久久久久| 亚洲成a人片综合在线| 亚洲国产精品久久一线不卡| 亚洲一区二区精品久久av| 性久久久久久久久| 日本在线不卡一区| 精品伊人久久久久7777人| 一色屋精品亚洲香蕉网站| 国产精品久久久久四虎| 日韩精品久久理论片| 亚洲国产高清在线| 欧美一区二区三区男人的天堂| 91久久线看在观草草青青 | 色哟哟亚洲精品| 欧美日韩国产首页| 欧美日韩精品久久久| 欧美日韩在线播放一区| 久久99精品久久久久婷婷| 亚洲综合无码一区二区| 亚洲女厕所小便bbb| 亚洲成人av电影| 欧美性高清videossexo| 色婷婷亚洲综合| 亚洲bdsm女犯bdsm网站| 欧美日韩精品一二三区| 亚洲影院在线观看| 欧美另类videos死尸| 亚洲女爱视频在线| 欧美日韩成人综合天天影院| 久久99这里只有精品| 亚洲少妇最新在线视频| 99精品桃花视频在线观看| 欧美精品vⅰdeose4hd| 国产欧美日本一区视频| 一级精品视频在线观看宜春院| 午夜视频一区在线观看| 日本韩国视频一区二区| 国产欧美一区二区精品忘忧草| 亚洲精品免费在线播放| 一本色道a无线码一区v| 久久久综合激的五月天| 午夜精品福利一区二区三区av| 色婷婷香蕉在线一区二区| 国内精品国产成人国产三级粉色| av一区二区三区在线| 欧美精品1区2区| 中文一区二区在线观看| 亚洲不卡一区二区三区| 国产xxx精品视频大全| 欧美无人高清视频在线观看| 国产色产综合色产在线视频| 性做久久久久久久免费看| 国产成a人无v码亚洲福利| 欧美日韩精品欧美日韩精品| 国产精品麻豆网站| 精品综合免费视频观看| 在线观看日韩毛片| 欧美激情资源网| 九色|91porny| 欧美人妇做爰xxxⅹ性高电影| 久久精品视频网| 日韩国产精品久久| 91国产成人在线| 国产精品传媒在线| 国产麻豆精品视频| 日韩一级二级三级| 亚洲电影一级黄| av在线这里只有精品| 26uuu久久天堂性欧美| 午夜成人在线视频| 欧美亚洲综合色| 国产精品传媒在线| 国产精品一区二区免费不卡| 欧美一区二视频| 五月开心婷婷久久| 欧美一a一片一级一片| 亚洲日韩欧美一区二区在线| 国产99久久久精品| 国产日韩欧美高清| 狠狠色丁香婷综合久久| 欧美一区二区三区系列电影| 亚洲一二三四区| 一本色道久久综合亚洲91| 中文字幕在线观看不卡| 丁香天五香天堂综合| 精品日韩在线一区| 久久69国产一区二区蜜臀| 日韩亚洲欧美成人一区| 奇米综合一区二区三区精品视频| 欧美男同性恋视频网站| 午夜av电影一区| 7777精品伊人久久久大香线蕉超级流畅| 亚洲女爱视频在线| 在线看国产日韩| 香蕉乱码成人久久天堂爱免费| 欧美日韩精品一区二区三区四区 | 国产成人精品亚洲777人妖| 日韩av网站免费在线| 亚洲欧洲精品一区二区三区不卡| 91偷拍与自偷拍精品| 国产一区福利在线| 免费人成精品欧美精品| 天天av天天翘天天综合网色鬼国产| 久久精品一区二区三区四区| 欧美日韩一区二区三区不卡| 欧美日韩一区中文字幕| 欧美性一级生活| 欧美不卡在线视频| 91精品国产综合久久香蕉的特点| 在线欧美小视频| 91女神在线视频| 国产高清视频一区| 毛片av一区二区| 五月天国产精品| 午夜影院久久久| 老司机午夜精品| 99久久777色| 国产精品久久久久久久久免费樱桃| 青青草精品视频| 黄网站免费久久| 色天使色偷偷av一区二区| 欧美精品一区二区三区在线| 亚洲二区在线视频| 欧美日韩国产三级| 男男成人高潮片免费网站| 欧美日韩极品在线观看一区| 亚洲一区二区三区四区五区黄 | 亚洲欧美日韩国产成人精品影院| 久久精品国产**网站演员| 色婷婷综合久久久久中文| 欧美一区二区视频在线观看2020 | 色一情一伦一子一伦一区| 成人avav在线| 日韩视频中午一区| 国产精品欧美久久久久无广告 | av一区二区不卡| 91一区二区三区在线观看| 欧美成人猛片aaaaaaa| 国产精品入口麻豆原神| 久久成人羞羞网站| 欧美日韩国产美女| 亚洲午夜私人影院| 色综合久久天天| 香蕉乱码成人久久天堂爱免费| 国产成人免费视频| 色综合亚洲欧洲| 91精品在线观看入口| 艳妇臀荡乳欲伦亚洲一区| 国产高清视频一区| 国产精品美女www爽爽爽| 久久精品久久99精品久久| 91精品国产综合久久久久| 国产精品天美传媒沈樵| 亚洲午夜久久久| 97国产精品videossex| 日本一区二区三区四区| 国产一区二区三区在线看麻豆|