语音信号处理matlab

2025-01-09 版权声明 我要投稿

语音信号处理matlab(推荐11篇)

语音信号处理matlab 篇1

1.课程设计目的………………………………………………………………(1)

2.课程设计基本要求……………………………………………...………….(1)

3.课程设计内容………………………………………..……………………..(2)

4.课程设计实现……………………………………………………..…..……………(3)

(1)语音信号的采集……………………………………………………..(5)

(2)语音信号的频谱分析………………………………………………..(6)

(3)设计滤波器和画出频率响应………………………………………..(6)

(4)用滤波器对信号进行滤波…………………………………………..(9)

(5)比较滤波前后语音信号的波形及其频谱…………………………..(9)

(6)回放语音信号………………………………………………………..(11)

(7)设计系统界面………………………………………………………..(13)

5、心得体会……………………………………………..……………………..(14)

语音信号处理matlab 篇2

1 语音信号的简介

语音具有成为声学特征的物理物质[1],基本的组成单位是音素。音素是发出各不相同音的最小单位,可以将音素分为浊音和清音两大类。如果把不存在语音而只有背景噪声的情况称为无声时,音素又可以分为无声、浊音和清音三类。一个音节由元音和辅音构成。元音在音节中占主要部分。所有元音都是浊音。

语音信号处理的目的有两个[2]:一个是要通过处理得到一些反应语音信号重要特征的语音参数,以便高效地传输或储存语音信号信息;另一个是要通过处理某种运算以达到某种用途的要求,例如人工合成出语音、辨识出讲话者、识别出讲话的内容等。

傅里叶变换在信号处理中能够将信号在时间域和频率域之间进行有效的联系和转换,能够将信号的频率特征清晰准确的表现出来,而在时域中这种频率性能是没有定量的表现的,因此傅里叶变换在信号处理上具有十分重要的作用。在语音信号处理上,傅里叶变换一直起着主要作用。稳态的语音生成模型有线性系统组成[2],系统输入为随时间作周期变化或随机变化时,系统输出的频谱则反应了激励与声道频率响应特性。此外,语音信号的频谱具有非常明显的语言学意义,可以获得某些重要的语音特征(如共振峰频率带宽等)。

2 语音信号的分析实验过程

利用电脑自带的录音机,录制本人的声音作为语音信号,并加入人为噪声。对加噪信号进行时间域以及频率域分析,根据噪声特点设计不同特征的滤波器进行噪声去除滤波,并对去噪以后的语音信号再次分析时域和频域特性,分析去噪效果。

2.1 加入高频噪声并进行时域和频域分析

利用MATLAB中的函数wavread对语音信号采集,sound函数播放语音,并且声音采用的是单声道。采样频率Fs设为441000Hz,Bits表示量化阶数,y为采样数据。利用快速傅里叶变换对语音数据进行傅里叶叶变换,分析语音信号频谱。具体的MATLAB程序如下[3,4]。

加噪后语音信号的时域和频域分析分别如图1和图2所示。

音频信号一般集中在20Hz到20 k Hz之间,分析频谱图可清楚地看到加噪前的样本声音的主要以低频为主,样本声音的能量集中在低频部分。当读长“江大学”时,所对应的频率大概在200Hz左右,这与音频信号频率集中在20Hz到20 k Hz之间是相一致的。而在未发声的时间段内,相对的小高频部分应该属于背景噪声。我们人为的在这段语音中加入高频噪声,噪声的频谱图如图3所示,频率在4410Hz以上,加噪后语音信号的频谱中在高频部分的能量有所增加。

2.2 采用双线性变换法设计椭圆低通滤波器

下面我们将利用低通滤波器处理这段加噪语音,以达到去除高频噪声的目的。IIR滤波器设计是以模拟滤波器为基础进行的椭圆滤波器的通带和阻带都有切比雪夫波纹,是等波纹的逼近方式,过渡带非常陡峭,在滤波器阶数N给定的情况下,同样的性能指标要求的阶数是最小的,这使得在众多的模拟滤波器中椭圆滤波器设计是最优化的,性能是最好的,同时为了防止频率混叠,普遍采用双线性变换法,实现模拟滤波器到数字滤波器的转换。依据这样的设计思路,设定滤波器的参数为:wp=0.116*pi,wr=0.20*pi,Ap=0.25,Ar=50,以下是滤波器的设计程序[3]。

将加噪的语音信号经过设计的椭圆低通低通滤波器以后,得到滤波以后的时域和频域图形,如图3所示。

从图3频谱图可以看出利用设计的低通滤波器滤波器,可以把人为加入的频率在4410Hz以上的噪声大部分滤除掉了,保留了原来语音信号的低频部分,也就保留了语音信号的主要能量。我们又利用wavwrite函数,将去噪后的语音信号转换为wav语音文件,进行去噪前后的语音播放对比,并结合MATLAB作图函数显示处理前后的语音频谱,对于我们理解滤波去噪的意义有很重要的作用。

通过低通滤波处理后,语音信号变得低沉,声音有点发闷,声音的清晰度有所降低,分析原因所在,是语音信号中包含的原有的高频分量也同时被低通滤波器滤除或衰减,这从运行显示的频谱图中也可以直观地看到。由于高频分量的滤除或衰减,使得滤波器以后的信号幅度也会减小。

2.3 加入高频噪声并进行时域和频域分析

对原始信号加入低频噪声,改变原有加噪程序中的噪声性能,继续利用原有的程序对信号加噪。下面是改变噪声的程序[5],将这个噪声加入语音信号中,得到加噪后语音信号的时域和频域分析图形,分别如图4和图5所示。

由频谱图图5放大以后可以看到,加入的噪声是低频噪声,频率在3150Hz以下。为了过滤掉这个低频噪声,设计高通滤波器以滤掉或较高抑制这个低频噪声。

2.4 采用原型低通滤波器设计切比雪夫-II型高通滤波器

利用上述程序设计高通滤波器[3],将加噪的语音信号经过该切比雪夫-II型高通滤波器以后,得到滤波以后的时域和频域波形如图6所示。

由图6可以清楚的看到,经过高通滤波器滤波以后,信号的低频部分以及噪声被滤除,保留了信号的高频部分。同样利用wavwrite函数生成滤波后的语音信号wav文件,与原始语音进行对比,以加深对滤波器的了解。高通滤波以后,语音变得尖锐,原因是低频分量被低通滤波器滤除或衰减。

3 结束语

本实验是通过MATLAB的语音处理函数,将复杂的物理算法变得很直观,对理解物理意义有很大的帮助。通过对语音信号的采集、加噪、频谱分析、滤波等试验过程的阐述具体分析了怎么样使用MATLAB的语音处理工具箱,同时也认识到只用简单的滤波器是无法对语言信号做到高保真的去噪处理。

参考文献

[1]赵力.语音信号处理[M].北京:机械工业出版社,2009.

[2]胡航.语音信号处理[M].哈尔滨:哈尔滨工业大学出版社,2000.

[3]赵红怡,张常年.数字信号处理及其MATLAB实现[M].北京:化学工业出版社,2002.

[4]陈后金,薛健,胡健.数字信号处理[M].北京:高等教育出版社,2004.

语音信号处理matlab 篇3

摘 要:数字信号处理的概念抽象,基本理论和方法不容易掌握。MATLAB是一款强大的计算机计算软件,能将数字信号处理的抽象理论以直观的形式展示出来。该文根据 FIR数字滤波器设计的基本原理,详细说明了基于MATLAB 的FIR数字滤波器的窗函数设计法。并对所设计的滤波器进行滤波仿真验证能否达到设计要求。

关键词:MATLAB;数字信号处理;窗函数;FIR数字滤波器

当今人类正进入信息时代,而数字化是信息时代发展的方向。因此,数字信号处理是21世纪对科学和工程发展具有深远意义的一门技术,他的应用领域非常宽广,如通信、语音、图像、自动控制、石油工程等。MATLAB在信号处理方面有着明显的优势,它使用方便、编程简单、绘图简便,已经成为数字信号处理应用中分析和仿真设计的主要工具。

一、基于MATLAB的数字信号处理

应用MATLAB可对数字信号处理的理论和算法进行设计仿真,同时可对音频数字信号进行读取,播放,滤波等操作。滤波器的设计是数字信号处理中很重要的内容,下面以窗函数法设计有限冲激响应(FIR)数字滤波器为例,说明MATLAB在数字信号处理中的应用。

二、FIR滤波器的设计

1.窗函数设计FIR数字滤波器的基本原理

窗函数法是设计FIR数字滤波器的最简单的方法。用窗函数法设计FIR数字滤波器的基本原理就是根据给定的滤波器的技术指标,选择滤波器的窗长N和窗函数w(n),使其具有最窄的主瓣和最小的方瓣。其核心是由给定的频率特性通过加窗确定有限长单位脉冲响应h(n)。考虑到数字滤波器的频率响应是以2π为周期的周期函数,若指标所要求的频响为Hd(ejω),则与它相应的序列hd(n),根据DTFT变换对的关系有:

2.几种典型窗函数以及选窗原则

目前几种主要窗函数为:矩形窗、三角形窗、汉宁窗、汉明窗、布拉克曼窗。窗函数的选择原则是:(1)具有较低的旁瓣幅度, 尤其是第一旁瓣的幅度;(2)旁瓣的幅度下降的速率要快, 有利于增加阻带衰减;(3)主瓣的宽度要窄, 这样可以得到较窄的速度带。

三、实例

试用布拉克曼窗设计FIR数字滤波器对给定的音频信号(“西海情歌”)进行滤波。根据音频选择合适的指标,其中要求阶数N=33,截止频率wc=π/4。并显示滤波后的音频图。

运行结果:

通过观察可以发现:理想低通滤波器经布拉克曼窗截后,在通带内相对来说比较平滑,没有肩峰值,但其过渡带比较宽。阻带最小衰减为-74db,布拉克曼窗的滤波效果比较好,达到了想要的滤波效果。

四、结语

采用窗函数法设计FIR数字滤波器具有设计简单,方便,实用等优点,因而受到广泛运用。 在设计数字滤波器时, 善于应用MATLAB进行辅助设计, 能够大大提高设计效率。从例子我们可以看出,MATLAB提供强大的运算功能,而且能够以丰富的图形系统形象地展示出来。MATLAB的数字信号处理工具箱与工程实际相结合,将大大提高研究进度并开创更广阔的研究空间。

参考文献:

[1]彭红平杨福宝.基于 Matlab 的 FIR 数字滤波器设计.武汉理工大学学报2005,27(5):275- 278.

[2]奥本海姆 A V,谢弗 R W.离散时间信号处理[M].刘树棠,译.西安:西安交通大学出版社,2001.

[3]程佩青 数字信号处理教程(第三版) 清华大学出版社2007.

[4]李正周MATLAB数字信号处理与应用 北京:清华大学出版社 2008.

语音信号处理matlab 篇4

MATLAB 综合实验 项目二

连续系统的频域阐发 目的:

周期信号输入连续系统的响应可用傅里叶级数阐发。由于盘算历程啰嗦,最适适用MATLAB 盘算。通过编程实现对输入信号、输出信号的频谱和时域响应的盘算,认识盘算机在系统阐发中的作用。

任务:

线性连续系统的系统函数为11)(jj H,输入信号为周期矩形波如图 1 所示,用MATLAB 阐发系统的输入频谱、输出频谱以及系统的时域响应。

-3-2-1 0 1 2 300.511.52Time(sec)

图 1

要领:

1、确定周期信号 f(t)的频谱nF。基波频率 Ω。

2、确定系统函数 )( jn H。

3、盘算输出信号的频谱

n nF jn H Y )( 

4、系统的时域响应

 nt jnn eY t y)(MATLAB 盘算为

y=Y_n*exp(j*w0*n“*t);

要求(画出 3 幅图):

1、在一幅图中画输入信号 f(t)和输入信号幅度频谱|F(j)|。用两个子图画出。

2、画出系统函数的幅度频谱|H(j)|。

3、在一幅图中画输出信号 y(t)和输出信号幅度频谱|Y(j)|。用两个子图画出。

解:(1)阐发盘算:

输入信号的频谱为

(n)输入信号最小周期为 =2,脉冲宽度,基波频率Ω=2π/ =π,所以

(n)系统函数为

因此

输出信号的频谱为

系统响应为

(2)步伐:

t=linspace(-3,3,300);

tau_T=1/4;

%

n0=-20;n1=20;

n=n0:n1;

%盘算谐波次数20

F_n=tau_T*Sa(tau_T*pi*n);

f=2*(rectpuls(t+1.75,0.5)+rectpuls(t-0.25,0.5)+rectpuls(t-2.25,0.5));

figure(1),subplot(2,1,1),line(t,f,”linewidth“,2);

%输入信号的波形 axis([-3,3,-0.1,2.1]);grid on

xlabel(”Time(sec)“,”fontsize“,8),title(”输入信号“,”fontweight“,”bold“)%设定字体巨细,文本字符的粗细

text(-0.4,0.8,”f(t)“)

subplot(2,1,2),stem(n,abs(F_n),”.“);

%输入信号的幅度频谱 xlabel(”n“,”fontsize“,8),title(”输入信号的幅度频谱“,”fontweight“,”bold“)

text(-4.0,0.2,”|Fn|“)

H_n=1./(i*n*pi+1);

figure(2),stem(n,abs(H_n),”.“);

%系统函数的幅度频谱 xlabel(”n“,”fontsize“,8),title(”系统函数的幅度频谱“,”fontweight“,”bold“)

text(-2.5,0.5,”|Hn|“)

Y_n=H_n.*F_n;y=Y_n*exp(i*pi*n”*t);

figure(3),subplot(2,1,1),line(t,y,“linewidth”,2);

%输出信号的波形 axis([-3,3,0,0.5]);grid on

xlabel(“Time(sec)”,“fontsize”,8),title(“输出信号”,“fontweight”,“bold”)

text(-0.4,0.3,“y(t)”)

subplot(2,1,2),stem(n,abs(Y_n),“.”);

%输出信号的幅度频谱 xlabel(“n”,“fontsize”,8),title(“输出信号的幅度频谱”,“fontweight”,“bold”)

text(-4.0,0.2,“|Yn|”)

(3)波形:

-3-2-1 0 1 2 300.511.52Time(sec)输 入 信 号f(t)-20-15-10-5 0 5 10 15 2000.10.20.30.4n输 入 信 号 的 幅 度 频 谱|Fn|-20-15-10-5 0 5 10 15 2000.10.20.30.40.50.60.70.80.91n系 统 函 数 的 幅 度 频 谱|Hn|

-3-2-1 0 1 2 300.10.20.30.4Time(sec)输 出 信 号y(t)-20-15-10-5 0 5 10 15 2000.10.20.30.4n输 出 信 号 的 幅 度 频 谱|Yn|

项目三

连续系统的复频域阐发 目的:

周期信号输入连续系统的响应也可用拉氏变更阐发。用 MATLAB 的标记盘算成果,通过编程实现对系统瞬态响应和稳态响应的阐发,加深理解拉氏变更在阐发系统中的作用。

任务:

线性连续系统的系统函数为11)(ss H,输入信号为周期矩形波如图2所示,用MATLAB阐发系统的响应和稳态响应。

0 1 2 3 4 5 6 700.511.52Time(sec)

图 2

要领:

1、确定第一个周期拉氏变更)(0s F。

2、确定前 6 个周期的拉氏变更)(s F。

3、盘算输出信号的拉氏变更)()()(s F s H s Y 

4、系统的时域响应)()(s Y t y 

MATLAB 盘算为

y=ilaplace(Y);5、系统的稳态响应和稳态值,即经过 4 个周期后,系统响应趋于稳态,两个稳态值可取为

t=8s 和 t=8.5s

要求:

1、画出输入信号 f(t)波形。

2、画出系统输出信号 y(t)的波形。

3、画出系统稳态响应 yss(t)的波形,4 个周期后。并盘算出稳态值。

解:(1)步伐 syms s;

H=1/(s+1);

F0=1/s*(1-exp(-0.5*s));

%输入信号第一个周期的laplace变更

F=F0+F0*exp(-2*s)+F0*exp(-4*s)+F0*exp(-6*s);

Y=H.*F;

Y0=H.*F0;

y=ilaplace(Y);

y=simple(y);

t=linspace(0,12,300);

f=2*(rectpuls(t-0.25,0.5)+rectpuls(t-2.25,0.5)+rectpuls(t-4.25,0.5)+rectpuls(t-6.25,0.5));

yn=subs(y);

%标记替换

figure(1),plot(t,f,“linewidth”,2);

axis([0,7,-0.2,2.2]),xlabel(“Time(sec)”,“fontsize”,8),title(“输入信号”,“fontweight”,“bold”)

text(3.0,1.0,“f(t)”)

figure(2),plot(t,yn,“linewidth”,2);

axis([0,7,-0.1,0.5]),xlabel(“Time(sec)”,“fontsize”,8),title(“输出信号”,“fontweight”,“bold”)

text(3.0,0.3,“y(t)”)

figure(3),plot(t,yn,“linewidth”,2);

axis([8,12,-0.1,0.5]),xlabel(“Time(sec)”,“fontsize”,8),title(“输出信号稳态响应”,“fontweight”,“bold”)

text(10.0,0.2,“ys(t)”)

t=8:0.5:8.5;

%取t=8s和t=8.5两个稳态值

ys=subs(y,t,“t”);

disp(“输入为周期信号的响应的第一个周期”);

y0=ilaplace(Y0);

pretty(y0);

%标记输出类似数值形式

disp(“输出稳态周期信号的两个值”);

ys

(2)波形

0 1 2 3 4 5 6 700.511.52Time(s ec)输 入 信 号f(t)

0 1 2 3 4 5 6 7-0.100.10.20.30.4Time(sec)输 出 信 号y(t)8 8.5 9 9.5 10 10.5 11 11.5 12-0.100.10.20.30.4Time(sec)输 出 信 号 稳 态 响 应ys(t)

命令窗口显示:

输入为周期信号的响应的第一个周期

heaviside(t-1/2)(exp(1/2-t)-1)-exp(-t)+ 1 输出稳态周期信号的两个值 ys =

0.1015

语音信号处理matlab 篇5

一、本课题的目的本设计课题主要研究语音信号初步分析的软件实现方法、滤波器的设计及应用。通过完成本课题的设计,拟主要达到以下几个目的:

1.了解Matlab软件的特点和使用方法。

2.掌握利用Matlab分析信号和系统的时域、频域特性的方法;

3.掌握数字滤波器的设计方法及应用。

4.了解语音信号的特性及分析方法。

5.通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。

二、课题任务

设计一个简单的语音信号分析系统,实现对语音信号时域波形显示、进行频谱分析,利用滤波器滤除噪声、对语音信号的参数进行提取分析等功能。采用Matlab设计语言信号分析相关程序,并且利用GUI设计图形用户界面。具体任务是:

1.采集语音信号。

2.对原始语音信号加入干扰噪声,对原始语音信号及带噪语音信号进行时频域分析。

3.针对语音信号频谱及噪声频率,设计合适的数字滤波器滤除噪声。

4.对噪声滤除前后的语音进行时频域分析。

5.对语音信号进行重采样,回放并与原始信号进行比较。

6.对语音信号部分时域参数进行提取。

7.设计图形用户界面(包含以上功能)。

三、主要设备和软件

1.PC机,一台

语音信号处理matlab 篇6

MATLAB软件是由Math Works公司于1984年推出的产品,它的推出得到了各个领域专家学者的广泛关注,是目前国际上流行的进行科学研究、工程计算的软件[1]。MATLAB起源于矩阵运算,并发展成为一种高度集成的计算机语言,它具有强大的数学运算能力,方便实用的绘图功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学工程中常用的表达式十分相似,因此用MATLAB来解决运算问题要比用C、Fortran等语言完成相同的事情方便得多。可以预见,在科学运算、自动控制、科学绘图、通信仿真等领域,MATLAB语言将长期保持其独一无二的地位。语音信号是多媒体信息的重要组成部分,对语音信号的采集和运算已经广泛应用于语音识别、噪声抑制、材料无损检测等工程领域。语音信号的频率范围大约是20Hz~20kHz,其频率成分主要集中在300~3400Hz,因此语音通信中国际上广泛采用8 k Hz的采样速率,而目前一般的PC机声卡采样速率都达到44.1kHz或48kHz,其16位的A/D精度比普通的16位A/D卡都要高,是性价比很高数据采集卡[2],完全能满足一般的语音信号的采集分析要求。借用PC机的现有资源加上MATLAB软件,可以方便地完成语音信号的采集、运算、频谱分析和滤波等。语音信号的频谱分析和滤波在相关文献中讨论很多,本文以声卡为主要硬件,使用MATLAB与声卡的接口函数完成语音信号的采集,可以将采集到的数据保存为wav格式的文件或者保存为数据,并编程实现采集到的语音信号的运算,通过听觉切实体验数字信号运算所带来的效果。

1 MATLAB中语音信号的采集

对于配置了声卡并连接了麦克风的计算机,MATLAB中可以采用命令wavrecord来录音,其调用格式是:

其中,n为总的取样点数,Fs为取样速率(样点/s),标准取样速率可设为8000、11025(默认)、22050以及44100样点/s。用户也可以设定其他取样速率值,如Fs=10000,但必须满足采样定理的要求,否则将导致录音结果失真。ch为录音声道数,默认ch=1,为单声道录音;若ch=2,则为立体声录音,这时需要声卡能够支持双声道录音并配有两个话筒。dtype为记录的数据格式,有double(默认),single,int16,int8等几种类型。

需要强调的是,录音采用均匀量化规则,输出序列y是一个的数字序列,对于double(默认),single,int16的数据类型,每个样值的量化精度将大于等于16bit(最高精度取决于声卡指标),这对于一般工程研究是足够的,可以忽略量化过程中引入的量化误差。例如,当要研究8bitA律PCM的语音质量时,就可以将16bit的输出录音结果视为量化之前的采样结果。

使用指令wavplay和sound可以将一个数字序列按照指定的采样率通过声卡输出到扬声器。wavplay指令一般用于windows操作系统下,sound指定则用于跨平台的操作。wavplay指令的用法是:

wavplay(y,Fs);

wavplay(y,Fs,’mode’)%mode可取值async或sync;

其中,y是被播放序列(取值范围必须在-1~+1之间),当y为矩阵时,为单声道播出;当y为矩阵时,则将各列分别送入左右两个声道播出。Fs为播放的采样率,默认值为11025Hz,一般声卡支持的Fs范围是5000~44100Hz。当播放模式设置为sync(默认)时,表示同步播放,即执行该指令完毕之后(声音播放完毕)才执行下一条语句;当播放模式设置为async时,则表示异步播放,即将该命令的数据送入声卡后,立即开始执行下一语句。

MATLAB也可以将记录的音频信号直接保存为wav格式。在windows环境下,wav格式是最常用的。利用命令

wavwrite(y,Fs,’filename’);

就可以将向量y存储为取样率为Fs的wav格式音频文件。wav文件可以采用windows中的多媒体播放器播放。

MATLAB中也可以直接读取wav格式的音频文件,其常用的调用命令是:

wavread指令中的filename为wav格式文件名,返回值y为样值序列,对于单声道音频文件,y是行1列的,对于双声道文件,y是行2列的。Fs是返回的音频采样率。以上命令都属于MATLAB与声卡的接口函数[3],运用它们可以完成语音信号的采集、存储以及回放。

2 语音信号的运算和效果体验

对某一信号的运算包括:放大、衰减、延时间轴压缩、展宽、翻转、差分运算等等[4]。在此通过编写MATLAB中的脚本文件,完成语音信号的采集并对信号进行上述的运算,通过播放体验其运算效果。首先调用wavrecord函数,完成语音信号的采集,并保存为wav格式的文件,调用wavplay函数播放声音信号产生听觉体验,然后进行信号运算。提到语音,有人可能会想到回声,回声是我们日常生活中常见的一种现象。语音信号在传播过程中,碰到大的反射面(如建筑物的墙壁等)在界面将发生反射,回声是能够与原声区分开的反射信号。人耳能辨别出回声的条件是反射信号具有足够大的声强,并且与原声的时差须大于0.1秒。当反射面的尺寸远大于入射声波长时,听到的回声最清楚。程序中在信号运算完后简单模拟回声效果。与以上过程相对应的MATLAB的m文件如下:%此m文件完成声音信号的采集与运算,用到的硬件为配有耳麦和声卡装置的PC机,软件为Matlab.

disp('开始录音');%给出运行提示,开始声音信号的采集,将语音信号对准麦克风,完成其采集

y=wavrecord(n,fs);

%load sy2.mat;

wavwrite(y,fs,'rerod.wav')%保存为wav格式

disp('原声播放');

wavplay(y,fs);%原声播放效果

disp('放大播放');

wavplay(5*y,fs);%语音信号的放大及效果体验

disp('衰减播放');

wavplay(0.5*y,fs);%语音信号的衰减及效果体验

disp('加速播放');

wavplay(y,2*fs);%沿时间轴压缩及效果体验

%wavplay(y(1:2:end),fs);

disp('减速播放');

wavplay(y,0.5*fs);%沿时间轴展宽及效果体验

disp('反转播放');

yy=y(end:-1:1);

wavplay(yy,fs);%信号的翻转及效果体验

disp('差分播放')

cf=diff(y);%对声音信号进行差分处理

wavplay(cf,fs)%播放差分处理后的声音信号及效果体验

disp('回声效果');%简单模拟回声效果

tao=2;

y1=y;

y1(n+1:(T+tao)*fs)=0

y2=y1;

y2(1:tao*fs)=0;

y2(tao*fs+1:(T+tao)*fs)=y;

y3=0.5*y1+0.5*y2;

wavplay(y3,fs);%回声播放效果体验

save sy2.mat y

通过运行以上脚本文件,完成语音信号的采集,存储,可以让大家真实感受到对某一语音信号的相关运算所带来的效果。回声是大家生活中常见的现象,以上通过简单的模拟实现了回声效果。

3 结语

本文以PC机上的声卡为主要硬件,使用MATLAB软件完成语音信号的采集,通过实验可以让大家切实体验对某一信号的运算所带来的效果。根据个人要求效果的不同,通过修改实验中的相关参数,可以使其效果更佳。以上方法简单使用,性价比高。

参考文献

[1]郭文彬,桑林.通信原理-基于MATLAB的计算机仿真[M].北京:北京邮电大学出版社,.2006,1.

[2]陈璇,李启海,朱万彬等.基于声卡和MATLAB的音频信号的采集和处理[J].长春理工大学学报(自然科学版),2010,33(3):71-74.

[3]邵玉斌.Matlab/Simulink通信系统建模与仿真实例分析[M].北京:清华大学出版社,2008:135-136.

Matlab在图像处理中的应用 篇7

关键词:图像处理;应用;MATLAB工具箱;实例

中图分类号:TP3 文献标识码:A 文章编号:1007-9599 (2012) 09-0000-02

一、引言

图像是人们从客观世界获取信息的重要来源、图像处理通常强调在图像之间进行变换,比较狭义的主要指对图像进行各种加工,改善着图像的视觉效果,或对图像进行压缩编码以减少对其所需存储空间、传输时间和传输道路的要求。对图像处理一般可用算法的的形式描述、而大多数算法可用软件来实现。这依赖于图像处理技术水平,图像处理技术迅速发展,已经成为工程学、计算机科学、信息科学、统计学、物理学、、化学、生物学、医学甚至社会科学等领域学习和研究的对象。如今图像处理技术已给人类带来了巨大的经济和社会效益。

MATLAB(矩阵实验室)语言经过多年逐步发展与不断完善,现已经成为国际公认的最优秀的科学计算于数学应用软件之一,其内容涉及矩阵代数、微积分、应用数学、信号与系统、神经网络、数字图像处理、计算机图形学、电子线路、电机学、自动控制与通讯技术、物理、力学和机械振动等方面它的特点是语法结构简单、数值计算高效、界面友好用户环境,而且还具有可扩展性特征。

二、MATLAP概述

MATLAP是当今最优秀的科技应用软件之一,具有强大的科学计算能力、可视化功能同时具有其他高级语言难以比拟的一些优点:编写简单、效率高、易懂易学。在信号处理、通信、自动控制及科学计算等领域中被广泛应用,被认为最能够提高工作效率,改善设计手段的工具软件。MATLAP最新版本软件工具实现数字信号处理、图像处理、小波分析和系统仿真等相关应用领域有了新的突破。MATLAB应用领域主要有三个方面:数字信号处理、系统建模与仿真、图像处理。

(一)MATLAB特点

作为第四代计算机语言的MATLAB语法结构简单,数据计算高效,图形功能完备,特别受到以完成数据处理与图形图像成为目的技术研发人员的青睐,同时可用其丰富的函数资源,使得编程人员从繁琐的程序代码中解放出来。

1.界面友好、编程效率高

2.功能强大,可扩展性强

3.图形功能灵活方便

4.在线帮助,有利于学习

(二)MATLAB图像处理工具箱

MATLAB图像处理工具提供了丰富的图像处理函数,主要可以完成以下功能:

图像的几何操作;图像的领域和图像块操作;线性滤波和滤波器设计;图像变换;图像分析和增强;二值图像形态学操作;图像复原;图像编码;感兴趣区域处理。

三、MATLAB图像处理应用

MATLAB可操作的图像文件包括BMP、HDF、JPEG、PCX、TIFF、XWD等格式。下面就图像处理的基本过程讨论工具箱所实现的常用功能。

常用图像操作及实例

图像的读写与显示操作:用imread()读取图像,imwrite()输出图像,把图像显示于屏幕有imshow(),image()等函数。Imcrop()对图像进行裁剪,图像的插值缩放可用imresize()函数实现,旋转用imrotate()实现。

1.读取图像并显示:

X=imread(''brid.jpg'');

>>(d:matlabbrid.jpg)指定图片所在位置

imshow(X);

3.给图像进行整体亮度增加:

图像相加运算

X=imread(''bird.jpg'');

Y=imdivide(X,0.5);

subplot(1,2,1),imshow(X)

subplot(1,2,2),imshow(Y)

5.实现图像直方图均衡化:

X=imread(‘bird.jpg’);

Y=rgb2gray(X);

figure,imhist(Y);

四、结论

以上可以看出MATLAB语言简洁,可读性强,工具箱涉及的专业领域广泛且功能强大。图像工具箱几乎包括所有经典的图像处理方法。由于工具箱具有可靠性和开放性,我们可以方便地直接加以使用,也可以把自己的代码加到工具箱中以改进函数功能,在图像处理技术中使用MATLAB语言可以快速实现模拟仿真,大大提高实验效率。

参考文献:

[1]Kenneth.R.Castleman.数字图像处理技术[M].北京:电子工业出版社,1998

[2]王新成.高级图像处理技术[M].北京:中国科学技术出版社,2001

[3]孙兆林.MATLAB 6.x图像处理[M].北京:清华大学出版社,2002

[4]贺兴华.MATLAB 7.x图像处理[M].北京:人民邮电出版社,2006

[5]高展宏.基于圖像处理的案例教程[M].北京:清华大学出版社,2011

语音信号处理matlab 篇8

作者简介:曹玉东,辽宁工业大学通信硕士点负责人,副教授;孙福明,辽宁工业大学电子与信息工程学院副院长,教授; 王冬霞,辽宁工业大学研究生学院副院长,教授

项目资助:辽宁工业大学研究生教学改革研究项目(210409)

摘要:分析了MATALB軟件在研究生的数字图像处理教学中应用的可能性,介绍了数字图像处理与MATLAB互补教学模式的优势和实施案例。结合数字图像处理和MATLAB程序设计的教学要求,在教学内容、教学方法和教学手段上做了一些探索和尝试,教学结果表明互补教学模式提高了教学质量,提高了学生的工程实践能力。

关键词:互补教学; 数字图像处理教学; MATLAB语言教学

【中图分类号】TP391.41-4

一、数字图像处理和MATLAB教学现状与问题

数字图像处理是我校通信类研究生的学位课程,MATLAB语言是该专业的非学位课程。数字图像处理课程要求研究生掌握图像处理的基本理论、基本方法,能够将其应用到实践中,这门课程具有较强的学科交叉性,涉及到模式识别、计算机视觉、信息编码与传输等领域的知识。数字图像处理和MATLAB语言课程的传统教学模式是各自处于独立状态,学生普遍感觉数字图像处理课程难学,MATLAB课程枯燥。

二、教学软件的选择

数字图像处理是一门理论与实践、原理与应用紧密结合的课程。对学生的要求是掌握图像处理的基本知识和基本理论,能结合具体的软件工具验证相应的理论和算法[1]。从数量和易用性上看,与图像处理有关的C语言共享程序都不如MATLAB的图像处理共享软件[2]。选择MATLAB作为图像处理教学和实践的软件符合普通高校的实际情况。同其它软件相比,MATLAB能方便地处理矩阵的各类复杂运算,而图像的原始表达模式就是矩阵,所以二者之间存在一种联系。

三、互补教学的优势与案例

如果单纯地讲解软件语法,学生普遍会感觉很枯燥,结合某些图像处理内容学习MATLAB软件可以活跃课堂气氛,通过视觉效果激发学生的学习热情[3,4]。笔者结合教学实践,总结和归纳了MATLAB语言和数字图像处理的互补教学案例,现列举如下:讲解MATLAB的循环结构时,可以结合图像的镜像操作,强化循环结构的应用。给出原图和要求实现的效果图(参见图1),然后要求学生自己利用MATLAB语言的循环结构实现。

(a)原图

(b) 实现翻转镜像操作

(c) 上下镜像操作

图1 图像几何变换操作

学生不难做出上述题目,可以继续引导学生简化程序,提示学生:不用循环结构也可以完成上述操作。经过上述的实训,学生对所学内容的认识和理解会更深刻,算法设计能力和动手编程能力也得到了锻炼。

在讲授数字图像处理课程时适当地利用MATLAB图像处理工具箱,可以增加学生对抽象数学公式的感性认识,提高相关理论分析的效率。例如讲解二维傅里叶变换公式时可以用MATLAB的fft2等函数直观地演示变换效果,如图2所示。

图2 lena图像和傅里叶变换的幅度谱与相位谱

在图2中,可以看到在傅里叶变换的幅度谱中,低频信息集中在图像的中心区域,如果将幅度谱四周部分高频区域置零,再做傅里叶逆变换,即得频域压缩图像。这种由浅入深的讲授方法和生动的演示过程帮助学生直观地理解了频域压缩的基本原理。

四、提升课程教学效果的方法与实践

从任课教师和学生两方面着手,保证数字图像处理和MATALAB语言的顺利教学。

(一) 利用多媒体教学,帮助学生理解抽象内容

传统的教学是由教师利用黑板讲解课程内容,不利于学生对基本概念的直观理解,而适当利用多媒体进行教学,能够帮助学生充分理解课程。

PPT是教师制作课件时最常用的软件,制作课件时需要注意如下问题:(1) 课件中的文字内容不宜过多,只需列出要点,辅以必要的图形或动画。(2) 课件上的字体大小通常选择32号,一般不低于28号,因为投影仪的分辨率比显示器低很多。(3) 课件背景不要过于花哨,使用的色彩不宜超过3种,否则会分散学生的注意力,影响授课效果[1]。

(二) 举办专业综合能力竞赛,提升导师实践教学能力

通过竞赛提高教师的工程素质与实践能力,提升教师的专业教学能力。为鼓励教师的积极性,学校对成绩优秀的教师给予奖励,其成绩可以做为评定职称的参考。目前,该竞赛已经举办4届,对提高教师的工程实践能力起到了一定的作用。

(三)结合互补教学法制定授课教案

数字图像处理和MATLAB语言的互补教学可以达到事半功倍的效果,教案设计是必要的环节。任课教师每周定期交流,共同制定和完善互补教学方案是提高课程教学水平的好方法。

数字图像处理的应用越来越广泛,不同专业可能会关注其中某个方面的应用,这部分教案的制作应体现专业特色。我们的教学实践结果表明互补教学法激发了学生的学习兴趣,提高了学生的工程实践能力。

五、结论

数字图像处理课程和MATLAB课程的互补教学,既加强学生的基础理论知识,又提高学生的工程实践能力。教学实证表明互补教学法得到了学生的认可,满足了学生的学习需求,提高了学生的就业能力。

参考文献:

[1] 曹玉东, 王冬霞, 周军. 数字图像处理课程教学改革与探索[J], 辽宁工业大学学报(社会科学版), 15(2), 2013.

[2] 秦襄培. MATLAB图像处理与界面编程宝典[M]. 北京:电子工业出版社, 2009.

[3] 乔闪. 基于MATLAB面向课题的数字图像处理实践教学[J].实验技术与管理, 2005, 22(8): 93-96.

[4] 袁操,李雅琴. 使用Matlab来优化数字图像处理课程教学[J]. 湖北第二师范学院学报, 2012, 0(2): 128-130.

语音信号处理matlab 篇9

1.时频结合的语音增强算法原理及Matlab和DSP实现的分析设计

最小均方误差算法 (LMS) 是时域语音增强的经典实现方法之一, 变步长自适应滤波包括Sigamoid函数变步长LMS算法等是改进型的归一化LMS自适应算法。谱减法是频域语音增强的经典实现方法之一, 其处理方法是通过估计含噪语音中噪声的频谱, 用含噪语音频谱减去噪声信号频谱达到去除噪声的目的。由于谱减之后, 加性噪声由背景噪声变成了音乐噪声, 因此, 谱相减的核心问题是滤除音乐噪声。从谱减法的算法思想出发, 如果能得到音乐噪声的估计帧, 那么基于与谱减法相同的原理就可以消除由于谱减带来的音乐噪声, 从而提高去噪效果, 这就是级联谱相减算法思想。级联谱相减的原理如图1所示。

实现时频结合进行语音增强的具体步骤是: (1) 对带噪语音进行自适应消噪处理, 可有效去除相关噪声; (2) 由于自适应消噪对噪声相关性要求较高, 对非相关噪声的消除有限, 因而可将自适应消噪的输出结果作为下一级的输入信号, 再进行级联谱减法的消噪处理, 以获取更好的语音增强效果。在具体实现过程中, 首先得到含噪语音的相关噪声作为参考信号, 将输入主信号与参考信号经过变步长的归一化LMS算法处理, 再经过级联谱相减处理 (见图2) 。

在Matlab平台下的仿真, 输入数据是经自适应滤波器处理后得到的增强语音信号。由于其增强效果较好, 噪声太小, 不易于观察谱减法效果, 故而在信号上又加入少量噪声, 以便观察效果。噪声是利用Matlab中的randn函数生成的高斯白噪声, 而后加噪声实现。对于自适应滤波的输出记做e2。对e2进行加汉宁窗, 加窗长度为256个样点, 有128点重叠, 经FFT变换, 减去噪声统计值, 再经功率谱平滑、半波整流、剩余噪声衰减, 最后借用含噪语音的相位进行IFFT变换, 这个操作亦即级联谱相减, 得到最终去噪输出结果。其Matlab仿真实现如图3所示。

经过自适应消噪系统后, 消除了大量噪声, 并且自适应消噪在时域增强, 故对语音的损伤较小, 即波形近似和纯语音完全一样。试听效果表明, 经过这种改进的变步长归一化LMS算法处理后, 已经可以恢复较纯净的原始语音信号, 然而语音信号中的环境噪声依然存在。

经过谱减法处理后, 语音中的环境噪声被消除了, 取而代之的是音乐噪声。经过8次级联谱减法运算后, 基本上完全消除了音乐噪声, 语音清晰。美中不足的是, 经过级联谱减法后, 语音信息有小部分损伤 (波形细节处与纯语音略有差别) , 这是由于在仿真的过程中使用了噪声谱, 当一段时间内噪声较小的时候, 就会损伤掉语音信息。

总之, 时频结合的语音增强算法同时处理了相关噪声和不相关噪声, 有效去除剩余的音乐噪声, 并保持良好的可懂度。性能较单独采用其中一种方法处理效果更加优异。

2.语音增强结果性能分析

设为纯净语音信号, 表示相对应的增强信号, 由信噪比定义公式评价增强语音的质量。采用Matlab程序语句sum (abs (out_SNR1-out_SNR2) ) /245分别对改进型变步长LMS算法实现的自适应消噪和级联谱减法消噪计算输入和输出信噪比。如图4、图5所示。

图4和图5中的每一点代表每一帧的信噪比, 在程序中按帧计算信噪比, 然后将所有帧的信噪比相加后除以总帧数。从2图中可以看出, 输出信噪比在每一点都大于输入信噪比, 说明语音信号中的噪声得到有效抑制。输出信噪比看似在有些帧段比较小, 这是因为级联谱减法有效的去除了音乐噪声, 使之变成近0的直线, 而用于参考的纯语音信号在这一段有环境噪声, 这使得直观输出信噪比小于输入信噪比。但事实上已经从主观方面改善了语音效果。算法成功提高了信噪比, 改进型变步长归一化LMS算法信噪比改善22.3dB;级联谱减法信噪比改善4.8dB。2种算法结合可以实现信噪比改善27.1dB。这正是时频结合的语音增强算法的优势所在。

结合Matlab时频结合的语音增强实现过程, 利用DSP硬件开发板上PCM3002编解码芯片实现模拟信号的输入、输出。编解码接口有2个通道, 一路数据, 一路控制。在开发板上的CPLD与主芯片TMS320VC5416的控制通道相连控制编解码的高位和低位寄存器, 同时CPLD还产生了所需的时钟, CPLD的输入是12.488MHz的时钟, 产生了PCM3002的3.0122MHz的时钟和采样频率48KHz的时钟, 这些时钟可以通过软件编辑修改。编解码的数据通道连接到TMS320VC5416的McBSP2接口。

对于PCM3002的数据采集实现, 可将采样率设置为8KHz, 利用硬件中断, 每隔125us中断一次, 时频结合的语音增强算法需要2路输入, 将参考信号按算法滤波, 用主通道信号减去滤波后的数据, 得到增强后的信号, 将此信号输出, 并修改滤波器的权系数。其流程如图6所示。

由于硬件实现不同于软件仿真, 其储存空间有限, 最大也只能查看2048个点, 再多取点就会引起数据溢出。而实际语音的采样频率为8KHz持续8秒, 所以在实现硬件时只是随机抓取其中很短的一段来观察效果。如图7所示, 上半部分为带噪语音的一小段, 下半部分为经过处理的带噪语音, 可以明显看出时频结合语音增强算法起到了较好的消噪作用。

3.总结

本文通过对实际语音信号的Matlab仿真处理, 进一步验证了改进型变步长归一化LMS算法的优越性以及级联谱减法在保持可懂度的基础上去除音乐噪声的有效性, 从而得出采用改进型变步长归一化LMS和级联谱减法即时频结合语音增强算法可实现高性能语音去噪系统的结论。并最终在DSP开发平台上成功实现了该种时频结合的语音增强算法, 取得了较好的语音去噪及语音增强效果, 为软硬结合实现高性能的语音增强系统提供重要依据。

参考文献

[1]陈新锐.基于小波语音去噪的FPGA系统设计与实现[D].桂林:广西师范大学, 2010.

[2]陈紫强, 黄冰, 刘庆华.高性能语音增强算法的研究[J].电声技术, 2002 (10) :4-5.

语音信号处理matlab 篇10

0 引言

飞机发生事故后, 调查人员会在发生事故的现场找一样东西, 那就是黑匣子。飞机黑匣子包括驾驶舱话音记录器和飞行数据记录器, 其记录的信息是调查飞行事故最主要也是最直接的证据。本文讨论舱音记录器所记录的特征舱音信号。

飞机舱音信号是飞机舱音记录器 (CVR) 记录的, 但由于空气气流等因素的影响, 使得CVR记录的舱音十分复杂。舱音包括话语声、各类背景声和各种噪声等。从话语声中可以了解到一些很直观的信息, 比如飞机的飞行状态、发生的故障、飞行员的情感等, 这些对事故调查很有帮助。但大多数情况下仅仅靠话语声来判断飞行事故是远远不够的, 在调查事故的时候人们更多的是关注飞机舱音信息中的各类背景声 (150Hz—6800Hz) [1], 如:各种仪器的开关声、警告警示声、飞行员操纵部件等声音, 这些背景声弥补了话语声在事故调查中的不足, 是飞行事故调查的最有价值的信息 (如不同背景声的特征频率等) 。根据这些背景声我们可以判断失事飞机上曾有过的各种操作、事件、状况、设备故障、特定操作发生的时间和飞行环境等等。噪声是飞行事故调查中的干扰项, 特别是飞机失事时噪声异常强烈, 有扰事故调查的进程。在调查飞行事故的时候, 人们会采取一些降噪措施, 以还原最有利用价值的背景声。另外, 由于飞机事故的舱音样本不宜对外公布、同一机型的异常背景声不易在飞行过程中测录到, 检测已获背景声的特征信息同样十分重要[2,3,4]。

本文基于MATLAB对典型舱音信号进行了分析与处理, 基于MATLAB强大的数学运算和数据可视化很容易进行时频分析, 得出一些有用结论, 如典型舱音的特征频率、谱线特征等。最后从用户角度基于MATLAB GUI平台设计了特征舱音分析系统, 为分析此类问题提供了一种便捷的软件方法。

1 MATLAB软件分析平台

MATLAB是Math Works公司出品的专业数学软件, 全称是矩阵实验室 (Matrix Laboratory) , 和Mathematica、Maple并称为三大数学软件。MATLAB拥有强大的数据处理能力, 且编程简单、交互性好、操作容易, 它将数值分析、信号处理和图形显示有机地融合为一体, 形成了一个极其方便、用户界面友好的操作环境, 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界而、连接其他编程语言的程序等, 广泛应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域, 主要包括MATLAB和Simulink两大部分。经过三十年多年的发展, 如今的MATLAB有非常强大的工具箱, 在很多领域都有一些特殊的优势。此外, 用户也可将自己编写的实用程序列入到MATLAB函数库中方便自己以后调用, 许多MATLAB爱好者都编写了一些经典的程序, 用户可以直接进行下载就可以用。MATLAB最新版本是MATLAB R2014a。

基于MATLAB数学软件强大功能以及在很多领域应用的特殊优势, 结合飞机黑匣子中特殊舱音声信息, 本文提出了基于MATLAB数学软件分析舱音样本的特征信息, 获取舱音特征的理念。具体以测录到的飞机舱音样本中的“火警警铃”为对象, 在MATLAB R2013a环境下开展舱音声信号的分析与处理。

2舱音样本的获取、基于MATLAB噪声滤波的语音增强

2.1舱音样本的获取

开展分析研究前, 在某机场空客飞机上录制多种典型舱音样本, 如空速极限警告、 (轮舱) 火警警铃、高度警示、近地警告和警报、风切变警告和警报、防撞系统警告、座舱高度音响、起落架形态警告、起飞形态警告、自动驾驶脱开音响、机组座位的移动声、风档玻璃刮水器的马达声、各种开关声、襟翼、缝翼和起落架操纵手柄等。

2.2基于MATLAB噪声滤波的舱音样本的语音增强

舱音样本的语音增强就是通过尽量多的降低舱音样本中的噪声达到提高舱音样本纯度的目的。

噪声是我们不希望有的但是在现实中又是几乎无法避免的, 可采取一些消噪手段来达到除去噪声以得到我们想要的声信号的目的。比如在收集到的音频文件中某些音频夹杂了一些没有用的人声信号, 干扰对舱音背景声的分析。为达到降低噪声、增强舱音背景声目的, 设计了MATLAB巴特沃斯带阻滤波器, 程序如下:

滤波结果所得图形如图1所示。由时域对比图可以看出, 滤波后的声信号的振幅比原始声音小了一些, 波形保持不变, 在1.25s至2.5s的语音部分被滤去了大部分, 但并没有完全滤去 (这是滤波器设计的主要内容, 这里不详细分析) 。在频谱图上我们可以很直观地发现300—3000Hz频段的语音信号被滤去了, 保留了该音频的特征频率。

此外, 还研究了用sound (y, fs, bits) 命令来试听滤波后的声信息效果。在本例中, 滤波效果在听觉上是比较明显的。

3 典型舱音MATLAB载入程序设计及时频分析

3.1“火警警铃”舱音样本MATLAB载入的程序实现

特征分析时, 本文仅选取其中的“火警警铃”为研究对象进行分析处理[5,6]。

先通过命令函数wavread () 将wav格式的“火警警铃”音频文件读取至MATLAB中, 再通过plot () 函数绘制其时域图, 时域图是信号随时间的变化图, 即能量分布随时间的变化。得到时域信号后, 利用MATLAB提供的fft () 函数对时域信号数据进行快速傅里叶变换, 最后结合abs函数得到频谱图 (见图2) 。这样完成了舱音样本的MATLAB载入, 在MATLAB环境中对舱音样本开展各种分析。

以下为典型舱音样本“火警警铃”转换为MATLAB下波形、频谱图的程序代码:

3.2“火警警铃”舱音样本的频谱分析

图2是由波形图和频谱图两图组成, 上部分的是波形图, 表明了“火警警铃”舱音样本随时间的变化, 从波形图中只能知道某个时刻声音的强弱, 很难直接观测到一些有用信息, 而频谱图正好弥补了不足, 为分析“火警警铃”舱音样本特性, 主要是从频域入手得到时域得不到的信息。

观察图2下部分的频谱图, 很容易地观察出本段声信息的频率基本在900Hz、2100Hz、3800Hz和5500Hz左右的四个频段。

下面我们分析如何基于MATLAB求特征频率。

利用MATLAB软件支持数组操作的特点, 编写如下程序:

同样可以得出特征频率是908Hz、2184Hz、3718Hz、5494Hz这四个频带, 与目测的基本吻合。

这两种编程方法巧妙利用了MATLAB的特点, 避免了类似于C语言的循环语句, 既使得程序简单明了, 又避开了循环语句的时间运算长的问题, 在大型程序中, 这将会使运行速度提高。同时我们也可看出MATLAB自身提供了很多函数, 可以很方便地供使用者调用, 大大缩短了时间, 方便我们交流使用。

3.3“火警警铃”舱音样本的声谱分析

3.3.1 声谱图的特点和优势

时域分析和频域分析是语音分析的两种重要方法, 但这两种分析方法均有局限, 因此人们致力于研究语音的时频分析特征, 声谱图可以解决这一问题。声谱图是采用二维平面表达三维信息的图:横坐标是时间, 纵坐标是频率, 坐标点值为语音数据能量, 通过颜色的深浅来表示, 颜色越深, 表示该点的声能量越强。声谱图上因其颜色的不同程度形成了同个纹路, 称之为声纹。声纹是声音的特征, 同指纹的原理是一样的。在语音分析中, 人们也常分析语音的语谱图, 现代科学研究表明, 声纹不仅具有特定性, 而且有相对稳定性的特点。在成年以后, 人的声音可保持长期相对稳定不变, 无论讲话者是故意模仿他人声音和语气, 还是耳语轻声讲话, 即使模仿得惟妙惟肖, 其声纹却始终相同, 所以声谱图常被用于司法鉴定工作。基于声纹的这两个特征, 侦查人员就可将获取的犯罪分子的声纹和嫌疑人的声纹, 通过声纹鉴定技术进行检验对比, 迅速认定罪犯, 为侦查破案提供可靠的证据[7,8]。

在舱音声信息分析中也是一样, 不同器件发出的声音的语谱图是不同的, 我们可以依据此来进行背景声信息的辨别。

3.3.2“火警警铃”舱音样本声谱分析

在MATLAB中, 选用specgram () 函数得到“火警警铃”舱音样本声信号的声谱图。具体设计了specgram (x) 程序, x表示之前读入的“火警警铃”声信息。

基于specgram (x) 程序得到如图3所示的声谱图。如图所示的声纹是横向的, 且大致有四根。不同器件发出的声音的声纹是不同的, 横向的、纵向的、斜向的、无规律的, 且特征谱线的根数也是不一定的, 亦可以依据此来进行背景声的辨听。图中四根谱线对应的频率就是刚才通过MATLAB求出的四个频段 (图中纵坐标是经过归一化的, 经过还原符合频段) 。

4 舱音样本处理分析的MATLAB GUI设计

如前所述, MATLAB的一大优势在于其有非常强大的工具箱与图形用户界面。在这里, MATLAB提供了直观易用的使用界面FDATool和SPTool工具, 方便用户快速地完成数字信号的载入、观察和滤波分析, 这里不详述这两个工具箱。笔者在研究MATLAB图形用户界面基础上, 基于图形用户界面设计出用户操作界面, 为舱音样本分析处理提供方便[9]。

4.1 MATLAB GUI界面优势

MATLAB是一个面向科学与工程的计算软件, 它将不同领域的计算用函数的形式提供给用户, 用户在使用时只需调用这些函数并赋予实际参数就能解决实际问题。前面我们介绍了处理声信号可以用户一步步编程, 也可以利用FDATool或者SPTool工具, 但是用户每次都要编程会比较繁琐, 且MATLAB提供的这两个工具界面单一, 用户无法根据需要设计满意的界面, 有没有适合方便用户操作且“一劳永逸”的方法呢?有。当然, 这里的“一劳永逸”是指在同类且特定问题中的一劳永逸[10]。

MATLAB提供的图形用户界面 (Graphical User Interface, 简称GUI) 是非常灵活的, 它将所有GUI支持的空间都集成在这个环境中, 并可以进行各项属性设置。GUI很好地解决了用户编程繁琐、给定工具界面单一的问题。MATLAB提供了图形用户界面设计向导, 利用该向导, 用户非常方便和快捷地设计一个GUI, 如同在一张纸上绘图。可以把图形界面的外观, 包括所有的按钮以及图形的位置确定下来, 然后就可以利用MATLAB的回调程序编辑器来编写其函数代码, 从而可以使该图形界面完成预定的任务。与计算机命令行界面相比, 图形界面对于用户来说在视觉上和操作上更易于接受。

4.2 基于MATLAB界面的“火警警铃”分析处理GUI设计

由于要求不同, 设计出来的界面也会千差万别, 但主要会遵循以下设计原则[11]:

简单性:设计界面力求简洁清晰, 删去可有可无的设计, 保持整洁;

一致性:界面风格尽量一致, 不要有一些风格异常的界面;

习常性:尽量使用人们所熟悉的标志和符号;

其他因素:比如一些等待提示、允许用户中断运算的操作等等。

使用guide命令打开GUI设计的页面, 经过设计, 设计出如下图的人机交互界面 (图4) 。在这个界面上, 用户能快捷地得到之前的分析操作。

按如下步骤进行GUI设计[12,13,1415]:

1) 新建一个空白GUI模板, 通过guide命令, 选择Blank GUI (Default) 即可;

2) 拖拉左边GUI对象选择区的按钮至右边GUI布局区, 进行控件布局;

(1) 建立6个静态文本, 用来显示标题、采样频率、特征频率等;

(2) 建立3个坐标轴对象, 用来显示时域图、频谱图和语谱图;

(3) 建立3个按钮, 用来读取、显示结果和关闭系统。

3) 打开对象的属性查看器, 设置对象相应属性;

控件的标识 (Tag) 是对于各控件的识别, 每个控件创建时都会由开发环境自动产生一个标识, 在程序设计中, 为方便编辑、记忆和维护, 一般为控件标识设置新的标识。

(1) 设置“读入声音文件”的标识为read_pushbutton;“显示分析结果”的标识为result_pushbutton;“关闭”的标识为close_pushbutton;

(2) 设置第一个编辑文本的标识为status;“特征频率”和“Hz”之间的编辑文本的标识为fre;

添加菜单

建立一级菜单文件, 设置三个子菜单项打开, 分析结果和关闭, 菜单项打开的Tag设置为open_menu, 调用读入声音功能;菜单项分析结果的Tag设置为result_menu, 调用显示分析结果功能;菜单项关闭的Tag设置为close_menu, 执行关闭的功能 (图5) 。

编写回调函数;

系统自动生成的M文件程序代码如下:

(1) 调用read_pushbutton_Callback函数来读入声音文件, 代码如下:

(2) 调用result_pushbutton_Callback来分析并显示对读入声音的分析, 代码如下:

(3) 调用close_pushbutton_Callback来关闭系统, 代码如下:

(4) 菜单项打开调用函数read_pushbutton_Callback来打开声音文件, 代码如下:

菜单项分析结果调用函数result_pushbutton_Callback来分析处理, 代码如下:

菜单项关闭调用close函数关闭系统退出程序, 代码如下:

反复调试, 检查并修改错误。

如图4是利用guide命令打开的GUI设计窗口, 图4中显示的是初步设计的GUI飞机舱音处理分析的布局, 图5是菜单项的设置界面, 图6是最后完成设计时的分析图。通过“读入声音文件”和“显示分析结果”两个按钮, 用户能快速地得到之前的时域图、频谱图、语谱图和特征频率, 非常方便, 且易于被用户接受。经过多次试验, 得出的结果符合之前运算, 结果上、程序上均没有出现错误或错误提示, 且设计符合前述几项原则, 设计较好。

5 结语

飞机舱音信号烦琐而复杂, 在分析本文以采集的典型舱音信号中的“火警警铃”舱音样本为例, 基于MATLAB软件实现对这些声信号的分析处理, 并利用GUI设计了操作界面, 得到以下一些结论:

1) 设计了MATLAB环境的载入的程序, 完成了舱音信息的时频分析与处理, 避免了类似于C语言的循环语句不足、运算时间长、应用其他软件的繁琐等问题, 彰显了MATLAB的特性;

2) 研究MATLAB软件分析处理强大能力和结果可视化优势, 充分利用MATLAB图形用户界面 (GUI) 特点, 设计出适合人机对话的操作流程, 使得舱音分析过程简单、实用, 并在典型舱音分析中得到验证。

MATLAB是一款非常好用且功能强大的数学软件, 在本文分析舱音信号处理中得到较好展示, 随着其优势与特点不断扩大, MATLAB将会越来越大程度地被人接受与使用。

摘要:舱音记录器中的声信息对失事飞机原因调查十分重要。在分析舱音声信息的特殊性和MATLAB数学软件强大功能和优势基础上, 从录制的多个典型舱音中选取其中的“火警警铃”舱音样本为例, 设计了MATLAB环境的载入程序, 避免了类似于C语言的循环语句等编程复杂等问题, 完成舱音信息的时频分析与处理, 得到期望的效果。最后在MATLAB图形用户界面 (GUI) 设计出适合人机对话的操作流程, 使得舱音分析过程简单、实用, 并在典型舱音分析中得到验证。

语音信号处理matlab 篇11

关键词: Matlab 信号与系统实验 电路设计

“信号与系统”是高等工科院校电类及其相关专业的一门重要的专业基础课。但学生在学习这门课时,普遍感到概念很抽象[1],对其中的分析方法与基本理论不能很好地理解与掌握。因此,如何让学生尽快理解和掌握课程的基本概念、基本原理、基本分析方法,以及学会灵活运用这一理论工具,是开设信号与系统课程所要解决的关键问题。为了达到这一教学目的,课程实验是不可缺少的。实践教学不是理论教学的辅助和补充,而是理论教学的延伸,以及尝试素质培养的重要环节。实验方式一般来说有两种:硬件实验和软件仿真。本次实验开发就将硬件实验和软件仿真结合起来,使实验内容和形式都变得丰富起来,既帮助学生加深了对理论知识的理解,又培养了学生对抽象概念的形象思维和类比联想。实验的目的不仅是获得实验结果,更要引导学生观察实验过程中的现象,思索实验过程中的原理,寻求解决问题的方法,从而培养学生科学探索的精神。

1. EL-SS-III型实验系统和Matlab软件介绍

本次设计的实验采用的是由北京精仪达盛科技有限公司生产的EL-SS-III型实验系统。该实验系统主要由计算机、A/D和D/A采集卡、自动控制原理实验箱、打印机组成。如图1-1所示。

1.1 A/D和D/A采集卡

A/D和D/A采集卡采用EZUSB2131芯片作为主控芯片,负责数据采集,用EPM7128作为SPI总线转换。A/D为TL1570I,其采样位数为10位,采样率为1KHz。D/A为MAX5159,其转换位数为10位,转换速率为1K。采集卡有两路输出(DA1、DA2)和两路输入(AD1、AD2),其输入和输出电压均为-5V-+5V。

1.2 实验箱面板简介

实验箱面板布局如图1-2所示。

(1)实验系统有七组由放大器、电阻、电容组成的实验模块。每个模块中都有一个由UA741构成的放大器和若干个电阻、电容。这样通过对这七个实验模块的灵活组合便可构造出各种形式和阶次的模拟环节和控制系统。

(2)电阻、电容区,主要提供实验所需的二极管、电阻和电容。

(3)A/D、D/A卡输入输出模块,该区域是引出A/D、D/A卡的输入输出端,一共引出两路输出端和两路输入端,分别是DA1、DA2,AD1、AD2。

(4)电源模块,电源模块有一个实验箱电源开关,有四个开关电源提供的DC电源端子,分别是+12V、-12V、+5V、GND,这些端子给外扩模块提供电源。

(5)变阻箱、变容箱模块,只要按变阻箱和变容箱旁边的“+”、“-”按钮便可调节电阻电容的值,而且电阻电容值可以直接读出。

1.3 MATLAB是Mathworks公司于推出的一套高性能的数值计算和可视化软件。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成方便的、界面友好的用户环境。对所要求解决的问题,用户只需简单列出数学表达式,其结果便以数值或图形的方式显示出来。该软件功能强大,界面直观,语言自然,使用方便,是目前高等院校广泛使用的优秀应用软件。

2.基于EL-SS-III型实验系统和Matlab软件的实验步骤

基于EL-SS-III型实验系统和Matlab软件进行信号与系统实验的具体流程,首先根据实验要求进行分析计算,设计出相应的电路;然后利用EL-SS-III型实验系统搭建电路,根据具体问题做出改进,得到合适的元器件参数;最后,利用Matlab软件对信号的稳定性进行分析仿真。

3.实验实例展示

连续时间系统的模拟,通过实验可以让学生掌握用基本的运算单元模拟连续时间系统的方法。在实验中要让学生根据模电所学的知识,把加法器、积分器等结合起来,设计出实现一定功能的模拟电路图。

3.1实验原理

系统的模拟就是由基本的运算单元(加法器、积分器、标量乘法器)组成的模拟装置模拟实际的系统。这些实际系统可以是电的或非电的物理系统,也可以是非物理系统。模拟装置可以与实际的内容完全不同,但用来模拟的装置和原系统的输入输出的关系上可以用同样的微分方程描述,即传输函数完全相同。可通过对模拟装置的研究分析实际系统,从而便于确定最佳的系统参数和工作条件。对于那些用数学手段难处理的高阶系统来说,系统的模拟就更有效。

3.2用EL-SS-III型实验系统设计实验

通过对连续时间系统的模拟,让学生学习根据给定的连续系统的传输函数,用基本运算单元组成模拟装置,并掌握连续时间系统的模拟方法。本实验是给出系统的传递函数,由学生用三种运算部件对系统进行模拟。以二阶低通滤波器为例,给出传递函数为:

H(s)=(3-1)

只要适当选定模拟装置的元件参数,就可得模拟方程和实际系统的微分方程完全相同。设计出的电路如图3-1所示,Vi为信号的输入端,Vo为信号的输出端。由二阶模拟电路实验图可得:

本模拟实验的电路中令:

R1=R2=R3=R4=100kΩ

Rw1=Rw2=100kΩ

C1=C2=1uF

由上式可得:Vi=Vo+Va-Vb

根据电路整理可得:

Vi=Vo+R4·C2·Vo′+R3·R4·Cl·C2·V0″

将电阻和电容参数带入

则有:Vi=V0+10V0′+10V0″

根据上式描述的输入输出关系式,可以得出此装置模拟的二阶网络函数与式(3-2)完全相同,即此模拟系统实现的是低通滤波器的功能。

在EL-SS-III型实验箱上连接图3-1所示电路,设输入为正弦信号,那么频率响应如图3-2所示。从幅频响应曲线也可以看出此模拟系统实现的是低通滤波器的功能。在实验中,还可以让学生测量各点电压波形,熟悉各运算部件的特点。

3.3用MATLAB分析系统的频率响应与稳定性

通过分析系统的频率响应,可以了解整个系统的特性。通过对系统零极点的分析,不仅能判断出系统的稳定性,还能了解零、极点分布与系统时域特性、频域特性的关系。在实验中,学生通过MATLAB编程可以方便改变各项参数,直观观察到零极点分布对系统稳定性的影响。

(1)系统的频率响特

设线性时不变(LTI)系统的冲激响应为h(t),该系统的输入(激励)信号为f(t),则此系统的零状态输出(响应)y(t)为:

y(t)=h(t)*f(t)(3-2)

又设f(t),h(t)及y(t)的傅立叶变换分别为F(jω),H(jω)及Y(jω),根据时域卷积定理得

Y(jω)=H(jω)F(jω)(3-3)

一般地,连续系统的频率响应定义为系统的零状态响应y(t)的傅立叶变换Y(jω)与输入信号f(t)的傅立叶变换F(jω)之比,即

H(jω)=(3-4)

通常,H(jω)是ω的复函数,因此,又将其写成为:

H(jω)=|H(jω)|e(3-5)

我们称|H(jω)|为系统的幅频响应,φ(ω)为系统的相频响应。

通常,H(jω)可表示成两个有理多项式B(jω)与A(jω)的商,即:

H(jω)==(3-6)

(2)用利MATLAB分析系统的频率响应

本次实验是要让学生学会求H(jω),通过观察H(jω)的特点判断系统特性,了解系统的传递函数与其频率响应之间的关系。

MATLAB提供了专门对连续系统频率响应H(jω)进行分析的函数freqs( )。该函数可以求出系统频率响应的数值解,并可绘出系统的幅频及相频曲线。freqs()函数有如下四种调用格式:

Ⅰ.h=freqs(b,a,w)

该调用格式中,对应于上式的向量[b1,b2,b3,…bm],a对应于上式的向量[a1,a2,a3,…an],w为形如w1:p:w2的冒号运算定义的系统频率响应的频率范围,w1为频率起始值,w2为频率终止值,p为频率取样间隔。向量h则返回在向量w所定义的频率点上,系统频率响应的样值。

Ⅱ.h=freqs(b,a)

该调用格式将计算默认频率范围内200个频率点的系统频率响应的样值,并赋值返回变量h,200个频率点记录在w中。

Ⅲ.w]=freqs(b,a,n)

该调用格式将计算默认频率范围内n个频率点上系统频率响应的样值,并赋值给返回变量h,n个频率点记录在w中。

Ⅳ.freqs(b.a)

该格式并不返回系统频率响应的样值,而是以对数坐标的方式绘出系统的幅频响应和相频响应曲线。

一个二阶滤波器的频率响应H(jω)为:

H(jω)==

设R=,L=0.8H,C=0.1F,R=2Ω。试用MATLAB的freqs()函数绘出该频率响应。

经计算得:

H(jω)==|H(jω)e|

实现该系统响应的程序为:

b=[0 0 1];

a=[0.08 0.4 1];

[h,w]=freqs(b,a,100);

h1=abs(h);

h2=angle(h);

subplot(211);

plot(w,h1);

grid

xlabel(‘角频率(W));

ylabel(‘幅度);

title(‘H(jw)的幅频特性);

subplot(212);

plot(w,h2*180/pi);

grid

xlabel(‘角频率(W));

ylabel(‘相位(度));

title(‘H(jw)的相频特性);

程序运行结果如图3-4所示。

由图3-4的幅频响应曲线可以看出,此滤波器只能让低频信号通过,而对高频信号有抑制作用,所以为低通滤波器。因此,只要求得了系统的频率特性,就很容易了解系统的特点。

4.零极点分布与系统的稳定性

根据系统函数H(s)的零极点分布分析连续系统的稳定性是零极点分析的重要应用之一。稳定性是系统固有的性质,与激励信号无关,由于系统函数H(s)包含了系统所有固有特性,显然它也能反映出系统是否稳定。

对任意有界的激励信号f(t),若系统产生的零状态响应y(t)也是有界的,则称该系统为稳定系统,否则,则称为不稳定系统。

可以证明,上述系统稳定性的定义可以等效为下列条件:

时域条件:连续系统稳定的充要条件为?|h(t)|dt<∞,即系统冲激响应绝对可积。

复频域条件:连续系统稳定的充要条件为系统函数H(s)的所有极点均位于s平面的左半平面内。

系统稳定的时域条件和复频域条件是等价的。因此,我们只要考察系统函数H(s)的极点分布,就可判断系统的稳定性。

通过这个实验让学生了解零极点分布与系统时域特性、频域特性的关系及其对系统稳定性的影响。

设连续系统的系统函数为

H(s)=(4-1)

则系统函数的零点和极点位置可以用MATLAB的多项式求根函数roots()求得,调用函数roots()的命令格式为:

P=roots(A)

用roots()函数求得系统函数H(s)的零极点后,就可以用plot命令在复平面上绘制出系统的零极点图,方法是在零点位置标以符号“x”,而在极点位置标以符号“o”。

已知某连续系统的系统函数为:

H(s)=

试用MATLAB画出零极点分布图,并判断是否稳定。

可以看出,该系统在s平面的右半平面有一对共轭极点,故该系统是一个不稳定的系统。因为根据判断系统稳定性的复频域条件可知,只有当H(s)的所有极点均位于s平面的左半平面时系统才是稳定的。

从程序运行结果可以得出,图4-2(a)中h(t)是按指数规律衰减的正弦振荡信号,所以系统是稳定的;(b)中h(t)是按指数规律增长的正弦振荡信号,所以系统是不稳定的;(c)中h(t)是等幅正弦振荡信号,所以系统是临界稳定的。

5.结语

本次实验设计我用EL-SS-III型实验系统和MATLAB软件设计了“信号与系统”综合实验,对实验结果进行了论证分析。具体对连续时间系统的模拟、系统的频率响应及稳定性进行了分析。用EL-SS-III型实验箱设计实验,加深了学生对实际电系统的理解,提高了学生对课程的兴趣,培养了学生主动获取和独立解决问题的能力。而用MATLAB语言完成各项实验,参数设置灵活方便,结果对比一目了然。把这两种实验方法相结合,不仅加深了学生对“信号与系统”课程内容的理解,而且培养了学生的动手操作能力及创新能力。

参考文献:

[1]王松林,郭宝龙.“信号与系统”国家精品课程的建设与实践[J].高等理科教育,2008,(3):145-148.

[2]李丽容主编.电路、信号与系统实验教程[M].西安:陕西科学技术出版社,1998:147-148.

[3]张昱,周绮敏等编著.信号与系统实验教程[M].北京:人民邮电出版社,2005:56-65.

[4]汉泽西,肖志红,董浩编著.现代测试技术[M].北京:机械工业出版社,2006:45-52.

[5]吴大正主编,杨林耀,张永瑞编.信号与线性系统分析[M].第3版.北京:高等教育出版社,1998:121-124.

[6]孙瀚荪编.电路分析基础[M].第3版.北京:高等教育出版社,2003:57-70.

[7]梁虹,梁洁,陈跃斌等编著.信号与系统分析及MATLAB实现[M].北京:电子工业出版社,2002:56-58.

上一篇:电动车事故原因分析下一篇:地下室施工安全技术措施