对采集的语音信号进行matlab设计与分析课程设计报告30.docx

上传人:b****3 文档编号:1488623 上传时间:2022-10-22 格式:DOCX 页数:38 大小:1.62MB
下载 相关 举报
对采集的语音信号进行matlab设计与分析课程设计报告30.docx_第1页
第1页 / 共38页
对采集的语音信号进行matlab设计与分析课程设计报告30.docx_第2页
第2页 / 共38页
对采集的语音信号进行matlab设计与分析课程设计报告30.docx_第3页
第3页 / 共38页
对采集的语音信号进行matlab设计与分析课程设计报告30.docx_第4页
第4页 / 共38页
对采集的语音信号进行matlab设计与分析课程设计报告30.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

对采集的语音信号进行matlab设计与分析课程设计报告30.docx

《对采集的语音信号进行matlab设计与分析课程设计报告30.docx》由会员分享,可在线阅读,更多相关《对采集的语音信号进行matlab设计与分析课程设计报告30.docx(38页珍藏版)》请在冰豆网上搜索。

对采集的语音信号进行matlab设计与分析课程设计报告30.docx

对采集的语音信号进行matlab设计与分析课程设计报告30

主题:

Matlab与信息系统仿真课程设计

组长:

XXX

组员:

XXXXXXX

班级:

电子信息工程1201

第一章课程设计情况概述

1.1课程设计目的…………………………………………………3

1.2课程设计内容…………………………………………………3

1.3小组分工………………………………………………………3

第二章具体实现方案及小结

2.1第

(1)、

(2)版块:

录制语以及频谱分析………………………………4

2.1.1板块要求…………………………………………………………………4

2.1.2版块分析及具体实现代码………………………………………………4

2.1.3Matlab仿真结果图……………………………………………………5

2.2第(3)版块:

采样…………………………………………………………7

2.2.1版块要求…………………………………………………………………7

2.2.2板块分析及具体实现代码……………………………………………7

2.3第(4)版块:

对语音实现几种常见变化……………………………………13

2.3.1版块要求………………………………………………………………13

2.3.2板块分析及具体实现代码……………………………………………13

2.4第(5)版块:

调制、解调………………………………………………25

2.4.1板块要求………………………………………………………………25

2.4.2版块分析及具体实现代码……………………………………………25

2.4.3Matlab仿真结果图……………………………………………………28

2.5第(6)版块:

加噪、滤波………………………………………………32

2.5.1板块要求………………………………………………………………32

2.5.2版块分析及具体实现代码……………………………………………32

2.6小结………………………………………………………………………41

第一章课程设计情况概述

1.1课程设计目的

本课程设计要求掌握Matlab语言特性、数学运算和图形表示;掌握Matlab程序设计方法在信息处理方面的一些应用;掌握在Windows环境下,利用Matlab进行语音信号采集与处理的基本方法。

综合设计实验方案设计5天分析题目,查找相关资料,利用已掌握知识、原理,提出设计具体方案,拟订设计步骤,确定方案,编写程序代码并上机调试,修改完善设计,记录数据,分析结果。

1.2课程设计内容

这次的课程设计大致分为两个阶段,一周为一个阶段。

1.关于Matlab的基础训练

Matlab在信号与系统、随机信号处理中的基本应用

2.综合设计:

语音信号的采集与处理

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

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

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

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

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

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

1.3小组分工

(1)、

(2)版块XXX,第(3)版块XXX,第(4)版块XXX,第(5)版块XXX,第(6)版块XXX,报告最终由组长统一整理。

第二章具体实现方案

2.1第

(1)、

(2)版块:

录制语音以及频谱分析

2.1.1版块要求:

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

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

2.1.2版块分析及具体实现代码:

先录制几段音频,再利用Matlab编程对其进行频谱分析。

[x1,fs,nbits]=wavread('D:

\matlab\语音样本.wav');%读取音频文件,识别的是音频存放地址

sound(x1,fs);%利用matlab中发声函数sound语句

N=length(x1);

M=log(N)/log

(2);

Q=round(M);%round函数是对所得数取整

S=2^Q;%求得与N最接近的2的n次幂

n=[0:

N-1];%从0取到N-1

X=fft(x1);%进行傅里叶变换

Fs=1*fs;

f=n/N*Fs;%图2的横坐标

figure

(1);

subplot(2,1,1);plot(n,x1);%绘制原音频信号图

title('原始音频信号');

Amp=abs(X)/(S/2);

Amp(1,:

)=Amp(1,:

)/2;

subplot(2,1,2);plot(f,Amp);

axis([0,3000,0,0.01])%绘制频谱图

title('音频的幅度谱');

在设计算法的过程中,本段程序的难点在于如何找到与length(x1)最接近的2的n次幂,以及傅立叶变换之后的频谱值(即图中的纵坐标值)。

通过先对length(x1)求2的对数,再利用round函数进行四舍五入求整,最终得到想要的最接近length(x1)的2的n次幂。

2.1.3Matlab仿真结果图:

从图中可以读出这段音频信号的频率大概在100~800赫兹,比较低沉,一般来说应该是男声。

从图中可以读出这段音频信号的频率大概在700~1400赫兹,比较尖锐,一般来说应该是女声。

 

2.2第(3)版块:

采样

2.2.1版块要求

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

2.2.2板块分析及具体实现代码

这里涉及到采样下重采样的问题。

所谓重采样就是对一系列离散的数字信号进行插值(升频)或去值(降频),以改变原有信号的采样率,在Matlab中,可以用resample(x,p,q),decimate(x,r)函数实现。

也可以将原有音频进行重构,对获得的波形进行二次采样,不过这样比较麻烦。

本段程序采用的是resample(x,p,q)函数,所用的音频时间大概有3秒,更有利于观察对频谱的影响。

RESAMPLE函数的原理:

p/Q是确定采样频率的必要条件,由于系统录音所确定的采样频率由[x1,fs,nbits]=wavread('D:

\matlab\nv.wav')所决定;%读取音频文件返回值为44100hz。

对于所用音频,其频谱分析出来的最高频率是fm=1750hz。

由采样定理得,采样频率fs=2fm=3500hz,大约是44100的1/13。

当为临界采样时fs=2fm,确定p=1,Q=13,采样频率为3500hz;

当为过采样时fs>2fm,确定P=1,Q=10,采样频率为4410hz;

当为欠采样时fs<2fm,确定P=1,Q=18,采样频率为2450hz;

程序代码:

[x1,fs,nbits]=wavread('D:

\matlab\nv.wav');%读取音频文件,识别的是地址

sound(x1,fs);%利用matlab中发声函数sound语句

N=length(x1);

M=log(N)/log

(2);

Q=round(M);

S=2^Q;

n=[0:

N-1];%n从0取到N-1

X=fft(x1);%进行傅里叶变换

Fs=1*fs;

f=n/N*Fs;

figure

(1);

subplot(2,1,1);plot(n,x1);%绘制原音频信号

title('原始音频信号');

Amp=abs(X)/(S/2);

Amp(1,:

)=Amp(1,:

)/2;

subplot(2,1,2);plot(f,Amp);

axis([0,4000,0,0.01])%绘制频谱图

title('音频的幅度谱');

临界采样:

[x,fs,nbits]=wavread('D:

\matlab\nv.wav');%读取音频文件,识别的是地址

x2=resample(x,1,13);%采样频率化为3500Hz

sound(x2,fs/13);%利用matlab中发声函数sound语句

N=length(x2);

M=log(N)/log

(2);

Q=round(M);

S=2^Q;

n=[0:

N-1];%从0取到N-1

X=fft(x2);%进行傅里叶变换

Fs=fs/14;

f=n/N*Fs;

figure

(2)

subplot(2,1,1);plot(n,x2);%绘制原音频信号

title('临界采样后原始音频信号');

Amp=abs(X)/(S/2);

Amp(1,:

)=Amp(1,:

)/2;

subplot(2,1,2);plot(f,Amp);

axis([0,4000,0,0.01])%绘制频谱图

title('临界采样音频的幅度谱');

过采样:

[x,fs,nbits]=wavread('D:

\matlab\nv.wav');%读取音频文件,识别的是地址

x3=resample(x,1,10);%采样频率化为4410Hz

sound(x3,fs/10);%利用matlab中发声函数sound语句

N=length(x3);

M=log(N)/log

(2);

Q=round(M);

S=2^Q;

n=[0:

N-1];%从0取到N-1

X=fft(x3);%进行傅里叶变换

Fs=fs/10;

f=n/N*Fs;

figure(3);

subplot(2,1,1);plot(n,x3);%绘制原音频信号

title('过采样后原始音频信号');

Amp=abs(X)/(S/2);

Amp(1,:

)=Amp(1,:

)/2;

subplot(2,1,2);plot(f,Amp);

axis([0,4000,0,0.01])%绘制频谱图

title('过采样后音频的幅度谱');

欠采样

[x,fs,nbits]=wavread('D:

\matlab\nv.wav');%读取音频文件,识别的是地址

x4=resample(x,1,18);%采样频率化为2450Hz

sound(x4,fs/18);%利用matlab中发声函数sound语句

N=length(x4);

M=log(N)/log

(2);

Q=round(M);

S=2^Q;

n=[0:

N-1];%从0取到N-1

X=fft(x4);%进行傅里叶变换

Fs=fs/18;

f=n/N*Fs;

figure(4);

subplot(2,1,1);plot(n,x4);%绘制原音频信号

title('欠采样后原始音频信号');

Amp=abs(X)/(S/2);

Amp(1,:

)=Amp(1,:

)/2;

subplot(2,1,2);plot(f,Amp);

axis([0,4000,0,0.01])%绘制频谱图

title('欠采样后音频的幅度谱');

 

频谱分析:

由第一段程序对所用的音

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

当前位置:首页 > 表格模板 > 合同协议

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

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