日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dsp产生正弦波 c语言,TMS320C5502多波形发生器源程序 可产生正弦波,锯齿波等

發布時間:2024/4/19 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dsp产生正弦波 c语言,TMS320C5502多波形发生器源程序 可产生正弦波,锯齿波等 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

/*? ?文件名: Taylorsine.c (將sineCODEC和sinecompute合并,實現計算并實時輸出)? ?? ?*/

/*? ?創建時間:10/05/2012? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? */

/*? ?功能描述:利用Taylor展開式法計算正弦波,并將信號從J6端口發送出去,平臺為BJTU-DSP5502板*/

/*? ?作者: 錢滿義myqian@bjtu.edu.cn 北京交通大學電信學院電工電子教學基地? ?? ?? ???*/

/*? ?修改者 hailingao , 06/25? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? */

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

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

//#include "E2PROM_Function.h"

#include "CODEC.h"

#define Nx 360? ?? ?? ?? ? //每周期抽取點數

#pragma DATA_SECTION(output1,"data_out1");? ? //存放sin數據,浮點型

float output1[Nx];

#pragma DATA_SECTION(output,"data_out");? ? //存放sin數據,定點型

int output[Nx];

#undef??CODEC_ADDR

#define CODEC_ADDR 0x1A

// 定義McBSP的句柄

MCBSP_Handle hMcbsp;

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

//

// FUNCTION: MAIN

//

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

void main(void)

{

Uint16??i,k=0;

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=3.1415926*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;

// g=x1*(1-xx/2/3*(1-xx/4/5*(1-xx/6/7*(1-xx/8/9*(1-xx/10/11*(1-xx/12/13*(1-xx/14/15*(1-xx/16/17))))))));//數學總公式

// fprintf(stdout,"COMPUTE%f",ii); fprintf(stdout,"\n??");? ?//輸出計算的正弦波的數值,x2=e

output1[i]= 32767*ii; //利用泰勒級數計算出正弦波的數值,存放到output1中

output[i]=output1[i];

}

// 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();

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

// Receive the ADC output data of CODEC

// Then output the received data to DAC of CODEC

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

while(1)

{

while(!MCBSP_xrdy(hMcbsp)) {};

MCBSP_write16(hMcbsp, output[k]);? ? ? ? ? ? ? ? //左聲道輸出

while(!MCBSP_xrdy(hMcbsp)) {};

MCBSP_write16(hMcbsp, output[k]);? ?? ???//右聲道輸出

//? ?? ???k=k+1;? ? //正弦波每周期的樣點為360個,輸出信號的頻率為Fs/N=32000/360=88.89Hz

k=k+10;? ? //正弦波每周期的樣點為36個,輸出信號的頻率為Fs/N=32000/36=888.9Hz

if (k>=Nx) k=k%Nx;

……………………

…………限于本文篇幅 余下代碼請從51黑下載附件…………

總結

以上是生活随笔為你收集整理的dsp产生正弦波 c语言,TMS320C5502多波形发生器源程序 可产生正弦波,锯齿波等的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。