基于MATLAB的语音信号FIR数字滤波处理.docx
- 文档编号:29268458
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:12
- 大小:78KB
基于MATLAB的语音信号FIR数字滤波处理.docx
《基于MATLAB的语音信号FIR数字滤波处理.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的语音信号FIR数字滤波处理.docx(12页珍藏版)》请在冰豆网上搜索。
基于MATLAB的语音信号FIR数字滤波处理
1绪论
数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。
它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。
具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等优点。
数字滤波器,是数字信号处理中及其重要的一部分。
随着信息时代和数字技术的发展,受到人们越来越多的重视。
数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。
数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应(FIR,FiniteImpulseResponse)滤波器和无限冲激响应(IIR,InfiniteImpulseResponse)滤波器。
FIR滤波器结构上主要是非递归结构,没有输出到输入的反馈,系统函数H(z)在处收敛,极点全部在z=0处(因果系统),因而只能用较高的阶数达到高的选择性。
FIR数字滤波器的幅频特性精度较之于IIR数字滤波器低,但是线性相位,就是不同频率分量的信号经过fir滤波器后他们的时间差不变,这是很好的性质。
FIR数字滤波器是有限的单位响应也有利于对数字信号的处理,便于编程,用于计算的时延也小,这对实时的信号处理很重要。
FIR滤波器因具有系统稳定,易实现相位控制,允许设计多通带(或多阻带)滤波器等优点收到人们的青睐。
IIR滤波器采用递归型结构,即结构上带有反馈环路。
IIR滤波器
运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。
同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。
滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。
随着MATLAB软件及信号处理工具箱的不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件。
它可以快速有效地实现数字滤波器的设计、分析和仿真,极减轻了工作量,有利于滤波器设计的最优化。
2课程设计的具体实现
2.1语音信号的录制
声音格式有很多种类,而MATLAB能够识别的有两种:
*.wav和*au。
利用不同方式录制的音频文件格式不正确时,需要利用专门的软件处理。
一种简便的方法是利用“千千静听”播放器进行格式转换。
利用PC机上的声卡和WINDOWS操作系统可以进行数字信号的采集。
将话筒输入计算机的语音输入插口上,启动录音机。
按下录音按钮,接着对话筒说话“电子信息工程”,说完后停止录音,屏幕左侧将显示所录声音的长度。
点击放音按钮,可以实现所录音的重现。
以文件名“fengxiao”。
可以看到,文件存储器的后缀默认为.wav,这是WINDOWS操作系统规定的声音文件存的标准,以下以wav格式进行。
2.2FIR滤波器的设计方法
FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。
窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:
(1) 通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。
(2) 由性能指标确定窗函数W(n)和窗口长度N。
(3) 求得实际滤波器的单位脉冲响应h(n),h(n)即为所设计FIR滤波器系数向量b(n)。
(4) 检验滤波器性能。
根据滤波前后的时域和频域波形,比较去噪性能。
3语音信号的时频分析
3.1语音信号载入MATLAB
利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。
再对其进行采样,记住采样频率和采样点数。
Wavread的函数调用格式为:
[y,fs,nbits]=wavered(‘wav文件的存放路径’);
%把语音信号加载入Matlab仿真软件平台中,并返回采样频率fs。
3.2语音信号时域和频域分析
时域波形用plot(y)就可以画出。
MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下:
Xk=fft(xn,N)
参数xn为被变换的时域序列向量,N是DFT变换区间长度,当N大于xn的长度时,fft函数自动在xn后面补零。
,当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。
在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。
其程序如下:
clc;
clearall;
[x1,Fs,bits]=wavread('F:
\学习\新建文件夹\2.wav');sound(x1,Fs);
figure
(1);
subplot(2,1,1);plot(x1);%做原始语音信号的时域图形
title('原始语音信号时域波形');
xlabel('timen');
ylabel('yinliangn');axis([0,200000,-0.4,0.4]);
y1=fft(x1);%做length(x1)点的FFT
y1=fftshift(y1);%平移,是频率中心为0
derta_Fs=Fs/length(x1);%设置频谱的间隔,分辨率
subplot(2,1,2);plot([-Fs/2:
derta_Fs:
Fs/2-derta_Fs],abs(y1));%画出原始语音信号的频谱图
title('原始语音信号的频谱');axis([-25000,25000,0,400]);gridon;
波形为:
3.3设计FIR数字滤波器
根据语音信号的频谱特点,大致在300~3400之间,因此考虑用带通滤波器对噪声部分进行过滤。
MATLAB中设计FIR滤波器的方法有窗函数法、多带方法、最小二乘法、任意响应法、余弦法等。
本设计从比较熟知的窗函数法入手,通过不同窗函数的分析和比较进行编程。
h(n)=hd(n)w(n)
W(n)所加的窗函数,通过上式将理想滤波器变为物理可实现的滤波器。
MATLAB中提供的窗函数有矩形窗、汉明窗、汉宁窗、Blackman窗、三角窗、Kaiser窗等。
各种窗函数都有明显的主瓣和旁瓣,主瓣和旁瓣的幅值衰减决定了窗函数的应用场合。
矩形窗具有最窄的主瓣,但也具有最大的旁瓣峰值;Blackman窗具有最大的旁瓣衰减,但也具有最宽的主瓣宽度。
不同的窗函数在这两方面的特点不同,因此应根据具体的问题进行选择。
通常来讲,哈明窗和汉宁窗的主瓣具有较小的旁瓣和较大的衰减速度,是较为常用的窗函数。
3.3.1窗函数hamming设计带通滤波器
以下是基于窗函数hamming带通滤波器:
f1=500;
f2=4000;%带通滤波器的通带围
w1=2*pi*f1/Fs;
w2=2*pi*f2/Fs;
w=[w1,w2];
N3=ceil(4*pi/(2*pi*200/Fs));%计算滤波器的阶数
b3=FIR1(N3,w/pi,'DC-0');%设计FIR带通滤波器
figure
(2);
freqz(b3,1,512);%数字滤波器频率响应
title('带通滤波器的频率响应');
3.3.2窗函数hanning设计带通滤波器
以下是基于窗函数hanning的带通滤波器
f1=100;
f2=2000;%带通滤波器的通带围
w1=2*pi*f1/Fs;
w2=2*pi*f2/Fs;w=[w1,w2];
N=ceil(4*pi/(2*pi*200/Fs));
Nw=N;
Windows=HANNING(N);
b3=FIR1(N,w,Windows);%带通滤波器
figure
(2);freqz(b3,1,512);%数字滤波器频率响应
title('带通滤波器的频率响应');
3.3.3窗函数Blackman设计带通滤波器
以下是带通滤波器1(基于窗函数Blackman)
f1=100;
f2=2000;%带通滤波器的通带围
w1=2*pi*f1/Fs;
w2=2*pi*f2/Fs;
w=[w1,w2];
N=ceil(4*pi/(2*pi*200/Fs));
Nw=N;
Windows=BLACKMAN(N+1);
b3=FIR1(N,w,Windows);%带通滤波器
figure
(2);
freqz(b3,1,512);%数字滤波器频率响应
title('带通滤波器的频率响应');
3.3.4窗函数Boxcar设计带通滤波器
以下是基于窗函数Kaiser的带通滤波器
f1=200;f2=3400;%带通滤波器的通带围
w1=2*pi*f1/Fs;w2=2*pi*f2/Fs;
w=[w1,w2];
N=ceil(4*pi/(2*pi*200/Fs));
Nw=N;
Windows=BOXCAR(N+1);
b3=FIR1(N,w,Windows);%带通滤波器
figure
(2);
freqz(b3,1,512);%数字滤波器频率响应
title('带通滤波器的频率响应');
3.4滤波之后的时域和频域分析
x1_daitong=filter(b3,1,x1);%对信号进行带通滤波。
3.4.1窗函数hamming设计带通滤波器滤波
滤波后的波形为:
1、利用haimming窗设计的FIR滤波器滤波后:
3.4.2窗函数hanning设计带通滤波器滤波
利用hainning窗设计的FIR滤波器滤波后:
3.4.3窗函数Blackman设计带通滤波器滤波
利用Blackman窗设计的FIR滤波器滤波后:
3.4.4窗函数Boxcar设计带通滤波器滤波
利用窗设计的FIR滤波器滤波后:
3.5回放语音信号
经过以上的加噪声处理后,可在Matlab中用函数sound对声音进行回放。
其调用格式:
sound(y,Fs),sound(y)和sound(y,Fs,bits)。
可以察觉滤波前后的声音有明显的变化。
结论
本设计圆满的完成了对加噪声语音信号的读取与打开,与课题的要求十分相符;也较好的完成了对原始语音信号和加噪声后的语音信号的频谱分析,通过fft变换,得出了语音信号的频谱图;在滤波这一部分,课题主要是从窗函数巴特沃斯滤波器入手来设计滤波器,实现了的滤波效果;
不足之处是对MATLAB中函数运用熟练,设计的滤波器滤波效果不是太明显。
通过此次课程设计,让我了解到数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。
还了解到MATLAB具有许多的优点比如:
语言简洁紧凑,使用方便灵活,库函数极其丰富。
.
参考文献
1高西全,丁玉美.数字信号处理.第3版.:
电子科技大学,2008
2泉,阙大顺.数字信号处理原理与实现.:
电子工业,2005
3磊,毕靖,郭莲英.MATLAB实用教程.:
人民邮电,2008
4威.MATLAB基础与编程入门.:
电子科技大学,2006
5周利清,菲.数字信号处理基础.:
邮电大学,2005
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 语音 信号 FIR 数字 滤波 处理