MATLAB与信息系统仿真课程设计报告.docx

上传人:b****0 文档编号:12779876 上传时间:2023-04-22 格式:DOCX 页数:39 大小:246.25KB
下载 相关 举报
MATLAB与信息系统仿真课程设计报告.docx_第1页
第1页 / 共39页
MATLAB与信息系统仿真课程设计报告.docx_第2页
第2页 / 共39页
MATLAB与信息系统仿真课程设计报告.docx_第3页
第3页 / 共39页
MATLAB与信息系统仿真课程设计报告.docx_第4页
第4页 / 共39页
MATLAB与信息系统仿真课程设计报告.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

MATLAB与信息系统仿真课程设计报告.docx

《MATLAB与信息系统仿真课程设计报告.docx》由会员分享,可在线阅读,更多相关《MATLAB与信息系统仿真课程设计报告.docx(39页珍藏版)》请在冰豆网上搜索。

MATLAB与信息系统仿真课程设计报告.docx

MATLAB与信息系统仿真课程设计报告

MATLAB与信息系统仿真

课程设计报告

 

课题:

语音信号的采集与处理

课程:

信号与系统、数字信号处理

学院:

XX学院

班级:

组员:

指导老师:

完成日期:

2015年1月16日

 

1、引言............................................................2

2、正文............................................................2

2.1设计要求与设备..................................................2

2.2语音信号的频谱分析..............................................2

2.2.1设计任务..................................................2

2.2.2设计原理..................................................2

2.2.3设计结果..................................................3

2.3语音信号的采样..................................................6

2.3.1设计任务..................................................6

2.3.2设计原理..................................................7

2.3.3设计结果..................................................7

2.4语音信号的转变..................................................8

2.4.1设计任务...................................................8

2.4.2设计原理...................................................8

2.4.3设计结果...................................................8

2.5语音信号的调制与解调............................................10

2.5.1设计任务...................................................10

2.5.2设计原理...................................................10

2.5.3设计结果...................................................10

2.6加噪语音信号的滤波..............................................14

2.6.1设计任务...................................................14

2.6.2设计原理...................................................14

2.6.3设计结果...................................................14

3、心得体会.......................................................18

4、参考文献.......................................................20

附录:

程序代码.....................................................21

程序代码:

program1..................................................21

程序代码:

program2..................................................24

程序代码:

program3..................................................25

程序代码:

program4..................................................27

程序代码:

program5..................................................28

1、引言

语音信号采集与处理是用数字信号处理技术对语音信号进行处理的方式。

它的目的是想通过处理得到一些反应语音信号重要特征的语音参数以辨别个体语音的区别,再者是通过使用MATLAB实验软件来对语音信号进行各种变化以便更好地掌握快速傅立叶变换(FFT)、采样定理(奈奎斯特采样定律)、调制与解调、各种滤波器的原理等。

因此,在语音信号处理之前我们要先了解语音信号的特征,以便进一步的实验验证,还要掌握数字信号处理技术的应用。

对语音信号进行时域与频域的分析,正确地应用快速傅立叶变换的方法,但我们平常所接触到的大多数是一些结构单一、周期型的函数信号,例如正余弦函数信号、冲激函数和阶跃函数,而对于复杂多变的语音信号,我们该如何驾驭?

这便是我们这次的课程设计需要思考的内容。

2、正文

2.1设计要求与设备

综合设计:

语音信号的采集与处理

1.利用windows自带的录音机或者其它录音软件,录制几段语音信号(要有几种不同的声音,要有男声、女声)。

2.对录制的语音信号进行频谱分析,确定该段语音的主要频率范围,由此频率范围判断该段语音信号的特点(低沉or尖锐?

3.利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样)对信号的影响。

这里涉及到采样下重采样的问题,请大家思考如何去做。

4.实现语音信号的快放、慢放、倒放、回声、男女变声。

5.对采集到的语音信号进行调制与解调,观测调制与解调前后信号的变化。

6.对语音信号加噪,然后进行滤波,分析不同的滤波方式对信号的影响。

设计设备清单:

1 PC机一台

2 MATLAB软件

2.2语音信号的频谱分析

2.2.1设计任务

对录制的语音信号进行频谱分析,确定该段语音的主要频率范围,由此频率范围判断该段语音信号的特点。

(低沉or尖锐?

2.2.2设计原理

使用MATLAB提供的函数来实现FFT最为简捷。

MATLAB提供内部函数fft来快速计算序列的离散傅立叶变换,其格式如下:

式中,x是时域序列;N是点数;X是变换所得的频域序列。

如果x的长度小于N,则在其后补零,使之成为长度为N的序列。

也可以省略N,这时采用的就是x的长度。

如果x是一个矩阵,则计算x中每列的N点DFT。

函数fft是MATLAB的内建函数,是用机器语言而不是用MATLAB的指令写成的。

因此不能在命令行输入type命令来查看程序代码。

函数fft给出的频域序列以坐标原点为始点。

有时候,希望以坐标原点作为频域序列的中点。

为此,可用函数fftshift来计算离散傅立叶变换。

通过采用快速傅立叶变换(FFT)函数来得到语音信号的频谱可直接看出该段语音的主要频率范围,通过男女声频谱可直接做出比较,得到男女语音信号的特点:

在低频部分,在男声语音信号相对于女声语音信号所占的比例大;在高频部分,在女声语音信号相对于男声语音信号所占的比例大;为了能够让阅读者更加直观的发现男女语音信号在高低频率的区别,我们计算了男女语音信号各自在高低频段所占比率,以图示的形式展示。

此频谱分析中包含语音信号的时域分析、频域分析、降采样和男女信号各自在高低频段所占比例的对比。

2.2.3设计结果(见附录:

程序代码program1)

1)男女语音信号的时域分析图:

2)男女语音信号的频域分析图:

3)降采样:

4)男女信号各自在高低频段所占比例的对比:

2.3语音信号的采样

2.3.1设计任务

利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样)对信号的影响。

(这里涉及到采样下重采样的问题,请大家思考如何去做。

2.3.2设计原理

数字信号处理的对象,是在采样时钟的控制下,通过A\D转换器以一定的采样率对模拟信号进行采样而得到的。

根据采样定理,采样率必须大于模拟信号最高频率的2倍(奈奎斯特采样定律)。

然而在许多情况下,要求对信号以不同的频率进行采样。

这时需要对采样数据进行处理。

在MATLAB中可以利用抽取或内插方法改变采样率。

其中,resample函数是以p/q倍速度对向量x进行重采样,该函数调用的格式如下:

y=resample(x,p,q);或者采用downsample函数,它的功能是对时间序列重采样,在原时间序列中等间隔地取出一些项,得到新的序列,格式为y=downsample(x,n),指从第一项开始,等间隔n对信号x采样,得到新序列y。

这里改变间隔n的大小来观察新序列的频谱是否出现失真,若频谱失真,则处于欠采样(采样频率低于信号带宽的2倍),在即将失真前的那一个间隔i为临界采样(采样频率等于信号带宽的2倍),小于i时为过采样(采样频率高于信号带宽的2倍),但语音信号本身在录入电脑时已处于过采样阶段,此处可省略过采样。

2.3.3设计结果(见附录:

程序代码program2)

1)原始语音信号和采样后的语音信号的时域对比

2)原始语音信号和采样后的语音信号的频域对比

2.4语音信号的转变

2.4.1设计任务

实现语音信号的快放、慢放、倒放、回声、男女变声。

2.4.2设计原理

变速:

改变语音的播放速度也就是改变采样间隔(即改变了采样频率),但是这个频实现率依然要在2f(Nyquistrate)之上,否则就会产生失真。

倒放:

使用flipud()倒置语音矩阵,逆序输出音频即可。

回声:

回声在时域上幅值减小了,频域上的特征不变,只需要把原信号添加一个延时(delay)和对时域的幅度添加一个参数.然后和原信号叠加即可获得回响效果。

男女变声:

我们使用另外写的voice(x,f)函数实现音调转换,x为需要转换的声音,通过抽取插值更改采样率来改变基频,当f>1时音调降低;f<1音调升高。

然后再进行时长整合使语音文件恢复原来的时长。

时长整合使用重叠叠加算法来实现。

经过我们试听,转换效果还是很好的。

2.4.3设计结果(见附录:

程序代码program3)

1)加入回声的波形

2)转换前与转换后语音信号波形的对比

3)转换前与转换后语音信号频谱的对比

2.5语音信号的调制与解调

2.5.1设计任务

采集到的语音信号进行调制与解调,观测调制与解调前后信号的变化。

2.5.2设计原理

调制与解调是互为相反功能的信号频谱搬移过程。

在发送端,通过调制将传输信号频谱搬移到指定传输信道的频段上,以便于传输、信道复用以及干扰抑制;在接收端,再以相反的过程(解调)将传输信号恢复出来。

通带模拟调制解调的模型:

该设计中我们采用的是线性调制:

双边带调制(DSB),设输入被调信号为m(t),则调制输出y(t)为

,其中

为载波频率(Hz);

是载波初始相位(rad),此处,我们将

取0。

双边带调制解调的优点是功率高效,节省了载波功率,调制效率100%,缺点是频带利用并不高效,多传了一倍的频带信息,且不能用包络检波,需用相干检波,较复杂。

DSB调制解调的框图:

2.5.3设计结果(见附录:

程序代码program4)

1)语音信号的时域波形

2)语音信号的频谱

3)载波信号的频谱

4)已调信号的频谱

5)解调信号的频谱

6)低通滤波器的特性曲线

7)滤波后的语音信号的时域图和频谱

2.6加噪语音信号的滤波

2.6.1设计任务

对语音信号加噪,然后进行滤波,分析不同的滤波方式对信号的影响。

2.6.2设计原理

该设计加入的噪声是noise=0.1*sin(2*pi*fn*t)(fn=3000)可供更改噪声频率。

此处我们简化了噪声的复杂度,没有将噪声信号noise=randn(size(t))随机化,是降低了滤波的难度,但基本原理是一致的。

这里我们设计了3种滤波器对语音进行处理,分别为椭圆数字型低通滤波、椭圆数字型高通滤波和巴特沃斯型数字低通滤波器,绘制出相应的幅度、相位谱图,滤波后的波形、频谱图。

椭圆数字型低通滤波:

调用格式:

[n,Wn]=ellipord(Wp,Ws,Rp,Rs)

[b,a]=ellip(n,Rp,Rs,Wp);

椭圆数字型高通滤波:

调用格式:

[n,Wn]=ellipord(Wp,Ws,Rp,Rs);

[b,a]=ellip(n,Rp,Rs,Wp,'high');

巴特沃斯型数字低通滤波器:

调用格式:

[n,Wn]=buttord(Wp,Ws,Rp,Rs);

[b,a]=butter(n,Wn,'low');

2.6.3设计结果(见附录:

程序代码program5)

1)原始语音信号与加噪信号时域图的对比

2)原始语音信号与加噪信号频谱的对比

3)椭圆低通滤波器的特性曲线

4)椭圆低通滤波后的语音信号时域图和频谱

5)椭圆高通滤波器的特性曲线

6)椭圆高通滤波后的语音信号时域图和频谱

7)巴特沃斯型数字低通滤波器的特性曲线

8)巴特沃斯型数字低通滤波器后的语音信号时域图和频谱

3、心得体会(自我感言)

4、参考文献

[1]数字信号处理:

理论与实践/王大伦,王志新,王康编著.北京:

清华大学出版社,2010.2

[2]通信原理/樊昌信,曹丽娜编著.—7版.—北京:

国防工业出版社,2012.11

[3]MATLAB信号处理/刘波,文忠,曾涯编著.—北京:

电子工业出版社,2006.1

[4]Matlab/Simulink通信系统建模与仿真实例分析/邵玉斌编著.—北京:

清华大学出版社,2008.6

[5]数字信号处理/张小虹主编.—2版.—北京:

机械工业出版社,2008.8

[6]信号与系统分析/和卫星,许波主编.西安:

西安电子科技大学出版社,2007.3

附录:

程序代码(各个程序代码独立)

1 程序代码:

program1

%频谱分析

clear;

%fs1=fs2=44100hz

[x1,fs1,bits]=wavread('D:

\YLL\voice\女声.wav');

[x2,fs2,bits]=wavread('D:

\YLL\voice\男声.wav');

%sound(x1,fs1,bits);%对语音信号进行回放

%sound(x2,fs2,bits);%对语音信号进行回放

M1=length(x1);M2=length(x2);%语音信号的长度

n1=round(log2(M1));n2=round(log2(M2));

N1=2^n1;N2=2^n2;

t1=0:

1/fs1:

(M1-1)/fs1;t2=0:

1/fs2:

(M2-1)/fs2;

%时域频谱图

figure

(1)

subplot(211);plot(t1,x1);

xlabel('时间(t1)');ylabel('幅值');%原始语音信号的时域图形

title('女声信号x1[n]');

subplot(212);plot(t2,x2);

xlabel('时间(t2)');ylabel('幅值');%原始语音信号的时域图形

title('男声信号x2[n]');

figure

(2)

xf1=fft(x1,N1);f1=[0:

N1-1]*fs1/N1;

Amp1=abs(xf1)/(N1/2);Amp1(1,:

)=Amp1(1,:

)/2;

subplot(211);plot(f1,Amp1);

xlabel('频率(f1)');ylabel('|X1(f)|');%原始语音信号的FFT频谱图

title('女声信号FFT频谱');

%axis([0500000.003]);%可加可不加,方便从频谱中看出男女声的差别

xf2=fft(x2,N2);f2=[0:

N2-1]*fs2/N2;

Amp2=abs(xf2)/(N2/2);Amp2(1,:

)=Amp2(1,:

)/2;

subplot(212);plot(f2,Amp2);

xlabel('频率(f2)');ylabel('|X2(f)|');%原始语音信号的FFT频谱图

title('男声信号FFT频谱');%axis([0500000.003]);

%降采样

figure(3)%采样频率为原来的1/2时的频谱图

x11=x1(1:

2:

length(x1));x21=x2(1:

2:

length(x2));%降采样

M11=length(x11);M21=length(x21);%语音信号的长度

n11=round(log2(M11));n21=round(log2(M21));

N11=2^n11;N21=2^n21;

xf11=fft(x11,N11);f11=[0:

N11-1]*fs1/N11;

Amp11=abs(xf11)/(N11/2);Amp11(1,:

)=Amp11(1,:

)/2;

subplot(211);plot(f11,Amp11);

xlabel('频率(f1)');ylabel('|X11(f)|');%原始语音信号的FFT频谱图

title('1/2时的女声信号FFT频谱');

xf21=fft(x21,N21);f21=[0:

N21-1]*fs2/N21;

Amp21=abs(xf21)/(N21/2);Amp21(1,:

)=Amp21(1,:

)/2;

subplot(212);plot(f21,Amp21);

xlabel('频率(f2)');ylabel('|X21(f)|');%原始语音信号的FFT频谱图

title('1/2时的男声信号FFT频谱');

figure(4)%采样频率为原来的1/4时的频谱图

x12=x1(1:

4:

length(x1));x22=x2(1:

4:

length(x2));%降采样

M12=length(x12);M22=length(x22);%语音信号的长度

n12=round(log2(M12));n22=round(log2(M22));

N12=2^n12;N22=2^n22;

xf12=fft(x12,N12);f12=[0:

N12-1]*fs1/N12;

Amp12=abs(xf12)/(N12/2);Amp12(1,:

)=Amp12(1,:

)/2;

subplot(211);plot(f12,Amp12);

xlabel('频率(f1)');ylabel('|X12(f)|');%原始语音信号的FFT频谱图

title('1/4时的女声信号FFT频谱');

xf22=fft(x22,N22);f22=[0:

N22-1]*fs2/N22;

Amp22=abs(xf22)/(N22/2);Amp22(1,:

)=Amp22(1,:

)/2;

subplot(212);plot(f22,Amp22);

xlabel('频率(f2)');ylabel('|X22(f)|');%原始语音信号的FFT频谱图

title('1/4时的男声信号FFT频谱');

figure(5)%采样频率为原来的1/8时的频谱图

x13=x1(1:

8:

length(x1));x23=x2(1:

8:

length(x2));%降采样

M13=length(x13);M23=length(x23);%语音信号的长度

n13=round(log2(M13));n23=round(log2(M23));

N13=2^n13;N23=2^n23;

xf13=fft(x13,N13);f13=[0:

N13-1]*fs1/N13;

Amp13=abs(xf13)/(N13/2);Amp13(1,:

)=Amp13(1,:

)/2;

subplot(211);plot(f13,Amp13);

xlabel('频率(f1)');ylabel('|X13(f)|');%原始语音信号的FFT频谱图

title('1/8时的女声信号FFT频谱');

xf23=fft(x23,N23);f23=[0:

N23-1]*fs2/N23;

Amp23=abs(xf23)/(N23/2);Amp23(1,:

)=Amp23(1,:

)/2;

subplot(212);plot(f23,Amp23);

xlabel('频率(f2)');ylabel('|X23(f)|');%原始语音信号的FFT频谱图

title('1/8时的男声信号FFT频谱');

figure(6)%采样频率为原来的1/16时的频谱图

x14=x1(1:

16:

length(x1));x24=x2(1:

16:

length(x2));%降采样

M14=length(x14);M24=length(x24);%语音信号的长度

n14=round(log2(M14));n24=round(log2(M24));

N14=2^n14;N24=2^n24;

xf14=fft(x14,N14);f14=[0:

N14-1]*fs1/N14;

Amp14=abs(xf14)/(N14/2);Amp14(1,:

)=Amp14(1,:

)/2;

subplot(211);plot(f14,Amp14);

xlabel('频率(f1)');ylabel('|X14(f)|');%原始语音信号的FFT频谱图

title('1/16时的女声信号FFT频谱');

xf24=fft(x24,N24);f24=[0:

N24-1]*fs2/N24;

Amp24=abs(xf24)/(N24/2);Amp24(1,:

)=Amp24(1,:

)/2;

subplot(212);plot(f24,Amp24);

xlabel('频率(f2)');ylabel('|X24(f)|');%原始语音信号的FFT频谱图

title('1/16时的男声信号FFT频谱');

%计算男声和女声信号在高频、低频所占的比例

%低频部分的比较

xF1=fft(x1,N1);xF2=fft(x2,N2);

%低频信号量

sum11=0;sum21=0;

fori=50:

500

sum11=sum11+abs(xF1(i));

sum21=sum21+abs(xF2(i));

end

%总信号量

sum1=0;sum2=0;

fori1=1:

length(xF1)

sum1=sum1+abs(xF1(i1));

end

fori2=1:

length(xF2)

sum2=sum2+abs(xF2(i

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

当前位置:首页 > 职业教育 > 中职中专

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

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