⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transmitter.cpp

📁 扩展的直序扩频系统
💻 CPP
字号:
#include "Common.h"

void Transmit()
{
	int i=0,j=0,k=0,p=0;
	int TxPsdu[PSDU_LENGTH_BIT] = {0};
	complex TxSymbol[1] = {0.f, 0.f};
	complex SpreadSignal[Ns] = {0.f, 0.f};
	complex TxSignal[Ns*PULSE_SIZE] = {0.f, 0.f};
	complex SFDsequence[PREAMBLE_LENGTH] = {0.,0.};
	complex msequence[PREAMBLE_LENGTH] = {0.f, 0.f};

	int DataBin[BPS] = {0};

	FILE *fpt_TxSignal,*fpt_TxPsdu;
	

	/***************generate data bits**********/
	fpt_TxPsdu = fopen("TxBitStream.dat","wb");

    #if (RANDOM_flag == 1)
		for(i = 0; i < PSDU_LENGTH_BIT; i ++)
		{
			TxPsdu[i] = (int)((rand()+1.0)/32768.0+0.5);              
		}
	#else
		memset(TxPsdu, 0, sizeof(int)*PSDU_LENGTH_BIT);
	#endif

	fwrite(TxPsdu,sizeof(int)*PSDU_LENGTH_BIT,1,fpt_TxPsdu);      //save data bits to a file       
	fclose(fpt_TxPsdu);

	/**************generate the packet**************/
	fpt_TxSignal = fopen("TxSignal.dat","wb");

	Gen_msequence(msequence);

	/*******Write Training sequences to the packet********************/	
	for (i=0; i<TRAINING_TIMES; i++)
	{
		fwrite(msequence, sizeof(complex), PREAMBLE_LENGTH,fpt_TxSignal);
	}
	
	/*******Write SFD to the packet ********************/
	for(i=0; i<PREAMBLE_LENGTH; i++)
	{
		SFDsequence[i] = ComplexMulR(msequence[i], -1.);
	}
	fwrite(SFDsequence, sizeof(complex), PREAMBLE_LENGTH, fpt_TxSignal);

	/*******Write Data bits to the packet*******************/	

	for(i=0;i<PSDU_LENGTH_SYM;i++)
	{
		for(j=0;j<BPS;j++)
		{
			DataBin[j] = TxPsdu[BPS*i + j];
		}
		/************** Mapping *************************/
		Modulation(DataBin,TxSymbol);
		/*************spreading spectrum****************/
		SpreadSprectrum(TxSymbol,SpreadSignal);
		/**************pulse shaping*********************/
		PulseShaping(SpreadSignal,TxSignal);
	
		fwrite(TxSignal,sizeof(complex),Ns*PULSE_SIZE,fpt_TxSignal);
		memset(SpreadSignal,0,sizeof(complex)*Ns);
		memset(TxSignal,0,sizeof(complex)*Ns*PULSE_SIZE);			
	}

	memset(SpreadSignal,0,sizeof(complex)*Ns);

	for(i=0;i<Num_Reserved_Chip;i++)       //预留给过多径信道,且接收机作RAKE时使用
	{
		fwrite(SpreadSignal,sizeof(complex)*PULSE_SIZE,1,fpt_TxSignal);
	}
	fclose(fpt_TxSignal);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -