基于MATLAB的语音信号加回声技术的实现
基于Matlab仿真的语音信号增强算法研究

关键词 语音增 强
谱相减法
M rn算法 at i
N s流程 图 —
中图法分类号
T 923 ; N 1 .4
文献标志冯
A
随着语音 技术 研 究 的深 入 和 实 际应 用 的增 多 ,
各 种语音 处 理 系统 都 面 临 着 进 一 步 提 高 性 能 的 问 题 。语音 增强 是其 中 的关键 技 术 之 一 。从 2 0世 纪
.
究 、 言学 中 上下 文 联 想 智 能 的 研 究 等 , 在 进 一 语 都
步推动 着语音 增强 的发展 ¨ 。
近 年来 随着 数 字 技术 的 发展 , 出现 了许 多处 理
)£ , )=s f ( ()+n £ 。 ()
方法来解 决这 一 问题 。常 用 的 方法 有 谱 相减 法 、 维
描述 。
tr i 变换 , 有 下列关 系存在 e 则
】 山)= 0)+ ) , ( (2 Ⅳ( 。
对 功率谱 则有
f ( f=l( )。 Ⅳ ∞ f ) Y c l+f ( ) 。 So
因为假定 噪声 为 不 相干 的 , 以不会 出现语 音 所
与 噪 声 的 乘 积 项 。 只 要 从 f( l 中 减 去 ) y
7 5 63
而语音是 不平 稳 的 , 且 只处 理 一 小段 加 窗 信 而
号, 上式 可写 为
一
I”选择 Ma i 法 。Su l l rn算 t sb把 输 入 文 件 9 !dt 一 .a
读 人 , 过 Mat 通 rn算 法 , 处 理 结 果 存 人 输 出 文件 i 把
o tbn中 u. i 引。
⑥
2 1 SiTc . nn. 00 e eh E g g .
利用Matlab进行语音合成和语音识别技术实现

利用Matlab进行语音合成和语音识别技术实现人类的语音交流是一种非常重要的沟通方式。
然而,由于各种原因,有些人可能会失去语音能力,这给他们的生活带来了极大的困扰。
幸运的是,现代技术的快速发展为这些人提供了帮助的可能性。
利用Matlab进行语音合成和语音识别技术的实现,为失去语音能力的人提供了一种有效的解决方案。
语音合成技术是指根据既定的文本或输入内容,生成人工合成语音的过程。
Matlab是一个功能强大的工具,可以用于语音合成的实现。
它具有丰富的信号处理和声音处理函数,可以通过调用这些函数来进行语音合成。
首先,我们需要选择一种合适的语音合成算法。
一个常用的算法是基于傅里叶变换的加法合成算法。
这个算法将输入文本转化为一个频谱图,然后将频谱图转换为时域信号,最后通过声音设备输出。
在Matlab中,我们可以使用fft函数进行频谱分析,并使用ifft函数进行逆傅里叶变换以转换为时域信号。
在进行语音合成之前,我们还需要合适的语音库。
语音库通常包含一系列基本音素以及它们的语音特征。
通过指定一个特定的文本,我们可以根据语音库中的音素选择相应的语音特征,然后使用合成算法生成相应的语音。
除了语音合成,Matlab还可以用于语音识别技术的实现。
语音识别是指将语音信号转化为文本或其他形式的过程。
这在现代通信和人机交互中非常常见,例如,语音助手和电话自动接听系统。
语音识别的实现通常依赖于声学模型和语言模型。
声学模型主要用于建模和识别不同语音特征,在Matlab中可以利用模式识别算法来实现声学模型。
语言模型则主要用于识别和解析语音信号的上下文信息。
在进行语音识别之前,我们需要收集一些训练数据用于模型的训练。
这些训练数据包括多个语音样本以及相应的文本转录。
通过这些数据,我们可以使用Matlab中的机器学习算法进行模型的训练和优化。
常用的机器学习算法包括HMM (隐马尔可夫模型)和DNN(深度神经网络)等。
一旦完成了语音识别模型的训练和优化,我们就可以使用这个模型进行实际的语音识别。
Matlab声学仿真摘要+结论

Matlab声学仿真摘要+结论摘要随着科学技术的发展,声学已经延伸到了许多不同的领域,成为学习现代科学技术必备的基础知识之一,对于声学的研究在通信领域更是有着重要的意义。
本文选择了在声学研究中最为常见的五个基本问题进行了重点的探讨,其中包括回声、多普勒效应、声音滤波、交混回响和短时傅立叶变换。
由于MATLAB 软件具有易学、功能强大和开放性好的优点,所以本文选择应用MA TLAB软件来进行声学仿真研究。
利用MATLAB编程仿真功能和Simulink的模块式仿真功能,并将两者有机地结合起来,可以很容易地对声音进行模拟、观察声音波形,以及进行声音信号的分析和处理。
由于滤波和短时傅立叶变换是对声音信号进行分析和处理的重要方法,所以,在本文的仿真部分对它们进行了更为细致的研究。
关键字:声学;仿真;MATLAB;Simulink结论本文介绍了声学发展的状况,指出了进行声学仿真研究在实际应用中的重要作用。
通过对声学研究中最为常见的五个基本问题(包括回声、多普勒效应、声音的滤波特性、交混回响、短时傅立叶变换)的理论研究与仿真,得到以下结论:1.回声现象主要受两个反射体间的距离和回声衰减速度的影响,适当地调整它们的值就可以有效地减小回声,甚至可以利用回声使原声加强。
2.当听者和声源的相对速度大到可以与声速相比拟时,就可以明显感觉到声音频率的变化,即发生了多普勒效应。
3.在声学滤波过程中,在正确选择采样频率的基础上,正确选择通带和阻带的截止频率,就可以有效地滤掉和保留下预想的频率。
4.在一间有若干个扬声器的礼堂里,扬声器的布置位置决定了交混回响的产生与否。
5.短时傅立叶变换非常适合声音信号的时频分析。
本文只是对声学问题及其仿真研究的初步探讨,考虑问题也不是很全面,这些都有待在日后的实践中进行更加细致的研究和不断的完善。
语音信号系统中回声与交混回响仿真设计.

《综合课程设计》课程设计说明书题目语音信号处理中回声及交混回响仿真设计课程名称综合课程设计系院信息工程学院专业通信工程班级 09通信工程学生姓名学号设计地点电子信息楼指导教师南昌工程学院《综合课程设计》课程设计说明书题目语音信号处理中回声及交混回响仿真设计课程名称综合课程设计系院信息工程学院专业通信工程班级09通信工程学生姓名游江龙学号2009100260设计地点电子信息楼指导教师饶伟设计起止时间:2012年11月26日至2012年12月07日1设计起止时间:2012年11月26日至2012年12月07日目录一、市场需求 (1)二、系统总体设计 (1)2.1课程设计的原始资料及设计技术要求 (1)2.1.1利用自制的语音作为信号源 (1)2.1.2利用simulink仿真回声 (1)2.1.3布置3个扬声器,利用M语言编程,设计并仿真出听者听音效果 (1)2.1.4撰写课程设计报告 (1)2.2课程设计工作内容及完成时间 (1)2.3课程设计的原理 (2)三、系统详细设计 (2)3.1 MATLAB录制语音,保存、绘制声波图工作原理 (2)3.1.1主要M语言代码 (2)3.1.2操作步骤 (3)3.2回声的仿真实验 (3)3.2.1回声的基本原理 (3)3.2.2回声仿真实验的操作过程 (4)3.2.3回声仿真实验的电路图及参数设置 (4)3.3交混回响的仿真设计 (5)3.3.1交混回响的原理 (5)3.3.2交混回响的运用 (6)3.3.3交混回响的M文件编程源代码 (6)3.3.4交混回响的仿真条件 (7)四、调试与维护 (7)4.1利用MATLAB录制语音、保存、并绘制声波图 (7)4.3利用MATLAB做交混回响仿真设计 (9)五、结束语 (10)六、参考文献 (10)七、指导教师评阅(手写) (11)一、市场需求建筑物里,由于距离较小,反射声波(回声)跟原来的声音混合在一起分不开,感觉效果是原来的声音加强并且延长了,这种现象称为交混回响。
基于MATLAB语音信号处理去噪毕业设计论文

基于MATLAB语音信号处理去噪毕业设计论文语音信号在实际应用中通常不可避免地受到噪音的干扰,这使得语音信号的处理变得困难。
因此,在语音信号处理领域,去噪技术一直是一个热门的研究方向。
本文将介绍一种基于MATLAB的语音信号处理去噪方法的毕业设计论文。
本文的主要内容分为以下几个部分。
首先,介绍语音信号处理的背景和意义。
在现实生活中,由于外界环境和设备的限制,语音信号往往会受到各种噪音的污染,如背景噪音、电磁干扰等。
因此,开发一种有效的语音信号处理去噪方法具有重要的实际意义。
其次,介绍基于MATLAB的语音信号处理去噪方法。
本文将采用小波降噪方法对语音信号进行去噪处理。
首先,对输入的语音信号进行小波变换,将信号转换到小波域。
然后,通过对小波系数进行阈值处理,将噪声系数置零,从而实现去噪效果。
最后,通过逆小波变换将信号转换回时域,并输出去噪后的语音信号。
接下来,介绍实验设计和结果分析。
本文将使用MATLAB软件进行实验设计,并选取一组含有不同噪声干扰的语音信号进行测试。
通过对不同噪声信号进行处理,比较不同参数设置下的去噪效果,评估提出方法的性能。
最后,总结全文并展望未来的研究方向。
通过本次研究,我们可以看到基于MATLAB的语音信号处理去噪方法在去除噪音方面具有较好的效果,并具有很大的应用潜力。
然而,该方法仍然有改进的空间。
未来的研究可以在算法优化、参数选择和应用场景等方面进行深入研究,进一步提高语音信号处理去噪的效果和性能。
总的来说,本文介绍了一种基于MATLAB的语音信号处理去噪方法的毕业设计论文。
通过对实验结果的分析和对未来研究方向的展望,本文为从事语音信号处理领域的研究人员提供了一定的参考和启示。
基于matlab的语音信号的合成(加入延迟混响)课案

中北大学课程设计说明书学生姓名:学号:学生姓名:学号:学生姓名:学号:学院:信息与通信工程学院专业:电子信息工程题目:信息处理实践:语言信号的合成指导教师:杨娜职称: 副教授2016 年 1月 3 日中北大学课程设计任务书15/16 学年第一学期学院:信息与通信工程学院专业:电子信息工程学生姓名:学号:学生姓名:学号:学生姓名:学号:课程设计题目:信息处理实践:语言信号的合成起迄日期:2016年1 月4日~2016年1月22 日课程设计地点:201,503,1号楼教室指导教师:杨娜系主任:王浩全下达任务书日期: 2016 年1月 3 日课程设计任务书课程设计任务书目录摘要 (1)1.MATLAB简介 (1)2.GUI简介 (1)一.设计方案........................................................................................................... 二.设计步骤及结果1.语音信号的采集..............................................2.语音信号的截取.................3.语音信号的合成.................4.合成语音的验证.........5.GUI界面设计及实现.........三.设计评述参考文献..............附录..............摘要语音信号处理是一门比较实用的电子工程专业课程,语音是人类获取信息的的重要来源和利用信息的重要手段。
通过语言相互传递信息是人类最重要的基本功能之一。
语音信号是一种非平稳的时变信号,它携带着各种信息。
在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。
Matlab是一个数据分析和处理功能十分强大的工程实用软件。
本文介绍了利用matlab软件及其中的图形用户界面(GUI)实现驱动声卡采集语音信号和语音信号采集后的文档处理方法,并通过实例利用matlab分析了语音信号处理的过程。
利用Matlab进行语音合成和音频增强处理
利用Matlab进行语音合成和音频增强处理引言人类语音是一种重要的交流工具,语音合成和音频增强处理是利用计算机技术来模拟和改善语音信号的质量和特征的方法。
在实际应用中,利用Matlab进行语音合成和音频增强处理可以帮助我们实现更好的语音识别、语音合成和音频处理效果。
本文将介绍如何利用Matlab进行语音合成和音频增强处理,并探讨其在实际应用中的潜在价值。
一、语音合成语音合成是指通过计算机技术将文本转化为与人类语音相似的声音信号。
利用Matlab可以通过多种方法进行语音合成,其中最常用的方法之一是基于合成过程的参数提取和重构。
在语音合成中,首先需要从文本中提取语音的特征参数,例如基频、共振峰频率等。
然后,根据这些参数和合成模型,可以通过数字信号处理技术将这些特征参数转化为声音信号。
最后,可以应用数字信号处理算法来改善合成声音的质量。
除了基于合成过程的方法,利用深度学习和神经网络等技术进行语音合成也是一种常见的方法。
这些方法可以通过训练模型来实现高质量的语音合成,但是需要大量的数据和计算资源。
二、音频增强处理音频增强处理是指通过算法和技术改善音频信号的质量和清晰度。
利用Matlab 可以进行多种音频增强处理,例如降噪、去混响、音频增益调整等。
降噪是一种常见的音频增强处理方法,它可以通过去除环境噪声和其他干扰声音来提升语音信号的清晰度。
利用Matlab可以应用数字滤波器和自适应滤波器等算法来实现降噪处理。
去混响是另一种常见的音频增强处理方法,它可以通过去除声音的反射和共振效应来改善音频信号的质量。
利用Matlab可以应用卷积混响模型和数字滤波器等算法来实现去混响处理。
除了降噪和去混响,音频增益调整也是一种常见的音频增强处理方法。
它可以通过调整音频信号的增益来改变音频信号的音量和动态范围。
三、实例应用利用Matlab进行语音合成和音频增强处理在实际应用中具有广泛的潜在价值。
下面举例说明几个应用场景:1. 语音合成应用于自动语音电话系统。
基于MATLAB的语音处理
基于MATLAB的语音处理基于MATLAB的语音滤波实验实验目的:1.在Matlab环境下对语音的频谱进行处理(数字滤波)并试听效果;2.在Matlab环境下对语音的抽样率进行处理(语音压缩)并试听效果实验步骤:一、音频文件的压缩(抽取)。
1.利用windows附件中的录音机功能录制8~10秒的.wav 语音文件,并以lei为文件名保存到Matlab/work的文件夹中。
a.打开开始/程序/附件/娱乐/录音机;b.用windows media player播放一首音乐并用MIC对着耳机录音或自已说话录音(按键),到10秒时停止(按键);c.将录制的文件加存为C:/Matlab/work中,文件名为leii.wav;2.打开Matlab并新建一.m文件;3.在.m文件中用y=wavread(‘lei.wav’)命令读入语音文件。
4.语音压缩:在m命令窗中输入如下命令:5.运行sample6.双击lei2音频文件,用耳机试听效果,并跟lei1的效果比较。
7.在sample2.m文件中改变抽取倍率s (必须为正整数),重复4、5、6步,观察在不同抽取倍率s下的音频质量,(注意:在运行sample二、音频信号的时域滤波(音频数据的时域卷积)。
(一)、低通滤波1.打开Matlab并新建一.m文件,在.m文件中用y=wavread(‘lei.wav’)命令读入语音文件。
2.在m命令窗中输入如下命令,并加存为sample3.m,运行该m文件。
3.双击lei3音频文件,用耳机试听效果,并跟lei1的效果比较。
4.再加一级h(n)的低通滤波,重复2、3步,如下图:(注意:在运行lei2.m之前必须将work中名为lei3的.wav 音频文件删除,或在.m文件中wavwrite()中的保存文件名改为其它的名字。
)5.重复2、3、4步,观察在不同阶数的低通滤波下的音频质量。
(二)、高通滤波1.打开Matlab并新建一.m文件,在.m文件中用y=wavread(‘lei.wav’)命令读入语音文件。
MATLAB语音信号处理
MATLAB语⾳信号处理数字信号处理课设,我们使⽤MATLAB对语⾳信号进⾏了⼀系列处理,并将其所有功能集中于下图界⾯中:这个界⾯涉及功能众多,其中包括语⾳信号的观察分析、⾳⾊变换、AM调制解调、减抽样、加噪去噪、相频分析和幅频滤波等,最重要的是对MATLAB中函数的掌握,通过不同函数的组合实现你想要实现的功能。
本篇不会给出整个界⾯的程序,下⾯会分块给出每个功能的程序,整个界⾯只需GUI设计界⾯⽂件、定义结构体并把对应键程序打进去即可。
1、语⾳信号的采集1.1题⽬要求使⽤windows下的录⾳机录制⼀段语⾳信号、⾳乐信号或者采⽤其他软件截取⼀段⾳乐信号(要求:时间不超过5s,⽂件格式为WAV。
)①请每位同学都参与录⾳,内容⾃定。
②使⽤wavread语句读取语⾳/⾳乐信号获取抽样率;(注意:读取的信号是双声道信号,即为双列向量,需要分列处理);③输出时域语⾳/⾳乐信号的波形。
④实现对录⾳信号的声⾳⼤⼩的调节。
⑤实现对两种语⾳/⾳乐信号的混⾳⾳效。
⑥实现⾳乐信号的回⾳⾳效。
1.2设计内容及⽅案①读取⾳频信号:我是通过wavread函数读取.wav⽂件的⽅式来获得,当然⾸先要⾃⼰创建⼀个.wav⾳频,我是通过电脑录⾳⽣成.mp3然后格式⼯⼚转成.wav的,需保存到同⼀⽂件夹下。
②分声道处理:⼀般⾳乐和语⾳信号都是双声道信号,时域和频谱图会有两个颜⾊,所以要取单列来分析,通过x1=x(:,1)语句来实现。
③画时域波形图:⽤plot函数来画图,注意横坐标为时间t。
④⾳量⼤⼩调节:通过将⾳频直接乘⼀个系数来实现调⾳量。
⑤混⾳和回声:混⾳即将两个⾳频相加,要相加就得保证矩阵⼀样,所以要通过截取并补零矩阵来实现;回声是把三个信号叠加,这三个信号在不同位置补零⾳量也逐渐变⼩,就可以实现回声。
⑥播放声⾳:本题我使⽤wavplay来播放声⾳,会有警告,后⾯的题我⽤sound⽐较好。
1.3程序源码及注释clear[x,fs] = wavread('beautiful.wav');%⾳乐信号[y,fs1]= wavread('1.wav');%⼥⽣声⾳[z,fs2]= wavread('2.wav');%男⽣声⾳%输出频率fsfs1fs2%⾳乐语⾳信号分声道处理x1=x(:,1);y1=y(:,1);z1=z(:,1);%画⾳乐信号时域图n1=length(x1);%length取数列长度即元素个数figure(1)t1=(0:(n1-1))/fs;plot(t1,x1);axis([0,5,-1,1]);xlabel('时间t');title('⾳乐信号时域波形');%画语⾳信号时域图n2=length(y1);figure(2)subplot(2,1,1);t2=(0:(n2-1))/fs1;plot(t2,y1);%⼥⽣axis([0,4,-0.5,0.5]);xlabel('时间t');ylabel('幅度');title('⼥⽣语⾳信号时域波形');n3=length(z1);subplot(2,1,2);t3=(0:(n3-1))/fs2;plot(t3,z1);%男⽣axis([0,4,-0.5,0.5]);xlabel('时间t');ylabel('幅度');title('男⽣语⾳信号时域波形');%对语⾳信号声⾳⼤⼩调节wavplay(y,fs1); %播放原语⾳y11=10*y;wavplay(y11,fs1); %加⼤⾳量播放y22=0.5*y;wavplay(y22,fs1); %减⼩⾳量播放%两种语⾳信号的混⾳[m,n]=size(y1);%size取矩阵的⾏列数[m0,n0]=size(z1);a=zeros(abs(m-m0),n);%两矩阵⾏数差为零矩阵⾏数if length(y1)<length(z1)y2=[y1;a];y3=y2+z1;%两个矩阵⾏数⼀样才能相加,所以要补零elsey2=[z1;a];y3=y2+y1;%y1和z1中长的那个不变,短的那个补零end;wavplay(y3,fs1) ;%播放混⾳语⾳%画混⾳波形figure(3)subplot(2,1,1);t4=(0:(max(n2,n3)-1))/fs1;plot(t4,y3);axis([0,4.5,-0.5,0.5]);xlabel('时间');ylabel('幅度');title('两语⾳信号叠加后时域波形');%⾳乐信号的回⾳x11=x1(1:200000);%截取部分x11=x11';%因为输出为⼀列所以要转置成⼀⾏int0=zeros(1,20000);%1⾏2000列的零矩阵temp1=[x11,int0,int0];temp2=[int0,0.6*x11,int0];temp3=[int0,int0,0.3*x11];%通过补零实现延时,同时声⾳⼀个⽐⼀个⼩hui=temp1+temp2+temp3;%三重声⾳相加实现回声N=length(hui);wavplay(hui,fs1);%播放回⾳⾳乐%画回声波形subplot(2,1,2);t1=(0:(N-1))/fs;plot(t1,hui);axis([0,4.5,-1,1]);xlabel('时间');ylabel('幅度');title('回声时域波形');1.4运⾏结果仿真结果分析:我听到了原声和⾳量放⼤减⼩的声⾳,也听到了混⾳和回声的效果,变化明显;本题我画了⾳乐和两个语⾳信号的时域波形以及混⾳回声的时域波形,⾳乐信号幅度⽐语⾳信号⾼且连贯性⾼,混⾳之后幅度叠加,回声之后幅度也增⼤,波形有很明显的变化。
语音信号处理的matlab实现
山东建筑大学课程设计指导书课程名称:数字信号处理课程设计设计题目:语音信号分析与处理及其MATLAB实现使用班级:指导教师:一、设计要求1.基本要求:本次课程设计要求利用MATLAB对语音信号进行分析和处理,要求学生采集语音信号后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。
2.基本教学要求:每组一台电脑(附话筒和耳机),电脑安装MATLAB6.5版本以上软件。
二、设计步骤1.理论依据根据设计要求分析系统功能,掌握设计中所需理论(采样频率、采样位数的概念,采样定理;时域信号的FFT分析;数字滤波器设计原理和方法,各种不同类型滤波器的性能比较),阐明设计原理。
2.信号采集采集语音信号,并对其进行FFT频谱分析,画出信号的时域波形图和频谱图。
3.构造受干扰信号并对其进行FFT频谱分析对所采集的语音信号加入干扰噪声,对语音信号进行回放,感觉加噪前后声音的变化,分析原因,得出结论。
并对其进行FFT频谱分析,比较加噪前后语音信号的波形及频谱,对所得结果进行分析,阐明原因,得出结论。
4.数字滤波器设计根据待处理信号特点,设计合适数字滤波器,绘制所设计滤波器的幅频和相频特性。
5.信号处理用所设计的滤波器对含噪语音信号进行滤波。
对滤波后的语音信号进行FFT频谱分析。
画出处理过程中所得各种波形及频谱图。
对语音信号进行回放,感觉滤波前后声音的变化。
比较滤波前后语音信号的波形及频谱,对所得结果和滤波器性能进行频谱分析,阐明原因,得出结论。
三、设计成果1.设计说明书(约2000~3000字),一般包括:(1)封面(2)目录(3)摘要(4)正文①设计目的和要求(简述本设计的任务和要求,可参照任务书和指导书);②设计原理(简述设计过程中涉及到的基本理论知识);③设计内容(按设计步骤详细介绍设计过程,即任务书和指导书中指定的各项任务)I程序源代码:给出完整源程序清单。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数字信号处理》
课程设计报告
基于MATLAB的语音信号加回声技术的实现
基于MATLAB的语音信号加回声技术的实现
一、设计目的
回波是现代通信中影响通信质量的噪声干扰。
本课程设计要求用MATLAB 语言编程实现回波信号的产生。
在进一步娴熟运用matlab这种以数值计算和数据图示为主的计算机软件的同时,加深对声频信号中噪声的认识。
掌握MATLAB 程序设计,为以后的毕业设计奠定一定的基础。
二、设计任务
提取一段音频信号,用MATLAB自带的函数功能读取语音信号,通过延迟叠加产生回波信号信号来模拟回声。
三、设计原理
1,语音信号采集:使用现成的“*.wav”格式的声音信号,matlab会自动进行16khz的采样。
2,声音信号的读取:使用MATLAB中的wavread()函数读取,记录信号,采样率fs。
3,带回波信号的产生:利用MATLAB中的基本矩阵计算产生原始信号的延迟以及只有一个衰减延迟的回波信号附加到原始信号回波信号。
四、设计过程
4.1声音信号x[n]的产生
1、制作一段wav格式的音频,然后把它存放到对应程序段所在的磁盘中,用MATLAB函数wavread()将其提取出来绘制其时域波形对此音频信号用FFT 作谱分析,用plot()函数绘制其图形。
信号采集程序如下:
%声音信号的提取
[x,fs]=wavread('luyin.wav'); %把语音信号进行加载入Matlab仿真软件平台中
wavplay(x,fs);% 回放语音信号。
或者sound(x,fs)
figure(1);
N=length(x);%求语音信号的长度
subplot(3,1,1);
plot(x(1:N));
title('原始信号波形');
y=fft(x,N);%傅立叶变换
subplot(3,1,2);
plot(abs(y));
title('原始信号幅值');
subplot(3,1,3);
plot(angle(y));
title('原始信号相位');
2,产生的原是信号的波形,以及其幅度、相位谱如下所示:
4.2声音信号y[n]的产生
1,参数的设置:
因为人耳能分辨出的声音延迟至少是0.1s,因此,最小延迟量不能小于0.1s。
在此先先延迟时间为0.2s,即最小延迟量N=0.2*fs=0.2*16000=3200。
在已有声音信号x的基础上产生带回声的声音信号,可以表达为在于娜信号的基础上叠加其延时的分量。
假设只有一个回声的情况下,可简化其模型为y(n)=x(n)+ax(n-N)
A为反射系数;N为延迟时间。
这里设N=3200
a=0.4
2,利用矩阵置零产生x的延迟,以及得到y信号:
为了保证图像的完整性,对读取的信号先延长4000个采样点,将原始信号延长3200个采样点,然后再在后面补上800个点,得到如下代码:%回波的产生
[x,fs]=wavread('luyin.wav');%把语音信号进行加载入Matlab仿真软件平台中。
N=length(x);%语音信号的长度。
x1=x(1:N);
x2=x(1:N);
x1=[x1,zeros(1,4000)];%zeros(1,4000)产生1行3000列全零矩阵加到x1后面。
x2=[zeros(1,3200),0.4*x2,zeros(1,800)];%N+3200+x=N+4000,得x=800
y=x1+x2;%加入回音的信号。
figure(2);
subplot(3,1,1);
plot(y(1:3200.+N));
title('含回声信号波形');
y1=fft(y);
subplot(3,1,2);
plot(abs(y1));
title('含回声信号幅值');
subplot(3,1,3);
plot(angle(y1));
title('含回声信号相位');
sound(y,fs);
其波形图如下
五、收获与体会
通过此次试验,熟悉了MATLAB软件的应用,学会了软件的基本技能,对其常用函数有了进一步的研究,同时学会了应用数学软件对信号进行分析的方法,加深了对数字信号处理可曾中相关概念的理解,对回声的产生有了更一步的认识。
总体而言,这次试验只是对信号的简单处理,但是在程序设计中遇到很多问题,这些都是在平时学习中所不曾注意到的,面对这些问题我通过查阅资料、网络、与同组同学的探讨,得到很大程度的解决。