对采集的语音信号进行matlab设计与分析课程设计报告30文档格式.docx
《对采集的语音信号进行matlab设计与分析课程设计报告30文档格式.docx》由会员分享,可在线阅读,更多相关《对采集的语音信号进行matlab设计与分析课程设计报告30文档格式.docx(38页珍藏版)》请在冰豆网上搜索。
电子信息工程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.1版块要求
利用采样定理,对该段语音信号进行采样,观察不同采样频率(过采样、欠采样、临界采样)对信号的影响。
2.2.2板块分析及具体实现代码
这里涉及到采样下重采样的问题。
所谓重采样就是对一系列离散的数字信号进行插值(升频)或去值(降频),以改变原有信号的采样率,在Matlab中,可以用resample(x,p,q),decimate(x,r)函数实现。
也可以将原有音频进行重构,对获得的波形进行二次采样,不过这样比较麻烦。
本段程序采用的是resample(x,p,q)函数,所用的音频时间大概有3秒,更有利于观察对频谱的影响。
RESAMPLE函数的原理:
p/Q是确定采样频率的必要条件,由于系统录音所确定的采样频率由[x1,fs,nbits]=wavread('
\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;
程序代码:
\matlab\nv.wav'
%读取音频文件,识别的是地址
Q=round(M);
%n从0取到N-1
%绘制原音频信号
Amp=abs(X)/(S/2);
axis([0,4000,0,0.01])%绘制频谱图
临界采样:
[x,fs,nbits]=wavread('
x2=resample(x,1,13);
%采样频率化为3500Hz
sound(x2,fs/13);
N=length(x2);
X=fft(x2);
%进行傅里叶变换
Fs=fs/14;
figure
(2)
plot(n,x2);
%绘制原音频信号
临界采样后原始音频信号'
axis([0,4000,0,0.01])%绘制频谱图
临界采样音频的幅度谱'
过采样:
%读取音频文件,识别的是地址
x3=resample(x,1,10);
%采样频率化为4410Hz
sound(x3,fs/10);
N=length(x3);
X=fft(x3);
Fs=fs/10;
figure(3);
plot(n,x3);
过采样后原始音频信号'
Amp(1,:
过采样后音频的幅度谱'
欠采样
[x,fs,nbits]=wavread('
x4=resample(x,1,18);
%采样频率化为2450Hz
sound(x4,fs/18);
N=length(x4);
X=fft(x4);
Fs=fs/18;
figure(4);
plot(n,x4);
欠采样后原始音频信号'
欠采样后音频的幅度谱'
频谱分析:
由第一段程序对所用的音