DSP论文dw.docx
- 文档编号:9710449
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:19
- 大小:159.19KB
DSP论文dw.docx
《DSP论文dw.docx》由会员分享,可在线阅读,更多相关《DSP论文dw.docx(19页珍藏版)》请在冰豆网上搜索。
DSP论文dw
《DSP原理及应用》课程小论文
学院:
_XXXXXXXXXXXXXXXXXX_专业班级:
电自普XXXX
学生姓名:
XX学号:
XXXXXXXXXX
论文题目:
基于DSP开发板的语言信号滤波处理完成日期:
2013年6月10日
指导教师评语:
__________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
________________
完成日期:
2013年6月10日
指导教师评语:
_______________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
________________
摘要
数字信号处理技术及其应用,目前正以惊人的速度向前发展着。
随着大规模集成电路的出现和数字部件的成本下降、体积缩小及运算速度提高,数字信号处理的应用日益广泛。
目前已制成多种专用数字滤波器,取样率可高达兆赫。
高速专用快速傅里叶变换处理机已有商品出售。
简单的数字滤波器已制成集成电路片。
目前几乎所有的语音带宽压缩系统都倾于全数字化,因为目前它是最实际可行的方法。
除了专用数字信号处理硬件有所发展之外,还出现了可编程序的数字信号处理专用计算机,这种计算机的构造特别适于解决数字信号处理问题。
它目前应用于实时信号处理以及设计、模拟专用数字硬件。
在计算量相等的情况下IIR数字滤波器比FIR滤波器的幅频特性优越,频率选择性也好,但是它有着致命的缺点相位特性不好控制,它的相位特性是的非线性函数。
例如双线性变换法产生的IIR滤波器模拟指标的频率与数字化指标的频率转换关系是,这是使频率产生严重的非线性的原因,这种W与w的非线性关系,使数字滤波器与模拟滤波器在响应与频率的对应关系上发生了畸变,如果需要线性相位,就必须用全通网络进行复杂的相位校正但是,在对程序运行周期数要求十分严格的DSP处理中加上一个全通均衡器是十分浪费资源的,另外即使加上全通均衡器对于因果的IIR滤波器仍将得不到线性的相位。
在现代电子系统中如图像处理数据传输等波形传递系统中都越来越多的要求信道具有线性的相位特性在这方面FIR滤波器具有独到的优点,它可以在幅度特性随意设计的同时保证精确严格的线性相位。
本文主要介绍了利用DSP来实现FIR滤波器的设计,根据FIR滤波器设计的要求,本设计以CCS为开发环境,采用模块化的设计方案来完成设计。
本文详细介绍了硬件电路和软件设计的方法,硬件方面介绍了SEED-DEC2812开发实验箱,软件设计方面包括了程序各模块的流程图和源程序代码,还详细介绍了CCS为开发环境,并详细介绍了仿真的步骤。
关键词:
MATLABDSPFIR数字滤波器
1.要求和功能实现
1.1目的要求
通过课程设计,加深对DSP芯片TMS320C54x的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法。
通过使用汇编语言编写具有完整功能的图形处理程序或信息系统,使学生加深对所学知识的理解,进一步巩固汇编语言讲法规则。
学会编制结构清晰、风格良好、数据结构适当的汇编语言程序,从而具备解决综合性实际问题的能力。
通过使用Matlab设计相应的FIR低通数字滤波器,得到滤波器H(z)的系数,然后根据这些系数,编写关于DSP的汇编程序。
在CCS软件上对已采集信号进行处理,最后滤除高频信号,输出我们需要的低频语音信号。
效果本文采取比较滤波前后信号的频谱图。
1.2功能实现
1.2.1设计滤波器。
参数指标:
根据被处理对象设计滤波器设计指标。
1.2.2用汇编语言在TMSc54xx编程实现符合要求的滤波器。
1.2.3通过开发板上的语音采集模块输入待处理语音信号(简单介绍)。
1.2.4滤除语音信号中的高频噪声。
1.2.5显示滤波器的频谱。
1.2.6通过开发板上的语音模块播放处理后的语音信号(简单介绍)。
2.系统参数和总体设计方案
2.1系统参数
一个实际的应用系统中,总存在各种干扰。
数字滤波器在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有广泛的应用,数字滤波器也是使用最为广泛的信号处理算法之一。
在本设计中,使用MATLAB模拟产生合成信号,然后利用CCS进行滤波。
设定模拟信号的采样频率为8000Hz,。
设计一个FIR低通滤波器,其参数为:
滤波器名称:
FIR低通滤波器
采样频率:
Fs=8000Hz
通带/阻带截止频率:
2000Hz~2500Hz
通带最大衰减:
0.5dB
阻带最少衰减:
50dB
滤波器级数:
N=25
滤波器系数:
由MATLAB根据前述参数求得。
2.2系统总体设计方案流程图
3.DSP及其开发环境
3.1DSP系统的构成
一个典型的DSP系统如图2示。
图2典型的DSP系统
图2是一个用DSP做信号处理的典型框图。
由于DSP是用来对数字信号进行处理的,所以首先必须将输入的模拟信号变换为数字信号。
3.2DSP系统的特点及设计过程
由于数字信号处理系统是以数字信号处理理论为基础,所以具有数字信号处理的全部优点:
接口方便;编程方便;具有高速性;稳定性好;精度高;可重复性好;集成方便等等,同时也存在一定的缺点
一般来说DSP的设计过程应遵循一定的设计流程,如图3示。
图3DSP基本设计流程
3.3CCS开发环境
CCS全称是CodeComposerStudio它提供了基本的代码生成工具,具有一定的调试、分析能力,在CCS下的程序开发过程如图4示。
图4程序开发过程
CCS包括:
1、CCS代码生成工具
2、CCS集成开发环境IDE
3、DSP/BIOS插件程序和APIRTDX插件,主机接口和API等。
4.数字滤波器的设计原理和方案对比
4.1IIR滤波器
无限长冲激响应系统IIR(InfiniteImpulseResponse)中,用有理分式表示的系统函数来逼近所需要的频率响应,即其单位冲激响应h(n)是无限长的。
IIR滤波器由于吸收了模拟滤波器的结果,有大量的图表可查,可以方便、简单、有效地完成设计,效果很好,但是其相位特性不好控制,必须用全通网络进行复杂的相位较正,才能实现线性相位特性的要求。
4.2FIR滤波器
有限长冲激响应系统FIR(FiniteImpulseResponse)中,用一个有理多项式表示的系统函数去逼近所需要的频率响应,即其单位冲激响应h(n)在有限个n值处不为零。
FIR滤波器可在幅度特性随意设计的同时,保证精确、严格的线性相位特性。
这在要求相位线性信道的现代电子系统,如图像处理、数据传输等波形传递系统中,是具有很大吸引力的。
而且,其单位冲激响应是有限长的,不存在不稳定的因素,并且可用因果系统来实现。
4.3FIR滤波器的基本结构
数字滤波是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列。
一个线性位移不变系统的输出序列y(n)和输入x(n)之间的关系,应满足常系数线性差分方程,见公式4.1,
(4.3.1)
其中,x(n)为输入序列,y(n)为输出序列,
为滤波器系数,N是滤波器的阶数。
若上式中所有的
均为零,则有FIR滤波器的差分方程为:
(4.3.2)
对上式进行Z变换得到FIR滤波器的传递函数为:
(4.3.3)
由上式可以看出,H(z)是
的N-1次多项式,它在z平面内有N-1个零点,同时在原点处有N-1个重极点。
N阶滤波器通常采用N个延迟单元、N个加法器与N+1个乘法器,取图5中(a)、(b)两种结构。
图5FIR滤波器的一般结构
通常FIR滤波器的设计方法主要有三种:
窗函数法、频率抽样法和切比雪夫等波纹逼近法。
其中窗函数法可以应用比较现成的窗函数,因而设计简单,在指标要求不高的场合使用方便灵活。
4.3.1窗函数法
窗函数法也称为傅立叶级数法。
理想的数字滤波器频率特性是无法实现的,FIR的设计就是要寻找一个可以得到的频率特性=来逼近,这相当于用一个可实现的单位脉冲响应h(n)去逼近一个理想单位脉冲响应。
可由理想频率特性通过傅氏反变换得到
一般来说,这样得到的理想单位脉冲响应序列是个无限长序列,因而是非因果的。
设有一个截止频率为的理想线性相位低通,延时为τ,其频率特性是:
得到:
这是一个以n=τ为中心偶对称的无限长非因果序列,要想用一个有限长的因果序列去逼近它,最简单的方法是截取n从0到N-1的一段来表示它,即h(n)=
;其他N:
h(n)=0。
同时,为了保证线性相位,还要满足偶对称h(n)=h(N-1-n)。
这就好像通过一个窗口观看到的一段
,因此h(n)就表示成
和一个窗口函数的乘积,这样对h(n)的求解就变为h(n)=
*
,这里的
就称为窗口函数,既然一个频域上的标准的矩形窗口对应于时域是一个无限长的序列,那么在时域上截取一段势必造成频域的矩形窗口的失真。
结果就是截取出的信号也相应失真,为了补偿这种失真,只有改变原来窗口的形状,修正经过时域截取后的窗口失真。
窗函数设计方法的基本步骤是:
(1)把
展成FS,得
;
(2)对
自然截短到所需的长度,如2M+1;
(3)将截短后的
右移M个采样间隔,得h(n);
(4)将h(n)乘以合适的窗口,即得所要滤波器的冲击响应,窗函数以n=M对称。
利用所求得的单位抽样响应,即可用硬件构成滤波器的转移函数H(z),也可利用h(n)在计算机上用软件来实现滤波。
4.3.2频率抽样法
窗函数法是从时域出发,用窗函数截取理想的
得到h(n),以此有限长的h(n)近似
,这样得到的频率响应
逼近于理想的频响
。
频率抽样法是从频率出发,将给定的理想频响
加以等间隔抽样。
然后以此
作为FIR滤波器的频率响应抽样值H(k),再根据DFT(离散付氏变换)定义由频域这N个抽样值来唯一确定一个有限长序列h(n),同样也可以算出FIR滤波器的系统函数H(z)及频率响应
,可以推出频率响应
是频率抽样值H(k)与线性相位因子
及如下内插函数S(ω,k)的线性组合。
所以,在各频率取样点上,实际滤波器的频响是严格地和所要求的滤波器的频响一致的,逼近误差为零,但在抽样点之间的频响是各取样点的内插函数的延伸叠加而成,有一定的逼近误差,误差大小取决于频率响应曲线的圆滑程度和抽样点的密度为了减少误差就要增加抽样点数目即增大采样频率,抽样点之间的理想频率特性变化越陡,则逼近误差越大,在理想频率特性的不连续点附近会产生肩峰和纹波。
频率抽样法的优点是可以直接在频域设计,适于利用最优化方法,而且这种方法特别适用于窄带选频滤波器,但频率抽样法的抽样频率只能是2π/N的整数倍或2π/N的整数倍加上π/N不能保证截止频率ωc的准确取值,要实现精确的ωc就必须取N大,相应的计算量也大。
此外,它的阻带最大衰减一般,也只有30-50dB左右,很难满足频域特性要求较高的场合。
4.3.3Chebyshev逼近法
窗函数法和频率采样法设计出的滤波器的频率特性都是在不同意义上对所给理想频率特性
的逼近。
由数值逼近理论可知,对某个函数f(x)的逼近一般有以下三种方法:
插值法(InterpolatingWay)
最小平方逼近法(LeastSquareApproachingWay)
一致逼近法(ConsistentApproachingWay)
切比雪夫最佳一致逼近的基本思想是,对于给定区间[a,b]上的连续函数
,在所有n次多项式的集合
中,寻找一个多项式p(x),使它在[a,b]上对
的偏差和其它一切属于
的多项式p(x)对f(x)的偏差相比是最小的,即
切比雪夫逼近理论,这样的多项式是存在的,且是唯一的,并指出了构造这种最佳一致逼近多项式的方法,就是有名的“交错点组定理”。
切比雪夫逼近理论解决了p(x)的存在性、唯一性和如何构造等问题。
J.H.McClellan、T.W.Parks、L.R.Rabiner等人应用切比雪夫逼近理论提出了一种设计FIR滤波器的计算机辅助算法。
这种算法由于是在一致意义上对
作最佳逼近,因而获得了较好的通带和阻带性能,并能准确地指定通带和阻带的边缘。
但它的效率依赖于初始极值频率点的估计,且通带和阻带内波纹数较多,这是Chebyshev方法的两个主要缺点。
4.4总体设计步骤
1、利用MATLAB来确定FIR滤波器的参数;
2、启动CCS,在CCS中建立一个C源文件和一个命令文件,并将这两个文件添加到工程再编译并装载程序;
3、设置波形时域观察窗口,得到滤波前后的波形变化图;
4、设置频域观察窗口,得到滤波前后的频谱变化图。
4.5利用Matlab求出系数
在matlab的CommandWindow输入以下语句:
c=fir1(25,0.5)
按回车键后即可出现系数
5.FIR滤波器的软件设计及其调试
5.1根据语音信号的设计参数确定滤波器的系数
利用MATLAB求得的系数为
c=
Columns1through9
0.0014-0.0018-0.00290.00480.0078-0.0119-0.01770.02560.0368
Columns10through18
-0.0536-0.08210.14520.44840.44840.1452-0.0821-0.05360.0368
Columns19through26
0.0256-0.0177-0.01190.00780.0048-0.0029-0.00180.00144
5.2汇编源程序
采用循环缓冲区实现FIR滤波器的源程序如下:
.title"FIR.ASM"
.mmregs
.defstart
.bssyn,1
xn.usect"xn",25
hn.usect"hn",25
indata.usect"indata",1024
outdata.usect"outdata",1024
.data
fir_coff:
.word14*32768/10000,-18*32768/10000
.word-29*32768/10000,48*32768/10000
.word78*32768/10000,-119*32768/10000
.word-177*32768/10000,256*32768/10000
.word368*32768/10000,-536*32768/10000
.word-821*32768/10000,1452*32768/10000
.word4484*32768/10000,4484*32768/10000
.word1452*32768/10000,-821*32768/10000
.word-536*32768/10000,368*32768/10000
.word256*32768/10000,-177*32768/10000
.word-119*32768/10000,78*32768/10000
.word48*32768/10000,-29*32768/10000
.word-18*32768/10000,14*32768/10000
.text
start:
ssbxfrct;使用小数运算
stm#hn,ar1;系数首地址
rpt#39;将系数移入循
mvpdfir_coff,*ar1+;环缓冲区
stm#-1,ar0
stm#outdata,ar5
stm#indata,ar4
stm#xn+39,ar2
rpt#39;将输入数据移入
mvdd*ar4+,*ar2+0%;循环缓冲区
stm#xn+39,ar2;指向第一个输入
stm#hn+39,ar3
stm#40,bk;缓冲区大小40
stm#1024,brc;块重复1024次
stm#-1,ar0
rptbloop-1;块程序重复大小
rptza,#39;计算一个输出
mac*ar2+0%,*ar3+0%,a
stha,*(yn);保存输出
mvkd*(yn),*ar5+
mvdd*ar4+,*ar2+0%;读进一个输入
loop:
nop
bloop
.end
5.3汇编源程序的连接命令文件
在TMS320VC5402DSP的硬件系统中,用户可使用的程序存储空间:
片内0080H~3FFFH,片外48000H~4FFFFH;用户可使用的数据存储空间:
片内0080H~3FFFFH,片外4000H~7FFFH。
基于TMS320VC5402的资源配置,FIR滤波器源程序的连接命令文件如下:
MEMORY
{PAGE0:
PARAM:
org=1000hlen=1000h
PAGE1:
SPRAMorg=2060hlen=0020h
DARAM:
org=2080hlen=9f380h
}
SECTIONS
{
.text:
>PARAMPAGE0
.data:
>PARAMPAGE0
.bss:
>SPRAMPAGE1
xn:
align(64){}>DARAMPAGE1
hn:
align(64){}>DARAMPAGE1
indata:
>DARAMPAGE1
outdata:
>DARAMPAGE1
}
6.FIR滤波器的检验
6.1利用matlab导出“indata.dat”文件
在matlab中输入下面的程序便可以导出“indata.dat”文件:
f12=1000;%/Hz
f13=16000;%/Hz
fs=40000;%/采样Hz
N=1000;%数据个数
T=1/fs;%采样周期
n=0:
N;
x12=0.7*sin(2*pi*f12*n*T);
x13=0.5*sin(2*pi*f13*n*T);
x_base=(x12+x13);
%待滤波信号波形
figure
(1)
plot(x_base)
%待滤波信号频谱
figure
(2)
yff=abs(fft(x_base))
df=n*(fs/N)
plot(df,yff)
xout=x_base/max(x_base);%归一化
xto_ccs=round(32767*xout)
fid=fopen('input.dat','w');%打开文件
fprintf(fid,'16511000\n');%输出文件头
fprintf(fid,'%d\n',xto_ccs);%输出
fclose(fid);
6.硬件部分简介
DSP的开发系统包括硬件和软件两个方面。
其中硬件包括一套DSK开发板和仿真器。
DSP的开发主要是围绕着这两方面进行的。
6.1DSK简介
DSK的全称是DSPStarterKit,即DSP初学者套件。
DSK为用户提供了一个开发DSP的方便的平台。
由于DSK板上提供了基本的硬件支持,结合适当的软件开发工具,简化了开发工作,缩短了开发周期,在DSK板上主要包括如下资源:
100MHzVC5402DSP芯片
64K字外部扩展的SRAM64K*16
256K字的FLASH存储器256K*16
6.2仿真器
仿真器JTAG测试总线控制器SN74ACT8990JTAGTBC及与主机相连接的并行接口模/数转换器TITLC320AD50A/Dconverter两个
电话接口(DAA)
麦克风/扬声器接口
并行口
RS-232串行口
扩展子板接口
LED*4其中三个可供程序运行时点亮提示
DSK板上提供的丰富的硬件资源,使得开发过程中硬件方面可以节省大量的工作。
DSK板上提供了一个八位跳线开关,可以通过它申请外部中断,实现不同的功能。
另外,板上还提供了诸如14针的外部JTAG接头,10针的CPLD的JTAG接头,25针的符合IEEE-1284的为JTAG/HPI接入提供的并口等外部接口,通过JTAG接头可以与计算机内运行的CCSCodeComposerStudio进行实时数据交换RTDX提高编程调试的效率通过JTAG接头与主机进行实时数据交换的过程可见图14示。
图14实时数据交换的过程
JTAG接口符合IEEE1149.1标准边界扫描逻辑测试技术规范,这一技术规范是80年代由联合测试行动组JTAGJointTestActionGroup开发的,这个边界扫描测试BST结构提供了有效的测试,引线间隔致密的电路板上零部件的能力,通过BST结构测试引脚连结而不必使用物理测试探针,可以在器件正常工作时,获功能数据。
器件的边界扫描单元能够迫使逻辑追踪引脚信号或是从引脚或器件核心逻辑信号中捕获数据,强行加入的测试数据串行移入边界扫描单元捕获的数据串行移出并在器件外部同预期的结果进行比较。
通过扩展可以将多个器件连成菊花链,一次进行统一的输入与读出操作。
TI提供的增强型JTAG连接,是一种可与任意DSP系统相连的低侵扰式的连接,使得CCS能够控制程序的执行,实时监视程序运行。
通过主机和DSPAPIs提供主机和DSP之间的双向实时数据交换,能够使开发者实时连续的观察到DSP应用的实际工作方式,仿真接口提供主机一侧的JTAG连接,如TIXSD510。
7.遇到问题和解决方法
在调试过程中曾遇到许多的问题,具体总结如下:
(1)采集的语音信号中高频噪音不很明显,使得最后不能较好的观察到滤波器的性能。
解决的方法是:
利用matlab产生一个6khz的高频信号与原来的语音信号相加,这时可以明显的听到语音信号中同时伴随着刺耳的高频噪音。
(2)在选择滤波器的参数时,对具体的音频信息
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 论文 dw