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

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

?? tcc_dvb-rcs_pc.c

?? This CD-ROM is distributed by Kluwer Academic Publishers with ABSOLUTELY NO SUPPORT and NO WARRANTY
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* Non-binary Turbo code Test Driver: Max_log_map *//* Creation date : Jan.17 2001   *//* Programmer: Gao yingzi        *//* Last modified date: Nov.16 2001 *//* This program simulates the DVB-RCS encoding-decoding system on PC. *//* It uses the CRSC codes in DVB-RCS system model described in Figure 3.12 in Chapter 3. *//* Two component CRSC ( Circular Recursive Systematic Convolutional) encoders are used.  *//* Random information bits are modulated into +1/-1, and transmitted through an AWGN channel. *//* Max-Log-MAP algorithm without quantization or approximation is used.      *//* By making use of ln(e^x+e^y+e^z+e^w) = max (x,y,z,w), we have MAX-Log-MAP.*//* To set the number of iterations, the globle variable "DECITER" should be changed. *//* To set the frame length, the globle variable "N" should be changed.    *//* To set the code rate, the globle variable "R" should be changed.       *//* To simulate a different range of Eb/N0, change the globle variable LOEBNO and HIEBNO, *//* as well as the step size of Eb/No increment. */#include <malloc.h>#include <math.h>#include <stdio.h>#include <stdlib.h>#include <time.h>#define K 4              /* constraint length */#define NUMSTATES 8      /* 2^(K - 1) -- change as required */ #define PI 3.141592654   /* circumference of circle divided by diameter */#define N 212            /* Block sizes (53 bytes) */#define R 3              /* code rate number: R=1, code rate r=1/3; R=2, code rate r=2/5;     */                         /* R=3, code rate r=1/3; R=4, code rate r=2/3; R=5, code rate r=3/4; */                         /* R=6, code rate r=4/5; R=7, code rate r=6/7; */#define DECITER 8        /* the number of decoding iterations */#define LOEBN0 1.5       /* minimum Eb/No at which to test */#define HIEBN0 3.5       /* maximum Eb/No at which to test */#define EBN0STEP 0.5     /* Eb/No increment for test driver */void gen01dat(int data_len, int *out_array);void permutation(int *alpha);void deci2bin(int d, int size, int *b);void turbo_encd(int g[3][K], int M, int *alpha, int *in_array, int *turbo_en_out);void addnoise(float eb_ovr_n0, int encd_block_len, float rate, int *in_array, float *out_array);void de_multiplex(int msg_length, int M, int *alpha, float *in_array, float *sys_array,		  float *pinfo_array, float *parity1_array, float *parity2_array);void maxlogmap(int g[3][K], float *rec_s, float *rec_p, float *L_a, float *L_u, float *Alpha0, float *BetaN);float max3(float x, float y, float z);main(){  int i, j, ll, iter, t, start;   /* loop variables */  int encd_block_len,total_len;   /* the length of the encoded block depending on the code rate */  int M,msg_length,channel_len;   /* parameter of encoded block length */  int a,dec_iter;                 /* turbo decoding iteration */  int binary_input[2];  int *alpha;                     /* permutation table */  int *onezer;  int *encoded;                   /* original, encoded array */  float *splusn;                  /* noisy data array */  float *sys_array;               /* received systematic array for decoder one */  float *pinfo_array;             /* received systematic array, interleaved for decoder two */  float *parity1_array;           /* received parity1 array for decoder one */  float *parity2_array;           /* received parity2 array for decoder two */  float *L_a;                     /* deinterleaved or interleaved extrinsic info */  float *L_e_1;                   /* decoder two output, then deinterleaved as input of decoder one */  float *L_e_2;                   /* decoder one output, as decoder two input */  float *L_u;                     /* log_likelihood ratios */  float *L_all;                   /* finial soft output after iterations */  int *turbout;                   /* estimated bit of decoder */  float yx[N][K],L_a_p,L_e_2_p;   /* Medium values for caculating extrinsic info, interleaving, deinterleaving */  float eb_ovr_n0,rate,L_c,bit_errors,temp_bit_errors,frame_errors,e_threshold,e_ber,f_ber;   /* various statistics */  float Ad1[NUMSTATES],Bd1[NUMSTATES],Ad2[NUMSTATES],Bd2[NUMSTATES];   /* circular trellis state values */  float *Alpha0,*BetaN;  int g[3][K] = {{1, 1,0,1},       /* 15 */	         {1, 0,1,1},       /* 13 */		 {1, 0,0,1}};      /* 11 */  FILE *fp;  fp = fopen("TCC_DVB-RCS_PC_data","a");  if ((fp = fopen("TCC_DVB-RCS_PC_data","a"))==NULL){    printf("cannot open file\n");    exit (0);  }  printf("\ng1 = %d%d%d%d", g[0][0], g[0][1], g[0][2], g[0][3]);  printf("\ng2 = %d%d%d%d", g[1][0], g[1][1], g[1][2], g[1][3]);  printf("\ng3 = %d%d%d%d\n", g[2][0], g[2][1], g[2][2], g[2][3]);  fprintf(fp,"\ng1 = %d%d%d%d", g[0][0], g[0][1], g[0][2], g[0][3]);  fprintf(fp,"\ng2 = %d%d%d%d", g[1][0], g[1][1], g[1][2], g[1][3]);  fprintf(fp,"\ng3 = %d%d%d%d\n", g[2][0], g[2][1], g[2][2], g[2][3]);  #if R == 1  rate = 1.0/3.0;  M = N;  encd_block_len = 2*N + M;  #endif  #if R == 2  rate = 2.0/5.0;  M = N/2;  encd_block_len = 2*N + M;  #endif  #if R == 3  rate = 1.0/2.0;  M = N;  encd_block_len = N + M;  #endif  #if R == 4  rate = 2.0/3.0;  M = N/2;  encd_block_len = N + M;  #endif  #if R == 5  rate = 3.0/4.0;  if (N%3 == 0) M = N/3;  else if (N%3 == 1) M = (N-4)/3 + 2;  else if (N%3 == 2) M = (N-8)/3 + 3;  encd_block_len = N + M;  #endif  #if R == 6  rate = 4.0/5.0;  M = N/4;  encd_block_len = N + M;  #endif  #if R == 7  rate = 6.0/7.0;  if (N%3 == 0) M = N/6;  else if (N%3 == 1) M = (N-4)/6 + 1;  else if (N%3 == 2) M = (N-8)/6 + 2;  encd_block_len = N + M;  #endif  msg_length = 2*N;  total_len = 3*N;  channel_len = 2*encd_block_len;  printf("\nK = %d   Frame size N = %d  M = %d  code rate = %f\n", K, N, M, rate);  fprintf(fp,"\nK = %d   Frame size N = %d  M = %d  code rate = %f\n", K, N, M, rate);  fclose(fp);  for (eb_ovr_n0 = LOEBN0; eb_ovr_n0 <= HIEBN0; eb_ovr_n0 += EBN0STEP) {    fp = fopen("TCC_DVB-RCS_PC_data","a");    if ((fp = fopen("TCC_DVB-RCS_PC_data","a"))==NULL){      printf("cannot open file\n");      exit (0);    }    start = time(NULL);    a = 1;    L_c = 4 * a * rate * pow(10,eb_ovr_n0/10);     bit_errors = 0.0;    frame_errors = 0.0;    e_ber = 0.0;    f_ber = 0.0;    iter = 0;    if (eb_ovr_n0 <= 6.5) e_threshold = 100; /* +/- 20% */    else e_threshold = 20;                   /* +/- 100% */    printf("\nreliability = %f   BER threshold = %f", L_c, e_threshold);    fprintf(fp,"\nReliability = %f   BER threshold = %f", L_c, e_threshold);    while (bit_errors < e_threshold) {      alpha = malloc( N * sizeof(int) );      if (alpha == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating interleaver table, aborting!");        exit(1);      }       onezer = malloc( msg_length * sizeof(int) );      if (onezer == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating onezer array, aborting!");        exit(1);      }      encoded = malloc( channel_len * sizeof(int) );      if (encoded == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating encoded array, aborting!");        exit(1);      }      splusn = malloc( channel_len * sizeof(float) );      if (splusn == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating splusn array, aborting!");        exit(1);      }      sys_array = malloc( msg_length * sizeof(float) );      if (sys_array == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating received symbol sys array, aborting!");        exit(1);      }      pinfo_array = malloc( msg_length * sizeof(float) );      if (pinfo_array == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating received symbol interleaved sys array, aborting!");        exit(1);      }      parity1_array = malloc( msg_length * sizeof(float) );      if (parity1_array == NULL) {        printf("\n TCC_DVB-RCS_UNIX.c:  error allocating received symbol parity1 array, aborting!");        exit(1);      }      parity2_array = malloc( msg_length * sizeof(float) );      if (parity2_array == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating received symbol parity2 array, aborting!");        exit(1);      }      Alpha0 = malloc( NUMSTATES * sizeof(float) );      if (Alpha0 == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating the values of circular trellis state, aborting!");        exit(1);      }      BetaN = malloc( NUMSTATES * sizeof(float) );      if (BetaN == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating the values of circular trellis state, aborting!");        exit(1);      }      L_a = malloc( total_len * sizeof(float) );      if (L_a == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating L_a array, aborting!");        exit(1);      }      L_e_1 = malloc( total_len * sizeof(float) );      if (L_e_1 == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating L_e_1 array, aborting!");        exit(1);      }      L_e_2 = malloc( total_len * sizeof(float) );      if (L_e_2 == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating L_e_2 array, aborting!");        exit(1);      }      L_u = malloc( total_len * sizeof(float) );      if (L_u == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating L_u array, aborting!");        exit(1);      }      L_all = malloc( total_len * sizeof(float) );      if (L_all == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating L_all array, aborting!");        exit(1);      }      turbout = malloc( msg_length * sizeof(int) );      if (turbout == NULL) {        printf("\n TCC_DVB-RCS_PC.c:  error allocating turbo decoding out array, aborting!");        exit(1);      }      iter += 1;      gen01dat(msg_length, onezer);      permutation(alpha);      turbo_encd(g, M, alpha, onezer, encoded);      addnoise(eb_ovr_n0, encd_block_len, rate, encoded, splusn);      de_multiplex(msg_length, M, alpha, splusn, sys_array, pinfo_array, parity1_array, parity2_array);      for (j=0; j<msg_length; j++){ 	*(sys_array+j) = 0.5*L_c**(sys_array+j);	*(pinfo_array+j) = 0.5*L_c**(pinfo_array+j);	*(parity1_array+j) = 0.5*L_c**(parity1_array+j);	*(parity2_array+j) = 0.5*L_c**(parity2_array+j);      }      for (j=0; j<total_len; j++){           /* initial extrinsic info and log_likelihood ratio */	*(L_a+j) = 0.0;	*(L_e_1+j) = 0.0;	*(L_e_2+j) = 0.0;	*(L_u+j) = 0.0;	*(L_all+j) = 0.0;      }      for (i=0; i<NUMSTATES; i++){           /* initial circular trellis values */	Ad1[i] = 0.0;	Bd1[i] = 0.0;	Ad2[i] = 0.0;	Bd2[i] = 0.0;      }      for (dec_iter=0; dec_iter<DECITER; dec_iter++){	for (i=0; i<3; i++){                 /* deinterleave the extrinsic info for Decoder one */          for (j=0; j<N; j++)                /* deinterleave the level two */	    *(L_a + *(alpha+j) + i*N) = *(L_e_1 + j + i*N);	}        for (j=0; j<N; j++){                 /* deinterleave the level one */          if (j%2==0){	    L_a_p = *(L_a+j);	    *(L_a+j) = *(L_a+j+N);	    *(L_a+j+N) = L_a_p;	  }	}        for (i=0; i<NUMSTATES; i++){	  *(Alpha0 + i) = Ad1[i];	  *(BetaN + i) = Bd1[i];	}        maxlogmap(g, sys_array, parity1_array, L_a, L_u, Alpha0, BetaN);   /* Decoder one */        for (i=0; i<NUMSTATES; i++){	  Ad1[i] = *(Alpha0 + i);	  Bd1[i] = *(BetaN + i);	}        for (j=0; j<N; j++){                 /* get extrinsic info for Decoder two */          for (i=0; i<4; i++){	    deci2bin(i, 2, binary_input);	    for (ll=0; ll<2; ll++)	      binary_input[ll] = 1 - 2*binary_input[ll];	    yx[j][i] = *(sys_array + 2*j)*binary_input[1] + *(sys_array + 2*j + 1)*binary_input[0];	  }          for (i=0; i<3; i++)            *(L_e_2+j+i*N) = *(L_u+j+i*N) - yx[j][i+1] + yx[j][0] - *(L_a+j+i*N);	}        for (j=0; j<N; j++){                 /* Interleave the extrinsic info for Decoder two, level one */          if (j%2==0){	    L_e_2_p = *(L_e_2+j);	    *(L_e_2+j) = *(L_e_2+j+N);	    *(L_e_2+j+N) = L_e_2_p;	  }	}	for (i=0; i<3; i++){                 /* level two */          for (j=0; j<N; j++)	    *(L_a + j + i*N) = *(L_e_2 + i*N + *(alpha+j));	}        for (i=0; i<NUMSTATES; i++){	  *(Alpha0 + i) = Ad2[i];	  *(BetaN + i) = Bd2[i];	}	maxlogmap(g, pinfo_array, parity2_array, L_a, L_u, Alpha0, BetaN);  /* Decoder two */        for (i=0; i<NUMSTATES; i++){	  Ad2[i] = *(Alpha0 + i);	  Bd2[i] = *(BetaN + i);	}        for (j=0; j<N; j++){                 /* get extrinsic info for Decoder one */          for (i=0; i<4; i++){	    deci2bin(i, 2, binary_input);	    for (ll=0; ll<2; ll++)	      binary_input[ll] = 1 - 2*binary_input[ll];	    yx[j][i] = *(pinfo_array + 2*j)*binary_input[1] + *(pinfo_array + 2*j + 1)*binary_input[0];	  }          for (i=0; i<3; i++)            *(L_e_1+j+i*N) = *(L_u+j+i*N) - yx[j][i+1] + yx[j][0] - *(L_a+j+i*N);	}      }  /* end dec_iter-loop */      for (i=0; i<3; i++){                   /* deinterleave the log_likelihood ratios */        for (j=0; j<N; j++)	  *(L_all + *(alpha+j) + i*N) = *(L_u + j + i*N);      }      for (j=0; j<N; j++){                   /* estimate the decoded output */	if ( max3(*(L_all+j),*(L_all+j+N),*(L_all+j+2*N)) > 0.0 ){	  if ( *(L_all+j)==max3(*(L_all+j),*(L_all+j+N),*(L_all+j+2*N)) ){	    if(j%2 == 0){                    /* deinterleaver for j mod 2 = 0, invert A and B */	      *(turbout+2*j) = 0;	      *(turbout+2*j+1) = 1;	    }	    else {	      *(turbout+2*j) = 1;	      *(turbout+2*j+1) = 0;	    }	  }	  else if ( *(L_all+j+N)==max3(*(L_all+j),*(L_all+j+N),*(L_all+j+2*N)) ){	    if(j%2 == 0){                    /* deinterleaver for j mod 2 = 0, invert A and B */	      *(turbout+2*j) = 1;	      *(turbout+2*j+1) = 0;	    }	    else {	      *(turbout+2*j) = 0;	      *(turbout+2*j+1) = 1;	    }	  }	  else if ( *(L_all+j+2*N)==max3(*(L_all+j),*(L_all+j+N),*(L_all+j+2*N)) ){	    *(turbout+2*j) = 1;	    *(turbout+2*j+1) = 1;	  }	}	else {	  *(turbout+2*j) = 0;	  *(turbout+2*j+1) = 0;	}      } /* end j for-estimating loop */      temp_bit_errors = bit_errors;      for (t = 0; t < msg_length; t++){     /* count the bit errors */        if (*(onezer + t) != *(turbout + t))          bit_errors = bit_errors + 1;      } /* end t count bit errors-loop */      if ((bit_errors - temp_bit_errors) > 0) frame_errors = frame_errors + 1;   /* count the frame errors */          free(alpha);      free(onezer);      free(encoded);      free(splusn);      free(sys_array);      free(pinfo_array);      free(parity1_array);      free(parity2_array);      free(Alpha0);      free(BetaN);      free(L_a);      free(L_e_1);      free(L_e_2);      free(L_u);      free(L_all);      free(turbout);    } /* end of while loop */    e_ber = bit_errors / (msg_length * iter);    f_ber = frame_errors / iter;    printf("\nThe elapsed time was %d seconds for %d frames and %d decoding iterations",                   time(NULL) - start, iter, dec_iter);    fprintf(fp,"\nThe elapsed time was %d seconds for %d frames and %d decoding iterations",                   time(NULL) - start, iter, dec_iter);    printf("\nAt %1.1fdB Eb/No, ", eb_ovr_n0);    fprintf(fp,"\nAt %1.1fdB Eb/No, ", eb_ovr_n0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品伊人色| 精品国产乱码久久久久久老虎 | 欧美日韩极品在线观看一区| 亚洲人成伊人成综合网小说| 色综合一区二区三区| 亚洲日本成人在线观看| 日本久久电影网| 亚洲五月六月丁香激情| 欧美一区二区视频在线观看| 精品一区二区成人精品| 国产日韩v精品一区二区| 北条麻妃国产九九精品视频| 亚洲最大成人网4388xx| 制服丝袜一区二区三区| 精品午夜一区二区三区在线观看| www国产精品av| 成人av在线电影| 亚洲成av人片| 久久综合狠狠综合久久激情 | 91精品国产综合久久久久久漫画| 免费一级片91| 中文字幕在线观看一区| 欧美高清一级片在线| 国产精品一区二区在线观看网站| 国产精品久久久爽爽爽麻豆色哟哟| 91免费国产在线| 毛片av一区二区| 最新日韩av在线| 欧美一区永久视频免费观看| 国产精品一线二线三线精华| 亚洲影院在线观看| 久久先锋影音av| 欧美午夜不卡视频| 国产精品一级在线| 亚洲午夜一区二区三区| 国产视频一区二区三区在线观看| 欧美最猛性xxxxx直播| 国产自产v一区二区三区c| 亚洲视频一区二区在线| 欧美成人精品高清在线播放| 91视视频在线观看入口直接观看www| 午夜电影一区二区三区| 国产精品福利一区| 欧美成人国产一区二区| 日本道色综合久久| 国产成人a级片| 麻豆精品视频在线观看免费| 亚洲人成7777| 国产色爱av资源综合区| 在线综合视频播放| 欧美中文字幕一二三区视频| 国产超碰在线一区| 久久99精品国产麻豆婷婷洗澡| 一区二区成人在线| 国产精品久久久久影院| 26uuuu精品一区二区| 欧美乱熟臀69xxxxxx| 色综合天天在线| 国产河南妇女毛片精品久久久| 日韩福利电影在线| 亚洲综合区在线| 亚洲色图.com| 国产精品区一区二区三| 久久精品一区二区三区av| 91精品国产综合久久久久久久久久| www.av亚洲| av男人天堂一区| 福利电影一区二区| 国产成人午夜视频| 国产又黄又大久久| 国产高清视频一区| 国产精品伊人色| 国产高清在线观看免费不卡| 国产在线精品免费| 国产一区二区不卡在线| 国产一区二区三区四| 久草精品在线观看| 久久精品国产澳门| 捆绑紧缚一区二区三区视频| 久久精品国产精品亚洲红杏| 美洲天堂一区二卡三卡四卡视频| 日日夜夜精品视频免费| 日韩影院免费视频| 美女mm1313爽爽久久久蜜臀| 久久er99热精品一区二区| 激情久久久久久久久久久久久久久久| 麻豆91在线播放| 九色porny丨国产精品| 美腿丝袜亚洲三区| 久久精品国产秦先生| 国产精品18久久久| caoporn国产一区二区| 91丨porny丨国产入口| 欧美日韩精品免费观看视频| 日韩一区二区三区av| 精品粉嫩超白一线天av| 国产日韩亚洲欧美综合| 亚洲视频在线观看一区| 亚洲.国产.中文慕字在线| 蜜臀av性久久久久蜜臀aⅴ| 国产一区欧美一区| 粉嫩aⅴ一区二区三区四区| 99re这里只有精品首页| 欧美无砖专区一中文字| 91精品免费在线| 久久久不卡网国产精品二区| 国产精品夫妻自拍| 婷婷综合另类小说色区| 国内精品免费**视频| 91免费版在线看| 91精品国产综合久久国产大片| 2023国产精品自拍| 日韩伦理免费电影| 日日噜噜夜夜狠狠视频欧美人| 国内精品视频一区二区三区八戒 | 日本aⅴ亚洲精品中文乱码| 激情综合亚洲精品| 色综合色综合色综合| 69堂精品视频| 中文字幕+乱码+中文字幕一区| 一二三区精品视频| 国产在线精品一区在线观看麻豆| 99久久久国产精品免费蜜臀| 日韩欧美视频在线| 亚洲精品视频观看| 精品一二三四在线| 欧美性生活影院| 久久精品网站免费观看| 亚洲小说欧美激情另类| 国产精品系列在线播放| 欧美在线视频不卡| 国产欧美日本一区二区三区| 午夜视频一区二区三区| 北条麻妃国产九九精品视频| 精品日本一线二线三线不卡| 亚洲一区二区成人在线观看| 国产福利91精品一区二区三区| 欧美日韩精品一区二区| 日韩伦理电影网| 国产成人精品免费一区二区| 日韩一区二区三区视频在线| 亚洲精品成a人| 成人精品视频网站| 欧美一卡在线观看| 亚洲制服丝袜在线| 北条麻妃一区二区三区| 久久久久久麻豆| 蜜臀精品一区二区三区在线观看 | 色一区在线观看| 欧美国产激情一区二区三区蜜月| 强制捆绑调教一区二区| 欧美视频在线一区| 国产精品久久久久久久久久久免费看 | 日韩欧美一级二级三级久久久| 一级做a爱片久久| 色综合久久久久综合体| 最新国产成人在线观看| 国产成人激情av| 日韩美女一区二区三区| 天堂资源在线中文精品| 91免费国产视频网站| 国产精品电影院| 成人性生交大片免费看中文| 国产性色一区二区| 国内精品伊人久久久久av影院| 日韩一区二区免费视频| 天堂va蜜桃一区二区三区 | 不卡视频在线观看| 国产喷白浆一区二区三区| 国产一区二区三区四区五区美女| 日韩精品一区二区三区中文不卡| 日韩精品亚洲专区| 欧美一区二区在线免费观看| 亚洲第一主播视频| 欧美三级视频在线观看| 午夜精品爽啪视频| 欧美精品一二三| 蜜桃精品在线观看| 2024国产精品| 成年人国产精品| 亚洲精选免费视频| 欧美日韩精品一区二区三区蜜桃 | 亚洲国产一区二区在线播放| 欧美私人免费视频| 免费人成在线不卡| 久久人人超碰精品| 99re热视频精品| 亚洲一级片在线观看| 欧美一区二区久久久| 韩国av一区二区三区| 亚洲视频每日更新| 欧美精品视频www在线观看| 蜜臀a∨国产成人精品| 欧美激情综合在线| 91成人国产精品| 美腿丝袜一区二区三区| 国产精品免费视频网站| 欧美影院精品一区| 精品一区二区三区在线播放视频| 欧美国产精品专区|