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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mai_mpath_channel.cpp

?? 用matlab程序?qū)崿F(xiàn)WCDMA系統(tǒng)的仿真
?? CPP
字號(hào):
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include "C:\MATLABR11\extern\include\mex.h"


#define CHIPS_PER_FRAME			38400
#define FRAME_DURATION			10e-3
#define ABCISSA_DATA_POINTS		21
#define CHIPS_PER_FADE_SAMPLES	400
#define MIN_FADE_RECORD_LENGTH	512





void MAI_Mpath_Channel(double *RealSigPtr, double *ImagSigPtr,unsigned long NSig,
					   unsigned long *DelayPtr,unsigned long NDelays,double *AmpPtr,
					   double fDoppler,unsigned long SamplesPerChip,
					   double *RealMpathPtr,double *ImagMpathPtr)
/********************************************************************************************************
/void MAI_Mpath_Channel(double *RealSigPtr, double *ImagSigPtr,unsigned long NSig,
/					   unsigned long *DelayPtr,unsigned long NDelays,double *AmpPtr,
/					   double fDoppler,unsigned long SamplesPerChip,
/					   double *RealMpathPtr,double *ImagMpathPtr)
/
/ Copyright 2002 The Mobile and Portable Radio Research Group
/
/This function applies the multipath channel to each interferer.  The function first generates the fading
/signal, through the use of a MATLAB based Rayleigh fading generator.  The fading signal is then applied
/to the interfering signal on a piecewise constant basis.  One fading signal is applied to 400 chiping 
/intervals (see the CHIPS_PER_FADE_SAMPLES constant above).  This is done for each multipath component.  
/Once the fading is applied the multipath component is then offset by its associated multipath delay.  
/
/After all of the multipath compents are scaled by their fading signal and offset by their multipath delay
/then are combined to create the multipath signal for that interferer.
/
/Parameters
/	Input
/		RealSigPtr		*double			Pointer to the real part of the interfering signal
/		ImagSigPtr		*double			Pointer to the imaginary part of the interfering signal
/		NSig			unsigned long	Legnth of the interfereing signal
/		DelayPtr		*unsigned long	Delay of each multipath component in terms of signal samples
/		NDelays			unsigned long	Number of multipath components
/		AmpPtr			*double			Average amplute of each multipath component
/		fDopper			double			Doppler spread in Hz
/		SamplesPerChip	double			Number of samples per chip
/	Output
/		RealMpathPtr	*double			Pointer to the real part of the resulting multipath signal
/		ImagMpathPtr	*double			Pointer to the imaginary part of the resulting multipath signas
**********************************************************************************************************/
{
	double *TempRealSigPtr,*TempImagSigPtr;
	unsigned long *TempDelayPtr;
	double *TempAmpPtr;
	double *TempRealMpathPtr,*TempImagMpathPtr;
	unsigned long i,j,k;
	double SampleRate,SigDuration,FadeSampleRate;
	double increment;
	unsigned long Increment,RemainingSamples;
	mxArray *mxLeftHandSide[1],*mxRightHandSide[3];
	mxArray *mxfDopplerPtr,*mxNAbcissaDataPointsPtr;
	mxArray *mxFadeSampleRatePtr;
	double *FadeSampleRatePtr;
	double *RealFadeSamplesPtr,*ImagFadeSamplesPtr;
	double *TempRealFadeSamplesPtr, *TempImagFadeSamplesPtr;
	double *fDopplerPtr,*NAbcissaDataPointsPtr;
	int ReturnFlag;
	unsigned long FadeSamplesPerFrame,faa,faa1;
	double FadeDelayRatio;
	unsigned long INTFadeDelayRatio;

////////////////////////////////////////////////////////
// Debug Code
//	FILE *fp;
//	double *RealMPathComponentPtr, *TempRealMPathComponentPtr;
//	double *ImagMPathComponentPtr, *TempImagMPathComponentPtr;
// End Debug Code
////////////////////////////////////////////////////////


	SampleRate = (double) CHIPS_PER_FRAME * (double) SamplesPerChip / (double) FRAME_DURATION ;
	SigDuration = (double) NSig / SampleRate;
	FadeSampleRate = (double) CHIPS_PER_FRAME / ((double) FRAME_DURATION * (double) CHIPS_PER_FADE_SAMPLES);
	FadeSamplesPerFrame = CHIPS_PER_FRAME / CHIPS_PER_FADE_SAMPLES;

	//Determine the total number of fade samples available for the signal
	//may not be an integer multiple of the number of samples in the signal 
	//record.  Therefore, it will be necessary  to make the increment (which 
	//is the defined as the number of signal samples per fade sample) take on 
	//next lower integer.  Then we must determine the number of signals samples
	//that are remaining.  These signals will be scaled by the last fading sample

	increment = (double) NSig / ( (double) CHIPS_PER_FRAME / (double) CHIPS_PER_FADE_SAMPLES );
	Increment = (unsigned long) increment;
	RemainingSamples = NSig % Increment;

	if ((mxFadeSampleRatePtr = mxCreateDoubleMatrix(1,1,mxREAL))==NULL)
		mexErrMsgTxt("\nmxFadeSampleRatePtr vector not allocated!--exiting\n");
	FadeSampleRatePtr = mxGetPr(mxFadeSampleRatePtr);
	*FadeSampleRatePtr = FadeSampleRate;

	if ((mxfDopplerPtr = mxCreateDoubleMatrix(1,1,mxREAL))==NULL)
		mexErrMsgTxt("\nmxfDopplerPtr vector not allocated!--exiting\n");
	fDopplerPtr = mxGetPr(mxfDopplerPtr);
	*fDopplerPtr = fDoppler;
	
	if ((mxNAbcissaDataPointsPtr = mxCreateDoubleMatrix(1,1,mxREAL))==NULL)
		mexErrMsgTxt("\nmxNAbcissaDataPointsPtr vector not allocated!--exiting\n");
	NAbcissaDataPointsPtr = mxGetPr(mxNAbcissaDataPointsPtr);
	*NAbcissaDataPointsPtr = (double) CHIPS_PER_FRAME / (double) CHIPS_PER_FADE_SAMPLES;
	if ( *NAbcissaDataPointsPtr < (double) MIN_FADE_RECORD_LENGTH )
		*NAbcissaDataPointsPtr = (double) MIN_FADE_RECORD_LENGTH;

	*mxRightHandSide = mxfDopplerPtr;
	*(mxRightHandSide + 1) = mxFadeSampleRatePtr;
	*(mxRightHandSide + 2) = mxNAbcissaDataPointsPtr;

	TempAmpPtr = AmpPtr;
	TempDelayPtr = DelayPtr;

	for (i = 0; i < NDelays; i++)
	{
		if ( (ReturnFlag = mexCallMATLAB(1,mxLeftHandSide,3,mxRightHandSide,"rayleigh")) != NULL)
			mexErrMsgTxt("\nCall to Matlab Function rayleigh failed\n");

		RealFadeSamplesPtr = mxGetPr(*mxLeftHandSide);
		ImagFadeSamplesPtr = mxGetPi(*mxLeftHandSide);

		TempRealFadeSamplesPtr = RealFadeSamplesPtr;
		TempImagFadeSamplesPtr = ImagFadeSamplesPtr;

		TempRealSigPtr = RealSigPtr + NSig - (int) *TempDelayPtr;
		TempImagSigPtr = ImagSigPtr + NSig - (int) *TempDelayPtr;

		FadeDelayRatio = (double) *TempDelayPtr / ((double) CHIPS_PER_FADE_SAMPLES * (double) SamplesPerChip);
		INTFadeDelayRatio = (unsigned long) floor(FadeDelayRatio);

////////////////////////////////////////////////////
// Debug Code
//		RealMPathComponentPtr = (double *) calloc(NSig,sizeof(double));
//		ImagMPathComponentPtr = (double *) calloc(NSig,sizeof(double));
//		TempRealMPathComponentPtr = RealMPathComponentPtr;
//		TempImagMPathComponentPtr = ImagMPathComponentPtr;
// End Debug Code
////////////////////////////////////////////////////////

		TempRealMpathPtr=RealMpathPtr;
		TempImagMpathPtr=ImagMpathPtr;

		for (j = 0; j < INTFadeDelayRatio; j++)
		{
			for (k = 0; k < Increment; k++)
			{
////////////////////////////////////////////////////
// Debug Code
//				*TempRealMPathComponentPtr++ = (*TempRealFadeSamplesPtr * *TempRealSigPtr)
//											- (*TempImagFadeSamplesPtr * *TempImagSigPtr);
//				*TempImagMPathComponentPtr++ = (*TempRealFadeSamplesPtr * *TempImagSigPtr)
//											+ (*TempImagFadeSamplesPtr * *TempRealSigPtr);
// End Debug Code
////////////////////////////////////////////////////////

				*TempRealMpathPtr++ += (*TempRealFadeSamplesPtr * *TempRealSigPtr)
										- (*TempImagFadeSamplesPtr * *TempImagSigPtr);
				*TempImagMpathPtr++ += (*TempRealFadeSamplesPtr * *TempImagSigPtr++)
											+ (*TempImagFadeSamplesPtr * *TempRealSigPtr++);
			}
			TempRealFadeSamplesPtr++;
			TempImagFadeSamplesPtr++;
		}

		faa = *TempDelayPtr - (Increment * INTFadeDelayRatio);
		for (j=0; j < faa; j++)
		{
////////////////////////////////////////////////////
// Debug Code
//			*TempRealMPathComponentPtr++ = (*TempRealFadeSamplesPtr * *TempRealSigPtr)
//										- (*TempImagFadeSamplesPtr * *TempImagSigPtr);
//			*TempImagMPathComponentPtr++ = (*TempRealFadeSamplesPtr * *TempImagSigPtr)
//										+ (*TempImagFadeSamplesPtr * *TempRealSigPtr);
// End Debug Code
////////////////////////////////////////////////////////

			*TempRealMpathPtr++ += (*TempRealFadeSamplesPtr * *TempRealSigPtr)
									- (*TempImagFadeSamplesPtr * *TempImagSigPtr);
			*TempImagMpathPtr++ += (*TempRealFadeSamplesPtr * *TempImagSigPtr++)
									+ (*TempImagFadeSamplesPtr * *TempRealSigPtr++);
		}

		TempRealSigPtr = RealSigPtr;
		TempImagSigPtr = ImagSigPtr;
		for (j = faa; j < Increment; j++)
		{
////////////////////////////////////////////////////
// Debug Code
//			*TempRealMPathComponentPtr++ = (*TempRealFadeSamplesPtr * *TempRealSigPtr)
//										- (*TempImagFadeSamplesPtr * *TempImagSigPtr);
//			*TempImagMPathComponentPtr++ = (*TempRealFadeSamplesPtr * *TempImagSigPtr)
//										+ (*TempImagFadeSamplesPtr * *TempRealSigPtr);
// End Debug Code
////////////////////////////////////////////////////////

			*TempRealMpathPtr++ += (*TempRealFadeSamplesPtr * *TempRealSigPtr)
									- (*TempImagFadeSamplesPtr * *TempImagSigPtr);
			*TempImagMpathPtr++ += (*TempRealFadeSamplesPtr * *TempImagSigPtr++)
									+ (*TempImagFadeSamplesPtr * *TempRealSigPtr++);
		}
		TempRealFadeSamplesPtr++;
		TempImagFadeSamplesPtr++;

		faa1 = INTFadeDelayRatio +1;
		faa=(FadeSamplesPerFrame-1);
		for (j = faa1; j < faa; j++)
		{
			for (k = 0; k < Increment; k++)
			{
////////////////////////////////////////////////////
// Debug Code
//				*TempRealMPathComponentPtr++ = (*TempRealFadeSamplesPtr * *TempRealSigPtr)
//											- (*TempImagFadeSamplesPtr * *TempImagSigPtr);
//				*TempImagMPathComponentPtr++ = (*TempRealFadeSamplesPtr * *TempImagSigPtr)
//											+ (*TempImagFadeSamplesPtr * *TempRealSigPtr);
// End Debug Code
////////////////////////////////////////////////////////

				*TempRealMpathPtr++ += (*TempRealFadeSamplesPtr * *TempRealSigPtr)
										- (*TempImagFadeSamplesPtr * *TempImagSigPtr);
				*TempImagMpathPtr++ += (*TempRealFadeSamplesPtr * *TempImagSigPtr++)
										+ (*TempImagFadeSamplesPtr * *TempRealSigPtr++);
			}
			TempRealFadeSamplesPtr++;
			TempImagFadeSamplesPtr++;
		}

		for (j = 0; j < (Increment + RemainingSamples); j++)
		{
////////////////////////////////////////////////////
// Debug Code
//			*TempRealMPathComponentPtr++ = (*TempRealFadeSamplesPtr * *TempRealSigPtr)
//										- (*TempImagFadeSamplesPtr * *TempImagSigPtr);
//			*TempImagMPathComponentPtr++ = (*TempRealFadeSamplesPtr * *TempImagSigPtr)
//										+ (*TempImagFadeSamplesPtr * *TempRealSigPtr);
// End Debug Code
////////////////////////////////////////////////////////

			*TempRealMpathPtr++ += (*TempRealFadeSamplesPtr * *TempRealSigPtr)
									- (*TempImagFadeSamplesPtr * *TempImagSigPtr);
			*TempImagMpathPtr++ += (*TempRealFadeSamplesPtr * *TempImagSigPtr++)
									+ (*TempImagFadeSamplesPtr * *TempRealSigPtr++);
		}
////////////////////////////////////////////////////
// Debug Code
//		fp=fopen("fade.txt","w");
//		for (k = 0; k < *NAbcissaDataPointsPtr; k++) 
//			fprintf(fp,"%g %g \n",*(RealFadeSamplesPtr+k),*(ImagFadeSamplesPtr+k));
//		fclose(fp);
//	
//		fp=fopen("BeforeFade.txt","w");
//		for (k=0; k < NSig; k++)
//			fprintf(fp,"%g %g \n",*(RealSigPtr+k),*(ImagSigPtr+k));
//		fclose(fp);
//
//		fp=fopen("AfterFade.txt","w");
//		for (k=0; k < NSig; k++)
//			fprintf(fp,"%g %g\n",*(RealMPathComponentPtr+k),*(ImagMPathComponentPtr+k));
//		fclose(fp);
//		free(RealMPathComponentPtr);
//		free(ImagMPathComponentPtr);
// End Debug Code
////////////////////////////////////////////////////////

		TempAmpPtr++;
		TempDelayPtr++;


	}

////////////////////////////////////////////////////
// Debug Code
//	fp=fopen("MPathSig.txt","w");
//	for (k=0; k < NSig; k++)
//		fprintf(fp,"%g %g\n",*(RealMpathPtr + k),*(ImagMpathPtr + k));
//	fclose(fp);
// End Debug Code
////////////////////////////////////////////////////////

	mxDestroyArray(mxFadeSampleRatePtr);
	mxDestroyArray(mxfDopplerPtr);
	mxDestroyArray(mxNAbcissaDataPointsPtr);
}


?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品在线观看视频| 99久久婷婷国产| 91精品国产高清一区二区三区蜜臀 | 中文字幕在线不卡一区| 国产成人亚洲综合a∨猫咪| 国产视频一区在线播放| 波波电影院一区二区三区| 国产精品二区一区二区aⅴ污介绍| 成人听书哪个软件好| 亚洲男人的天堂在线观看| 欧洲精品中文字幕| 热久久一区二区| 久久免费视频色| 91视频xxxx| 五月天精品一区二区三区| 日韩美女视频在线| 成人av电影免费观看| 亚洲区小说区图片区qvod| 欧美日韩高清一区二区| 国产综合色产在线精品| 中文字幕亚洲一区二区av在线| 欧美亚洲动漫精品| 激情深爱一区二区| 亚洲日穴在线视频| 日韩一区二区三区av| 波多野结衣中文字幕一区| 亚洲制服丝袜av| 久久久久久久精| 91网站黄www| 91国产免费看| 日韩1区2区日韩1区2区| 中文字幕不卡的av| 91精品在线免费| 99精品欧美一区二区三区综合在线| 亚洲成人激情av| 欧美激情艳妇裸体舞| 欧美丰满少妇xxxbbb| 国产99久久久国产精品潘金网站| 亚洲一区二区三区爽爽爽爽爽| 精品播放一区二区| 欧美日韩欧美一区二区| 成人免费视频app| 另类中文字幕网| 亚洲一区二区av电影| 中文在线一区二区| 日韩精品一区国产麻豆| 在线亚洲高清视频| av综合在线播放| 国产一区二区不卡| 免费看欧美女人艹b| 亚洲午夜私人影院| 综合av第一页| 中文字幕欧美国产| 欧美xxxxxxxxx| 亚洲私人黄色宅男| 久久久久综合网| 91久久精品网| 国产一本一道久久香蕉| 石原莉奈在线亚洲二区| 高清不卡在线观看| 亚洲成人免费电影| 国产日韩成人精品| 日韩欧美精品在线视频| 久久免费精品国产久精品久久久久| 久久蜜桃香蕉精品一区二区三区| 国产三区在线成人av| 亚洲免费在线观看| 午夜欧美在线一二页| 国内精品久久久久影院色| 国产成人亚洲综合a∨婷婷| 色综合久久66| 日韩一级片网址| 久久久精品综合| 一区二区欧美在线观看| 欧美bbbbb| 日韩视频不卡中文| 国产精品黄色在线观看| 偷拍一区二区三区四区| 国产麻豆精品95视频| 在线观看日韩电影| 2021国产精品久久精品| 一区二区三区中文在线| 麻豆久久久久久久| 色综合久久综合中文综合网| 91精品国产品国语在线不卡| 国产精品污污网站在线观看 | 亚洲不卡av一区二区三区| 久久99精品国产.久久久久| 不卡一区二区三区四区| 91精品久久久久久久91蜜桃| 亚洲国产高清aⅴ视频| 亚洲成人一区二区| 粉嫩绯色av一区二区在线观看 | 正在播放亚洲一区| 国产精品私房写真福利视频| 午夜精品久久久久久久久久久| 国产夫妻精品视频| 欧美日韩大陆一区二区| 中文字幕一区二| 久草热8精品视频在线观看| 在线视频你懂得一区二区三区| 欧美xfplay| 视频一区在线视频| 一本色道亚洲精品aⅴ| 久久午夜羞羞影院免费观看| 午夜久久久久久电影| 99国产精品久久久久久久久久久| 欧美一卡二卡在线| 亚洲在线观看免费| 99久久国产综合精品色伊| 精品国产一区二区三区av性色 | 欧美韩日一区二区三区| 免费的国产精品| 欧美美女一区二区在线观看| 亚洲欧洲日韩av| 丁香另类激情小说| 2020日本不卡一区二区视频| 日本不卡视频在线| 精品视频999| 亚洲激情校园春色| 92国产精品观看| 中文字幕一区二区三区不卡| 丁香六月久久综合狠狠色| xnxx国产精品| 精品一二三四在线| 日韩免费观看高清完整版在线观看| 亚洲午夜私人影院| 欧美四级电影网| 一区二区久久久久久| 日本国产一区二区| 亚洲欧美日韩国产成人精品影院| eeuss鲁一区二区三区| 国产日韩欧美高清在线| 国产精品一区免费视频| 久久综合一区二区| 国产乱色国产精品免费视频| 337p粉嫩大胆噜噜噜噜噜91av | 蜜乳av一区二区| 日韩欧美一区二区视频| 男男gaygay亚洲| 日韩精品专区在线影院重磅| 日本美女一区二区| 欧美成va人片在线观看| 激情综合网天天干| 久久久精品免费免费| 国产成人在线网站| 中文一区二区在线观看| 91在线码无精品| 夜夜嗨av一区二区三区| 欧美日韩日日夜夜| 久久精品免费观看| 久久久不卡网国产精品二区 | 91精品视频网| 国内偷窥港台综合视频在线播放| 久久综合九色综合久久久精品综合| 国产在线精品一区二区三区不卡| 久久久久国产精品免费免费搜索| 国产成a人亚洲精品| 亚洲伦理在线免费看| 欧美人成免费网站| 久久99精品网久久| 国产精品每日更新| 91极品美女在线| 免费成人结看片| 国产区在线观看成人精品| 色综合久久久网| 日韩精品一级中文字幕精品视频免费观看 | 国产精华液一区二区三区| 国产精品国产三级国产普通话99| 在线观看视频一区二区| 免费的成人av| 国产精品国产精品国产专区不蜜| 色噜噜久久综合| 麻豆高清免费国产一区| 国产精品―色哟哟| 欧美日韩一区视频| 国产精品原创巨作av| 一区二区三区日韩欧美精品| 日韩一级视频免费观看在线| 成人看片黄a免费看在线| 午夜久久电影网| 国产精品狼人久久影院观看方式| 欧美视频第二页| 国产成人综合亚洲网站| 性感美女久久精品| 久久久国产精华| 欧美久久久久久久久中文字幕| 国产91丝袜在线18| 午夜天堂影视香蕉久久| 国产日韩精品一区二区浪潮av| 欧美亚洲综合网| 国产精品亚洲成人| 亚洲mv大片欧洲mv大片精品| 国产日韩欧美高清在线| 91精品欧美一区二区三区综合在| 成人黄色免费短视频| 麻豆91在线播放免费| 亚洲午夜久久久久久久久电影网| 久久久久一区二区三区四区| 欧美精品三级在线观看|