

免费预览已结束,剩余17页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 dsp 课程设计报告 语音信号的语音信号的 firfir 滤波器处理滤波器处理 姓 名: 班 级: 12 电信 3 学 号: 指导老师: 日期: 2015.06.022014.06.19 华南农业大学电子工程学院 摘 要 随着信息与数字技术的发展,数字信号处理已经成为当今极其重要而学科 与技术领域之一。它在通信、语音、图像、自动控制、雷达、军事、航空航天、 医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理的基本方法中, 通常会涉及到变换、滤波、频谱分析、调制解调和编码解码等处理。其中滤波 是应用非常广泛的一个环节,数字滤波器的理论和相关设计也一直都是人们研 究的重点之一。fir 滤波器的是非递归的,稳定性好,精度高;更重要的是, fir 滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特征。因此, 它在高保真的信号处理,如数字音频、图像处理、数据传输和生物医学等领域 得到广泛应用。 css 集成开发环境使用 ccs 内置的软件仿真 simulator 对程序进行编译, 调试和运行,主要用于检测目标程序运行的正确性和连贯性,并能通过仿真器与 目标板连接,在目标板上实时观察效果。 在本次设计中,我们选择的课题是基于 dsp 的语言信号的 fir 滤波处理。 首先利用 matlab 进行了仿真,得到滤波前后的时域波形和频谱。然后通过调用 matlab 的分析工具 fdatool,根据仿真结果导出了滤波器的相关参数,将原始 信号数据和滤波器参数输入 ccs 进行 dsp 编程。最后在 dsp 中实现了 fir 低通 滤波,并通过 ccs 的频谱分析功能查看了最终 dsp 的滤波效果。 关键词关键词: : 语音信号处理 fir 滤波 matlab ccs 目 录 1.前言前言4 4 2.设计需求设计需求4 4 3.3.滤波器设计原理介绍滤波器设计原理介绍 4 4 3.1 数字滤波器设计原理4 4 3.2 fir 滤波器的基本结构 5 5 3.3 滤波器的特点 .5 5 3.4 窗函数的介绍 .6 6 4.fir4.fir 滤波器的设计滤波器的设计 7 7 4.1 fir 滤波器设计 7 7 4.2 窗函数设计的基本方法 .7 7 4.3 滤波器的算法实现.7 7 1 z 5.5.firfir 滤波器的滤波器的 matlabmatlab 设计设计 8 8 6.6.firfir 滤波器的滤波器的 dspdsp 实现实现 1010 6.1 ccs 设计与仿真 .1010 6.2 ccs 仿真结果 .1313 6.6.调试问题及解决办法调试问题及解决办法 1616 7.7.设计感想设计感想 1616 参考文献参考文献 1717 8.8.附录附录 1717 4 1 前言 通过语音传递信息是人类最重要、最有效、最常用、最方便的交换信息的 方法,因此,如何去除混杂在有用信号中的噪声并获得低损甚至无损的有用语 音信号成为语音信号处理(即用数字信号处理技术和语言学知识对语音信号进 行处理并提取有用信息)至关重要的问题。但是因为语音识别技术对信号噪声 非常敏感,系统本身和器件对系统的处理结果都有着不可忽视的干扰,因此很 难实现效果较好的语音信号滤波处理。而 dsp 因为运算速度快,片上资源丰富 和能够实现复杂的线性和非线性算法等特性,在语音信号处理技术方面有明显 的优势。 在数字信号处理中,滤波占有极其重要的地位。数字滤波是语音信号处理、 图像处理、模式识别、频谱分析等应用的基本处理算法。用 dsp 芯片实现数字 滤波除了具有稳定性好、精确度高、不受环境影响等优点外,还具有灵活性好 等特点。 本文介绍了数字滤波器的设计基础及用窗函数法设计 fir 滤波器的方法, 运用 mathlab 语言实现了低通滤波器的设计并用 ccs 2.0 进行观察效果。 2 设计需求 1)滤波器的设计的原理介绍 2)fir 滤波器的设计 3)fir 滤波器的 dsp 实现 4)滤波器为低通滤波器,并用用语音信号通过滤波器后查看滤波效果是否达 到设计要求,进行 fir 滤波器的检验 根据老师的的意见,我们自己拟定了滤波器的指标:fs=8000hz,wp=1500 hz,ws=2000 hz,通带波纹为 0.01,阻带波纹为 0.1,n=37。 3 滤波器设计原理介绍 3.1 数字滤波器的设计原理 数字滤波器的设计问题就是寻找一组系数 ai 和 bi,使得其性能在某种意 义上逼近所要求的特性。如果在 s 平面上去逼近,就得到模拟滤波器,如果在 z 平面上去逼近,则得到数字滤波器。 数字滤波是将输入的信号序列,按规定的算法进行处理,从而得到所期望 的输出序列。一个线性位移不变系统的输出序列y(n)和输入序列x(n)之间的关 系, 应满足常系数线性差分方程: (2.1.1) x(n)为输入序列,y(n)为输出序列,ai、bi 为滤波器系数,n为滤波器的阶数。 3.2 firfir 滤波器的基本结构 在式 2.1.1 中,若所有的ai均为 0,则得 fir 滤波器的差分方程: (2.2.1) 对式(2.2.1)进行 z 变换,可得 fir 滤波器的传递函数: (2.2.2) 由此可得到 fir 滤波器的结构如图 1 所示。 fir 滤波器的单位冲击响应 h(n)是一个有限长序列。若 h(n)为实数,且满 足偶对称或奇对称的条件,即 h(n)=h(n-1-n)或 h(n)=-h(n-1-n),则 fir 滤波 器具有线性相位特性。 3.3 滤波器的特点 优点: 0 )()()( 1 1 0 ninyainxbny m i i n i i )()( 1 0 n i i inxbny )( )( )( 1 0 n i i iz b zx zy zh (1)很容易获得严格的线性相位,避免被处理的信号产生相位失真,这 一特点在宽频带信号处理、阵列信号处理、数据传输等系统中非常 重要; (2)可以在幅度特性随意设计的同时,保证精确、严格的线性相位,还 可得到多带幅频特性; (3)极点全部在原点(永远稳定) ,无稳定性问题; (4)任何一个非因果的有限长序列,总可以通过一定的延时,转变为因果 序列,所以因果性总是满足; (5)无反馈运算,运算误差小。 缺点: (1)因为无极点,要获得好的过渡带特性,需以较高的阶数为代价; (2)无法利用模拟滤波器的设计结果,一般无解析设计公式,要借助计 算机辅助设计程序完成。 3.4 窗函数简介 数字信号处理的主要数学工具是傅里叶变换。而傅里叶变换是研究整个时 间域和频率域的关系。不过,当运用计算机实现工程测试信号处理时,不可能 对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。做法是 从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理, 得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变换、相关分析等数 学处理。无线长的信号被截断以后,其频谱发生了畸变,原来集中在 f(0)处的 能量被分散到两个较宽的频带中去了(这种现象称之为频谱能量泄漏) 。 为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截短,截断函 数称为窗函数,简称为窗。信号截短以后产生的能量泄漏现象是必然的,因为 窗函数 w(t)是一个频带无限的函数,所以即使原信号 x(t)是有限带宽信号,而 在截短以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。 又从采样定理可知,无论采样频率多高,只要信号一经截短,就不可避免地引 起混叠,因此信号截短必然导致一些误差。 泄漏与窗函数频谱的两侧旁瓣有关,如果两侧瓣的高度趋于零,而使能量 相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不 同的窗函数来截短信号。 4 fir 滤波器的设计 4.1 fir 滤波器设计 fir 滤波器的设计问题在于寻求一系统函数 ,使其应 逼近滤波器要求的理想频率响应 。 4.2 窗函数设计的基本方法 从时域出发,设计 h(n)逼近理想 hd(n),设理想滤波器的单位脉冲响应 为 hd(n),则有 所求得的 一般是无限长的,且是非因果的。 要想得到一个因果的有限长的滤波器 h(n),最直接的方法是截断 , 或者说用一个窗口函数 对 进行加窗处理,即 。因此,应选择 合适的窗函数。 4.3 滤波器的 算法实现 1 z fir 滤波器的输出表达式为 式中,为滤波器系数;x(n)表示滤波器在 n 时刻的输入;y(n)为 n 时刻的 输出。 它的基本算法是一种乘法-累加运算,即不断地输入样本 x(n),经过延时后, 再进行乘法-累加,最后输出滤波结果 y(n)。 1)线性缓冲区法 1 0 )()( n n n znhzh )( j d eh deehnh enheh jnj dd jn n d j d )( 2 1 )( )()( )(nhd )(nhd )(nw)(nhd)()()(nwnhnh d j ez j zheh | )()( 线性缓冲区法又称延迟线法。其特点: 对于 n 级的 fir 滤波器,在数据存储器中开辟一个 n 单元的缓冲区(滑窗) , 用来存放最新的 n 个输入样本; 从最老样本开始取数,每取一个样本后,将此样本向下移位; 读完最后一个样本后,输入最新样本存入缓冲区的顶部。 2)循环缓冲区法 本次设计的 fir 滤波器所采用的就是循环缓冲区法。 循环缓冲区法的特点如下: 对于 n 级 fir 滤波器,在数据存储器中开辟一个 n 单元的缓冲区(滑窗) ,用 来存放最新的 n 个输入样本; 从最新样本开始取数; 读完最后一个样本(最老样本)后,输入最新样本来代替最老样本,而其他 数据位置不变; 用片内 bk(循环缓冲区长度)寄存器对缓冲区进行间接寻址,使循环缓冲区 地址首尾相邻。 5 fir 滤波器的 matlab 实现 matlab 是一种功能强、效率高、便于进行科学和工程计算的交互式软件包, 它集数值分析、矩阵运算、信号处理和图形显示于一体,为用户提供了方便、 友好的界面环境。 matlab 中的工具箱(toolbox)包含了许多实用程序。它提供了多种 fir 滤波器设计方法。 fir1 函数用来设计标准频率响应的基于窗函数的 fir 滤波器,可实现加窗 线性相位 fir 数字滤波器的设计。具体语法如下: b=fir1(n,wn) b=fir1(n,wn, ftype) b=fir1(n,wn,window) b=fir1(n,wn, ftype ,window) 其中 n 为滤波器的阶数;wn 为滤波器的截止频率; ftype 为用来决定滤波 器的类型,当 ftype=high 时,可设计高通滤波器;当 ftype=stop 时,可设计 带阻滤波器。window 为用来指定滤波器采用的窗函数类型,window 参数可采用 的窗口函数有: boxcar,hanning,bartlett,blackman,kasier 和 chebwin 等,其默认时为 hamming 窗,从而得到滤波器的系数。 fir2 函数用来设计有任意频率响应的各种加窗 fir 滤波器。具体语法如下: b=fir2(n,f,m) b=fir2(n,f,m,window) b=fir2(n,f,m,npt) b=fir2(n,f,m,npt,window) b=fir2(n,f,m,npt,lap) b=fir2(n,f,m,nptt,lap,window) 其中 n 为滤波器的阶数;f 为频率点矢量;m 为幅度点矢量;window 用来 指定所使用的窗函数类型,默认值为汉明(hamming)窗;npt 用来指定 fir2 函数对频率响应进行内插的点数;lap 用来指定 fir2 函数在重复频率点附近插 入的区域大小,从而得到滤波器的系数。具体的代码见附录,输入之后可以导 出滤波器的参数。 ccs 的输入语音信号的辅助产生(matlab) 1、理想情况:fir 滤波器的输入数据存储在 indata.dat 文件中,共 300 个点,由频率为 1000hz 和 2500hz 的两个余弦波叠加而成 2、为了验证设计的可行性,自身录制一个语音片段,主要信号为低频成 分,其中夹杂着高频成分的噪声。 在 matlab 中产生一个 indata.dat 文件供 ccs 输入,在 matlab 中输入的代码 为: x=wavread(d:matlabworkxinzao.wav); %语音文件的路径 y=fft(x,1024); plot(abs(y(1:1000); %采样 100 个点 x1=round(1024*x); fid=fopen(indata.dat,w); %生成一个 dat 文件 fprintf(fid,1651 1 00e2 1000n); fprintf(fid,%dn,x1); %输出 6 fir 滤波器的 dsp 实现 ccs 是一种针对 tms320 系列 dsp 的集成开发环境,在 windows 操作系统 下,采用图形接口界面,提供环境配置、源文件编辑、程序调试、跟踪和分析 等工具,提供了配置、建立、调试、跟踪和分析程序的工具,从而完成编辑、 编译、链接、调试和数据分析等工作。 6.1 ccs 设计与仿真 图 1 ccs 汇编程序流程图 开始 dsp 初始 化 将滤波系数分别存 放在存储单元 bn 中 从第 l 个数开始 读入抽样值 抽样值存入在存储 单元 xn 中 将 bn 中和 xn 中对应 的值相乘累加 bn*xn+acc=acc l=l+1 输出结果 6.1.1 程序分析 fir 滤波器的 dsp 实现主要有线性缓冲区法和循环缓冲区法两种。 线性缓冲区法又称延迟线法。其特点: (1)对于 n 级的 fir 滤波器,在数据存储器中开辟一个 n 单元的缓冲区(滑 窗) ,用来存放最新的 n 个输入样本; (2)从最老样本开始取数,每取一个样本后,将此样本向下移位; (3)读完最后一个样本后,输入最新样本存入缓冲区的顶部。 循环缓冲区法的特点如下: (1)对于 n 级 fir 滤波器,在数据存储器中开辟一个 n 单元的缓冲区(滑窗) ,用来存放最新的 n 个输入样本; (2)从最新样本开始取数; (3)读完最后一个样本(最老样本)后,输入最新样本来代替最老样本,而 其他数据位置不变; (4)用片内 bk(循环缓冲区长度)寄存器对缓冲区进行间接寻址,使循环 缓冲区地址首尾相邻。 本次设计的 fir 滤波器所采用的就是循环缓冲区法。 对 dsp 进行初始化,并设置好存储单元。为数字滤波作准备,将预先设计 好的有 n 个抽头的 fir 数字滤波器的冲激响应序列 h(n)中的 n 个数值放入存储 单元 bn 中,从 indata 数据存储段中读入抽样值,将抽样值逐一放入存储单元 xn 中。 主要循环程序如下: stm #-1,ar0 rptz a,# ;将 acc 累加器清零,循环次 mac *ar2+0%,*ar3+0%,a sth a,*(yn) ;保存输出 mvkd *(yn),*ar5+ 将累加器清零,将存储单元 bn 与 xn 值对应相乘并累加到 acc 中,循环 次将 acc 中的值保存输出。再从 indata 数据存储段中读入一个新的数据,代 替原来的最老样本 mvdd *ar4+,*ar2+0% ,重复循环直到数据全部处理完。 最后将处理完的数据输入到 outdata 数据存储段中。 6.1.2 数据输入 matlab 辅助 dsp 实现 fir 滤波器滤波 ,其总体过程是为 dsp 中编写处理 程序提供滤波器系数。在 matlab 中利用滤波器设计、分析工具( fdatool) ,根 据指定的滤波器性能快速设计一个 fir ,然后把滤波器系数以头文件形式导入 ccs 中,头文件中包含 matlab 辅助 dsp 实现 fir 数字滤波器的阶数和系数数 组,在 matlab 中调试、运行 dsp 程序并显示、分析处理后的数据。 打开 ccs ide 中 file 的 data 加载初始化 data 数据,在 address 中输入 数据存放的起始地址 indata,并设置数据栈长度。 6.1.3 运行程序仿真 运行程序,查看输入输出波形,修改相应参数进行调试。 在 view 的 graph 中单击 time/frequency 出现 graph property dialog 框。 将显示类型,图形名称,起始地址,抽样点数,数据类型等分别进行设置, 输出各种波形。输出滤波前的信号时域波形。首先,设置如下图所示,输出滤 波前的信号时域波形。 图 2 滤波前语音信号的时域 graph property dialog 设置参数图 将 display type 改为 fft magnitude 就可以看到滤波前信号的频谱,将 start address 改为 outdata 就可以看到滤波后信号的时域波形和频谱。 6.2 ccs 仿真结果 图 3 滤波前语音信号的时域波形图 图 4 滤波前信号频谱波形图 6.2.2 fir 滤波器滤波后的信号 图 5 滤波后信号时域波形图 图 6 滤波后信号频谱图 图 3 波前的信号,由高频信号和原信号叠加而成的波形较为杂乱,加噪后 的信号幅值较大。图 5 波后的信号,从图上可以看到信号幅度较低,波形较为 清晰。 对比图 4 图 6 可以看到加躁后信号幅值较大,信号的能量集中在高频段, 滤波后,高频成分大部分被滤去,信号的能量主要集中在低频段。 7 调试问题及解决方法 1)实验时,未做初始化设置直接进入,没有装入 gel 文件及相关参数,导 致输入代码编译链接后不能载入程序。 解决方法:初始化设置软件仿真 cpu 和硬件仿真 cpu,并设置其中所用的 gel 文件,保存并退出启动 dsp 选择忽略进入编辑编译初始化界面,由软件仿真 cpu 进入编辑编译工具。 2)在解决问题 1 后,载入程序,载入数据,并设置载入数据的初始地址和 长度,运行程序,发现程序一直卡死在某个地方,无法显示正确的时域图和频 域图。 解决方法:换了一台电脑运行,发现问题已被解决,可能原因是自己电脑安装 时装少了一些文件。 8 设计感想 刚开始面对大作业的时候,我们都还是觉得很生疏,不知从哪里入手,尽 管做过实验。对于自己选的题目,具体需要做什么,能不能做出来,我们并不 清楚。但当时间一天天过去后,我们开始认真起来了。从复习课本,再到复习 实验,相互探讨编程思路,上网搜索资料,调试实验等,我们都在努力的自学 着。 首先,是学习上的巩固。一方面,通过复习课本和实验,对 dsp 的基础 知识又有了很大的巩固。其次,通过对用 mathlab 实现 fir 滤波器的设计,熟 悉了 matlab 软件的一些相关的窗口函数以及相关功能的调用,如怎样实现窗函 数的调用,怎样实现滤波,等等。 第二,对 fir 的滤波器性能和作用有了更深一层的了解。fir 滤波器的应 用十分广泛,当今许多信号处理系统和图像处理系统等都要求信号具有线性相 位特性。在这方面,fir 滤波器有十分独特的优点,运用 mathlab 语言,我们 能够很容易的设计出具有严格线性相位的 fir 滤波系统,以及比较容易的实现。 此外,我们还知道了 fir 滤波器是永远稳定的,因为 fir 滤波器的冲激响应是 有限长序列,其系统函数为一个多项式,它所含的的极点多为原点。 最后,也感谢徐梅宣老师的指导,跑了她办公室两次咨询情况,都很耐心 解答,真给了一些写报告或者软件应用的建议。 参 考 文 献 1 邹彦,dsp原理及应用(修订版) ,北京:电子工业出版社,2012 2 王宏. matlab6.5及其在信号处理中的应用.m. 北京:清华大学出版社, 2004 3 高西全,丁玉美,阔永红.数字信号处理-原理、实现及应用.m.北京:电子工 业出版社,2006 4 胡广书编著,数字信号处理理论、算法与实现.北京:清华大学出版社, 2005; 附 录 1.主程序 fir.asm: .title “fir.asm“ .mmregs .def start .bss yn,1 xn .usect “xn“,37 hn .usect “hn“,37 indata .usect “indata“,300 outdata .usect “outdata“,256 .data fir_coff: .word -10*1024/10000,-36*1024/10000 .word 0*1024/10000,65*1024/10000 .word 32*1024/10000,-88*1024/10000 .word -93*1024/10000,90*1024/10000 .word 184*1024/10000,-47*1024/10000 .word -297*1024/10000,-71*1024/10000 .word 417*1024/10000,316*1024/10000 .word -524*1024/10000,-848*1024/10000 .word 598*1024/10000,3108*1024/10000 .word 4375*1024/10000 .word 3108*1024/10000,598*1024/10000 .word -848*1024/10000,-524*1024
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司电商活动策划方案
- 公司职员会议活动方案
- 可摘义齿固位技术-洞察及研究
- 2025年供热通风与空调工程师考试试题及答案
- 2025年法律与生物伦理的考试试题及答案
- 2025年中国类人胶原蛋白行业市场全景分析及前景机遇研判报告
- 2024年度浙江省护师类之主管护师典型题汇编及答案
- 公寓防火安全教育
- 员工入职三级安全培训
- DB43-T 2864-2023 土家族非遗乐器咚咚喹通.用技术要求
- 2023年黑龙江省文化和旅游系统事业单位人员招聘笔试模拟试题及答案解析
- 2023年江西新余市数字产业投资发展有限公司招聘笔试题库含答案解析
- LY/T 3323-2022草原生态修复技术规程
- 部编版六年级语文下册课件第1课《北京的春节》《腊八粥》
- 涂装工模拟练习题含答案
- 2023-2024学年河南省永城市小学数学二年级下册期末评估测试题
- 乳腺疾病的超声诊断 (超声科)
- 服务精神:马里奥特之路
- 《建筑施工安全检查标准》JGJ59-2011图解
- 华为大学人才培养与发展实践
- 医疗垃圾废物处理课件
评论
0/150
提交评论