基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx
- 文档编号:17279956
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:15
- 大小:163.62KB
基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx
《基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
理解与掌握课程中的基本概念、基本原理、基本分析方法,用Matlab进行数字语音信号处理,并阐述了课程设计的具体方法、步骤和内容。
综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。
关键词:
MATLAB工具信号语音采集滤波器
1课程设计实现
1.1整体设计思路
Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,信号处理是Matlab重要应用的领域之一。
本文是用Matlab对含噪的的语音信号同时在时域和频域进行滤波处理和分析。
整个设计思路的设计原理示意图如图1所示:
1.2整体实现过程
1.2.1信号的采样
采样器的作用是把连续信号变为脉冲或数字序列。
图中示出了一个连续信号f(t)经采样器采样后变为离散信号的过程
图2连续信号f(t)经采样器采样后变为离散信号
图中f(t)为被采样的连续信号,S(t)为周期性窄脉冲信号,fs(t)为采样后的离散信号,它用下式来表征:
fs(t)=f(t)s(t)
采样信号的频率特性为:
如果|F*(jω)|中各个波形不重复搭接,相互间有一定的距离(频率)即若
即采样定理可叙述如下:
如果采样周期满足下列条件,即:
式中ωmax为连续信号f(t)的最高次谐波的角频率。
则采样信号f*(t)
就可以无失真地再恢复为原连续信号f(t)。
需要指出的是,采样定理只是在理论上给出了信号准确复现的条件。
我们可以利用windows自带的录音机录制语音文件,进行数字信号的采集。
(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000KHz,8位,单声道)或其他软件,将话筒输入计算机的语音输入插口上,启动录音机,录制一段自己的话音。
然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。
通过wavread函数的使用进一步理解采样频率、采样位数等概念。
图2是基于PC机的语音信号采集过程:
声音
图3语音采集过程
1.2.2语音信号的读取
在matlab软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。
通过使用wavread函数,理解采样频率、采样位数等概念。
wavread函数调用格式
y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。
[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。
y=wavread(file,N),读取钱N点的采样值放在向量y中。
y=wavread(file,[N1,N2]),读取从N1到N2点的采样值放在向量y中。
对语音信号“zx.wav”进行采样其程序如下:
[y,fs,nbits]=wavread('
zx.wav'
)
结果如下:
可知该语音信号的采样频率fs=8000Hz,数据位nbits=16Bit。
1.2.3语音信号的频谱分析
首先画出语音信号的时域波形,然后对语音信号进行频谱分析。
在Matlab中可以利用函数fft对信号行快速傅里叶变换,得到信号的频谱特性,从而加深对频谱特性的理解。
其程序如下:
[y,fs,nbits]=wavread('
yuyin.wav'
);
%把语音信号进行加载入Matlab仿真软件平台中
sound(y,fs,nbits);
%回放语音信号
n=length(y);
%求出语音信号的长度
Y=fft(y,n);
%快速傅里叶变换
subplot(2,1,1);
plot(y);
title('
原始信号波形'
subplot(2,1,2);
plot(abs(Y));
原始信号频谱'
程序结果如下图3:
图4语音信号的频谱
1.2.4噪声信号的构建
利用MATLAB中的随机函数(randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析。
程序如下:
N=length(y);
noise=rand(N,2)/20;
%噪声信号的函数
z=fft(noise);
subplot(2,1,1),plot(noise);
噪声信号波形'
subplot(2,1,2),plot(abs(z));
噪声信号频谱'
axis([0,250000,0,100]);
图5噪声信号的频谱
1.2.5加入噪声的语音信号的频谱
matlab程序如下:
y=wavread('
yuyin.wav'
s=y+noise;
%噪声信号的叠加
Subplot(2,1,1);
plot(s);
title('
滤波前的时域波形'
S=fft(s);
Subplot(2,1,2);
plot(abs(S));
滤波前的频域波形'
axis([0,45000,0,200]);
图6加噪语音信号的频谱
2数字滤波器的设计
2.1滤波器的设计原理
设计数字滤波器的任务就是寻求一个因果稳定的线性时不变系统,并使系统函数H(z)具有指定的频率特性。
数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。
IIR滤波器的特征是,具有无限持续时间冲激响应。
这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。
FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。
2.2滤波器的性能指标
在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。
在很多实际应用中,数字滤波器常常被用来实现选频操作。
因此,指标的形式一般在频域中给出幅度和相位响应。
幅度指标主要以两种方式给出。
第一种是绝对指标。
它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。
第二种指标是相对指标。
它以分贝值的形式给出要求。
在工程实际中,这种指标最受欢迎。
对于相位响应指标形式,通常希望系统在通频带中人有线性相位。
运用线性相位响应指标进行滤波器设计具有如下优点:
①只包含实数算法,不涉及复数运算;
②不存在延迟失真,只有固定数量的延迟;
③长度为N的滤波器(阶数为N-1),计算量为N/2数量级。
下面给出了有关滤波器的性能指标
1、低通滤波器的性能指标:
Fp=1000Hz,Fs=1200Hz,As=50dB,Ap=1dB;
2、高通滤波器的性能指标:
Fp=4000Hz,Fs=3500Hz,As=50dB,Ap=1dB;
3、带通滤波器的性能指标:
Fp1=1200Hz,Fp2=3000HZ,Fs1=1000Hz,
Fs2=3200Hz,As=50dB,Ap=1dB;
2.3IIR数字滤波器设计
IIR数字滤波器是一种离散时间系统,其系统函数为
(1-3)
假设M≤N,当M>N时,系统函数可以看作一个IIR的子系统和一个(M-N)的FIR子系统的级联。
IIR数字滤波器的设计实际上是求解滤波器的系数
和
,它是数学上的一种逼近问题,即在规定意义上(通常采用最小均方误差准则)去逼近系统的特性。
如果在S平面上去逼近,就得到模拟滤波器;
如果在z平面上去逼近,就得到数字滤波器。
设计流程如图所示:
频域指标双线性变换法
脉冲响应不变法
图7IIR滤波器的间接法设计
IIR低通滤波器:
Ft=8000;
Fp=1000;
Fs=1200;
wp=2*pi*Fp/Ft;
ws=2*pi*Fs/Ft;
fp=2*Ft*tan(wp/2);
fs=2*Ft*tan(ws/2);
[N,wc]=buttord(wp,ws,1,50,'
s'
[b,a]=butter(N,wc,'
[bz,az]=bilinear(b,a,0.5);
[h,w]=freqz(bz,az);
plot(w*8000*0.5/pi,abs(h));
Legend('
用butter设计'
IIR低通滤波器'
grid;
图8
2.4FIR数字滤波器设计
IIR滤波器设计只能保证其幅频响应满足性能指标,相位特性无法考虑且往往非线性。
FIR滤波器的突出优点是,在保证满足滤波器幅频响应要求的同时,还可以获得严格的线性相位特性,这对于高保真的信号处理。
如语音处理、数据处理和测试等是十分重要的。
它的主要缺点是,达到相同性能指标所需滤波器阶数要高得多,延迟也比较大
FIR低通滤波器:
wp=2*Fp/Ft;
ws=2*Fs/Ft;
Ap=1;
As=50;
p=1-10.^(-Ap/20);
s=10.^(-As/20);
fpts=[wpws];
mag=[10];
dev=[ps];
[N,wc,beta,ftype]=kaiserord(fpts,mag,dev);
b=fir1(N,wc,kaiser(N+1,beta));
[h,w]=freqz(b,1);
plot(w/pi,abs(h));
FIR低通滤波器'
图9
2.5滤波器对信号滤波
用设计好的数字滤波器对含噪语音信号进行滤波,在Matlab中FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波,在一个窗口同时画出滤波前后的波形及频谱如图。
IIR低通滤波:
k=y+noise;
Subplot(2,2,1);
plot(k);
K=fft(k);
Subplot(2,2,2);
plot(abs(K));
axis([0,50000,0,300]);
z11=filter(bz,az,k);
m11=fft(z11);
subplot(2,2,3);
plot(z11,'
g'
滤波后的时域波形'
subplot(2,2,4);
plot(abs(m11),'
r'
sound(z11);
图10IIR低通滤波
FIR低通滤波:
yuyin.wav'
z21=fftfilt(b,k);
m21=fft(z21);
plot(z21,'
plot(abs(m21),'
图11FIR低通滤波
2.6语音信号回放
以上几种滤波,我们都可以从信号滤波前后的波形图以及频谱图上看出变化。
我们可以用sound()函数来播放滤波后的语音,从听觉上直接感受语音信号的变化,但由于人耳听力的限制,有些情况下我们是很难听出异同的。
在matlab中,函数sound可以对声音进行回放,其调用格式为:
sound(x,fs,nbits)。
通过回放可以发现滤波前后的声音有变化。
3心得体会
通过这次的课程设计我们可以学的到很多的东西,不仅可以巩固以前所学过的知识,还可以学到很多在书本上所没有学到过的知识。
进一步加深了对数字信号处理的了解,让我对它有了更加浓厚的兴趣。
因为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Matlab 语音 信号 采集 处理 滤波器 设计