FIR数字滤波器海明窗函数法设计Word文档格式.docx
《FIR数字滤波器海明窗函数法设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《FIR数字滤波器海明窗函数法设计Word文档格式.docx(15页珍藏版)》请在冰点文库上搜索。
输出到扬声器,这个过程称为“数模变换〞。
2.3数字滤波器的介绍
数字滤波器(digitalfilter)是由数字乘法器、加法器和延时单元组成的一
种装置。
其功能是对输入失散信号的数字代码进行运算办理,以到达改变信号频
谱的目的。
数字滤波器是一个失散时间系统〔按预定的算法,将输入失散时间信
号变换为所要求的输出失散时间信号的特定功能装置〕。
应用数字滤波器办理模拟
信号时,第一须对输入模拟信号进行限带、抽样和模数变换。
数字滤波器输入信
号的抽样率应大于被办理信号带宽的两倍,其频率响应拥有以抽样频率为间隔的
周期重复特点,且以折叠频率即1/2抽样频率点呈镜像对称。
为获取模拟信号,
数字滤波器办理的输出数字信号须经数模变换、圆滑。
数字滤波器拥有高精度、
高可靠性、可程控改变特点或复用、便于集成等优点。
2.4FIR滤波器根本结构
FIR滤波器的数学表达式为:
式中:
N为FIR滤波器的抽头数;
x(n)为第n时辰的输入样本;
h(i)为FIR滤波器第i级抽头系数。
其相应的z变换为:
z-i为N-1阶多项式。
在自适应办理、数据通信等领域中经常要求信号在传输过程中不能够有明显的
相位失真,FIR滤波器能够做到线性相位满足此要求。
F1R滤波器实质上是一个
分节的延缓线,把每一节的输出加权累加,获取滤波器的输出。
对于FIR滤波器的单位脉冲响应h(i)只要满足以下2个条件之一,那么为线性相位滤波器。
线性相位的FIR滤波器拥有中心对称的特点,其对称中心在N/2处。
(2)由性能指标确定窗函数w(n)和窗口长度N
(3)求得实质滤波器的单位脉冲响应h(n)
(4)检验滤波器性能。
设计常用的窗函数有矩形窗、汉宁窗、海明窗、凯撒窗等。
其中:
海明窗的
旁瓣峰值小于主瓣峰值的1%,99.963%的能量集中在主瓣内.且经过海明窗设
计的FIR滤波器在较少的阶数下能够获取较小通带纹波,特别适合工程设计。
2.5利用Windows进行语音信号的采集
利用windows下的录音机,依照〔开始—>
程序—>
附件—>
娱乐—>
录音机,
文件—>
属性—>
马上变换—>
8000KHz,8位,单声道〕的序次操作,录制一段
自己的语音,录制时间为5秒,如图1,图2所示,将自己录好的语音文件保
存为“〞。
图1选择windows下的录音机
图2用8000Hz采样录音
2.6语音信号的解析
(1)将上一步骤中保存下来的语音信号文件“〞复制到计算机装有
Matlab软件的磁盘中相应Matlab目录中的“work〞文件夹中:
(C:
\Program
Files\MATLAB71\work)。
(2)
双击桌面上Matlab软件的快捷图标
,翻开Matlab软件。
(3)
在Matlab菜单栏中选择“Filenew
M-File〞或是点击快捷按钮,
翻开m文件编写器。
(4)
在m文件编写器中输入相应的指令将自己的语音信号导入
Matlab工作
台。
(5)画出原始语音信号s的波形,由于原始语音信号开始一段会是无用的
语音信号,因此要截取掉,截取的一段语音信号为1至1+fs-1,即从1到7999,画出截取原始语音信号s1的波形,代码以下,波形如图3,所示:
closeall
clearall
clc
[s,fs,bits]=wavread('
C:
\ProgramFiles\MATLAB71\work\zf.wav'
);
s1=s(1:
8000);
sound(s1,fs,bits);
figure
(1);
subplot(211)
plot(s)
title('
原始语音信号'
)
subplot(212)
plot(s1)
截短语音信号'
会获取以下列图:
图3原始语音信号和截短语音信号
(6)对语音信号进行频谱解析,在Matlab中,利用函数FFT()对信号进
行迅速傅里叶变换,获取信号的频谱特点,如图4所示
wavwrite(s1,fs,'
s1.wav'
%将被办理信号s1输出为语音文件“〞
S1=fft(s1);
figure
(2)
subplot(311);
plot(s1);
title('
截短预办理语音信号'
subplot(312)
plot(abs(S1))
预办理语音信号频谱'
subplot(313);
k=0:
4000;
plot(k(1:
4000)*1,abs(S1(1:
4000)));
预办理语音信号单边带频谱'
图
4
截短预办理语音信号
如图
4所示,从右向左看,第一个较大的波峰所在的频率即为
3db截止频
率,第二个波峰所对应的频率为通带截止频率
fp,在图中能够读出
fp=610Hz;
一般在3db截止频率右侧的波谷地址选择阻带截止频率fst=750Hz。
通带截止频率
fp、阻带截止频率fst数值确实定,就可以确定滤波器的根本指标。
图4里第二个图是信号x(n)的FFT结果,即X(k)DFT[x(n)]是信号x(n)的
实质频谱X(ejw)DFT[x(n)]采样,本设计中信号x(n)的长度取的是L=8000点,
因此,图中,X(k)的每两个相邻点之间的频率间隔大小,即频率分辨率:
采样频率
8000
〔Hz〕,因此,依照它的放大图,即图
4中的第三个
f
1
信号的长度
图的放大图,能够确定fL
240点
f240Hz,fH760点f
760Hz。
2.7滤波器的设计
滤波器的参数设定
本次课设我设计的是一个线性FIR低通滤波器,利用的窗函数是hamming
窗,如上〔图4〕所述:
因此:
fp610
Hz,fst750Hz
fs
8000Hz
通带截止频率为wp
2
fp
610
(rad/sample)
fs
阻带截止频率为wst
fst
750
wwst
wp
由于海明窗过渡带满足:
w
N
求得滤波器阶数
189
c
p
st
12
wc
(fp
fst)
94
〔1〕给定所要求的频率响应函数Hd(ej)
Hd(ej
ej
|
〔2〕求单位采样响应hd(n)
c.
hd(n)IDFT[Hd(ejw)]
H(ejw)ejwndw
Sa[wc(n)]
〔3〕海明窗
2n
w(n)[0.540.46cos(
)]RN(n)
〔4〕滤波器的单位采样响应:
h(n)hd(n)w(n)
h(n)
wcSa[wc
(n
0.46cos(2
n)]RN(n)
0.17Sa[wc
94
0.46cos(n)]R189(n)
滤波器的MATLAB仿真
在M文件中连续编写代码,把计算出来的参数带入代码中。
代码以下:
%%%%%%%%%加噪声完成信号截取
[s,fs,bits]=wavread('
);
原始语音信号'
截短语音信号'
s2=awgn(s1,15);
%%%%%%%%%%%%%%%%%%%%%%%%%%完成加噪!
15db
wavwrite(s2,fs,'
s2.wav'
figure(3);
subplot(211);
plot(s2);
加噪后语音信号'
subplot(212);
S2=fft(s2);
plot(abs(S1));
加噪后信号频谱'
figure(4)
语音信号'
%%%%%%%%%滤波器完成相关参数配置
wp=610*2*pi/8000;
wst=750*2*pi/8000;
wc=(wp+wst)/2;
N=ceil(3.3*2*pi/(wst-wp))+1;
r=(N-1)/2;
hn1=fir1(N-1,wc/pi,'
low'
hamming(N));
%
s3=conv(s2,hn1);
wavwrite(s3,fs,'
s3.wav'
S3=fft(s3);
figure(5)
freqz(hn1);
滤波器幅频特点与相频特点'
figure(6)
subplot('
111'
plot(hn1);
滤波器系统函数'
figure(7)
plot(s3)
滤波器办理此后信号图'
plot(abs(S3));
滤波器办理此后频谱'
figure(8)
plot(s3);
%%%%%%%%%%%%%%求信噪比snr在Workspace中表达!
s4=conv(s1,hn1);
%p1=sum(s1.^2);
%p2=sum(s2.^2)-sum(s1.^2);
%SNR1=10*log10(p1/p2);
p1=sum(s4.^2)/8000;
p2=sum(s3.^2)/8000-sum(s4.^2)/8000;
SNR2=10*log10(p1/p2);
运行代码收效如图5所示。
的噪声生成叠加指令为:
awgn,所加的噪声为15dB。
图5加噪后语音信号和频谱
图6语音信号和加噪后语音信号
图6为原信号和加噪后信号的波形对照图,所加噪声为计算机随机生成的高斯白噪声。
图7滤波器幅频特点与相频特点
设计的滤波器是用单位采样响应h(n)表示的,能够利用带噪声语音
s2(n)s1(n)noise与h(n)做时域卷积,即:
y(n)s1(n)*h(n)。
在Matlab中,卷
积运算能够用函数“conv()〞实现。
图8滤波器系统函数
图9加噪后语音信号与滤波器办理此后信号图
3.设计结果与解析
3.1设计结果
比较滤波前〔含噪声信号的文件〕和滤波后的语音信号收效。
图10利用hamming窗FIR低通滤波器滤波收效图
滤波前〔含噪声〕的信号和滤波后信号的信噪比
利用“信噪比代码段〞做出来的收效图,图中名称snr为最后算出来的信噪
比,由于参加的噪声为15dB,而用MATLAB代码算出来的信噪比最后到达了
收效。
图11相关参数的截图,其中snr为信噪比
信号采样的频率分辨率
频率分辨率计算公式
采样速率
,其中fs8000Hz,N=8000
采样结果的长度
△f≈1Hz
3.2结果解析
在运行过程中,每次程序运行后获取信噪比SNR2的数值都是不同样的,其原因
是在先前用awgn〔〕函数所加的高斯白噪声是系统随机产生的。
从结果来看,可
以看到滤波后的信噪比大于先前参加高斯白噪声的信号的信噪比
SNR1=15db,证明滤波器各项参数设置正确,分别试听截取后语音信号s1、s2、
s3,发现滤波后的信号s3对照加噪后s2清楚度有明显改进,原来的噪声根本被
滤除,证明滤波器能够到达要求。
但是在实质应用中其实不会出现随机噪声的情况,
信噪比会表现的比较牢固。
对照于模拟信号,数字信号对于信噪比的要求不是十
分格。
4.设计领悟
通次程使我懂得了理与相合是很重要的,只有理知是不的,只有把所学的理知与践相合起来,从理中得出,才能真切社会服,从而提高自己的手能力和独立思虑的能力。
在的程中遇到,能够得上是困重重,但是同学不断的找料、解析理,使得我加了数字信号理程的,更加了程序的理解,同在做的候也解析了信号的流程,切熟知了原理。
同在的程中了自己的缺乏之,以前所学的知理解得不深刻,掌握得不牢固,比方双性程不是很认识⋯⋯通次程此后,必然把以前所学的知重新温故。
次程于利完成了,在中遇到了很多地方不是很理解,最后在王老的勤奋指下,于游逆而解。
同,在王老的身上我学获取很多用的知,在次我表示感!
同,我帮助的所有同学和各位指老再次表示忠心的感!
5.参照文件
1]黄建明,隋燕.基于数字波器的.南开大学学(自然科学
版),2003,26(3):
15-18
[2]丁玉美,高西全.数字信号理〔第二版〕.西安:
西安子科技大学初版社,2000:
151-317
[3]琛,吴大正,高西全.MATLAB及在子信息程中的用〔第二版〕.
北京:
子工初版社,2003:
174-233
[4]程佩青,数字信号理教程.北京:
清大学初版社,2001:
186-275