基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx

上传人:b****5 文档编号:17279956 上传时间:2022-11-30 格式:DOCX 页数:15 大小:163.62KB
下载 相关 举报
基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx_第1页
第1页 / 共15页
基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx_第2页
第2页 / 共15页
基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx_第3页
第3页 / 共15页
基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx_第4页
第4页 / 共15页
基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx

《基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。

基于Matlab的对语音信号采集处理及滤波器的设计Word格式文档下载.docx

理解与掌握课程中的基本概念、基本原理、基本分析方法,用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心得体会

通过这次的课程设计我们可以学的到很多的东西,不仅可以巩固以前所学过的知识,还可以学到很多在书本上所没有学到过的知识。

进一步加深了对数字信号处理的了解,让我对它有了更加浓厚的兴趣。

因为

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1