ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:378.45KB ,
资源ID:12899744      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12899744.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(语音信号的fir滤波器处理华南农业大学doc.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

语音信号的fir滤波器处理华南农业大学doc.docx

1、语音信号的fir滤波器处理华南农业大学docDSP课程设计报告 语音信号的FIR滤波器处理姓 名: XXX XXX XXX 班 级: 10电信1 学 号: XXXXXXXX 指导老师: 徐梅宣 日期: 2013.06.102013.06.21 华南农业大学工程学院摘 要DSP( Digital Signal Processing) 也就是我们常说的数字信号处理, 它是利用计算机或专用处理设备, 以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理, 以得到符合人们需要的信号形式。DSP 芯片在信号处理、通信、雷达等许多领域得到广泛的应用。Matlab是一款强大的软件,它将数值分析

2、、矩阵计算、科学数据可视化等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案。CSS集成开发环境使用CCS内置的软件仿真simulator对程序进行编译,调试和运行,主要用于检测目标程序运行的正确性和连贯性,并能通过仿真器与目标板连接,在目标板上实时观察效果。在本次设计中,我们选择的课题是基于DSP的语言信号的FIR滤波处理。首先利用MATLAB进行了仿真,得到滤波前后的时域波形和频谱。然后通过调用MATLAB的分析工具FDATOOL,根据仿真结果导出了滤波器的相关参数,将原始信号数据和滤波器参数输入CCS进行DSP

3、编程。最后在DSP中实现了FIR带通滤波,并通过CCS的频谱分析功能查看了最终DSP的滤波效果。关键词: 语音信号 DSP FIR滤波 MATLAB CCS1.前言 42.设计原理 42.1数字信号处理器 42.2滤波器简介 52.3 fir滤波器原理 62.4窗函数简介 73.FIR滤波器的Matlab设计 83.1总体方案的设计 83.2语音信号的采集 93.3 MATLAP的具体处理 103.5 FIR滤波器的系统参数 144.FIR滤波器的CCS设计与仿真 164.1 CCS程序流程图 174.2 CCS仿真结果 205.问题及解决办法 226.设计感想 23参考文献 237.附录 2

4、41 前言随着信息与数字技术的发展,数字信号处理已经成为当今极其重要而学科与技术领域之一。它在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理的基本方法中,通常会涉及到变换、滤波、频谱分析、调制解调和编码解码等处理。其中滤波是应用非常广泛的一个环节,数字滤波器的理论和相关设计也一直都是人们研究的重点之一。FIR滤波器的是非递归的,稳定性好,精度高;更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特征。因此,它在高保真的信号处理,如数字音频、图像处理、数据传输和生物医学等领域得到广泛应用。在数字信号处理中,滤波占有

5、极其重要的地位。数字滤波是语音信号处理、图像处理、模式识别、频谱分析等应用的基本处理算法。用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响等优点外,还具有灵活性好等特点。本文介绍了数字滤波器的设计基础及用窗函数法设计FIR滤波器的方法,运用MATHLAB语言实现了低通滤波器的设计并用CCS 3.3进行观察效果。2 设计原理2.1 数字信号处理器DSP(Digital Signal Processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数

6、据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由Ti公司提供专业的开发工具CCS,自带DSP/BIOS操作系统,能够直接编写适合DSP开发工程及文件,满足DSP程序设计要求。由MathWorks 公司和TI 公司联合开发的DSPMATLAB Link for CCS Development Tools(简称CCSLink)是MATLAB6.5 版本(Release13)中增加的一个全新的工具箱,它提供了MATLAB、CCS 和DSP 目

7、标板的接口,利用此工具可以像操作MATLAB变量一样来操作DSP 器件的存储器和寄存器,使开发人员在MATLAB环境下完成对DSP的操作,从而极大地提高DSP应用系统的开发进程。本设计主要是使用DSP对语音噪声信号进行处理,使用CCS开发工具编写程序,同时利用MATLAB操作DSP 器件的存储器和寄存器。2.2 滤波器简介滤波器,顾名思义,是对波进行过滤的器件。“波”是一个非常广泛的物理概念,在电子技术领域,“波”被狭义地局限于特指描述各种物理量的取值随时间起伏变化的过程。该过程通过各类传感器的作用,被转换为电压或电流的时间函数,称之为各种物理量的时间波形,或者称之为信号。因为自变量时间是连续

8、取值的,所以称之为连续时间信号,又习惯地称之为模拟信号(Analog Signal)。随着数字式电子计算机(一般简称计算机)技术的产生和飞速发展,为了便于计算机对信号进行处理,产生了在抽样定理指导下将连续时间信号变换成离散时间信号的完整的理论和方法。也就是说,可以只用原模拟信号在一系列离散时间坐标点上的样本值表达原始信号而不丢失任何信息,波、波形、信号这些概念既然表达的是客观世界中各种物理量的变化,自然就是现代社会赖以生存的各种信息的载体。信息需要传播,靠的就是波形信号的传递。信号在它的产生、转换、传输的每一个环节都可能由于环境和干扰的存在而畸变,有时,甚至是在相当多的情况下,这种畸变还很严重

9、,以致信号及其所携带的信息被深深地埋在噪声当中了。滤波,本质上是从被噪声畸变和污染了的信号中提取原始信号所携带的信息的过程。滤波器特性可以用其频率响应来描述,按其特性的不同,可以分为低通滤波器,高通滤波器,带通滤波器和带阻滤波器等。 带通滤波器(英语:Band-pass filter)是指能通过某一频率范围内的频率分量、但将其他范围的频率分量衰减到极低水平的滤波器,与带阻滤波器的概念相对。一个模拟带通滤波器的例子是电阻-电感-电容电路(RLC circuit)。这些滤波器也可以用低通滤波器同高通滤波器组合来产生。2.3 FIR滤波器原理FIR滤波器(有限长单位冲激响应滤波器)是在数字信号处理(

10、DSP)中经常使用的两种基本的滤波器之一,另一个为IIR滤波器。IIR滤波器是无限冲激响应滤波器。不论哪一种滤波器设计方法,都要求出滤波器的单位冲激响应h(n),然后才能在时域中实现频域中的滤波。在频域,当其输入信号为X(ej)时,如滤波器的频率响应为H(ej),则其输出信号为Y(ej)=X(ej)H(ej)。在时域,设滤波器的单位冲激响应h(n)为一N点序列,即0nN-1时h(n)的值不为零,根据离散傅氏变换的性质,则可以将滤波器的输入序列x(n)的响应y(n)表示为x(n)与h(n)的卷积和,即:这就是滤波系统的差分方程,它给滤波器的实现奠定了理论基础。即求出时域的h(n)后,便可通过卷积

11、来实现频域的滤波。卷积和运算主要有以下几个步骤:(1) h(n)序列N个点数值的存储由于h(n)是根据滤波性能要求已经设计好的有限长单位冲激响应,故其N个点的数值是已知的,因此可以存放在ROM或RAM当中,且对应着N个不同的地址,便于寻址。(2) 输入序列x(n)的移位寄存 输入序列x(n)是不断变化的,因此只能对其进行移位寄存,寄存器的个数为N,即N个寄存器中分别存放着x(n)、x(n-1)x(n-N+1),它们都随着n的变化而变化。(3) 乘法器用以完成两个数值的乘法,即h(m)x(n-m),也就是将存储器中N地址所对应的N个固定数值h(m)分别与N个移位寄存器中的不断变化的N个变化数值x

12、(n-m)相乘。(4) 累加器用以实现N个乘积的累加,即将当前x(n)所对应的N个乘积进行累加,所得到的和就是y(n)。当滤波器的下一个输入值即x(n +1)到来时,累加器清零,并重新将下一组x(n +1)所对应的N个乘积进行累加,所得到的和就是y(n +1)。2.4 窗函数简介数字信号处理的主要数学工具是傅里叶变换。而傅里叶变换是研究整个时间域和频率域的关系。不过,当运用计算机实现工程测试信号处理时,不可能对无限长的信号进行测量和运算,而是取其有限的时间片段进行分析。做法是从信号中截取一个时间片段,然后用观察的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变

13、换、相关分析等数学处理。无线长的信号被截断以后,其频谱发生了畸变,原来集中在f(0)处的能量被分散到两个较宽的频带中去了(这种现象称之为频谱能量泄漏)。为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截短,截断函数称为窗函数,简称为窗。信号截短以后产生的能量泄漏现象是必然的,因为窗函数w(t)是一个频带无限的函数,所以即使原信号x(t)是有限带宽信号,而在截短以后也必然成为无限带宽的函数,即信号在频域的能量与分布被扩展了。又从采样定理可知,无论采样频率多高,只要信号一经截短,就不可避免地引起混叠,因此信号截短必然导致一些误差。泄漏与窗函数频谱的两侧旁瓣有关,如果两侧瓣的高度趋于零,而使能量

14、相对集中在主瓣,就可以较为接近于真实的频谱,为此,在时间域中可采用不同的窗函数来截短信号。3 FIR滤波器的Matlab设计3.1. 总体方案设计本次课程设计所采用的主要软件为Matlab。设计中用到的函数主要有wavread,sound,fft,subplot,plot,fir1,freqz,filter。 课程设计利用窗函数法设计FIR数字滤波器,并利用MATLAB作为辅助工具仿真滤波前后的时域波形和频谱。对于DSP的处理,首先,通过Matlab给语音信号添加高频噪音,即将原始信号调制到某一高频上(本设计用10000hz),再将其与原始语音信号相叠加,最后将这个叠加后的信号转化为数据(ma

15、tlab编程),并存入后缀为dat的文件中。之后根据仿真结果使用MATLAB的设计分析工具FDATOOL产生滤波器参数。将混叠后的信号数据和滤波器参数输入CCS进行DSP编程,在DSP中实现FIR带通滤波,并使用CCS的频谱分析功能,查看最终DSP的滤波效果。3.2 语音信号的采集使用PC 机上的声卡和WINDOWS 操作系统可以进行数字信号的采集。将话筒插入计算机的语音输入插口上,启动MOOo录音专家。按下录音按钮,接着对话筒录音,录音结束后屏幕左侧将显示所录声音的长度。点击放音按钮,可以实现所录音的重现。如图3.1所示,以文件名“voice”保存入matlab当前工作路径 中。可以看到,文

16、件存储器的后缀默认为.wav ,这是WINDOWS 操作系统规定的声音文件存的标准。3.3 matlab具体处理初始化读入语音信号原始音频抽样加噪声并带通滤波导出混合信号供DSP处理3.3.1 原始音频抽样Fs=10000;bits=16;T=1;ts=1/Fs;N=38;x,Fs,bits=wavread(voice.wav); %x=x(:,1); m=length(x);%sound(x,Fs,bits);y=fft(x,m); %对录制的信号进行傅立叶变换f=(Fs/m)*1:m;t=1:m/Fs;figure(1);subplot(211);plot(t,x);title(原始信号波

17、形);xlabel(time(s);subplot(212);plot(f,abs(y);title(原始信号频谱);xlabel(frequency(hz);noise4=0.01*sin(2*pi*5000*t)+0.01*sin(2*pi*200*t); 带通噪声%3.3.2 加噪声并带通滤波fpl4=500;fph4=2000;fsl4=700;fsh4=1800;wp4=2*fpl4/Fs 2*fph4/Fs;ws4=2*fsl4/Fs 2*fsh4/Fs;X4=x+noise4;%加了带通噪声的信号%sound(X4,Fs,bits);%回放噪声信号Y41=fft(X4,m);%对

18、加了带通噪声的信号进行傅立叶变换figure(2);subplot(211);plot(t,X4);title(加了带通噪声的信号时域图);xlabel(time(s);subplot(212);plot(f,abs(Y41);title(加了带通噪声的信号频谱图);xlabel(frequency(hz);figure(3);wc4=(wp4+ws4)/2;b4=fir1(N,wc4,kaiser(N+1);%调用kaiser计算带通FIRDF的b4(n)hn4 wp4=freqz(b4,1,512);subplot(211);plot(wp4/pi,20*log10(abs(hn4);ti

19、tle(带通滤波器幅频);xlabel(w);subplot(212);plot(wp4/pi,unwrap(angle(hn4);title(带通滤波器相频);xlabel(w);figure(4);x4get=filter(b4,1,X4);Y4get=fft(x4get,m);%sound(x4get,Fs,bits);subplot(211);plot(t,x4get);title(加了带通噪声的信号滤波后时域图);xlabel(time(s);subplot(212);plot(f,abs(Y4get);title(加了带通噪声的信号滤波后频谱图);xlabel(frequency(

20、hz);3.3.3 导出混合信号供DSP处理xout=X4/max(X4);xto_ccs=round(32767*xout);%由于TMS32054X是16位定点处理器,在进行汇编程序设计时,FIR滤波器系数需要采用Q15格式。 myfile=fopen(fir1.dat,w);%新建fprintf(myfile,1651 1 e5 1 12cn);fprintf(myfile,%dn,xto_ccs);%把调制信号+原始信号输出fir.dat文件fclose(myfile);3.5 FIR滤波器的系统参数在本设计中,使用MATLAB模拟产生合成信号,然后利用CCS进行滤波。因此设计一个FI

21、R带通滤波器,其参数为:采样频率: Fs=44100Hz通带1: Fp=700Hz阻带1: Fc=500Hz通带2: Fp=1800Hz阻带2: Fp=2000Hz通带最大衰减: 1dB阻带最少衰减: 100dB滤波器级数: N=38(由MATLAB根据前述参数求得。)其中,采样频率由y,fs,bits=wavread()求出。其中fs为采样频率。执行程序可得fs为22050HZ。滤波器级数由%据*;c*c,(带宽)c,(窗口长度)(),(阶数);算出阶数为38。滤波器系数使用matlab滤波器的设计/分析工具FDATOOL设计FIR滤波器。步骤如下图所示:图 9 Matlab 声音信号调制示

22、意图4 FIR滤波器的检验图 10 Matlab滤波器设计在选项中选择或输入滤波器参数,然后点击”Design Filter”按钮完成滤波器设计。设计成功后的结果如图下图所示。在fdatool中,选择Targets-Code Composer StudioIDE。在出现的对话框中选择输出文件类型为C.header file,输出系数类型为signed 16-bit integer,如图1113。点击Generate按钮,选择路径,即可输出前一步设计出的FIR滤波器系数表。4 FIR滤波器的CCS设计与仿真CCS是一种针对TMS320系列DSP的集成开发环境,在windows操作系统下,采用图形

23、接口界面,提供环境配置、源文件编辑、程序调试、跟踪和分析等工具,提供了配置、建立、调试、跟踪和分析程序的工具,从而完成编辑、编译、链接、调试和数据分析等工作。在CCS中编写汇编语言程序,进行调试,实现FIR滤波的功能。本课程设计使用CCS开发应用程序的一般步骤为: (1)创建一个工程项目文件fir2.h,用汇编语言编写处理主程序fir2.asm。另外根据板上的存储器配置方式,编写存储器配置文件fir.cmd文件,将MATLAB生成的fir2.h和indata.dat文件拷贝到工程文件夹下。 (2)编辑各类文件。使用CCS提供的集成编辑环境,对头文件、链接命令文件和源程序进行编辑。 (3)对工程

24、项目进行编译,生成可执行文件。如出现语法错误,将在构建窗口中显示错误信息。用户可以根据显示信息定位错误信息,更改错误。 (4)下载程序、输入数据,执行程序,对结果和数据进行分析和算法评估。利用CCS提供的探测点、图形显示等工具,对运行结果、输出数据进行分析,评估算法性能。4.1 CCS程序流程图图 15 CCS汇编程序流程图开始DSP初始化将滤波系数分别存放在存储单元bn中从第L个数开始读入抽样值抽样值存入在存储单元xn中将bn中和xn中对应的值相乘累加bn*xn+ACC=ACCL=L+1输出结果4.1.1 程序分析 FIR滤波器的DSP实现主要有线性缓冲区法和循环缓冲区法两种。 线性缓冲区法

25、又称延迟线法。其特点: (1)对于N级的FIR滤波器,在数据存储器中开辟一个N单元的缓冲区(滑窗),用来存放最新的N个输入样本; (2)从最老样本开始取数,每取一个样本后,将此样本向下移位; (3)读完最后一个样本后,输入最新样本存入缓冲区的顶部。 循环缓冲区法的特点如下: (1)对于N级FIR滤波器,在数据存储器中开辟一个N单元的缓冲区(滑窗),用来存放最新的N个输入样本; (2)从最新样本开始取数; (3)读完最后一个样本(最老样本)后,输入最新样本来代替最老样本,而其他数据位置不变; (4)用片内BK(循环缓冲区长度)寄存器对缓冲区进行间接寻址,使循环缓冲区地址首尾相邻。 本次设计的FI

26、R滤波器所采用的就是循环缓冲区法。对DSP进行初始化,并设置好存储单元。为数字滤波作准备,将预先设计好的有N个抽头的FIR数字滤波器的冲激响应序列h(n)中的N个数值放入存储单元bn中,从indata数据存储段中读入抽样值,将抽样值逐一放入存储单元xn中。主要循环程序如下:STM #-1,AR0RPTZ A,# ;将ACC累加器清零,循环次MAC *AR2+0%,*AR3+0%,ASTH A,*(yn) ;保存输出 MVKD *(yn),*AR5+将累加器清零,将存储单元bn与xn值对应相乘并累加到ACC中,循环次将ACC中的值保存输出。再从indata数据存储段中读入一个新的数据,代替原来的

27、最老样本 MVDD *AR4+,*AR2+0% ,重复循环直到数据全部处理完。最后将处理完的数据输入到outdata数据存储段中。4.1.2 数据输入 MATLAB辅助DSP 实现FIR滤波器滤波 ,其总体过程是为DSP 中编写处理程序提供滤波器系数。在MATLAB中利用滤波器设计、分析工具( FDATOOL) ,根据指定的滤波器性能快速设计一个FIR ,然后把滤波器系数以头文件形式导入CCS 中,头文件中包含MATLAB 辅助DSP 实现FIR 数字滤波器的阶数和系数数组,在MATLAB中调试、运行DSP 程序并显示、分析处理后的数据。 打开CCS IDE 中file的data加载初始化da

28、ta数据,在Address中输入数据存放的起始地址indata,并设置数据栈长度。4.1.3 运行程序仿真运行程序,查看输入输出波形,修改相应参数进行调试。在View的Graph中单击Time/frequency出现graph property dialog框。将显示类型,图形名称,起始地址,抽样点数,数据类型等分别进行设置,输出各种波形。输出滤波前的信号时域波形。首先,设置如下图所示,输出滤波前的信号时域波形。图 16 滤波前语音信号的时域Graph Property Dialog设置参数图将Display Type改为FFT Magnitude 就可以看到滤波前信号的频谱,将Start A

29、ddress改为outdata就可以看到滤波后信号的时域波形和频谱。4.2 CCS仿真结果图 17 滤波前语音信号的时域波形图图 18 滤波前信号频谱波形图4.2.2 FIR滤波器滤波后的信号 图 19 滤波后信号时域波形图图 20 滤波后信号频谱图图17波前的信号,由高频信号和原信号叠加而成的波形较为杂乱,加噪后的信号幅值较大。图19波后的信号,从图上可以看到信号幅度较低,波形较为清晰。对比图18图20可以看到加躁后信号幅值较大,信号的能量集中在高频段,滤波后,高频成分大部分被滤去,信号的能量主要集中在低频段。5 问题及解决方法1.为什么存入DAT文件的信号数据要乘上32768?由于TMS3

30、2054X是16位定点处理器,在进行汇编程序设计时,FIR滤波器系数需要采用Q15格式,即必须将上述系数据转化位Q15定点式。 2.matlab编译错误出现如下错误?The carrier frequency must be less than half the sampling frequency.故降低载波频率3. 在View的Graph中单击Time/frequency出现graph property dialog框,未修改抽样点数,显示的图形出现差异.4.在CCS编译时,发现fir.h文件老是出错,最后发现滤波系数要以整数体现,而且不能加分号。6 设计感想通过本次课程设计,我们发现在课

31、本上学到的知识实在是不能使我们有能力驾驭这个课程设计。 一开始决定做这个课题,我们就去查找了大量资料,通过查找资料我们都清楚了大概要做些什么。首先要进行MATLAB仿真,并通过MATLAB设计的FIR滤波器输出滤波器系数。接着便是通过CCS编程,并在DSP上运行。我们觉得思路是很清晰的,但是实际操作起来却困难重重。原始信号有了,我们也得了教训,便开始计划开来。于是,翻书看完有关FIR滤波器的相关介绍,重点看了凯塞窗。然后查资料找出与本次设计有关的MATLAB知识。做完这些自然是开始设计,总体框架,具体步骤,都在脑袋瓜里转了几转。动工,这时才深刻体会到“纸上学来终觉浅,用到实际才叫真!”开始设计从噪

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1