基于TMS320C6713语音信号滤波去噪使用BARTHANNWIN设计的FIR滤波器.docx
《基于TMS320C6713语音信号滤波去噪使用BARTHANNWIN设计的FIR滤波器.docx》由会员分享,可在线阅读,更多相关《基于TMS320C6713语音信号滤波去噪使用BARTHANNWIN设计的FIR滤波器.docx(28页珍藏版)》请在冰豆网上搜索。
基于TMS320C6713语音信号滤波去噪使用BARTHANNWIN设计的FIR滤波器
XX大学
《通信系统DSP》课程设计报告
王二
校徽
学院XXXX专业XXXX
班级XXXX学号XXXX
学生姓名XXXX指导教师XXXX
课程成绩完成日期XX年X月X日
课程设计成绩评定
学院XXXX专业XXXX
班级XXXX学号XXXX
学生姓名XXXX指导教师XXXX
完成日期XX年X月X日
指导教师对学生在课程设计中的评价
评分项目
优
良
中
及格
不及格
课程设计中的创造性成果
学生掌握课程内容的程度
课程设计完成情况
课程设计动手能力
文字表达
学习态度
规范要求
课程设计论文的质量
指导教师对课程设计的评定意见
综合成绩指导教师签字XXXX年X月X日
课程设计任务书
XXXXX系XXXX专业
课程名称
数字信号处理课程设计
时间
XX-YY学年第X学期X-Y周
学生姓名
王二
指导老师
XX
题目
主要内容:
用麦克风采集一段语音信号,绘制波形并观察其频谱特点,加入一个带外单频噪声,使用BARTHANNWIN设计一个满足指标的FIR滤波器,对该含噪语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理结论。
与不同信源相同滤波方法的同学比较各种信源的特点,与相同信源不同滤波方法的同学比较各种滤波方法性能优劣。
要求:
(1)滤波器指标必须符合工程实际。
(2)设计完后应检查其频率响应曲线是否满足指标。
(3)处理结果和分析结论应该一致,而且应符合理论。
(4)独立完成课程设计并按要求编写课程设计报告书。
应当提交的文件:
(1)课程设计学年论文。
(2)课程设计附件(主要是源程序)。
基于TMS320C6713语音信号滤波去噪
——使用BARTHANNWIN设计FIR滤波器
学生姓名:
王二指导老师:
XX
摘要本课程设计主要是针对一段语音信号,加入噪声后,使用BARTHANNWIN设计出的FIR滤波器对加入噪声后的语音信号进行滤波处理,并且分析比较前后的时域和频域波形的程序设计,最后在DSP板上运行得到验证。
本课程设计中,操作系统平台为WindowsXP,程序设计的操作软件为CodeComposerStudio3.1,在CodeComposerStudio3.1中自编函数,设计出FIR滤波器。
此次设计首先在因特网上下载一段语音信号,通过进行自编函数加入2550Hz单频噪声,然后用BARTHANNWIN设计FIR滤波器,并且利用设计的滤波器对这段加入噪声的语音信号进行滤波去噪,用绘图的程序画出前后时域和频域的波形来进行对比分析。
程序经过多次的调试运行,基本实现了设计的目标,并且经过适当的修改后,从波形看出可以完全滤除噪声,而且实际运行效果达到语音基本不失真的效果。
关键词课程设计;滤波去噪;FIR滤波器;TMS320C6713;CodeComposerStudio
1引言
本课程设计主要是针对一段语音信号,在CodeComposerStudio3.1软件平台上,编程加入2550Hz单频噪声,绘制出前后的波形并观察其频谱,给定相应技术指标,使用BARTHANNWIN设计一个满足指标的FIR滤波器,编写出符合频率采样法原理的滤波器程序,对语音信号进行去噪处理,设计出分析比较语音信号滤波前后时域和频域波形的程序,并且比较滤波前后的波形和频谱并进行分析,最后在DSP板上运行以验证仿真结果。
根据结果和学过的理论得出合理的结论,写出符合要求的课程设计报告。
1.1课程设计的目的
数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
在过去的20多年里,数字信号处
理已经在通信等领域得到极为广泛的应用。
数字信号处理是利用计算机和专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以达到符合人们需要的信号形式。
在本次课程设计中,最主要的设计是设计FIR滤波器,FIR滤波器的设计方法主要分为两类:
第一类是基于逼近理想滤波器特性的方法,包括窗函数法、频率采样法和等波纹最佳逼近法;第二类是最优设计法。
本次的课程设计采用的是第一类设计方法,是使用BARTHANNWIN设计FIR滤波器对一段语音信号进行滤波去噪处理,通过这一过程,对滤波前后波形进行对比分析得到结论。
此课程设计比较简单,主要是将书本中的知识运用到现实中,并且根据设计题目的理解,运用软件编写出程序实现这一设计,并且在有TMS320C6713的板子上面运行,也是我们对数字信号处理的原理进行验证的一个过程。
对此,也可以加深我们对所学知识的理解,培养我们的动手能力。
1.2课程设计的要求
(1)通过利用各种不同的开发工具实现模拟信号数字化、信道编解码、基带数字信号编解码、数字信号的调制解调和语音信号的滤波去噪等课题,掌握数字信号的分析方法和处理方法。
(2)按要求编写课程设计报告书,能正确阐述设计和实验结果等等。
(3)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。
(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。
1.3设计平台
本设计的设计平台是CodeComposerStudio™(CCStudio)是用于德州仪器(TI)嵌入式处理器系列的集成开发环境(IDE)。
CCStudio包含一整套用于开发和调试嵌入式应用的工具。
它包含适用于每个TI器件系列的编译器、源码编辑器、项目构建环境、调试器、描述器、仿真器、实时操作系统以及多种其他功能。
直观的IDE提供了单个用户界面,可帮助您完成应用开发流程的每个步骤。
借助于精密的高效工具,用户
能够利用熟悉的工具和界面快速上手并将功能添加至他们的应用。
CodeComposerStudio以Eclipse开源软件框架为基础。
Eclipse软件框架最初作为创建开发工具的开放框架而被开发。
Eclipse为构建软件开发环境提供了出色的软件框架,并且逐渐成为备受众多嵌入式软件供应商青睐的标准框架。
CCStudio将Eclipse软件框架的优点和TI先进的嵌入式调试功能相结合,为嵌入式开发人员提供了一个引人注目、功能丰富的开发环境。
下图为CodeComposerStudio3.1的初始界面:
2设计原理
2.1FIR滤波器
FIR(FiniteImpulseResponse)滤波器是有限长的单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。
因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用[5]。
有限长单位冲激响应(FIR)滤波器有以下几个特点:
(1)系统的单位冲激响应
在有限个
值处不为零;
(2)系统函数
在
处收敛,极点全部在
处(因果系统);
(3)结构上主要是非递归结构,没有输出到输入的回馈,但有些结构中(例如频率抽样结构)也包含有回馈的递归部分。
FIR滤波器的系统函数用下式表示:
。
就是FIR滤波器的单位脉冲响应。
FIR滤波器最重要的优点就是不存在系统极点,相位响应可以使真正线性的,因而绝对稳定,设计相对容易,在实现上也是高效的。
FIR滤波器包括4种结构:
直接型、级联型、线性相位型、频率采样型。
FIR滤波器无反馈回路,是一种条件稳定系统,可以设计成具有线性相位特性。
设FIR滤波器的系数为h(0)、h
(1)、h
(2)、h(3)···h(N-2)、h(N-1);X(n)表示滤波器在n时刻的输入,则n时刻的输出为:
(2-1)
FIR数字滤波器的结构如图2-1所示:
设计一个FIR滤波器,可以有多种方法,可以用窗函数法、频率采样法、脉冲响应不变法和双线性变换法。
其中窗函数法是设计FIR数字滤波器的最简单也是工程上常用的方法。
FIR滤波器设计的主要方法如下表所示:
函数设计方法
说明
工具函数
窗函数法
理想滤波器加窗处理
fir1(单频带),fir2(多频带),kaiserord
最优化设计
平方误差最小化逼近理想幅频响应或Park-McClellan算法产生等波纹滤波器
firls,remez,remezord
约束最小二乘逼近
在满足最大误差限制条件下使整个频带平方误差最小化
fircls,fircls1
升余弦函数
具有光滑、正弦过渡带的低通滤波器设计
Fircos
表2-2FIR滤波器设计的主要方法
2.2窗函数设计方法
FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。
窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,窗口设计法是一种通过截断和计权的方法使无限长非因果序列成为有限长脉冲响应序列的设计方法。
通常在设计滤波器之前,应该先根据具体的工程应用确定滤波器的技术指标。
在大多数实际应用中,数字滤波器常常被用来实现选频操作,所以指标的形式一般为在频域中以分贝值给出的相对幅度响应和相位响应。
窗口设计法步骤如下:
(1)根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N。
窗函数的类型可根据最小阻带衰减AS独立选择。
(2)根据待求滤波器的理想频率响应求出理想单位脉冲响应hd(n)。
(3)由性能指标确定窗函数W(n)和长度N。
(4)求得实际滤波器的单位脉冲响应h(n),h(n)即为所设计FIR滤波器系数向量b(n)。
理想的滤波器是物理不可以实现的,为了物理实现,必须加窗函数,这里应该强调的是,加窗函数不是可有可无的,而是将设计变为物理可实现所必须的。
截取之后的滤波器传递函数变为:
(2-2)
上式中,N为窗口宽度,H(z)是物理可实现系统。
这种方法的基本原理是用一定宽度的矩形窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,从而得到FIR滤波器的脉冲响应,故称为FIR滤波器的窗函数设计法。
为了改善FIR滤波器性能,要求窗函数的主瓣宽度尽可能窄,以获得较窄的过渡带;旁瓣相对值尽可能小,数量尽可能少,以获得通带波纹小,阻带衰减大,在通带和阻带内均平稳的特点,这样可使滤波器实际频率响应更好地逼近理想频率响应。
数字信号处理的前驱者们设计了不同于矩形窗的很多窗函数,这些窗函数在主瓣和旁瓣特性方面各有特点,可满足不同的要求。
为此,用窗函数法设计FIR数字滤波器时,要根据给定的滤波器性能指标选择窗口宽度N和窗函数w(n)。
2.3C6713芯片及开发板简介
C6000是TI公司于1997年推出的DSP芯片,C67xx系列是浮点运算处理。
C6000片内有8个并行处理单元,分为相同的两组,其体系结构采用甚长令字(VLIW)结构,单指令字长为32bit,8个指令组成一个指令包,总字长8*32=256bit。
芯片内部设置了专门的指令分配模块,可以将每个256bit的指包同时分配到8个处理单元,并由8个单元同时运行。
当8个单元同时运行,其最大处理能力可以达到300*8=2400MIPS,图2-1为其结构框图:
图2-3C6713结构框图
TechV-C6711/C6211/C6713是低成本,高度集成的高性能信号处理开发平台,可以开发仿真TIC67xx系列DSP应用程序,同时也可以将该产品集成到用户的具体应用系统中。
方便灵活的接口为用户提供良好的开放平台。
采用该系列板卡进行产品开发或系统集成可以大大减少用户的产品开发时间。
TechV-C6711/C6211/C6713CPU板卡通过32位外部存储器接口扩展16M的SDRAM,1M的Flash,并且所有外部存储器接口信号都连接到子板扩展接口(ExtCE3)上,用户可以通过外部子板扩展接口扩展自己的功能子板。
板上CPLD主要完成系统的控制(DSP通用存储器及其他外设的无缝接口)以及状态译码,DIP开关和数字量输出/输入的扩展。
除基本控制逻辑外包括8个控制寄存器、4位LED、8位DIP开关量输入和8位数字量输入输出(默认输出,用户可以自己配置)。
板卡通过POWER1接口提供电源,采用单5v的供电方式,电源调节模块为处理器及其他外设提供3.3V和1.26/1.8V电压。
板卡结构框图如图2-2所示:
图2-4板卡结构框图
2.4语音芯片AIC23
最后可以得到TLV320AIC23(以下简称AIC23)是TI推出的一款高性能的立体声音频Codec芯片,内置耳机输出放大器,支持MIC和LINEIN两种输入方式(二选一),且对输入和输出都具有可编程增益调节。
AIC23的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的Sigma-delta过采样技术,可以在8K到96K的频率范围内提供16bit、20bit、24bit和32bit的采样,ADC和DAC的输出信噪比分别可以达到90dB和100dB。
与此同时,AIC23还具有很低的能耗,回放模式下功率仅为23mW,省电模式下更是小于15uW。
由于具有上述优点,使得AIC23是一款非常理想的音频模拟I/O器件,可以很好的应用在随声听(如CD,MP3……)、录音机等数字音频领域。
图2-5C6713与AIC23B的硬件接口
AIC23的配置接口支持I2C模式,也支持SPI模式。
通常比较简单的办法是利用DSP的一个McBSP用SPI模式跟AIC23连接。
但是有些时候,如果DSP的McBSP串口资源比较紧张(比如需要跟近端RS-232和远端RS-485连接),也可以通过DSP模拟I2C总线与AIC23连接。
下面简单介绍这SPI方法:
图2-6SPI模式的时序图
2.5FIR滤波器DSP实现方案
TLV320AIC23(以下简称AIC23)是TI推出的一款高性能的立体声音频Codec芯片,内置耳机输出放大器,支持MIC和LINEIN两种输入方式(二选一),且对输入和输出都具有可编程增益调节。
AIC23的模数转换(ADCs)和数模
转换(DACs)部件高度集成在芯片内部,采用了先进的Sigma-delta过采样技术,可以在8K到96K的频率范围内提供16bit、20bit、24bit和32bit的采样,ADC和DAC的输出信噪比分别可以达到90dB和100dB。
与此同时,AIC23还具有很低的能耗,回放模式下功率仅为23mW,省电模式下更是小于15uW。
由于具有上述优点,使得AIC23是一款非常理想的音频模拟I/O器件,可以很好的应用在随声听(如CD,MP3……)、录音机等数字音频领域。
它的外围接口主要包括数字音频接口、麦克风输入接口、LINEIN输入接口、耳机输出接口、配置接口以及其它接口管脚。
一个典型的DSP系统如图2-2所示:
图2-7典型DSP系统的构成
首先进行带限滤波和抽样,然后进行A/D转换成数字比特流,由耐奎斯特样定理可知为了保证信息完整抽样频率至少是输入带限信号最高频率的2倍。
之后输入DSP芯片的是以抽样形式表示的数字信号,DSP芯片对输入信号行处理,如进行一系列的乘累加操作,最后经过处理后的数字样值经D/A换成为模拟样值再经过内插和平滑滤波就得到了连续的模拟波形。
用DSP芯片TLC320AIC23实现FIR滤波器的具体方案是:
先用MATLAB的相关滤波器函数设计一个FIR滤波器,将产生的滤波器系数作为DSP芯片实现该FIR滤波器的系数。
然后用MATLAB的SIMULINK功能信号源模块产生滤波器的输入数据,并仿真出滤波器的滤波过程,使用Scope模块得到滤波器对所输入的数据产生的滤波结果。
也就是,设计的滤波器对所采集的语音信号进行处理。
再通过DSP的集成开发环境CCS把SIMULINK所产生的滤波器数据存储在DSP芯片的数据空间中。
最后使汇编语言设计TLC320AIC23的FIR滤波程序,将MATLAB函数产生的滤波器系数和用C语言产生的输入数据进行运算。
输入数据和通过DSP芯片产生的滤波结果可以通过CCS显示出来,这样就可以验证该滤波器的实现。
3设计步骤
3.1FIR滤波器设计总框图
FIR滤波器设计总框图3-1所示。
图3-1FIR滤波器设计总框图
3.2语音信号的采集
所需的硬件主要是DSP、DRAM、TLC320AD50、TLC2272,语音信号从麦克风输入后经过TLC2272(双路低噪声)滤波,通过AD50的A/D将模拟信号转换为数字信号后,编写DSP程序,将采集的数字信号存入DSP的DRAM,然后经某一事件触发,将信号回放出去,信号由耳机输出。
其中原理框图如图3-2所示。
图3-2语音处理的硬件连接示意图
3.3用MATLAB控制串口接收数据
1.先进行串口的初始化操作,然后打开串口,用到的函数为:
serial和open。
2.设定MATLAB和DSP的握手方式,可通过串口目标的FlowControl属性设定。
3.接收和发送数据,用到fread和fwrite函数。
对于用DSP器件设计的语音信号滤波器,其系统软件设计可使用CCS(CodeComposerStudio)软件来进行调试。
设计调试时,首先应对各个设备进行初始化配置,然后再调用子程序来处理音频数据的输入和输出。
在子程序中,首先初始化语音缓冲区和工作变量,等待MCBSP通道0传送结束后,再采集语音信号,然后传送到MCBSP并保存于左声道缓冲区,此时即可调用材料计算FIR滤波输出,滤波后的结果存放于右声道缓冲区,最后将滤波后的信号输出到MCBSP接口,再将此信号传送到TMS320C5410中。
通过DSP的串口0输入/输出数据。
在串口通讯中,数据时钟和帧同步信号都由AC01产生,所以TLC320AIC23将使用外部时钟和帧同步信号。
完成串口设置后,还需要修改中断向量表以便正确响应串口0的接收和发送中断请求。
使用发送中断产生送出滤波之后的数字语音信号;使用接收中断存贮输入的数据,并设置新数据到达标志。
主循环在检测到该标志后,调用FIR滤波程序,完成对输入数据的处理。
3.4FIR滤波器设计
我们利用数字信号处理里面学过的知识,根据自己选定的参数,用指定的方法设计FIR滤波器,得到FIR滤波器的阶数M。
随后调用KAISER(M)函数产生M阶的KAISER窗。
然后调用滤波函数即可计算得到该滤波器的频率特性及对信号滤波后的图形。
[n,Wn,beta,ftype]=kaiserord([7131723],[010],[0.010.010.01],100); %得出滤波器的阶数n=38,beta=3.4
w1=2*fc1/fs;w2=2*fc2/fs;
%将模拟滤波器的技术指标转换为数字滤波器的技术指标
window=kaiser(n+1,beta);
%使用kaiser窗函数b=fir1(n,[w1w2],window);
%使用标准频率响应的加窗设计函数freqz(b,1,512);
%数字滤波器频率响应t=(0:
100)/Fs;
s=sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);
%混和正弦波信号sf=filter(b,1,s);
%对信号s进行滤波
得到的图形如下图3-3所示:
图3-3滤波前后的波形
运行程序后,使用DSP的集成开发环境CCS可以将输入数据与滤波结果显示出来,通过与使用MATLAB的SIMULINK功能仿真出的滤波结果进行比较,可以验证用DSP芯片C54x实现的该FIR滤波器的滤波过程是否正确。
利用MATLAB的滤波器设计函数fir1设计了一个具有线性相位的数字低通FIR滤波器,得到了该滤波器的滤波系数及幅频特性曲线、相频特性曲线,并且用MATLAB的仿真工具SIMULINK仿真了该FIR滤波器的滤波过程;通过线性缓冲区法对FIR滤波器在DSP芯片C54x的实现做了理论上的分析。
用MATLAB语言可方便、快捷地设计具有线性相位的FIR滤波器,而且对于参数的修改也十分方便。
用MATLAB仿真工具可以清晰地仿真出FIR滤波器的滤波过程,有利于理解滤波过程,且可以判断滤波结果的正确性。
利用DSP芯片实现FIR滤波器,不仅具有准确度高、执行速度快等特点,而且用程序可移植性好,实用性强可以十分方便地改变滤波器特性。
在实际应用中,只需要按照要求修改滤波器的参数,并对程序作微小的改动,即可实现不同要求的FIR滤波器。
3.4信号滤波仿真
音乐波形的仿真:
(1)进入CCS系统配置
启动CCS配置程序。
双击桌面上的SetupCCS快捷图标,弹出对话框。
添加TMS320C6713芯片型号。
图3-4CCS配置窗口
(2)CCS编译、调试、运行
利用CCS创建一个新工程,然后向该工程中添加源代码文件和库文件。
1)CCS的安装目录为D:
\ccs3.1,首先在文件夹D:
\ccs3.1\myprojects\下建立一个新的文件夹。
命名为test。
2)将主函数main.c与input.dat文件拷贝到该新建的文件夹中。
3)向工程中添加文件:
在CCS中选择菜单Project->addFilestoProject,并在文件类型选框中选汇编源文件(*.a*,*.s*),将main.c添加到Source文件夹、rts6700.lib添加到Libraries文件夹、c6x.h添加到Documents文件夹中。
4)打开main.c主函数,选择软件窗口上的
。
CCS重新编译,并链接工程中的全部文件。
编译过程信息显示在CCS下部的窗口中。
5)在主函数中添加断点与指针:
编译完主函数后,单击x_in=(short)(dat&0xffff);语句,选择
(添加断点),选择
(添加指针)。
6)在默认情况下,将当前工程目录下的debug子目录中生成.out文件。
通过CCS工具条可改变生成文件的存放位置。
7)选FileLoadProgram,并在对话框中选刚刚编译生成的文件xty.out,单击Open打开。
8)从File菜单选择FileI/O。
FileI/O对话框出现以便选择输入、输出文件。
如下图所示,添加文件并修改参数。
(3)显示时域图形:
选菜单ViewGraphTime/Frequency。
在GraphProperty对话框中,StartAddress为in,AcquisitionBufferSize为512,DisplayDataSize为512,DSPDataType为32-bitfloatingpoint,Autoscale为Off,MaximumY-value为200。
音乐波形的时域图就能绘出来了。
(4)显示频域域图形:
选菜单ViewGraphTim