使用频率采样法设计的频率采样型FIR滤波器课程设计.docx
《使用频率采样法设计的频率采样型FIR滤波器课程设计.docx》由会员分享,可在线阅读,更多相关《使用频率采样法设计的频率采样型FIR滤波器课程设计.docx(25页珍藏版)》请在冰豆网上搜索。
![使用频率采样法设计的频率采样型FIR滤波器课程设计.docx](https://file1.bdocx.com/fileroot1/2023-1/5/aeb82846-c668-49a2-b423-da1f475dc2e8/aeb82846-c668-49a2-b423-da1f475dc2e81.gif)
使用频率采样法设计的频率采样型FIR滤波器课程设计
长沙理工大学
《数字信号处理》课程设计报告
学
院计算机与通信工程
专
业
班
级
学
号
通信工程
学生姓名指导教师
课程成绩完成日期
课程设计成绩评定
学院计算机与通信工程专业通信工程
班级学号
学生姓名指导教师
完成日期2015年3月13日
指导教师对学生在课程设计中的评价
评分项目
优
良
中
及格
不及格
课程设计中的创造性成果
学生掌握课程内容的程度
课程设计完成情况
课程设计动手能力
文字表达
学习态度
规范要求
课程设计论文的质量
指导教师对课程设计的评定意见
综合成绩指导教师签字2015年3月15日
课程设计任务书
计算机与通信工程系通信工程专业
课程名称
数字信号处理课程设计
时间2014〜2015学年第二学期1〜2周
学生姓名
指导老师
题目
语音信号滤波去噪一使用频率米样法设计的频率米样型FIR滤波器
主要内容:
用麦克风采集一段语音信号,绘制波形并观察其频谱特点,加入一个带外单频噪声,使用频率米样法设计个满足指标的FIR滤波器,对该含噪语
音信号进行滤波去噪处理,画出频率采样型滤波器结构图。
比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。
与不冋滤波方法的同学比较各种滤波方法性能的优劣。
要求:
(1)滤波器指标必须符合工程实际。
(2)设计完后应检查其频率响应曲线是否满足指标。
(3)处理结果和分析结论应该致,而且应符合理论。
(4)独立完成课程设计并按要求编写课程设计报告书。
应当提交的文件:
(1)课程设计学年论文。
(2)课程设计附件(主要是源程序)。
语音信号滤波去噪——使用频
率采样法设计的频率采样型FIR滤波器
学生姓名:
指导老师:
摘要此次课程设计是使用频率采样法设计一个频率采样型滤波器,对一段加噪的语音信号进行滤波去噪处理,并且对滤波前后的时域波形和频谱分析滤波性能。
此次课程设计仿真平台为MATLAB7.0,开发工具是M语言编程。
首先利用Windows录音机录制一段语音信号,并人为加入单频噪声,然后对信号进行频谱分析以确定所加噪声频率,再设计滤波器进行滤波去噪处理,最后比较滤波前后的波形和频谱并进行分析,并用VISIO绘制滤波器的结构图。
由分析结果可知,滤波后的语音信号与原始语音信号基本一致,即设计的FIR滤波器能够去除信号中所加单频噪声,即达到了设计目的。
关键词MATLAB;滤波去噪;频率采样法;频率采样型滤波器;VISIO
1引言
滤波去噪[1]是信号处理中一种最基本但十分重要的技术。
利用滤波可以从复杂的信号中提取所需的信号,抑制不需要的信号。
滤波器就是这样一种可以在时域和频域对信号进行滤波处理的系统。
通常情况下,有用信号和干扰信号是在不同频段上的,于是通过对滤波器的频率特性精心设计就能达到滤波的目的。
本课程设计是采用频率采样法设计频率抽样型滤波器,从而对语音信号滤波去噪。
通过对比滤波前后的波形图及回放滤波前后的语音信号,来判断滤波器对噪声信号确实有滤除作用。
1.1课程设计目的
(1)熟悉使用MATLAB;
(2)了解FIR滤波器原理及结构;
(3)利用所学数字信号处理相关知识用MATLAB设计一个FIR滤波器;
(4)提高自己动手的能力。
(5)对加噪的语音信号进行滤波去噪处理,比较滤波前后的时域波形和频谱并进行分析;
1.2课程设计的要求
(1)滤波器指标必须符合工程设计。
(2)设计完后应检查其频率响应曲线是否满足指标。
(3)处理结果和分析结论应该一致,而且应符合理论。
(4)独立完成课程设计并按要求编写课程设计报告。
1.3设计平台
本课程设计仿真平台为MATLAB7.0。
MATLAB的名称源自MatrixLaboratory,1984年由美国Mathworks公司推向市场。
它是一种科学计算软件,专门以矩阵的形式处理数据。
MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作。
1993年MathWorks公司从加拿大滑铁卢大学购得MAPLE软件的使用权,从而以MAPLE为引擎”开发了符号数学工具箱(SymbolicMathToolbox)⑵。
2设计原理
用windows自带的录音机录制一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用频率采样法设计的一个满足指标的频率采样型FIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析。
2.1FIR滤波器的设计
FIR(FiniteImpulseResponse滤波器[3]:
有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。
因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
这个公式就为FIR滤波器提供了另外一种结构,这种结构由两部分级联组成
其中级联的第一部分为梳状滤波器,其结构如下图所示:
_Z-N
图2-1梳状滤波器结构图
第二部分由N个谐振器组成的谐振柜。
它是由N个一阶网络并联组成,而这每一个一阶网络都是一个谐振器
其结构如下图所示:
H(k)Hk(z>
1-
图2-2一阶谐振器
频率抽样型结构特点:
2
(1)它的系数H(k)直接就是滤波器在Wk—k处的频率响应。
因此,控制滤波器的
N
频率响应是很直接的。
(2)结构有两个主要缺点:
(a)所有的相乘系数及H(k)都是复数,应将它们先化成二阶的实数,这样乘起来较复杂,增加乘法次数,存储量。
(b)所有谐振器的极点都是在单位圆上,由wNk决定考虑到系数量化的影响,当系数量
化时,极点会移动,有些极点就不能被梳状滤波器的零点所抵消。
(零点由延时单元决定,不受量化的影响)系统就不稳定了。
(3)将一阶网络合并为二阶网络
(a)第k和第N-k个谐振器合并为一个实系数的二阶网络,因为h(n)是实数,它的
DFT也是圆周共轭对称的。
(2.5)
H(k)H*(Nk)k1,2,3丄N1
因此,可以将第k和第N-k个谐振器合并为一个二阶网络
Hk(z)
H(k)
1rWNkz1
H(Nk)
1讥叫1
H(k)
1rWNkz1
*
H(k)
1rWNk*z1
H(k)
1z1[Wnk*WNk]rr2WNkWNk*z2
1
0k1kz
12rcos(2^)
N
其中:
0k2Re[H(k)],1k2rRe[H(k)W,]
(2.6)
(b)第k和第N-k个谐振器合并为一个二阶网络的极点在单位圆内,而不是在单位圆
上,因而从频率响应的几何解释可知,它相当于一个有限
Q的谐振器。
其谐振频率为:
Wk
#0*
-2^h
•詞)、
—r~|
「j|
图2-3二阶网络结构图
除了共轭复根外,还有实根。
当N=偶数时,有一对实根,它们分别为k0,k—两点
2
H(0\和Hn(z)
1rz2
当N=奇数时,只有一个实根z=r(k=0),即只有
H°(z)
H(号)
1rz1
H0(z).
(2.7)
(c)修正频率抽样结构流图(N=偶数)
H(z)
图2-4修正频率抽样结构流图(N=偶数)
(1rNzN)*[严7
N1rz
h(N2)
1rz1
N/211
0k1kz
12k11z2rcos(k)N
(2.8)
修正频率抽样结构流图(N=奇数)
H(z)
2.3频率采样法
设计思路:
图2-5修正频率抽样结构流图(N=奇数)
NN1
(1rZ)N[
H(0)
1rz1
N/21
1
0k1kZ
z12rcos(—k)
N
(2.9)
这种设计方法是从频域进行设计的一种方法,首先给定一个希望逼近的频率响应
H(k)
Hd(ej)|
k0,1,2,.・・,N1
知道H(k)后,由IDFT定义,可以用这N个采样值H(k)来惟一确定有限长序列即
h(n)
1N1
-H(k)WNnk
Nko
n0,1,2,...,N1
(2.10)
h(n),
(2.11)
(2.12)
H(z)h(n)z
n0
N1
H(ejw)h(n)ejwn
n0
(2.13)
内插公式:
H(ej
N12
)H(k)——k
k0N
(2.14)
式中,①(是内插函数
(
、sin(N/2)j(n1)/2
)e
Nsin(/2)
(2.15)
四种线性相位的FIR滤波器如下表2-1所示。
表2-1四种线性相位的FIR滤波器
甲4)
1型
AT迦奇数
就砺关于皿血偶对称
®
厘型
風⑴)其于沪D、Qjt偶对荊”关于tu=]t裔对称
2
3型
加对乂城Ml』),N炯数
换血关于⑴=0、JL亦奇对称
V-1JT
口型
城⑴)关于⑴F、,加奇对称,关于过=謝禺对称
22
逼近误差及其改进措施
这样设计所得到的频响H(ej3与要求的理想频响Hd(ej3会有一定的差别
(1)采样点上滤波器的实际频率响应是严格地和理想频率响应数值相等的。
⑵但是在采样点之间的频响则是由各采样点的加权内插函数的延伸叠加而成的,
因而有一定的逼近误差,误差大小取决于理想频率响应曲线形状。
(3)理想频率响应特性变化越平缓,则内插值越接近理想值,逼近误差越小。
(4)如果采样点之间的理想频率特性变化越陡,则内插值与理想值的误差就越大,因
而在理想频率特性的不连续点附近,就会产生肩峰和起伏。
滤波器性能的改善:
(1)增加过渡带采样点,它可以大大减少振荡,阻带衰减也可以得到进一步改善。
一般一点到二点的过渡带采样即可得到满意的结果。
(2)增加采样点密度,过渡带的宽度与采样点数N成反比。
但N值意味着或长度的
增加,滤波器运算量必然增大⑷。
3设计步骤
3.1设计流程图
图3-1流程图
3.2录制语音信号
使用电脑录音机录制一段语音信号,属性设置为8000Hz,8位单声道的音频格式。
如图3.1-2所示:
图3-2语音信号设置
然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,源程序为:
[x,fs,bits]=wavread('ht.wav'),记住采样频率和采样点数,matlab实现得:
fs=8000;bits=8。
3.3语音信号的频谱分析
在MATLAB中编写加噪之后时域,频域对比图的源程序如下:
[x,fs,bits]=wavread('D:
ht.wav');
%输入参数为文件的全路径和文件名,输出的第一个参数是每个样本的值,fs是生成
该波形文件时的采样率,bits是波形文件每样本的编码位数。
sound(x,fs,bits);%按指定的采样率和每样本编码位数回放
N=length(x);%计算信号x的长度
fn=2500;%单频噪声频率,此参数可改
t=0:
1/fs:
(N-1)/fs;%计算时间范围,样本数除以采样频率
x=x';y=x+0.1*sin(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);%截取前半部分
f=0:
deltaf:
fs/2-deltaf;%计算频谱频率范围
运行结果如下图所示:
由图3.3-1可以看出,在频域为2500Hz处加入了一个单频噪声,而加入噪声之后,时域的波形出现了明显失真,通过听取原声音信号x和加噪声音信号y,可以明显听到
y语音信号中有一明显尖锐噪声。
3.4滤波器设计
设计一个带阻滤波器,将单频信号滤出去,源程序如下所示:
fpd=2400;fsd=2450;fsu=2550;fpu=2600;Rp=0.5;As=45;%带阻滤波器设计指标
fcd=(fpd+fsd)/2;fcu=(fpu+fsu)/2;df=min((fsd-fpd),(fpu-fsu));
%计算上下边带中心频率fcdfcu,和频率间隔df
wp=fcd/fs*2*pi;ws=fcu/fs*2*pi;dw=df/fs*2*pi;%将Hz为单位的模拟频率换算为rad
为单位的数字频率
M=41;alpha=(M-1)/2;%设置抽样点数
l=0:
M-1;wl=2*pi*l/M;
T1=0.6025,T2=0.127%过渡带的抽样值
NP仁fix(M*fpd/8000);NS仁fix(M*fsd/8000);NS2=ceil(M*fsu/8000);
NP2=ceil(M*fpu/8000);%各边界频率的抽样值1
Hrs=[ones(1,NP1-2),0.6025,0.127,zeros(1,NP2-NP1+1),0.127,0.6025,ones(1,M-2*NP2-5),0.6
025,0.127,zeros(1,NP2-NP1+1),0.127,0.6025,ones(1,NP1-3)];
Hdr=[1,1,0,0,1,1];%带阻滤波器的参数设置
wdl仁fpd*2/fs;wdl2=fsd*2/fs;wdl3=fsu*2/fs;wdl4=fpu*2/fs;%radwdl=[0,wdl1,wdl2,wdl3,wdl4,1];
k仁0:
floor((M-1)/2);k2=floor((M-1)/2)+1:
M-1;
angH=[-alpha*(2*pi)/M*k1,alpha*(2*pi)/M*(M-k2)];
H=Hrs.*exp(j*angH);
h=real(ifft(H,M));
[db,mag,pha,grd,w]=freqz_m(h,1);
[Hr,ww,a,L]=hr_type2(h);
程序运行结果如下图3.3-2所示:
ffjF-igure1
1:
-:
:
4
:
|;
■■■----I---------—_ju2
—
0
呦i
弋.申器悟=响应
0.6
0.51
w^pi
SEdhtVIqmiInsertToolsDesktooLVindowHelp
图3-4滤波器参数图
由图3-4可以看出,滤波器的衰减大于设定值As=45,满足性能指标,滤波器的衰减
可由增加过度带宽来得到。
上图中的抽样值M二41,因此阻带的带宽比较宽。
可以通过
调大M值来使得阻带的带宽变窄,但这样会使得滤波器的阶数相应的增加,使得其结构图标的复杂,为了是滤波器能达到相应的性能要求,又使得其结构变得简单,最终取
M值为41
3.5信号滤波处理
原程序如下所示:
%进行滤波处理z=filter(h,1,y);%用设计好的滤波器对y进行滤波
Z=fft(z);Z=Z(1:
length(Z)/2);%计算频谱取前一半
程序运行结果如下图3.3-3所示:
图3-5滤波前后时域,频域对比图
频谱取前一半由上图3-5可以看出,在滤波之后时域图能得到恢复,频域图中的
单频噪声信号也的到滤除,说明了设计的滤波器能滤除加入的噪声信号,因此说达到了设计的要求
3.6结果分析
开始通过分析决定设计一个带阻的滤波器来滤除加入的单频噪声,根据噪声的频率
来设计阻带的范围。
在采集语音信号后,按照步骤用频率采样法设计频率采样型滤波器。
由图3-4可知,
设计的滤波器达到要求。
我们观察到图3-5滤波前后语音信号的波形对比图,发现时域波形中加干扰噪声后有明显的变化,不过经过滤波后几乎没有变化,说明设计的滤波器达到要求。
再通过听取原始语音信号,加噪信号y,和滤波之后的信号z。
对比之后,
发现滤波器确实滤除了噪声。
从理想的角度考虑,该带阻滤波器的阻带带宽应该可以变得更窄,让滤波效果更好,但是这样的采样值会变得非常大,考虑到实际的情况,通过权衡之后,决定牺牲带宽来使得滤波器的阶数降低,因此在上图3-5中我们可以看出,在噪声频谱左右两边的信号也被滤除了。
3.6滤波器结构设计
通过计算得出滤波器的系数如下图所示:
2.QQOQ
L0000
-E9766
1.0000
乱QOOD
-o.»7i
0*397(
L000Q
-1.9068
1.00G0
2.0040
0.MIS
-0,9S83
1.0000
-1.7923
1.0000
2.QOH
-0,9737
0.9737
L0000
-I.43S9
1.0000
2.QD0Q
0.9534
-fl,9534
LOWO
-1.1410
K00O0
2.0QC0
-0.M7S
0.A275
L0000
-1.2125
1,0000
2,0000
0,
7・B962
1.0000
-0,4554
1.ODDO
2-0DCD
-0,8&96
0,9596
1.0000
-0.4760
1.0000
2-0000
0.8179
7*sin
昇ovoo
-CL3808
I.OOOQ
-直771E
TT15
1”0000
-0,0766
1.0000
队2540
叭7205
7+7205
L0000
0.2294
1.0000
0.0000
-0,66^3
Q.6653
]..oooo
0.S30Q
1.0000
o.oooa
Q.3162
MM
L0Q00
e.aiti
1.0000
o.oodo
(Lontio
0.4)25
1.0000
i.osn
1.0000
0.2540
此]9G1
-Q+"酣
1,0000
i.3307
1.0000
-0.4011
Q”*091
1.0000
LS430
1.0000
2.0000
0.
-0.3380
1.00*0
L719!
l.OOQO
2.aaoo
-0.2650
0.咖0
LQOOQ
I.S550
EQOGQ
2.0000
0.1*04
-0+E9Q4
1.0000
L9474
1.0000
2-0000
-0.1147
0,tl47
1.0000
1.991!
1.00D0
1.0000
0-0383
-0.03*3
L000Q
-L0000
0
图3-6滤波器系数
根据以上求出的系数,利用VISIO软件来绘制滤波器的结构图如下图所示:
z1
z1
z1
54
-1
-0.66530.2540
-0.33804
z1
z1
-1
z1
-1.8550
-0.77152.°000
0.33801.2050
2.0000
-0.9737
-0.85962.0000
h>=~>
Z10.8596
z1
1.9766Z10.9971
0.19042.0000
-0.1904丄
1.7923Z10.9737
-1
-0.92752.0000
1.4410z:
0.9275
0.3808Jz10.7715
-0.2294z=0.6653
-1z1
-1.5430
1.9068
-1
Z1-0.9883
z1
1.6359
0.95342.0000
I片■
Z1-0.9534
-1
z1
0.89622.0000
1.2125z1-0.8962
0.81792.0000
0.6760
-1
-1
-1
z1
-0.8179J
z1
0.72051.2050
-0.4091O.2540―•»—>
07z10.4091k
z1
-0.26502.°000
-1.7191*z10.R650」
-1z1
-0.11472.0000
応41
十——00383■.
F-0.0383*
I-1
¥
1.0000
2.0000
-19474[z10J147
-1z1
z1
图3-7滤波器的结构图
y(n)
4出现的问题及解决办法在这次课程设计当中,由于基础不扎实,出现了很多问题,即有MATLAB软件操作不当,也有知识掌握程度不够出现的各种问题。
1,在一开始录制语音信号时,没有修改参数值,导致频率抽样过高,后在老师的提醒之下将频率修改为8000hz。
2,在调用音乐文件时没有将文件放在MATLAB的工作文件夹下面,到时文件找不到,还有程序中用到的各种函数都没有放入正确的位置。
3,在绘制加噪前后频率对比图时,留白过多,对比不明显,通过axis函数对横纵
坐标进行限定
4,在使用visio软件绘制滤波器的结构图时,没有合理规划整个页面,导致重新绘制。
5,在使用visio绘制结构图时,前面滤波器参数设置出现错误,所以滤波器的系数发生了改变,只能重新修改参数。
6,在设计滤波器的过程中,没有准确理解每一条指令代表的含义,导致程序前后不对应,出现很多错误,通过matlab中的错误提示,准确找到错误的那一行代码,进行修改。
7,在设计滤波器的过程当中,滤波器的衰减小于开始所设置的值,通过牺牲过渡带和调节过渡带的采样值,即T1和T2来使得衰减大于所设定值As。
8,频谱图没有进行去前半段的处理。
9,最后听取滤波后声音,没有将其保存,在请教了同学之后,学会了如何保存滤波后的声音文件。
10,在设计滤波器的过程当中,抽样点数过高,是的滤波器的阶数很高,导致绘图困难。
通过降低抽样的点数,来平衡滤波器阶数和阻带带宽之间的矛盾。
5结束语
这是第三次进行课程设计了,在前面的课程设计当中我们学习到了如何使用matlab,所以对于matlab软件的使用并没有那么陌生了,尽管如此,在使用matlab的过程当中还是出现了很多错误,比如说忘记添加函数文件,参数前后不对应