DSP任意信号发生器的设计2012(优)(2)

2020-04-14 06:54

DSP综合性实验——任意信号发生器实验

#include #include #include #include #include

//#include \#include \

#define pi 3.14159265 #define N 360

#define F0 1000 //定义所求输出频率

#define amp 1 //调节信号幅度 #define L 0 //调节直流分量

#pragma DATA_SECTION(output1,\存放sin数据,浮点型 double output1[N];

#pragma DATA_SECTION(output,\存放sin数据,定点型 int output[N];

#undef CODEC_ADDR

#define CODEC_ADDR 0x1A

// 定义McBSP的句柄 MCBSP_Handle hMcbsp;

/*------------------------------------------------------------------------------------*/ //

// FUNCTION: MAIN //

/*------------------------------------------------------------------------------------*/

void main(void) {

float Nx=32000/F0*2; //Fs为32000Hz,Nx为抽样点数

第 6 页 共 42 页

DSP综合性实验——任意信号发生器实验

unsigned int i;

float input0=0,x1;

float a,b,c,d,e,f,g,h,ii,step;//step为角度步长

step=360.0/Nx; // Nx为360度内取样点数 /*****************新增函数段****************/

for(i=0;i<=Nx-1;i++) {

float angle,xx;

angle=input0+step*i;

x1=pi*angle/180; //角度转换为弧度 xx=x1*x1;

a=1-xx/16/17;b=1-xx/14/15*a;c=1-xx/12/13*b;d=1-xx/10/11*c;e=1-xx/8/9*d;f=1-xx/6/7*e;g=1-xx/4/5*f;h=1-xx/2/3*g;ii=x1*h; output1[i]=amp*32767*ii; //利用泰勒级数计算出正弦波前8项的数值,存放到output1中

output[i]=output1[i]/128+L; //除以128为使输出不溢出 }

// Initialize CSL library - This is REQUIRED !!! 初始化CSL库 CSL_init();

// The main frequency of system is 240MHz

// 该频率是为了设置IIC模块的需要设置的,为了使用I2C_setup函数 PLL_setFreq(1, 0xC, 0, 1, 3, 3, 0);

//EMIF初始化 Emif_Config();

// Open McBSP port 1 and get a McBSP type handle

hMcbsp = MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET);

// Config McBSP port 1 by use previously defined structure Mcbsp_Config(hMcbsp);

//I2C初始化

I2C_cofig();

//CODEC寄存器初始化 inti_AIC();

/*------------------------------------------------------------------------------------*/

第 7 页 共 42 页

DSP综合性实验——任意信号发生器实验

// Receive the ADC output data of CODEC

// Then output the received data to DAC of CODEC

/*------------------------------------------------------------------------------------*/

while(1) //循环产生波形 {

for(i=0;i

while(!MCBSP_xrdy(hMcbsp)) {};

MCBSP_write16(hMcbsp, output[i]); }

for(i=0;i

while(!MCBSP_xrdy(hMcbsp)) {}; MCBSP_write16(hMcbsp, output[i]); }

for(i=0;i

while(!MCBSP_xrdy(hMcbsp)) {}; MCBSP_write16(hMcbsp, output[i]); } } }

/******************************************************************************/

// No more

/******************************************************************************/

总之,该程序的算法依据的是正弦函数泰勒展开公式,根据公式得到每个点的值;

2.方波

#include #include

第 8 页 共 42 页

DSP综合性实验——任意信号发生器实验

#include

#include #include #include #include #include #include #include

//#include \#include \

#define N 1024

#define T 16 //设置调节频率

#pragma DATA_SECTION(fang,\double fang[N];

#pragma DATA_SECTION(dacdata,\int dacdata[N],outbuffer[N];

double t=0, dt;

float amp=40; //设置调节幅度 float L=5; //设置直流分量

#undef CODEC_ADDR #define CODEC_ADDR 0x1A

// 定义McBSP的句柄 MCBSP_Handle hMcbsp;

/*------------------------------------------------------------------------------------*/ //

// FUNCTION: MAIN //

/*------------------------------------------------------------------------------------*/ void main(void) {

第 9 页 共 42 页

DSP综合性实验——任意信号发生器实验

unsigned int i=0,j=0,k=0;

/*****************新增函数段*****************/

for(j=0;j

for(i=N/T*2*j;i

for(i=N/T*(2*j+1);i

for(i=0;i<=N;i++)

{ dacdata[i]=amp*fang[i]; outbuffer[i]=dacdata[i]+L; } }

// Initialize CSL library - This is REQUIRED !!! CSL_init();

// The main frequency of system is 240MHz

// 该频率是为了设置IIC模块的需要设置的,为了使用I2C_setup函数 PLL_setFreq(1, 0xC, 0, 1, 3, 3, 0);

//EMIF初始化 Emif_Config();

// Open McBSP port 1 and get a McBSP type handle hMcbsp = MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET);

// Config McBSP port 1 by use previously defined structure Mcbsp_Config(hMcbsp);

//I2C初始化 I2C_cofig();

//CODEC寄存器初始化 inti_AIC();

/*------------------------------------------------------------------------------------*/

第 10 页 共 42 页


DSP任意信号发生器的设计2012(优)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016春《学练优》人教版生物七年级下册练习 第一章 人的由来单元

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: