




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE 18摘要(zhiyo) 数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代(nindi)以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。随着微处理技术的快速发展,微处理器芯片的集成度从最早的几千个晶体管发展到现在的上亿个晶体管,字长从4位提高到了64位,正是这些技术的飞速发展引发了一轮又一
2、轮的信息产业革命,而人们的生活、学习和工作方式也在以计算机技术、通信技术为核心的信息技术的影响下发生着前所未有(qin su wi yu)的改变。然而在这次设计中,比较核心的是数字滤波器,数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域。滤波的目的。根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。与IIR滤波器相比,FIR滤波器只有零点,除原点外在z平面上没有极点,因此总是稳定的和可实现的;更重要的是,FIR滤波器在满足一定的对称条件下,可以获得严格的线性相位特性,这一点是IIR滤波器难以实现的。因此。
3、它在高保真的信号处理如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。对于本设计主要是利用一个DSP芯片来进行语音采集系统的设计,而数字信号处理技术的发展使得采用数字化的方法实时的处理语音信号成为可能。早期的语音信号处理均是采用模拟处理,对声音信号最常用的滤波、相关、谱分析等运算,部分采用模拟电路来实现的。这种传统的模拟方法处理语音信号,硬件设备昂贵,不能升级、产品生命周期短,而采用数字处理技术处理语音信号具有抗干扰性强、便于传输和处理等优点,代表着语音处理技术的发展方向。DSP芯片高速、可编程的特点使其非常适合于语音信号处理领域。 一、设计所用软件介绍 1.1 FIR滤波器及它的工
4、作原理 FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波器,是 HYPERLINK /view/162096.htm t /_blank 数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、 HYPERLINK /view/14685.htm t /_blank 模式识别等领域都有着广泛的应用。 在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,把模拟信号转化为数字信号;为了使信号处理能够不发生失真(
5、sh zhn),信号的采样速度必须满足奈奎斯特定理,一般取信号频率上限的4-5倍做为采样频率;一般可用速度较高的逐次逼进式A/D HYPERLINK /view/110440.htm t /_blank 转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列(xli),要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其 HYPERLINK /view/149970.htm t /_blank 并行
6、性和可扩展性更好,利用FPGA乘累加的快速算法(sun f),可以设计出高速的FIR HYPERLINK /view/163224.htm t /_blank 数字滤波器。 1.2 CCS软件 CCS(Code Composer Studio数据设计工作室)代码调试器是一种合成开发环境。 它是一种针对标准TMS320调试器接口的交互式方法。CCS目前有CCS1.1, CCS1.2 和CCS2.0等三个不同时期的版本,又有CC2000 ( 针对C2XX ),CCS5000 ( 针对C54XX )和CCS6000 (针对C6X )三个不同的型号。我们所使用的是CCS50002.0的版本。CCS50
7、00具有以下特性:TI编译器的完全集成的环境:CCS5000目标管理系统,内建编辑器,所有的调试和分析能力集成在一个Windows环境中。对C和DSP汇编文件(wnjin)的目标管理:目标编辑器保持对所有文件及相关内容的跟踪(gnzng)。它只对最近一次编译中改变过的文件重新编译,以节省编译时间。高集成(j chn)的编辑器调整C和DSP汇编代码:CCS5000的内建编辑器支持C和汇编文件的动态语法加亮显示。使用户能很容易地阅读代码和当场发现语法错误。编辑和调试时的后台编辑:用户在使用编译器和汇编器时没有必要退出系统到DOS环境中,因为CCS5000会自动将这些工具装载在它的环境中。在其窗口中
8、,错误会加亮显示只要双击错误就可以直接到达出错处。在含有浮点并行调试管理器(PDM)的原有的MS窗口下支持多处理器CCS5000在 Windows95和Windows-me中支持多处理。PDM(调试管理器)允许将命令传播给所有的或所选择的处理器。在任何算法点观察信号的图形窗口探针:图形显示窗口使用户能够观察时域或频域内的信号。对于频域图,FFT(快速傅立叶变换)在主机内执行,这样就可以观察所感兴趣的部分而无须改变它的DSP代码。图显示也可以同探针连接,当前显示窗口被更新时,探针被指定,这样当代码执行到达该点时,就可以迅速地观察到信号。文件探针在算法处通过文件提取或加入信号或数据:CCS5000
9、允许用户从PC机读或写信号流。而不是实时的读信号,这就可以用已知的例子来仿真算法。图形分析:CCS5000的图形分析能力在其环境中是集成的。在后台(系统命令)执行用户的DOS程序:用户可以执行CCS5000中的DOS程序,并将其输出以流水方式送到CCS5000的输出窗口。且允许用户将应用程序集成到CCS5000。技术状态观察窗口:CCS5000的可视窗口允许用户进入C表达式及相关变量。结构、数组、指针都能很简单地递归扩展和减少,以便进入复杂结构。代数分解窗口:允许用户选择查看写成代数表达式的C格式,提高可读性 。目标DSP上的帮助:DSP结构和寄存器上的在线帮助可以使用户不必查看技术手册。用户
10、扩展:扩展语言(GEL)使得(sh de)用户可以将自己的菜单项加到CCS5000的菜单栏中。 操作(cozu)流程图 1.3MATLAB软件(run jin)介绍MATLAB是美国 HYPERLINK /view/1855191.htm t /_blank MathWorks公司出品的商业 HYPERLINK /view/1658637.htm t /_blank 数学软件,用于算法开发、数据可视化、数据分析以及 HYPERLINK /view/920695.htm t /_blank 数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是ma
11、trix&laboratory两个词的 HYPERLINK /subview/67312/11247525.htm t /_blank 组合,意为矩阵工厂(矩阵实验室)。是由美国 HYPERLINK /view/1855191.htm t /_blank mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将 HYPERLINK /view/295760.htm t /_blank 数值分析、 HYPERLINK /view/2627393.htm t /_blank 矩阵计算、科学数据可视化以及非 HYPERLINK /view/300474.htm t
12、 /_blank 线性动态系统的 HYPERLINK /view/44500.htm t /_blank 建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式 HYPERLINK /view/128511.htm t /_blank 程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和 HYPERLINK /view/30608.htm t /_blank Mathematica、 HYPERLINK /subview/1278
13、64/15882715.htm t /_blank Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行 HYPERLINK /view/10337.htm t /_blank 矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、 HYPERLINK /view/642820.htm t /_blank 信号处理与通讯、 HYPERLINK /view/14662.htm t /_blank 图像处理、 HYPERLINK /view/1345304.htm t /_blank 信号检测、 HY
14、PERLINK /view/2659790.htm t /_blank 金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的 HYPERLINK /view/178461.htm t /_blank 指令 HYPERLINK /view/420676.htm t /_blank 表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C, HYPERLINK /view/36402.htm t /_blank FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的 HYPERLINK /view/1
15、658637.htm t /_blank 数学软件。在新的版本中也加入了对 HYPERLINK /subview/10075/6770152.htm t /_blank C, HYPERLINK /view/36402.htm t /_blank FORTRAN, HYPERLINK /view/824.htm t /_blank C+, HYPERLINK /subview/29/12654100.htm t /_blank JAVA的支持。 二、设计原理及步骤 2.1滤波器原理 数字滤波器有两类:IIR数字滤波器和FIR数字滤波器。FIR滤波器是有限长单位冲激响应滤波器,在结构上是非递归型
16、的。它可以在幅度特性随意设计的同时,保证精确严格(yng)的线性相位。线性相位特性在实际应用中非常重要,如在数据通信、图像处理、语音信号处理等领域,往往都要求具有线性相位特性。并且由于FIR 滤波器的单位脉冲响应有限长,系统不存在非稳定现象,我们总能用因果稳定系统来实现FIR 滤波器。FIR 主要的不足在于其较好的性能是以较高的阶数为代价换来的,对于相同的设计指标,FIR 滤波器所要求的阶数比IIR 滤波器高25 倍,信号的延迟偏大。因此,在保证相同性能的前提下,尽量降低其阶数是FIR 数字滤波器设计的目标之一。FIR滤波器是有限长单位冲激响应滤波器,它具有以下独特的优点:(1)可以在幅度特性
17、随意设计的同时,保证精确、严格的线性相位;避免被处理的信号产生相位失真,这一特点在宽频带信号处理、阵列信号处理、数据传输等系统中非常重要; (2)由于FIR滤波器的单位脉冲响应h(n)是有限长序列,因此FIR滤波器没有不稳定的问题; (3)由于FIR滤波器一般为非递归的结构,因此在有限精度运算下,不会出现递归结构中极性震荡等不稳定现象,误差较小。FIR滤波器的数学(shxu)表达式为: (2-1)式中:N为FIR滤波器的抽头数;x(n)为第n时刻(shk)的输入样本;h(i)为FIR滤波器第i级抽头系数。其相应的z变换为: (2-2)式中:z-i为N-1阶多项式。图2.1 FIR滤波器的直接(
18、zhji)型结构 2.2MATLAB设计(shj) 数字滤波器的设计可以使用MATLAB(线性代数计算)软件,它是一种功能强、效率高、便于进行科学和工程计算的交互式软件包。MATLAB中的工具箱(Toolbox)包含(bohn)许多实用的程序。滤波器设计就包含在Toolbox下的signal中。下面简单介绍一下用MATLAB设计FIR滤波器的方法。设计低通FIR滤波器(采用Hamming窗):B=FIR1(N,Wn)其中,N为滤波器的阶数,Wn为归一化截至频率,0.0WnExport to C Header File然后(rnhu)选择Export as:选择16位符号数,点击OK,将滤波器参
19、数存为头文件,打开头文件可以看到:/* * Filter Design and Analysis Tool - Generated Filter Coefficients - C Source * Generated by MATLAB - Signal Processing Toolbox */* General type conversion for MATLAB generated C-code */#include tmwtypes.h/* * Expected path to tmwtypes.h * D:MATLAB6p1externincludetmwtypes.h */* *
20、Warning - Filter coefficients were truncated to fit specified data type! * The resulting response may NOT match generated theoretical response. * Use the Filter Design & Analysis Tool to design accurate fixed-point * filter coefficients! */const int NL = 64;const int16_T NUM64 = -15, -28, -6, 31, 37
21、, -10, -64, -44, 54, 115, 28, -140, -166, 46, 269, 178, -206, -422, -97, 477, 551, -149, -872, -576, 679, 1429, 345, -1842, -2412, 803, 6794, 11599, 11599, 6794, 803, -2412, -1842, 345, 1429, 679, -576, -872, -149, 551, 477, -97, -422, -206, 178, 269, 46, -166, -140, 28, 115, 54, -44, -64, -10, 37,
22、31, -6, -28, -15;const int DL = 1;const int16_T DEN1 = 32767;const int16_T NUM64就是(jish)该滤波器的系数。 2.3操作步骤1连接好DSP开发系统,音频线连接计算机和AD50模块的输入,另一条音频线连接AD50模块输出(shch)和扬声器输入,或者用耳机连接AD50模块输出;调节RPC03可变电阻,使Uc02运放的正输入端(3脚和5脚)出场(ch chng)前以调好。输入电平为2.5V;把JC05跳到上面3.3V,AD50做Master;打开本实验工程文件(.ad50firad50.pjt),加滤波器:Type
23、LowPass(低通)或者(huzh)TypeHighPass(高通)或者TypeBandPass(带通)(此设置在主程序后部注意修改)编译(biny),下载(xi zi)程序到DSP; 运行程序.打开声卡信号源软件,用计算机产生扫频信号 6.调节R338调节音量按钮,使音量大小恰当;注意听AD50输出的声音,观察加滤波器后声音幅度与频率变化的关系。程序中的低通为3K,高通截至频率是1K,带通是1K3K。结果是当开始滤波时会滤出想要滤出的频率信号。 2.4总体设计框图(kungt)ADC信号输入缓冲区DSP信号输出缓冲区DACFLASHSRAM外部逻辑电 路PC机输入信号信号输出信号信号 三、
24、程序(chngx) #include 5410reg.h#include stdio.h#define fc_clock port2000#define LowPass 0#define HighPass 1#define BandPass 2ioport unsigned fc_clock;ioport unsigned temp;/McBSP2初始化表const unsigned short init_tblx2=0,0 x0000,1,0 x0200,/上两目使McBSP1处于(chy)复位状态2,0 x0040,3,0 x0000,4,0 x0040,5,0 x0000,6,0 x01
25、01,7,0 x2000,8,0 x0000,9,0 x0000,10,0 x0000,11,0 x0000,12,0 x0000,13,0 x0000,14,0 x000c,/下两目使McBSP 开始(kish)工作0,0 x0001,1,0 x0043;short *init_tbl=(short*)init_tblx;int mtmp;int Type;void Delay() int temp,ft; for(ft=0;ft100;ft+) for (temp=0;temp1000;temp+) ;void ShortDelay()int tmp;for(tmp=0;tmp100;tm
26、p+) ;void MainDelay(unsigned int count)int tmp;for(tmp=0;tmpcount;tmp+);void initMCBSP()int i;for(i=0;i17;i+)SPSA0=init_tbli*2+0;MCBSP0 =init_tbli*2+1;Delay();void initDMA()IMR=0X1000; /DMA 4通道(tngdo)中断使能asm(rsbx intm); / 开放所有(suyu)可屏蔽中断DMSA=0 x0014; / 选择(xunz)DMA4通道DMSRC1=0 x0031; / 设置串口1接收端为DMA事件的
27、源地址DMDST1=0 x2000; / 设置DMA事件的目的地址DMCTR1=0 x3000; /设置直接传送数据个数DMSFC1=0 x5000; / 设置DMA为多帧模式,源地址不调整目的地址按57h的值调整 DMSA=0 x0020; DMIDX0=0 x0001; /设置目的地址为自动加1调整 DMPERC=0 x1090; / 设置通道4为高优先级并使能通道4void WriteAD50(unsigned int Data)int tmp;tmp=fc_clock; while(fc_clock&0 x40)=0) ; asm ( nop); asm ( nop); fc_cloc
28、k=0 x12; asm ( nop); tmp=fc_clock; while(tmp&0 x40) tmp=fc_clock; /asm ( nop); tmp=fc_clock; while(tmp&0 x40)=0) tmp=fc_clock; fc_clock=0 x2; asm ( nop); asm ( nop); DXR10=Data; /给TLC320AD50C的寄存器编程 SPSA0=0 x0001; / while( (MCBSP0&0 x0002)=0); /数据是否(sh fu)被TLC320AD50C接收 asm ( nop); asm ( nop); ShortD
29、elay(); asm ( nop);void initAD50()/int tmp;WriteAD50(0 x0180); /给TLC320AD50C的寄存器1编程,使其复位(f wi)ShortDelay();asm ( nop);WriteAD50(0 x0101); /TLC320AD50C脱离复位并且(bngqi)设置寄存器1,使INP,INM为输入asm ( nop);WriteAD50(0 x0210); /设置TLC320AD50C寄存器2,使电话(dinhu)模式无效asm ( nop);WriteAD50(0 x0440); /设置(shzh)TLC320AD50C寄存器4
30、asm ( nop);asm ( nop);WriteAD50(0 x0312); /设置TLC320AD50C寄存器3,使带0个从机asm(nop); void initDSP()volatile unsigned int *CLKMD=(volatile unsigned int*)0 x58;int i;*CLKMD=0;while(*CLKMD&1)=1);*CLKMD=0 x17EF;while(*CLKMD&1)=0); asm( ssbx intm); fc_clock=0 x2; asm( nop ); asm( nop ); i = fc_clock; asm( nop ); asm( nop ); PMST=0 xFFE3; IFR=0 x3fff; void main()Type=LowPass;initDSP();initMCBSP(); initAD50(); initDMA(); initfir()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度综合性劳动合同范本
- 肇庆市实验中学高中历史二:第三单元各个经济体制的创新和调整测验教案
- 2025黑龙江省旅游投资集团有限公司事业部及共享中心招聘15人笔试参考题库附带答案详解
- 2025企业寒假实习生合同协议书
- 2025年中国膜式高压氧气压缩机市场调查研究报告
- 2025【园林景观工程合同范本】质量保修金条款
- 变态反应科专业知识考核试卷
- 电子真空器件的微波光子学研究考核试卷
- 灯具制造过程中的节能减排措施考核试卷
- 国企首都机场集团有限公司内蒙古地区招聘笔试参考题库附带答案详解
- 班主任工作坊活动方案
- FZ/T 52019-2011莱赛尔短纤维
- 国开电大 管理概论 形考任务一(画组织结构图)
- 三自由度并联机器人结构设计
- 仓储装卸服务合同
- 式双钩五点安全带培训课件
- 名片设计 课件
- 钳工实操评分表(凹凸配合)
- 社会组织管理概论全套ppt课件(完整版)
- 陕西省城市规划管理技术规定(定稿)
- 部编版七年级下册历史复习提纲(重点考察知识点)
评论
0/150
提交评论