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

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

?? txrx.c

?? 基于TMS320F2812的AMR+RS編解碼+OFDM調制解調源程序。是stand alone運行版本
?? C
字號:

#include <stdio.h>
//#include <stdlib.h>
#include <math.h>
#include "Setting.H"
#include "RS.H"
#include "Function.H"
#include "FrameOfdm.H"

WordType TxSymbolMark;                  /* Indicates the symbol index in
											 * SrcToChan()
											 */
WordType TxBitMark;                     /* Indicates the bit index of a
											 * symbol in SrcToChan()
											 */
WordType RxPosMark;                     /* Indicates the received bit
											 * index in ChanToSrc()
											 */
WordType FrameTx;                    /* Indicates transmitted subframe
											 * number
											 */
WordType FrameRx;                    /* Indicates received subframe
											 * number
											 */

int DataBuffer[NullSampleSize / 2 + NullSampleSize + SymbolSize * 3];
                                            /* Processed data buffer in
											 * FindFrame()
											 */

DType  OriInforTx[52];                      /* Data buffer for the input of
											 * channel encoder;
											 * Data is converted from source
											 * coded information by SrcToChan()
											 */
WordType OriInforRx[3 * SrcVector];         /* Data buffer for the output of
											 * channel decoder;
											 * Data is converted from demodulated
											 * information by ChanToSrc()
											 */

DType  RefPhaseTx[UsedCarrier];             /* Buffer for transmit reference
											 * phase
											 */
long int  RefPhaseRx[UsedCarrier];             /* Buffer for received reference
											 * phase
											 */

unsigned long int Seed;                /* Initial seed of Random() */
short LastStartPnt;                         /* Jump-off position of last frame */
short OFDMFrameNum;                     /* Used in FindFrame */


//extern long asin_tab[];
int *point_FinalData;
long int *point_TmpDataR;
long int *point_TmpDataI;
DType *point_ChannelData;
static WordType i, k;


WordType Transmit(int SourceCode[], int FinalData[])
{
	DType ChannelData[RSTotalSym];
	DType ConvData[UsedCarrier * SymPerFrame];
	long int TmpDataR[FFTSize], TmpDataI[FFTSize];
	
	//point_FinalData=FinalData;
    point_TmpDataR=TmpDataR;
    point_TmpDataI=TmpDataI;
    point_ChannelData=ChannelData;
        
    /* Convert SrcVector bits to required data mode (RSInforBit bits per symbol) */
	SrcToChan(SourceCode, OriInforTx, &TxSymbolMark, &TxBitMark);

	/* Proceed RS coding and OFDM when all information symbols arrive */
	/* Get the available data */
	if (TxSymbolMark > (RSInforSym - 2))
	{
		/* First part of 5 source coded frames */
		if (TxSymbolMark > (RSInforSym - 1))
		{
	
			asm (" push xar0");
            asm (" push xar3");
			asm (" push xar4");
			asm (" movl xar4,@_point_ChannelData");
            asm (" movl xar3,#_OriInforTx");
			for (i = 0; i < RSInforSym; i++)
		    {
			  // ChannelData[i] = OriInforTx[i];
               asm (" movz ar0,@_i");
               asm (" mov  ah, *+xar3[ar0]");
               asm (" mov  *+xar4[ar0], ah");
            }
            asm (" pop  xar4");
            asm (" pop  xar3");
            asm (" pop  xar0");
			for (i = RSInforSym; i <= TxSymbolMark; i++)
			{
				OriInforTx[i - RSInforSym] = OriInforTx[i];
			}
			TxSymbolMark -= RSInforSym;
		}
		/* Second part of 5 source coded frames */
		else
		{
			asm (" push xar0");
			asm (" push xar3");
            asm (" push xar4");
            asm (" movl xar4,@_point_ChannelData");
            asm (" movl xar3,#_OriInforTx");
			for (i = 0; i < RSInforSym; i++)
			{
			    asm (" movz ar0,@_i");
                asm (" mov ah, *+xar3[ar0]");
                asm (" mov *+xar4[ar0], ah");
                //ChannelData[i] = OriInforTx[i];
			}
			asm (" pop  xar4");
			asm (" pop  xar3");
            asm (" pop  xar0");
			TxSymbolMark = 0;
			TxBitMark = 0;
		}

		/* RS encoding */
		Encode_RS(&ChannelData[0], &ChannelData[RSInforSym]);
		
		point_FinalData=FinalData;
		asm(" movl xar4,@_point_FinalData ");
		/* Proceed OFDM below */
		if (FrameTx == TotalFrame)          /* First subframe of OFDM        */
		{
			FrameTx = 1;
			/* Add NullSampleSize padded zero */
			asm(" push xar0");
            asm(" movl xar0,#0");
			for (i = 0; i < NullSampleSize; i++)
			{
				asm(" mov *+xar4[ar0],#0");
                asm(" inc ar0");  
				//FinalData[i] = 0;
			}
			asm(" pop xar0");
			k = NullSampleSize;
			/* Two additive lines for frame synchronization & reference phase */
			/* Add frame synchronization below in time waveform */
			for (i = 0; i < UsedCarrier; i++)
			{
				RefPhaseTx[i] = (DType) Random(&Seed, 3);
			}
			
					
			for (i = 0; i < FFTSize; i++)
			{
				if ((i > CarrierJumpPos - 2) && (i < CarrierJumpPos + UsedCarrier - 1))
				{
					switch (RefPhaseTx[i + 1 - CarrierJumpPos])
					{
					case 0: TmpDataR[i] = 16384;   TmpDataI[i] = 0;  break;       //2^14
					case 1: TmpDataR[i] = 0;   TmpDataI[i] = 16384;  break;
					case 2: TmpDataR[i] = -16384;  TmpDataI[i] = 0;  break;
					case 3: TmpDataR[i] = 0;   TmpDataI[i] = -16384;
					}
				}
				else
				{
					TmpDataR[i] = 0;
					TmpDataI[i] = 0;
				}
			}
			asm(" push p");
            asm(" push xar3");
            asm(" push xar0");
            asm(" push xar4");
            asm(" mov ph ,#0");
            asm(" mov pl, #0");
            asm(" movl xar0,#2");
            asm(" movl xar3,@_point_TmpDataR");
            asm(" movl xar4,@_point_TmpDataI");
			for (i = 1; i < FFTSize; i += 2)
			{
				asm(" movl *+xar3[ar0],p");
                asm(" movl *+xar4[ar0],p");
                asm(" addb xar0,#4 "); 
				//TmpDataR[i] = 0;
				//TmpDataI[i] = 0;
			}
			asm(" pop xar4");
			asm(" pop xar0");
            asm(" pop xar3");
            asm(" pop p");
			
			FFT(TmpDataR, TmpDataI, -1);
			for (i = GuardTimeSize; i > 0; i--)
			{
				FinalData[k] = (int)(TmpDataR[FFTSize - i]);    //2^14
				k++;
			}
			for (i = 0; i < FFTSize; i++)
			{
				FinalData[k] = (int)(TmpDataR[i]);
				k++;
			}

			/* Add reference phase below in time waveform */
			for (i = 0; i < UsedCarrier; i++)
			{
				RefPhaseTx[i] = (DType) Random(&Seed, 3);
			}
			
				
			for (i = 0; i < FFTSize; i++)
			{
				if ((i > CarrierJumpPos - 2) && (i < CarrierJumpPos + UsedCarrier - 1))
				{
					switch (RefPhaseTx[i + 1 - CarrierJumpPos])
					{
					case 0: TmpDataR[i] = 16384;   TmpDataI[i] = 0;  break;       //2^14
					case 1: TmpDataR[i] = 0;   TmpDataI[i] = 16384;  break;
					case 2: TmpDataR[i] = -16384;  TmpDataI[i] = 0;  break;
					case 3: TmpDataR[i] = 0;   TmpDataI[i] = -16384;
					}
				}
				else
				{
					TmpDataR[i] = 0;
					TmpDataI[i] = 0;
				}
			}
			
						
			FFT(TmpDataR, TmpDataI, -1);
			for (i = GuardTimeSize; i > 0; i--)
			{
				FinalData[k] = (int)(TmpDataR[FFTSize - i]);
				k++;
			}
			for (i = 0; i < FFTSize; i++)
			{
				FinalData[k] = (int)(TmpDataR[i]);
				k++;
			}
			/* Adjust amplitude of frame synchronization & reference phase */
	/*		j = 0;
			for (i = k - 2 * SymbolSize; i < k; i++)
			{
				h =(float)fabs(FinalData[i]);
				if (j < h)
		        {
			 	    j = h;
			    }
				if (j < (float)fabs(FinalData[i]))
				{
					j = (float)fabs(FinalData[i]);
				}*/
		/*	}
			h =(float) (0.95/j);
			for (i = k - 2 * SymbolSize; i < k; i++)
			{
				FinalData[i] *=h;
				//FinalData[i] *= (float) (0.95 / j);
			}*/
		}
		else
		{
			FrameTx++;
			k = 0;
		}

		/* Convert the data base to CodewordBit */
		ConvBase(ChannelData, ConvData, RSTotalSym, 1);
		ConvData[UsedCarrier * SymPerFrame -1] = 0;
		/* Change to Gray code */
		Gray2(ConvData, RSTotalSym * RSInforBit / CodewordBit);

		/* OFDM modulation */
		OFDMModu(ConvData, &FinalData[k], RefPhaseTx);

		/* Adjust amplitude of transmit data */
	/*	j = 0;
		for (i = k; i < k + SymbolSize * SymPerFrame; i++)
		{
			h =(float)fabs(FinalData[i]);
			if (j < h)
			{
				j = h;
			}
			if (j < (float)fabs(FinalData[i]))
			{
				j = (float)fabs(FinalData[i]);
			}*/
	//	}
	/*	h = (float) (0.95 / j);
		for (i = k; i < k + SymbolSize * SymPerFrame; i++)
		{
			FinalData[i] *= h;
			//FinalData[i] *= (float) (0.95 / j);
		}*/
		
		return (k + SymbolSize * SymPerFrame);
    }
	else
	{
		return 0;
	}
}

WordType Receive(int RecData[], int SourceCode[])
{
	WordType i, k;
	DType ChanCodeData[RSTotalSym];
	DType ConvData[UsedCarrier * SymPerFrame];
	long int TmpDataR[FFTSize], TmpDataI[FFTSize];
	//int   index;
   	long int *pTmpDataR, *pTmpDataI,*pRefPhaseRx;//,xI,xR;


	if (FrameRx == TotalFrame)
	{
		FrameRx = 1;
		/* Two additive lines for frame synchronization & reference phase */
		/* Remove NullSampleSize padded zero & frame synchronization below */
		k = SymbolSize;
		/* Get reference phase below */
		for (i = 0; i < FFTSize; i++)
		{
			TmpDataR[i] = RecData[k + GuardTimeSize];
			TmpDataI[i] = 0;
			k++;
		}
		k += GuardTimeSize;                 /* Adjust the address access point */
		FFT(TmpDataR, TmpDataI, 1);
		pTmpDataR = TmpDataR + CarrierJumpPos - 1;
		pTmpDataI = TmpDataI + CarrierJumpPos - 1;
		pRefPhaseRx = RefPhaseRx;
		for (i = 0 ; i < UsedCarrier; i++)
		{
        /*	xR = *pTmpDataR;
			xI = *pTmpDataI;
			index = (float)90 * xI*xI/(xI*xI+xR*xR);
			*pRefPhaseRx = asin_tab[index];
			if(xR>=0 && xI<0)
			{
				*pRefPhaseRx = -(*pRefPhaseRx) + PI2Q15;
			}
			else if(xR<0 && xI<=0)
			{
				*pRefPhaseRx = *pRefPhaseRx + PIQ15;
			}
			else if(xR<0 && xI>0)
			{
				*pRefPhaseRx = -(*pRefPhaseRx) + PIQ15;
			}*/
			*pRefPhaseRx = arctan2(*pTmpDataI, *pTmpDataR);
			pTmpDataR++;
			pTmpDataI++;
			pRefPhaseRx++;
		}
	}
	else
	{
		FrameRx++;
		k = 0;
	}

	/* OFDM modulation */

	OFDMDemo(&RecData[k], ConvData, RefPhaseRx);

	/* Change to Gray code */
	Gray2(ConvData, RSTotalSym * RSInforBit / CodewordBit);
	/* Convert the data base to CodewordBit */
	ConvBase(ConvData, ChanCodeData, RSTotalSym * RSInforBit / CodewordBit, 0);

	/* RS decoding */
 	i = Decode_RS(ChanCodeData);

	/* Convert RS data to required data mode (SrcVector bits per frame) */
	ChanToSrc(ChanCodeData, OriInforRx, &RxPosMark);
	/* Decompress the source data */
	if (RxPosMark < (3 * SrcVector - 1))
	{
		for (i = 0; i < (2 * SrcVector); i++)
		{
			SourceCode[i] = OriInforRx[i];
		}
		for (i = (2 * SrcVector); i < RxPosMark; i++)
		{
			OriInforRx[i - 2 * SrcVector] = OriInforRx[i];
		}
		RxPosMark -= (2 * SrcVector);

		return 2;
	}
	else
	{
		for (i = 0; i < (3 * SrcVector); i++)
		{
			SourceCode[i] = OriInforRx[i];
		}
		RxPosMark = 0;

		return 3;
	}
}

WordType FindFrame(int SignalIn[])
{
	WordType i, j;
	WordType FrameStart, FineStart;
	long int FilterData[FindFrameDataLen];
    long int tmp;
	long int Sxx[3 * GuardTimeSize + 1];
	long int Syy[3 * GuardTimeSize + 1];
	long int Sxy[3 * GuardTimeSize + 1];
	long int Sumx[3 * GuardTimeSize + 1];
	long int Sumy[3 * GuardTimeSize + 1];
	long int RR[3 * GuardTimeSize + 1];
	long int k1,k2,k3;

	FineStart=0;
	
	
	/* Get the processed signal and change to envelope type */
	for (i = 0; i < FindFrameDataLen; i++)
	{
		DataBuffer[i] = abs(SignalIn[i]);
		FilterData[i] = 0;
	}
	
	for (i = 0; i < 3 * GuardTimeSize + 1; i++)
	{
		Sxx[i] = 0;
		Syy[i] = 0;
		Sxy[i] = 0;
		Sumx[i] = 0;
		Sumy[i] = 0;
	}
		



	/* Filter the signal 
	for (i = 0; i < NullSampleSize / 2 + NullSampleSize + SymbolSize * 3; i++)
	{
		FilterData[i] = 0;
	}

	for (i = NullSampleSize - GuardTimeSize / 2 - 1; i < NullSampleSize / 2 + NullSampleSize + SymbolSize * 3; i++)
	{
		for (j = 0; j < NullSampleSize - GuardTimeSize / 2; j++)
		{
			FilterData[i] += DataBuffer[i - j];
		}
	}*/
	for (i = 0; i <  NullSampleSize - GuardTimeSize / 2; i++)//CoarseSynFilterLen
	{
		FilterData[NullSampleSize - GuardTimeSize / 2 - 1] += DataBuffer[i];
	}
	for (j = 0; i < NullSampleSize / 2 + NullSampleSize + SymbolSize * 3; i++,j++)
	{
		FilterData[i] += FilterData[i-1] - DataBuffer[j] + DataBuffer[i];
	}

	/* Primary frame synchronization, find the jump-off point */
	tmp = 0x7FFFFFFF;
	for (i = NullSampleSize - GuardTimeSize / 2 - 1;i < FindFrameDataLen; i++)
	{
		if (tmp > FilterData[i])
		{
			tmp = FilterData[i];
			FrameStart = i;                 /* Already in C index            */
		}
	}

	FrameStart++;
	/* Calculate the correlation coefficient */
	for (i = FrameStart; i < FrameStart + FFTSize / 2; i++)
	{
		k1 = DataBuffer[i - (WordType)(3 * GuardTimeSize / 2)];
		k2 = DataBuffer[i + FFTSize / 2 - (WordType)(3 * GuardTimeSize / 2)];
		Sxx[0] += k1 * k1;
		Syy[0] += k2 * k2;
		Sxy[0] += k1 * k2;
		Sumx[0] += k1;
		Sumy[0] += k2;
	}
	j = FrameStart - (WordType)(3 * GuardTimeSize / 2);
	for (i = 0; i < 3 * GuardTimeSize; i++)
	{
	    asm(" spm 0");
		k1 = DataBuffer[i + j + FFTSize / 2];
		k2 = DataBuffer[i + j]; 
		k3 = DataBuffer[i + j + FFTSize];
		Sxx[i + 1] = Sxx[i] + k1  * k1  - k2  * k2;
		Syy[i + 1] = Syy[i] + k3  * k3  - k1  * k1;
		Sxy[i + 1] = Sxy[i] + k3  * k1  - k1  *	k2;
		Sumx[i + 1] = Sumx[i] + k1 - k2;
		Sumy[i + 1] = Sumy[i] + k3 - k1;
	}

	for (i = 0; i < 3 * GuardTimeSize + 1; i++)
	{
		asm(" spm 0");
		Sxx[i] -= (2 * Sumx[i]  * Sumx[i] / FFTSize) ;
		Syy[i] -= (2 * Sumy[i]  * Sumy[i] / FFTSize) ;
		Sxy[i] -= (2 * Sumx[i]  * Sumy[i] / FFTSize) ;
		RR[i] = Q15* (Sxy[i] / sqrt((double)Sxx[i] * Syy[i]));
	}



	/* Filter the signal again */
	for (i = 0; i < 3 * GuardTimeSize + 1; i++)
	{
		FilterData[i] = 0;
	}
	
	for (i = 0; i < GuardTimeSize; i++)
	{
		FilterData[GuardTimeSize] += RR[GuardTimeSize - i];
	}

	for (j = 1; i < 3 * GuardTimeSize + 1; i++,j++)
	{
		FilterData[i] += FilterData[i-1] + RR[i] - RR[j];
	}

	/* Fine frame synchronization using correlation coefficient */
	tmp = 0x80000000;
	for (i = GuardTimeSize; i < 3 * GuardTimeSize + 1; i++)
	{
		if (tmp < FilterData[i])
		{
			tmp = FilterData[i];
			FineStart = i;                 /* Already in C index            */
		}
	}
	/*FrameStart += Round((float)((FineStart - 1.5 * GuardTimeSize) / 2)) - 1;
	                                        Already in C index            */

	FineStart -= (5 * HalfGuardTimeSize + FineSynFilterLen -1);
										/* 1 GuardTimes is the data from CP
										* is also correlative to the second part
										* 1.5 GuardTimes is for the start point.
										*/
	FrameStart += FineStart;
	if (OFDMFrameNum > 0)
	{
		LastStartPnt = FrameStart;
		OFDMFrameNum--;
	}
	else
	{
		LastStartPnt = Round((float)((LastStartPnt + FrameStart) / 2.0));
	}

	return  LastStartPnt;
}
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级成人av| 国产精品嫩草久久久久| 国产日产欧美精品一区二区三区| 国产精品成人免费精品自在线观看 | 日韩中文字幕不卡| 成人看片黄a免费看在线| 欧美一级精品大片| 亚洲午夜在线电影| 91欧美一区二区| 国产日本欧美一区二区| 日本在线不卡一区| 欧美色男人天堂| 亚洲欧美日韩久久| 99久精品国产| 国产精品嫩草影院com| 国产精品一二三四| 日韩一区二区麻豆国产| 亚洲成人av一区二区三区| av电影天堂一区二区在线观看| 欧美va亚洲va在线观看蝴蝶网| 亚洲成av人在线观看| 91福利在线导航| 亚洲免费资源在线播放| 成人午夜大片免费观看| 久久色.com| 国产在线精品免费av| 欧美成人高清电影在线| 日韩成人一级大片| 在线成人av影院| 五月天久久比比资源色| 欧美日韩精品一区二区在线播放 | 一卡二卡欧美日韩| 91精品91久久久中77777| 亚洲欧美另类综合偷拍| 成人av先锋影音| 综合在线观看色| 一本久久精品一区二区| 夜夜嗨av一区二区三区网页 | 国产精品一区二区久久精品爱涩| 2017欧美狠狠色| 国产白丝网站精品污在线入口| 久久综合色之久久综合| 国产经典欧美精品| 日本一区二区免费在线 | 欧美无砖砖区免费| 天堂午夜影视日韩欧美一区二区| 欧美一区二区在线免费播放| 美女视频黄频大全不卡视频在线播放| 日韩精品中文字幕一区二区三区 | 日本道色综合久久| 亚洲一区自拍偷拍| 欧美精品久久久久久久多人混战 | 精品久久久久香蕉网| 国产成人av电影在线播放| 国产精品久线观看视频| 91极品美女在线| 秋霞成人午夜伦在线观看| 久久久久久久久久久电影| 成人性视频免费网站| 一区二区三区丝袜| 欧美一级淫片007| 国产成人精品一区二区三区网站观看| 中文字幕一区日韩精品欧美| 欧美在线不卡视频| 激情图片小说一区| 中文字幕第一区| 欧美日韩国产一二三| 国产在线国偷精品产拍免费yy| 中文字幕一区三区| 日韩欧美一区中文| 91在线免费视频观看| 日韩 欧美一区二区三区| 中文字幕av资源一区| 欧美视频一二三区| 国产精品一区二区在线播放| 亚洲成人av在线电影| 久久久精品中文字幕麻豆发布| 色悠久久久久综合欧美99| 久久国产婷婷国产香蕉| 一区二区三区免费网站| 久久综合九色综合97婷婷女人| 欧美性猛交xxxxxx富婆| 国产成人aaa| 久久精品国产一区二区三区免费看| 国产精品久久久久久久浪潮网站| 欧美精品乱人伦久久久久久| 成人av资源在线| 激情另类小说区图片区视频区| 一区二区三区**美女毛片| 久久久久久电影| 欧美一区二区福利视频| 91行情网站电视在线观看高清版| 国产经典欧美精品| 日本成人超碰在线观看| 亚洲国产精品久久一线不卡| 中文av一区特黄| 精品国产电影一区二区| 欧美日韩小视频| 日本精品一级二级| 91一区二区三区在线播放| 风间由美性色一区二区三区| 久久成人精品无人区| 亚洲成人免费在线观看| 一区二区三区日本| 国产精品激情偷乱一区二区∴| 精品久久久久av影院| 欧美一区二区性放荡片| 欧美视频一区二区三区在线观看 | 粉嫩一区二区三区性色av| 精品一区二区三区久久久| 日韩精品91亚洲二区在线观看| 一区二区不卡在线播放| 一区二区在线观看免费视频播放| 国产精品色一区二区三区| 国产亚洲精品资源在线26u| 久久综合国产精品| 精品成人佐山爱一区二区| 日韩精品中文字幕在线一区| 日韩一级大片在线| 精品少妇一区二区三区在线播放| 91精品国产一区二区三区香蕉| 欧美精品乱码久久久久久| 91精品蜜臀在线一区尤物| 91麻豆精品国产91久久久| 制服丝袜av成人在线看| 这里是久久伊人| 精品国产伦理网| 国产精品午夜在线观看| 国产精品久久久久一区二区三区共| 国产精品丝袜一区| 亚洲精品老司机| 亚洲一区二区av在线| 无码av中文一区二区三区桃花岛| 五月婷婷久久丁香| 国内精品伊人久久久久av影院| 国产精品12区| 91麻豆蜜桃一区二区三区| 欧美在线观看禁18| 精品福利av导航| 国产精品国产三级国产aⅴ无密码| 国产精品久久久久影视| 亚洲成人自拍网| 国内精品写真在线观看| 92国产精品观看| 欧美一区二区三区男人的天堂| 26uuu国产在线精品一区二区| 国产精品你懂的在线| 亚洲成人精品影院| 国产制服丝袜一区| 一本色道久久综合亚洲精品按摩| 欧美男男青年gay1069videost| 精品少妇一区二区三区视频免付费| 国产精品久久久久久久久动漫 | 国产精品福利影院| 三级影片在线观看欧美日韩一区二区| 国产一区二区0| 欧美日韩在线精品一区二区三区激情 | 国产午夜精品一区二区三区嫩草 | 欧美日韩精品一二三区| 久久综合给合久久狠狠狠97色69| 亚洲黄色av一区| 国产精品资源在线看| 在线观看免费成人| 久久久综合九色合综国产精品| 夜夜嗨av一区二区三区网页 | 欧美色倩网站大全免费| 日韩一级黄色片| 国产精品久久777777| 麻豆精品国产传媒mv男同| 成人激情视频网站| 欧美日韩国产片| 日韩久久精品一区| 亚洲成年人网站在线观看| 国产酒店精品激情| 欧美午夜影院一区| 中文字幕一区二区三区不卡| 免费xxxx性欧美18vr| 99综合电影在线视频| 日韩精品一区二区三区中文不卡 | 国产又黄又大久久| 欧美在线小视频| 国产日韩亚洲欧美综合| 亚洲美女区一区| 99久久久国产精品| 欧美va亚洲va| 亚洲777理论| 欧美色图一区二区三区| 国产欧美一区二区三区在线看蜜臀| 亚洲国产sm捆绑调教视频| 亚洲成av人片一区二区梦乃| 91免费观看在线| 久久久国产午夜精品| 婷婷综合五月天| 在线成人av网站| 亚洲在线视频网站| 成人激情免费视频| 久久精品在这里| 国产一区二区三区四区五区美女| 日本韩国欧美三级| 亚洲色图另类专区|