没有合适的资源?快使用搜索试试~ 我知道了~
首页TMS320F2812 DSP的FFT运算和DCT实现
TMS320F2812 DSP的FFT运算和DCT实现
294 浏览量
更新于2023-05-28
评论 2
收藏 416KB PDF 举报
介绍了快速傅里叶变换(FFT)算法的原理,利用DSP实现了FFT算法,利用TMS320F2812 DSP内部的ADC模块与事件管理器的定时器实现信号的实时采集。分析了DSP中数据采集ADC的功能。基于CCS调试软件显示了输入输出信号波形。在CCS环境下,采用C语言编程,实现了FFT算法和离散余弦变换。
资源详情
资源评论
资源推荐

TMS320F2812 DSP的的FFT运算和运算和DCT实现实现
介绍了快速傅里叶变换(FFT)算法的原理,利用DSP实现了FFT算法,利用TMS320F2812 DSP内部的ADC模
块与事件管理器的定时器实现信号的实时采集。分析了DSP中数据采集ADC的功能。基于CCS调试软件显示了
输入输出信号波形。在CCS环境下,采用C语言编程,实现了FFT算法和离散余弦变换。
摘摘 要:要: 介绍了
关键词:关键词: DSP;快速傅里叶变换;A/D转换;离散余弦变换
傅里叶变换是一种将信号从时域变换到频域的变换方式,而快速傅里叶变换FFT(Fast Fourier Transform)是数字信号处理
技术的基石。FFT和离散余弦变换DCT(Discrete Cosine Transform)都是数字信号处理技术中的基本算法,也是数字信号处
理的基本工具。DSP芯片的出现使FFT和DCT的实现更为方便。本文利用TMS320F2812 DSP内部的ADC模块与事件管理器
(EVA)构建了数据采集与数据变换并行处理的信号处理系统,充分利用TMS320F2812强大的数据处理能力,实现了FFT运
算,提高了运算速度[1-2]。
1 FFT算法的实现算法的实现
TI公司的TMS320F2812 DSP是目前控制领域性能较高的处理器,它将各种高级数字控制功能集成于一块芯片上,整合了
Flash存储器、快速的A/D转换器等外设,强大的数据处理和控制能力大幅度提高了应用效率。
1.1 数据采集数据采集ADC功能功能
DSP系统的模拟输入电压范围为0~3 V。通过使用事件管理器的定时器1下溢中断启动ADC。系统设计时晶振为30 MHz,
经过锁相环倍频后CPU时钟频率SYSCLKOUT是150 MHz,事件管理器采用高速外设时钟HSPCLK,经过程序设计6分频得到
高速外设时钟HSPCLK为25 MHz。
SysCtrlRegs.HISPCP.all=0x3;//HSPCLK= SYSCLKOUT/6
将事件管理器中通用定时器1的周期寄存器值设置为0x07FF,每经过2 048(0x07FF+1)个通用定时器的时钟周期启动一次
ADC。事件管理器中的通用定时器1由于没有对高速外设时钟分频,因此通用定时器1的时钟频率为25 MHz。
EvaRegs.T1PR=0x07FF;//设置通用定时器1周期寄存器
EvaRegs.GPTCONA.bit.T1TOADC=1;
//通用定时器1启动ADC
EvaRegs.T1CON.all=0x1042;
//通用定时器1连续增计数模式,不分频,采用HSPCLK
为了实现数据采集,设置ADC工作在级联排序器模式,最大转换通道数为1,并且采集数据来自通道ADCINA4,使能事件管理
器EVA的触发信号启动ADC排序器SEQ1,允许ADC产生中断。相关程序设计如下。
AdcRegs.ADCTRL1.bit.SEQ_CASC=1;//级联排序器模式
AdcRegs.ADCMAXCONV.all=0x0000;
//设置1个转换通道AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x4;
//设置转换通道ADCINA4
AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1;
//使能EVA的触发信号启动排序器SEQ1
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;
//使能SEQ1产生的中断请求
当事件管理器的通用定时器1产生下溢中断时,启动ADC。在ADC转换完成中断服务程序中读取12 bit A/D转换结果。程序设
计如下:
interrupt void adc_isr(void)
{
px[ConversionCount]=AdcRegs.ADCRESULT0>>4;
if(ConversionCount==128)
{ConversionCount=0;}
else ConversionCount++;
AdcRegs.ADCTRL2.bit.RST_SEQ1=1;
//复位排序器SEQ1
AdcRegs.ADCST.bit.INT_SEQ1_CLR=1;
//清除排序器SEQ1中断标志位
PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;
//写1清零中断应答寄存器PIEACK相应位,
//以便能够响应该组随后的中断
return;
}
1.2 FFT算法原理与程序流程图算法原理与程序流程图
FFT是DFT的快速运算。由于有些信号在时域很难看出特性,使用FFT将其变换到频域,就会很容易看出其特性。DFT算法
的基本公式为:


















weixin_38745648
- 粉丝: 7
- 资源: 910
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0