DSP与数字信号处理作业.docx
- 文档编号:1393110
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:11
- 大小:86.11KB
DSP与数字信号处理作业.docx
《DSP与数字信号处理作业.docx》由会员分享,可在线阅读,更多相关《DSP与数字信号处理作业.docx(11页珍藏版)》请在冰豆网上搜索。
DSP与数字信号处理作业
1、什么是DSP?
简述DSPs的特点?
简述DSPs与MCU、FPGA、ARM的区别?
学习DSP开发需要哪些知识?
学习DSP开发需要构建什么开发环境?
(15分)
答:
(1)DSP是DigitalSignalProcessing(数字信号处理的理论和方法)的缩写,同时也是DigitalSignalProcessor(数字信号处理的可编程微处理器)的缩写。
通常流过器件的电压、电流信号都是时间上连续的模拟信号,可以通过A/D器件对连续的模拟信号进行采样,转换成时间上离散的脉冲信号,然后对这些脉冲信号量化、编码,转化成由0和1构成的二进制编码,也就是常说的数字信号。
DSP能够对这些数字信号进行变换、滤波等处理,还可以进行各种各样复杂的运算,来实现预期的目标。
(2)DSP既然是特别适合于数学信号处理运算的微处理器,那么根据数字信号处理的要求,DSP芯片一般具有下面所述的主要特点:
1)程序空间和数据空间分开,CPU可以同时访问指令和数据;
2)在一个指令周期内可以完成一次乘法和一次加法运算;
3)片内具有快速RAM,通常可以通过独立的数据总线在程序空间和数据空间同时访问;
4)具有低开销和无开销循环及跳转的硬件支持;
5)具有快速的中断处理和硬件I/O支持;
6)可以并行执行多个操作;
7)支持流水线操作,使得取址、译码和执行等操作可以重复执行。
(3)DSP采用的是哈佛结构,数据空间和存储空间是分开的,通过独立的数据总线在数据空间和程序空间同时访问。
而MCU采用的是冯·诺依曼结构,数据空间和存储空间共用一个存储器空间,通过一组总线(地址总线和数据总线)连接到CPU)。
很显然,在运算处理能力上,MCU不如DSP;但是MCU价格便宜,在对性能要求不是很高的情况下,还是很具有优势的。
ARM是AdvancedRISC(精简指令集)Machines的缩写是面向低运算市场的RISC微处理器。
ARM具有比较强的事务管理功能,适合用来跑跑界面、操作系统等,其优势主要体现在控制方面,像手持设备90%左右的市场份额均被其占有。
而DSP的优势是其强大的数据处理能力和较高的运算速度,例如加密/解密、调制/解调等。
FPGA是FieldProgrammableGateArray(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路中集成度最高的一种。
FPGA采用了逻辑单元阵列LCA(LogicalCellArray)的概念,内部包括了可配置逻辑模块CLB、输入/输出模块IOB、内部连线三个部分。
用户可以对FPGA内部的逻辑模块和I/O模块进行重置配置,已实现用户自己的逻辑。
它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。
使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性;同时FPGA可以用VHDL或VerilogHDL来编程,灵活性强。
由于FPGA能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。
当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级和除错。
但价格比较高。
(4)无论学习哪一款微处理器,无关乎两个部分:
一个是硬件,一个是软件。
硬件部分,最好有过MCU或者ARM之类相关微处理器的开发经验,因为硬件上,各个处理器之间是有许多共同点的,设计时处理的方法很多是一样的。
软件部分,需要会C或者C++,当然,如果会汇编更好。
除了这两方面的技能之外,如果在信号处理理论方面有一些基础,例如知道时域与频域、s域、z域的变换,知道FFT、各种数字滤波器的知识。
(5)CCS(CodeComposerStudio)是开发DSP时所需的软件开发环境,即编写、调试DSP代码都需要在CCS软件中进行。
2、经典的数字信号处理的算法主要包括哪些内容?
试分别简述之?
(15分)
答:
经典的数字信号处理的算法主要包括FFT算法、DET算法和CORDIC算法。
FFT算法是一种DFT的高效算法,称为快速傅立叶变换(fastFouriertransform)。
FFT算法可分为按时间抽取算法和按频率抽取算法;
DFT,离散傅立叶变换,是一种针对离散信号进行的变换,适合计算机数据处理的要求,将一个长度为N离散的信号,分解为N/2+1个余弦波和N/2+1个正弦波。
CORDIC(CoordinateRotationDigitalComputer)算法即坐标旋转数字计算方法,是J.D.Volder1于1959年首次提出,主要用于三角函数、双曲线、指数、对数的计算。
该算法通过基本的加和移位运算代替乘法运算,使得矢量的旋转和定向的计算不再需要三角函数、乘法、开方、反三角、指数等函数。
3、简述TI公司的DSPs的产品系列及其应用范围?
(15分)
答:
目前,TI公司在市场上主要有三大系列DSP产品:
1)TMS320C2000系列,面向数字控制、运动控制领域,主要包括:
TMS320C24xx/TMS320F24xx、TMS320C28xx/TMS320F28xx等。
2)TMS320C5000系列,面向低功耗、手持设备、无线终端应用领域,主要包括:
TMS320C54x、TMS320C54xx、TMS320C55xx等。
3)TMS320C6000系列,面向高性能、多功能、复杂应用领域,例如图像处理,主要包括:
TMS320C62xx、TMS320C64xx、TMS320C67xx等。
此外,还有面向低端应用。
价格可以和MCU竞争、功能稍微减弱的Piccolo平台的产品,主要有TMS320F2803x/2x。
面向高端视频处理的达芬奇平台,例如DM642/DM6437/DM6467DENG,有面向移动终端的双核处理器OMAP平台,例如OMAP3530。
4、结合MATLAB、DSP技术谈谈基于DSPs的FFT的开发过程?
(15分)
答:
MATLAB中已经提供了FFT的算法,FFT可以采用直接调用的方式:
FFT正变换:
X=FFT(x);X=FFT(x,N);反变换x=IFFT(X);x=IFFT(X,N);实际DSP应用中,FFT采用的是按时间抽选的基2—FFT算法。
下图所示为8点DIT的FFT运算流图:
程序实现流程图如下所示:
5、结合自己的专业设计一种基于DSPs的数字信号处理系统。
要求包括硬件设计与软件设计,设计中的某个算法要求利用MATLAB进行仿真或者利用DSP的实验箱进行实现(40分)
答:
通过F28335DSP编程实现FFT和IFFT,给定模拟采样输入,进行256点的FFT变换和反变换。
程序及DSP运行结果波形如下:
#include"DSP2833x_Device.h"
#include"DSP2833x_Examples.h"
#include
#definepi3.141593//float小数点后6位
#defineNL256;
intN=NL;//FFT点数
floatInput[NL];//输入的信号序列
structComplex//定义复数结构体
{
floatreal,imag;
};
structComplexWn;//定义旋转因子
structComplexVn;//每一级第一个旋转因子虚部为0,实部为1
structComplexT;//存放旋转因子与X(k+B)的乘积
floatoutput[NL]={0};//输出的FFT幅值(复数的模)
structComplexSample[NL];//采样输入的实数转化为复数
structComplexMUL(structComplexa,structComplexb)//定义复乘
{
structComplexc;
c.real=a.real*b.real-a.imag*b.imag;
c.imag=a.real*b.imag+a.imag*b.real;
return(c);
}
voidMYiFFT(structComplex*xin,intN)//输入为复数指针*xin,做N点FFT
{
intL=0;//级间运算层
intJ=0;//级内运算层
intK=0,KB=0;//蝶形运算层
intM=1,Nn=0;//N=2^M
floatB=0;//蝶形运算两输入数据间隔
/*以下是为倒序新建的局部变量*/
intLH=0,J2=0,N1=0,I,K2=0;
structComplexT;
/*以下是倒序*/
LH=N/2;//LH=N/2
J2=LH;
N1=N-2;
for(I=1;I<=N1;I++)
{
if(I { T=xin[I]; xin[I]=xin[J2]; xin[J2]=T; } K2=LH; while(J2>=K2) { J2-=K2; K2=K2/2;//K2=K2/2 } J2+=K2; } /*以下为计算出M*/ Nn=N; while(Nn! =2)//计算出N的以2为底数的幂M { M++; Nn=Nn/2; } /*蝶形运算*/ for(L=1;L<=M;L++)//级间 { B=pow(2,(L-1)); Vn.real=1; Vn.imag=0; Wn.real=cos(pi/B); Wn.imag=sin(pi/B); for(J=0;J { for(K=J;K { KB=K+B; T=MUL(xin[KB],Vn); xin[KB].real=xin[K].real-T.real;//原址运算,计算结果存放在原来的数组中 xin[KB].imag=xin[K].imag-T.imag; xin[K].real=xin[K].real+T.real; xin[K].imag=xin[K].imag+T.imag; } Vn=MUL(Wn,Vn);//旋转因子做复乘相当于指数相加,得到的结果 //和J*2^(M-L)是一样的,因为在蝶形因子运算 //层中M与L都是不变的,唯一变x化的是级内的J //而且J是以1为步长的,如J*W等效于W+W+W...J个W相加 } } } voidMYFFT(structComplex*xin,intN)//输入为复数指针*xin,做N点FFT { intL=0;//级间运算层 intJ=0;//级内运算层 intK=0,KB=0;//蝶形运算层 intM=1,Nn=0;//N=2^M floatB=0;//蝶形运算两输入数据间隔 /*以下是为倒序新建的局部变量*/ intLH=0,J2=0,N1=0,I,K2=0; structComplexT; /*以下是倒序*/ LH=N/2;//LH=N/2 J2=LH; N1=N-2; for(I=1;I<=N1;I++) { if(I { T=xin[I]; xin[I]=xin[J2]; xin[J2]=T; } K2=LH; while(J2>=K2) { J2-=K2; K2=K2/2;//K2=K2/2 } J2+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 数字信号 处理 作业