长沙理工大学城南学院《数字信号处理》课程设计报告任健院系城南学院专业通信工程班级通信1104班学号 2学生姓名任健指导教师熊文杰课程成绩完成日期2014年7月4日课程设计成绩评定院系城南学院专业通信工程班级通信1104班ﻩ学号201185250426 学生姓名任健指导教师熊文杰完成日期2014 年7月 4 日指导教师对学生在课程设计中的评价指导教师对课程设计的评定意见课程设计任务书城南学院通信工程专业语音信号滤波去噪——使用三角窗设计FIR滤波器学生姓名:任健指导老师:熊文杰摘要本课程设计主要是通过使用三角窗设计一个FIR滤波器以对语音信号进行滤波去噪处理。
本设计首先用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用三角窗设计一个满足指标的FIR滤波器,对该语言信号进行滤波去早处理,比较滤波前后的波形和频谱分析,根据结果和学过的理论的出合理的结论。
通过对比滤波前后的波形图,深入了解滤波器的相关技术指标和性能,掌握设计滤波器的基本方法,通过程序调试及完善,该设计基本满足设计要求。
关键词MATLAB;三角窗;FIR滤波器;滤波去噪1 引言数字信号处理是将信号以数字方式表示并处理的理论和技术。
数字信号处理与模拟信号处理是信号处理的子集。
数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。
因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。
而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的[1]。
数字滤波器是一种用来过滤时间离散信号的数字系统,它是通过对抽样数据进行数学处理来达到频域滤波的目的。
随着现代通信的数字化,数字滤波器变得更加重要。
数字滤波器的种类很多,但总的来说可以分成两大类,一类是经典滤波器,另一类可称为现代滤波器。
从滤波特性方面考虑,数字滤波器可分成数字高通、数字低通、数字带通和数字带阻等滤波器。
从实现方法上考虑,将滤波器分成两种,一种称为无限脉冲响应滤波器,简称IIR(Infinite ImpulseResponse)滤波器,另一种称为FIR(FiniteImpulse Response)滤波器[2]。
设计FIR数字滤波器的方法有窗函数法、频率采样法和等波纹最佳逼近法等。
1.1课程设计目的用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用三角窗设计一个满足指标的FIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。
与不同信源相同滤波方法的同学比较各种信源的特点,与相同信源不同滤波方法的同学比较各种滤波方法性能的优劣。
1.2课程设计的要求(1)滤波器指标必须符合工程设计。
(2)设计完后应检查其频率响应曲线是否满足指标。
(3)处理结果和分析结论应该一致,而且应符合理论。
(4)在老师的指导下,独立完成课程设计并按要求编写课程设计报告。
1.3设计平台MATLAB是矩阵实验室(Ma trixLaboratory)的简称,是美国M athWorks公司出品的商业数学软件,用于算法开发,数学可视化,数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink 两大部分。
是一个可以完成各种精确计算和数据处理的、可视化的、强大的计算工具。
它集图示和精确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和其他需要进行复杂数值计算的领域得到广泛应用。
它不仅是一个在各类工程设计中便于使用的计算工具,而且也是一个在数学、数值分析和工程计算等课程教学中的优秀的教学工具,在世界各地的高等院校中十分流行,在各类工业应用中更有不俗的表现。
MATLAB可以在几乎所有的PC机和大型计算机上运行,适用于Windows、UNIX等各种系统平台。
2 设计原理2.1数字信号处理数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。
数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。
数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。
而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT 的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。
数字信号处理的特征和分类。
信号(signal)是一种物理体现,或是传递信息的函数。
而信息是信号的具体内容。
模拟信号(analogsignal):指时间连续、幅度连续的信号。
数字信号(digital signal):时间和幅度上都是离散(量化)的信号。
数字信号可用一序列的数表示,而每个数又可表示为二制码的形式,适合计算机处理。
一维(1-D)信号:一个自变量的函数。
二维(2-D)信号:两个自变量的函数。
多维(M-D)信号:多个自变量的函数。
信号处理的内容:滤波、变换、检测、谱分析、估计、压缩、识别等一系列的加工处理。
随着信息时代、数字世界的到来,数字信号处理已成为一门极其重要的学科和技术领域。
2.2窗口设计法窗口设计法的基本思想是用FIR逼近希望的滤波特性。
设希望逼近的滤波器的频率响应为,其单位脉冲响应用表示。
为了设计简单方便,通常选择为具有片段常数特性的理想滤波器。
因此是无限长非因果序列,不能直接作为FIR的单位脉冲响应。
窗口设计法就是截取为有限长的一段因果序列,并用合适的窗口函数进行加权作为FIR的单位脉冲响应。
常见的窗函数,可以分为以下主要类型:(1)幂窗--采用时间变量某种幂次的函数,如矩形、三角形、梯形或其它时间(t)的高次幂;(2)三角函数窗--应用三角函数,即正弦或余弦函数等组合成复合函数,例如汉宁窗、海明窗等;(3) 指数窗--采用指数时间函数,例如高斯窗等。
常见窗函数性能表如图2.2所示:图2.1常见窗函数性能表2.3 FIR滤波器FIR(Finite ImpulseResponse)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。
因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
FIR滤波器的种类目前,FIR滤波器的硬件实现有以下几种方式:(1)数字集成电路FIR滤波器一种是使用单片通用数字滤波器集成电路,这种电路使用简单,但是由于字长和阶数的规格较少,不易完全满足实际需要。
虽然可采用多片扩展来满足要求,但会增加体积和功耗,因而在实际应用中受到限制。
(2)DSP芯片FIR滤波器另一种是使用DSP芯片。
DSP芯片有专用的数字信号处理函数可调用,实现FIR滤波器相对简单,但是由于程序顺序执行,速度受到限制。
而且,就是同一公司的不同系统的DSP芯片,其编程指令也会有所不同,开发周期较长。
(3)可编程FIR滤波器还有一种是使用可编程逻辑器件,FPGA/CPLD。
FPGA有着规整的内部逻辑块整列和丰富的连线资源,特别适合用于细粒度和高并行度结构的FIR滤波器的实现,相对于串行运算主导的通用DSP芯片来说,并行性和可扩展性都更好。
FIR的特点有限长单位冲激响应(FIR)滤波器有以下特点:(1)系统的单位冲激响应h(n)在有限个n值处不为零;(2)系统函数H(z)在|z|>0处收敛,极点全部在z= 0处(因果系统);(3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。
3设计步骤3.1 设计流程图本课程设计主要是对一段语音信号,加入噪声后,用某种函数法设计出的F IR滤波器对加入噪声后的语音信号进行滤波去噪处理,并且分析对比前后时域和频域波形的程序设计。
程序的设计流程图如下图3.1所示:图3.1程序设计流程图3.2录制语言信号在左下角点击开始/程序/附件/娱乐/录音机,即可进入如图3.2.1所示的画面。
图 3.2进入录音机界面然后点击最右边的红色圆心的标志,即可进行录音。
录一段2至3秒的语音,然后左键单击文件/属性,即可得到如下图3.2.2所示。
图3.3 打开声音属性在其中点击立即转换,即可得到如下图3.2.3所示界面,将声音格式设置为PCM,属性设置为8.000kHz,8位,单声道,7KB/秒,然后点击确定。
然后再点击文件/另存为,即可将该语音文件存在MATLAB文件下的work文件夹里。
图 3.4 设置语音属性3.3 语音信号的频谱分析ﻩ然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。
采集完成后在信号中加入一个单频噪声。
程序如下:>>[x,fs,bits]= wavread('D:\renjian.wav');>>sound(x,fs,bits); ﻩ% 按指定的采样率和每样本编码位数回放所录语音文件>>N=length(x); ﻩﻩﻩ% 计算信号x的长度>>fn=1700; % 单频噪声频率,此参数可自己设计>>t=0:1/fs:(N-1)/fs; ﻩ% 计算时间范围,样本数除以采样频率>>x=x';y=x'+0.3sin(fn*2*pi*t);ﻩﻩ %在原信号上添加噪声>>sound(y,fs,bits); ﻩﻩ % 应该可以明显听出有尖锐的单频啸叫声>>X=abs(fft(x)); Y=abs(fft(y));ﻩﻩ%对原始信号和加噪信号进行fft变换>>X=X(1:N/2);Y=Y(1:N/2); % 截取前半部分>>deltaf=fs/N;ﻩﻩﻩ%计算频谱的谱线间隔>>f=0:deltaf:fs/2-deltaf; ﻩﻩﻩ%计算频谱频率范围图3.5音乐信号加入噪声前后的时域频域图3.4设计数字滤波器和画出其频率响应截止频率也可以任意自选,在单频噪声干扰附近即可。
在这里,很重要的是通带截止db值的设置。
这个值一定要根据我们使用的设计滤波器的方法来设定。
因为我使用的是三角窗法,在三角窗函数中,滤波器的过渡带宽为 6.1π/M,最小阻带衰减为25db。
所以,一定要将通带截止db值设置的小于25db,所以,我将其设置为15db。
程序如下:>> fp1=fn-200;fs1=fn-50;fp2=fn+200;fs2=fn+50;>> Rp=1;As=15; %带阻滤波器设计指标>> df=min((fs1-fp1),(fp2-fs2)); % 计算上下边带中心频率,和频率间隔>> dw=df/fs*2*pi;wc1=(fs1+fp1)/2;wc2=(fs2+fp2)/2;ﻩ%将Hz为单位的模拟频率换算为rad为单位的数字频率>>ws1=fs1/fs*2*pi;ws2=fs2/fs*2*pi;wp1=fp1/fs*2*pi;wp2=fp2/fs*2*pi;>>M=ceil(6.1*pi/dw)+1; ﻩ% 计算三角窗设计该滤波器时需要的阶数>> Rp=-min(db(wp1/dw+1:wp2/dw))Rp =0.1784>>As=max(-round(db(ws1/dw+1:1:501)))As=22>>n=0:M-1; ﻩﻩﻩﻩ%定义时间范围>>w_tri=(triang(M))';ﻩﻩﻩ% 产生M阶的三角窗>> hd=ideal_lp(wc1,M)+ideal_lp(pi,M)-ideal_lp(wc2,M);ﻩ%调用自编函数计算理想带阻滤波器的脉冲响应>>h=hd.*w_tri;ﻩﻩ%用窗口法计算实际滤波器脉冲响应>>[db,mag,pha,grd,w]=freqz_m(h,1); % 调用自编函数计算滤波器的频率特性通过该程序得到的图如下图3.4所示:图3.6滤波器的特性波形图3.5 用滤波器对信号进行滤波在将滤波器设计好后,我们用自己设计的带阻滤波器对采集的语音信号进行滤波。