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

📄 amgen.cpp

📁 三种模拟调制与解调的算法
💻 CPP
字号:
// AMGen.cpp: implementation of the AMGen class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "mod_demod.h"
#include "AMGen.h"
#include "head.h"
#include "SourceGenClass.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
AMGen::AMGen(CString pnameModel,			CString ptypeModel,
		long	vmodelSampleFreq,	long	vinputSampleFreq,
		int	    vtimeStep,			CString pnameGetDataFile,
		CString	pnamePutDataFile,	double	vampCarrier,
		long	vfreqCarrier,		double	vphaseCarrier,
		double	vModPara):
ModBaseClass(pnameModel,ptypeModel,
		vmodelSampleFreq,	vinputSampleFreq,
		vtimeStep,		    pnameGetDataFile,
		pnamePutDataFile,	vampCarrier,
		vfreqCarrier,		vphaseCarrier,
		vModPara)
{
}

AMGen::~AMGen()
{
}
void AMGen::run()
{
	double	dt;
	long	num_of_scan,i;
	float  *fn;
	dt=1.0/inputSampleFreq;
	num_of_scan=(long) timeStep/1000.0*inputSampleFreq;

	//begin to modulate
	fn=getData(nameGetDataFile,1,num_of_scan);
	if (!fn)
	{
		cout<<"when read "<<nameGetDataFile<<" error occured.\n";
		getch();
		exit(1);
	}
	for(i=0;i<num_of_scan;i++)
		*(fn+i)=ampCarrier*(1+ModPara*(*(fn+i)))*cos(2*pi*freqCarrier*i*dt+phaseCarrier);
	if(putData(fn,namePutDataFile,num_of_scan)==FALSE)
	{
		free(fn);
		cout<<"when save the modulation data,error occured.\n";
		getch();
		exit(1);
	}
	free(fn);
	cout<<"AM modulate complete.\n";
	
}


⌨️ 快捷键说明

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