基于MATLAB的 回声信号产生器
- 格式:doc
- 大小:387.57 KB
- 文档页数:24
目录1·摘要⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 22.正文⋯⋯ (3)(1)设计目的和要求⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯ (3)(2)设计原理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯.3(3)设计内容⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..3 3.总结与致谢⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ (11)4·参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12摘要回波是现代通信中影响通信质量的噪声干扰,也有测距估算等的使用价值。
MATLAB 语言具备高效、可及推理能力强等特点,在数值计算方法、图形功能、用户界面设计编程手段和工具等方面有着重要的应用,随着MATLAB 应用领域不断扩大,使其成为一种影响大、流行广的科学计算语言。
本文基于MATLAB 以回波这一最简单的线性模型进行分析,实现了回波的产生、消除、测量反射物的距离。
本设计方案用MATLAB 自带的函数功能读取语音信号,通过延迟叠加产生回波信号来模拟回声,通过计算分析输出信号的自相关函数利用基于自相关函数的方法来估计衰减系数和延迟,并利用快速傅里叶变换将回波信号滤除回声,得到原声音信号,同时根据延迟估计反射物的距离。
关键字:回波自相关函数MATLAB 延迟距离正文(1)设计目的和要求本课程设计要求用MATLAB 语言编程实现回波信号的产生和消除。
具体要求:(1)利用声音信号x 产生带有回声的声音文件y 。
(2)从带有回声的文件y 中消除回声。
(3)从y 中估计反射物的距离。
(2)设计原理1·根据设计要求分析系统功能,掌握设计中所需理论(采样频率、采样位数的概念,采样定理:回声信号,相关性分析;数字滤波器设计原理和方法) 。
采样频率:采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并成离散信号的采样个数。
采样位数:即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。
基于MATLAB 的声音信号采集系统野龙平(陕西师范大学电子信息科学与技术,陕西)摘要: 声音是各种信号传递与交流最直接的体现,因此对声音信号的研究有十分重要的意义。
本文主要针对Matlab指令系统对声音信号的采集,作者利用Matlab 提供的数据采集工具箱, 介绍了倆种采集方法,简单分析并比较其优缺点。
基于matlab的数据采集系统, 具有实现简单、性价比和灵活度高的优点。
关键词: Matlab; 数据采集0 引言随着科技的发展,对于语音信号的采集已经有很多种方法,如基于单片机技术、VC,C++等编程、纯硬件电路,本文介绍的方法主要通过一款软件MATLAB。
它是MathWorks 公司推出的一种面向工程和科学运算的交互式计算软件, 其中包含了一套非常实用的工具-- 数据采集工具箱。
使用此工具箱更容易将实验测量、数据分析和可视化的应用集合在一起。
数据采集工具箱提供了一整套的命令和函数, 通过调用这些命令和函数, 可以直接控制数据采集设备的数据采集。
作者简单介绍了一种用声卡进行语音信号采集和MATLAB 的数据采集工具箱进行分析处理的语音信号采集系统。
经实验证明, 该系统可实现在线连续采集语音信号并进行分析和处理, 具有实现简单、性价比和灵活度高的特点。
1 语音数据采集系统设计MATLAB 中提供了强大的数据采集工具箱( DAQ- Data Acquisition Toolbox) , 可满足控制声卡进行数据采集的要求。
用户通过调用MATLAB 命令, 可对采集的数据进行分析和处理, 为用户带来了极大的方便。
语音数据采集过程如图1 所示。
图1声卡采集声音信号有两种方式: 传输线输入方式(LineIn) 和麦克风输入( MicIn) 方式。
LineIn 方式是通过传输线把其他声音设备, 如录音机等设备的音频输出信号连接到声卡, 通过声卡记录数据存入计算机。
本系统采用MicIn 方式, 即用麦克风接收语音通过声卡将音频信号存入计算机。
回声抵消器的MATLAB设计与实现前言随着信息时代的到来,人们日渐依赖的通信方式正从早期的单一语言通信向多种业务、多种网络综合通信的方向发展,这也正是目前讨论比较多的多媒体通信的发展方向。
在各种各样的通信业务中,凡是需要同时使用扬声器和麦克风的场合,例如会议电视、免提电话等系统终端,都不可避免地会因本地扩声系统和麦克风之间电声祸合,产生回声问题。
为了增加系统稳定性,提到通信的质量,必须设置回声抵消器来排除回声的影响。
1回声抵消的原理回声抵消器(ACE)的基本原理是用一个自适应滤波器去辨识扬声器与麦克风之间的声回波路径,通过自适应滤波算法的调整,使其自适应权值与声回波房间的冲激响应逼近,从而得到声回波估计信号,再将估计信号从麦克风接收到的语言信号中减去,即可实现声回波抵消(如图1所示)。
其中,声回波抵消器产生的回波抵消预测信号为r(n),实际声回波信号为r(n),预测误差信号为e(n)。
则用公式表达声回波抵消的过程为:e(n)=r(n)-r(n) (1)(2)由图1可知,声回波抵消的核心是一个自适应滤波器。
自适应滤波器使用中要考虑的重要问题是优化调整滤波器参数的准则,该准则不仅要对滤波器性能提供有意义的度量,而且必须导出可实现的算法。
对自适应算法的要求是收敛速度快,计算复杂度低,稳定性好,失调误差小。
2回声抵消器的算法回声抵消器的算法都采用自适应算法,目前最受欢迎的自适应算法是LMS 算法,LMS 算法简单有效,易于实现,最小均方误差算法(LMS )是一种用瞬时值估计梯度矢量的方法,即2[()]()2()()()n e n e n n n ∂∇==-∂X h (3)按照自适应滤波器滤波系数矢量的变化与梯度矢量估计的方向之间的关系,可以写出LMS 算法调整滤波器系数的公式如下所示:1(1)()[()]2n n n μ+=+-∇h h()()()n e n n μ=+h X (4)上式中的μ为步长因子。
数字信号处理课程设计报告-基于MATLAB的语音信号的特技处理xxxx数字信号处理课程设计报告题目:基于MATLAB 的语音信号的特技处理系 (院): 计算机工程学院专业: 通信工程班级: 通信xx班学号: xxxxxxxx姓名: xxx指导教师: xxx学年学期: 2009 ~ 2010 学年第 1 学期2009年12月 18 日设计任务书课题基于MATLAB 的语音信号的特技处理名称1. 巩固所学的数字信号处理理论知识,理解信号的采集、处理、传输、显示和存储过程;设计2. 综合运用专业及基础知识,解决实际工程技术问题的能力; 目的3. 学习资料的收集与整理,学会撰写课程设计报告。
1. 微型电子计算机(PC); 实验环境 2. 安装Windows 2000以上操作系统,MATLAB等开发工具。
1. 选择一个语音信号作为分析的对象,或录制一段各人自己的语音信号,并对其进行频谱分析; 然后在时域用数字信号处理方法将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较;最后设计一个信号处理系统界面。
2. 利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,任务注意材料收集与整理; 要求3. 在第15周末之前完成预设计,并请指导教师审查,通过后方可进行下一步工作;4. 结束后,及时提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结论正确,正文字数不少于3000字(不含代码)。
工作进度计划序号起止日期工作内容2009.12.14~2009.12.14 在预设计的基础上,进一步查阅资料,完善设计方案。
12009.12.14~2009.12.17 设计总体方案,构建、绘制流程框图,编写代码,上机调试。
22009.12.17~2009.12.18 测试程序,完善功能,撰写设计报告。
32009.12.18 参加答辩,根据教师反馈意见,修改、完善设计报告。
4指导教师(签字):年月日摘要语音是人们交流思想和进行社会活动的最基本手段,我们要对语音信号进行测定并将其转变为另一种形式,以提高我们的通信能力。
回声实验回声是一种物理现象。
当传入人耳的直达声和回声之间的时间差在1/20s以上时,可以很清楚的把它们区分开。
相反,直达声和回声之间的时间差在1/20s以下时,回声不但不妨碍听音,反而使声音更加响亮。
应用MA TLAB软件可以方便的进行仿真实验。
图1所示是回声的仿真实验系统。
图中1800的延迟代表了声音在两个反射体之间走一个来回的延迟(1800/Fs秒),它的值愈大,反映两个反射体的距离愈大。
图中0.8的增益代表了声音在两个反射体之间走一个来回的损耗,它愈小,回声衰减愈快。
图中0.9的增益代表了传输损耗。
其中Reshape(整形器)输出维数的参数值设为1-D array(1维);扬声器的序列持续期为1,初始输出延迟为0.1;声源的信号为mtlb,采样时间为1/8000,每帧采样数为32。
在本实验中需要一段声音文件来进行仿真,此处调出MA TLAB中的声音文件“load mtlb.mat”获得声音文件。
通过下列程序调入仿真的声音数据并启动仿真。
Echo11是图1所示的仿真系统的文件名。
load mtlb.matsim(‘echo11’)图1图2所示是仿真实验时示波器上显示的波形图,上图是原声,下图是往复反射的回声波形图。
进行仿真时,能听见扬声器发出的回声声音。
图2将系统框图中0.8的增益改为0.5,回声波形衰减的更快了,见图3,且从扬声器发出的回声声音变短促了。
图3将系统框图中0.9的增益改小也会使回声衰减的更快。
将系统框图中1800的延迟改为100,代表两反射体间距离变短了,见图4,实验后几乎不存在回声了。
图4但若将系统框图中1800的延迟改的更大一点,例如改为4000,代表两反射体间距离变,长了,见实验结果图5,回声持续的时间更长了。
图5由以上仿真实验可得,回声现象取决于几个重要的物理参数:(1)声源距离听者有多远。
(2)声音产生往复反射的两个反射体距离有多远。
(3)声音的反射体在反射声音的过程中对声音的衰减有多大。
基于MATLAB的声音信号频谱分析仪齐齐哈尔大学综合实践1题目基于MATLAB的声音信号频谱分析仪学院专业班级学生姓名指导教师成绩1.绪论11概述随着软硬件技术的发展仪器的智能化与虚拟化已成为未来实验室及研究机构的发展方向虚拟仪器技术的优势在于可由用户定义自己的专用仪器系统且功能灵活很容易构建所以应用面极为广泛基于计算机软硬件平台的虚拟仪器可代替传统的测量仪器如示波器逻辑分析仪信号发生器频谱分析仪等从发展史看电子测量仪器经历了由模拟仪器智能仪器到虚拟仪器由于计算机性能的飞速发展已把传统仪器远远抛到后面并给虚拟仪器生产厂家不断带来连锅端的技术更新速率目前已经有许多较成熟的频谱分析软件如SpectraLABRSAVudBFA等声卡是多媒体计算机最基本的配置硬件之一价格便宜使用软件他的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令本文将给出基于声卡与MATLAB的声音信号频谱分析仪的设计原理与实现方法功能包括1 音频信号信号输入从声卡输入从WAV文件输入从标准信号发生器输入2 信号波形分析包括幅值频率周期相位的估计以及统计量峰值均值均方值和方差的计算3 信号频谱分析频率周期的估计图形显示幅值谱相位谱实频谱虚频谱和功率谱的曲线12 MATLAB软件介绍MATLAB 是美国MathWorks公司出品的商业数学软件用于算法开发数据可视化数据分析以及数值计算的高级技术计算语言和交互式环境主要包括MATLAB和Simulink两大部分MATLAB已成为国际公认的最优秀的科技应用软件之一具有编程简单数据可视化功能强可操作性强等特点而且配有功能强大专业函数丰富的图像处理工具箱是进行图像处理方面工作必备的软件工具MATLAB是矩阵实验室Matrix Laboratory的简称和MathematicaMaple并称为三大数学软件它在数学类科技应用软件中在数值计算方面首屈一指MATLAB可以进行矩阵运算绘制函数和数据实现算法创建用户界面连接其他编程语言的程序等主要应用于工程计算控制设计信号处理与通讯图像处理信号检测金融建模设计与分析等领域目前数字滤波器的设计有许多现成的高级语言设计程序但他们都存在设计效率较低不具有可视图形不便于修改参数等缺点而Matlab为数字滤波的研究和应用提供了一个直观高效便捷的工具它以矩阵运算为基础把计算可视化程序设计融合到了一个交互式的工作环境中尤其是Matlab工具箱使各个领域的研究人员可以直观而方便地进行科学研究与工程应用其中的信号处理工具箱图像处理工具箱小波工具箱等更是为数字滤波研究的蓬勃发展提供了可能利用傅里叶变换的方法对振动的信号进行分解并按频率顺序展开使其成为频率的函数进而在频率域中对信号进行研究和处理的一种过程称为频谱分析将信号在时间域中的波形转变为频率域的频谱进而可以对信号的信息作定量解释对信号进行频谱分析是对其进行傅里叶变换得到其振幅谱与相位谱分析软件主要为Matlab对于信号来说分与数字信号进行频谱分析时对于模拟信号来说首先对其进行抽样使其离散化然后利用DFT或者FFT然后对其幅度ABS和相位ANGLE的进行分析而对于数字信号来说则可直接进行离散傅里叶变换或快速傅里叶变换2.设计原理21频谱分析原理时域分析只能反映信号的幅值随时间的变化情况除单频率分量的简单波形外很难明确提示信号的频率组成和各频率分量大小而频谱分析能很好的解决此问题由于从频域能获得的主要是频率信息所以本节主要介绍频率周期的估计与频谱图的生成com与FFT对于给定的时域信号y可以通过Fourier变换得到频域信息YY可按下式计算式中N为样本容量Δt 1Fs为采样间隔采样信号的频谱是一个连续的频谱不可能计算出所有的点的值故采用离散Fourier变换 DFT 即式中Δf FsN但上式的计算效率很低因为有大量的指数等价于三角函数运算故实际中多采用快速Fourier变换 FFT 其原理即是将重复的三角函数算计的中间结果保存起来以减少重复三角函数计算带来的时间浪费由于三角函数计算的重复量相当大故FFT能极大地提高运算效率com 频率周期的估计对于Y kΔf 如果当kΔf 时Y kΔf 取最大值则为频率的估计值由于采样间隔的误差也存在误差其误差最大为Δf 2周期T 1f从原理上可以看出如果在标准信号中混有噪声用上述方法仍能够精确地估计出原标准信号的频率和周期这个将在下一章做出验证com 频谱图为了直观地表示信号的频率特性工程上常常将Fourier变换的结果用图形的方式表示即频谱图以频率f为横坐标Y f 为纵坐标可以得到幅值谱以频率f为横坐标arg Y f 为纵坐标可以得到相位谱以频率f为横坐标Re Y f 为纵坐标可以得到实频谱以频率f为横坐标Im Y f 为纵坐标可以得到虚频谱根据采样定理只有频率不超过Fs2的信号才能被正确采集即Fourier变换的结果中频率大于Fs2的部分是不正确的部分故不在频谱图中显示即横坐标f ∈[0 Fs2]23 模块划分模块化就是把程序划分成独立命名且可独立访问的模块每个模块完成一个子功能把这些模块集成起来构成一个整体可以完成指定的功能满足用户需求根据人类解决一般问题的经验如果一个问题由两个问题组合而成那么它的复杂程度大于分别考虑每个问题时的复杂程度之和也就是说把复杂的问题分解成许多容易解决的小问题原来的问题也就容易解决了这就是模块化的根据在模块划分时应遵循如下规则改进软件结构提高模块独立性模块规模应该适中深度宽度扇出和扇入都应适当模块的作用域应该在控制域之内力争降低模块接口的复杂程度设计单入口单出口的模块模块功能应该可以预测本着上述的启发式规则对软件进行如图 2所示的模块划分图 2频谱分析仪的模块划分24软件实现com计MATLAB是Mathworks公司推出的数学软件它将数值分析矩阵计算信号处理和图形显示结合在一起为众多学科领域提供了一种简洁高效的编程工具它提供的GUIDE工具为可视化编程工具使得软件的界面设计像VB一样方便故本文采用MATLAB作为编程语言实现声音信号频谱分析仪以下所讲的都是在MATLAB70环境中为了实现预期的功能设计如图 3所示的界面图 3 频谱分析仪的界面设计com块的实现采样频率Fs与采样点数N是声音信号输入时共同需要作用的参数故将其独立出来下面为别介绍三种输入方式的实现1 这里声卡输入是指由麦克风录音得到的声音信号的输入MATLAB提供了wavrecord函数该函数能够实现读取麦克风录音信号以下是开始录音按钮的回调函数内容首先获得设定的Fs值Fs str2double get findobj Tagsamplerate String根据设定的录音时长进行录音将其存入handlesy中handlesy wavrecord str2double get handlesrecordtimeString Fs Fsint16保存handles结构体使得handlesy在别的函数中也能使用guidata hObjecthandles在波形显示区绘出波形plot handlestimehandlesytitle WAVE将所采到的点的数量输出在采样点数中ysize size handlesyset handlessamplenumStringnum2str ysize 12 WAV文件输入MATLAB提供了wavread函数该函数能够方便的打开并读取WAV文件中的声音信息并且同时读取所有声道下面是打开文件按钮回调函数的部分代码其它代码与声卡输入的类似从WAV文件中读取的声音信息并临时存放到temp变量中temp wavread get findobj Tagfilename String获得所选择的声道channel str2double get handleschannelString将指定声道的信息存放到handlesy中handlesy temp channel3 信号发生器 MATLAB有产生标准信号的函数如sawtooth能够产生三角波或钜齿波首先利用get函数获得波形soundtype频率frequency幅值amp和相位phase然后是以下代码switch soundtypecase 1 标准正弦波y ampsin 2pixfrequencyphasecase 2 方波y ampsign sin 2pixfrequencyphasecase 3 三角波y ampsawtooth 2pixfrequencyphase05case 4 钜齿波y ampsawtooth 2pixfrequencyphasecase 5 白噪声y amp 2rand size x -1otherwiseerrordlg Illegal wave typeChoose errerendif get handlesaddValue 00handlesy y 若没有勾选上混迭则将生成的波形赋给handlesyelse 否则将生成的波形与原有波形叠加handlesy handlesyyend25.运行实例与误差分析为了分析软件的性能并比较时域分析与频域分析各自的优势本章给出了两种分析方法的频率估计的比较分析软件的在时域和频域的计算精度问题com弦信号的频率估计用信号发生器生成标准正弦信号然后分别进行时域分析与频域分析得到的结果如图 4所示从图中可以看出时域分析的结果为f 4003702Hz频域分析的结果为f 417959Hz而标准信号的频率为400Hz从而对于标准信号时域分析的精度远高于频域分析的精度图 4 标准正弦信号的频率估计com 带噪声的正弦信号的频率估计先成生幅值100的标准正弦信号再将幅值50的白噪声信号与其混迭对最终得到的信号进行时域分析与频域分析结果如图 5所示可以看出时域分析的结果为f 1589498Hz频域分析的结果为f 200391Hz而标准信号的频率为200Hz 从而对于带噪声的正弦信号频域分析的精度远高于时域分析的精度图 5 带噪声的正弦信号的频率估计com 结果分析与结论在时域频率估计是使用过零检测的方式计算出从而对于带噪声的信号既容易造成误判也容易造成漏判且噪声信号越明显误判与漏判的可能性越大但在没有噪声或噪声很小时时域分析对每个周期长度的检测是没有累积误差的故随着样本容量的增大估计的精度大大提高在频域频率估计是通过找出幅值谱峰值点对应的频率求出故不会有时域分析的问题但频率离散化的误差及栅栏效应却是不可避免地带来误差仅频率离散化的误差就大于Fs2由实验结果及以上的分析可以得出结论在作频率估计时如果信号的噪声很小采用时域分析的方法较好如果信号的噪声较大采用频域分析的方法较好3总结本文给出了基于MATLAB的声音信号频谱分析仪的设计原理与实现方法在原理部分从时域和频域两个方面提供了信号分析所需要的算法流程及计算公式在原理的最后还结合软件工程理论给出了软件的模块划分这样在基于此设计原理的基础上可以用任何平台任何语言进行软件开发在实现方法上结合软件的界面和具体的代码讲述了整个软件编码实现的原理最后结合一个运行实例比较了时域分析与频域分析计算频率的异同之处并分析了误差的原因尽管MATLAB有强大的数学函数库使得编程时间大大缩短但MATLAB有它固有的缺陷如运行速度太慢因为它是解释型语言而且运行依赖了MATLAB软件无法发布为商用软件另外在控制用户输入上也比较难以实现这些缺陷也导致了用MATLAB所开发的软件有这些缺陷通过这次课程设计相信对以后在社会上工作和学习会有很多帮助让我们能更好的进入工作状态最重要的是这次课程设计也增加了我们对问题的研究和探讨在我们以后的学习中会有更多的帮助参考文献[1]黄昱软件频谱仪设计华中科技大学硕士学位论文 20045[2]肖旸胡耀祖基于虚拟技术的频谱分析仪器方案微机发展20036[3]张桂林张烈平基于声卡和Matlab的虚拟信号发生器现代电子技术[4]张海藩软件工程北京人民邮电出版社 20023。
实验一基于MATLAB的白噪声信号u(n)、sinc函数、chirp信号产生实验一、实验目的:1.学会使用MATLAB2.通过实验了解MATLAB如何产生各种常用信号3.掌握MATLAB的编程方法二、实验内容:1.用MATLAB编程产生一均匀分布的白噪声信号u(n),画出其波形,并检验其分布情况。
代码:clear;N = 50000;u = rand(1,N);u_mean = mean(u);power_u = var(u);subplot(211);plot(u(1:100));grid on;ylabel('u(n)');xlabel('n');subplot(212);hist(u,100);grid on;ylabel('histogranm of u(n)');运行结果:2.用MATLAB编程产生一均匀分布、均值为零、功率为0.01的白噪声信号u(n),画出其波形。
代码:clear;p = 0.01;N = 50000;u = rand(1,N);u = u - mean(u);a = sqrt(12*p);u1 = u*a;power_u1 = dot(u1,u1)/N;subplot(111);plot(u1(1:200));grid on;ylabel('u(n)');xlabel('n');运行结果:3.用MATLAB编程产生高斯分布的白噪声信号,使功率为p,并观察数据分布的直方图。
代码:p = 0.1;N = 50000;u = rand(1,N);u = u*a;power_u = var(u);subplot(211);plot(u(1:200));grid on;ylabel('u(n)');xlabel('n');subplot(212);hist(u,50);grid on;ylabel('histgram of u(n)');运行结果:4.用MATLAB编程产生一sinc函数,画出其波形。
1.概述随着软硬件技术的发展.仪器的智能化与虚拟化已成为未来实验室及研究机构的发展方向[1]。
虚拟仪器技术的优势在于可由用户定义自己的专用仪器系统.且功能灵活.很容易构建.所以应用面极为广泛。
基于计算机软硬件平台的虚拟仪器可代替传统的测量仪器.如示波器、逻辑分析仪、信号发生器、频谱分析仪等[2]。
从发展史看.电子测量仪器经历了由模拟仪器、智能仪器到虚拟仪器.由于计算机性能的飞速发展.已把传统仪器远远抛到后面.并给虚拟仪器生产厂家不断带来连锅端的技术更新速率。
目前已经有许多较成熟的频谱分析软件.如SpectraLAB、RSAVu、dBFA等。
声卡是多媒体计算机最基本的配置硬件之一.价格便宜.使用方便。
MATLAB是一个数据分析和处理功能十分强大的工程实用软件.他的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令[3]。
本文将给出基于声卡与MATLAB的声音信号频谱分析仪的设计原理与实现方法.功能包括:<1> 音频信号信号输入.从声卡输入、从WAV文件输入、从标准信号发生器输入;<2> 信号波形分析.包括幅值、频率、周期、相位的估计.以及统计量峰值、均值、均方值和方差的计算;<3> 信号频谱分析.频率、周期的估计.图形显示幅值谱、相位谱、实频谱、虚频谱和功率谱的曲线。
2.设计原理2.1波形分析原理2.1.1 信号频率、幅值和相位估计<1>频率<周期>检测对周期信号来说.可以用时域波形分析来确定信号的周期.也就是计算相邻的两个信号波峰的时间差、或过零点的时间差。
这里采用过零点<ti>的时间差T<周期>。
频率即为f = 1/T.由于能够求得多个T值<ti有多个>.故采用它们的平均值作为周期的估计值。
<2>幅值检测在一个周期内.求出信号最大值y max与最小值y min的差的一半.即A = <y max - y min>/2.同样.也会求出多个A值.但第1个A值对应的y max和y min不是在一个周期内搜索得到的.故以除第1个以外的A值的平均作为幅值的估计值。
使用Matlab进行声音信号处理的基本技巧声音信号处理是一门重要的领域,它涵盖了音频合成、语音识别、音频修复等多个应用方向。
Matlab是一款功能强大的数学软件,也可以用于声音信号处理。
本文将介绍使用Matlab进行声音信号处理的基本技巧,包括声音读取、时域分析、频域分析、滤波和音频合成等内容。
1. 声音读取首先,我们需要将声音文件读取到Matlab中进行处理。
Matlab提供了`audioread`函数用于读取声音文件。
例如,我们可以使用以下代码读取一个wav格式的声音文件:```matlab[y, Fs] = audioread('sound.wav');```其中,`y`是声音信号的向量,每个元素代表一个采样点的数值;`Fs`是采样率,即每秒采样的次数。
通过这个函数,我们可以将声音文件以数字信号的形式加载到Matlab中进行后续处理。
2. 时域分析在声音信号处理中,常常需要对声音信号在时域上进行分析。
我们可以使用Matlab的绘图函数来展示声音信号的波形。
例如,以下代码可以绘制声音信号的波形图:```matlabt = (0:length(y)-1)/Fs;plot(t, y);xlabel('Time(s)');ylabel('Amplitude');title('Sound waveform');```这段代码中,`t`是时间轴,通过除以采样率,我们可以得到每个采样点对应的时间。
`plot`函数用于绘制声音信号的波形图,横轴表示时间,纵轴表示振幅。
通过这种方式,我们可以直观地观察声音信号的时域特征。
3. 频域分析除了时域分析,频域分析也是声音信号处理中常用的方法。
通过对声音信号进行傅里叶变换,我们可以得到声音信号在频域上的表示。
Matlab提供了`fft`函数用于进行傅里叶变换。
以下代码可以绘制声音信号的频谱图:```matlabN = length(y);f = (-N/2:N/2-1)/N*Fs;Y = fftshift(fft(y));plot(f, abs(Y));xlabel('Frequency (Hz)');ylabel('Magnitude');title('Sound spectrum');```在这段代码中,`N`是声音信号的长度,`f`是频率轴,通过调整`f`的取值范围可以实现将零频移动到中心位置。
基于MATLAB的简易声音信号频谱分析仪设计摘要语音信号处理技术是语音处理领域中新近发展起来的一个学科分支,而频谱分析技术是进行语音信号处理的基础。
DFT及FFT变换是进行数字信号频谱分析的重要方法。
DFT是FFT的基础, FFT是DFT 的快速算法。
MATLAB是一个数据分析和处理功能十分强大的工程实用软件,运用它来进行语音信号的采集、分析和处理相当方便。
本文介绍了在MATLAB环境中如何采集声音信号和采集后的频谱分析方法,并使用MATLAB软件的GUI模块,设计了一个简易的声音信号频谱分析仪。
关键字:MATLAB,FFT,声音信号,频谱分析1概述随着信息时代和数字世界的到来,数字信号处理己成为当今一门极其重要的学科和技术领域,数字信号处理在通信、语音、图像、自动控制、医疗和家用电器等众多领域得到了广泛的应用。
任意一个信号都具有时域与频域特性,信号的频谱完全代表了信号,因而研究信号的频谱就等于研究信号本身。
通常从频域角度对信号进行分析与处理,容易对信号的特性获得深入的了解。
因此,信号的频谱分析是数字信号处理技术中的一种较为重要的工具【2】。
声卡是计算机最基本的配置硬件之一,价格便宜,使用方便。
MATLAB 工具箱集成了一些语音处理功能函数。
本文将给出基于声卡与MATLAB 的声音信号频谱分析仪的设计原理与实现方法。
2 设计原理频谱分析用傅立叶变换将波形x(t)变换为频谱X(f),从另一角度来了解信号特征。
常见傅里叶变换有DFT 和FFT 。
DFT 是FFT 的基础, FFT 是DFT 的快速算法,在MATLAB 中可以利用函数fft 来计算序列的离散傅里叶变换DFT 。
FFT 是时域和频域转换的基本运算。
2.1 离散傅里叶级数如果x(n)表示周期为N 的周期序列,即:()()x n x n kN =+ k 为任意整数 (2-1)周期序列用离散的傅里叶级数来表达,其表达式如下:1(2/)01()()N j N kn k x n X k eN π-==∑ (2-2)式(2-2)称为周期序列的离散傅里叶变换的级数表示。
数字信号处理课程设计回声信号的产生与消除姓名张针海学号 ******** 专业电子信息工程指导教师樊玲年级 10级电信2班日期 2013 .5 . 25【摘要】本课程是利用Windows下的录音机,录制一段自己不小于10s的语音,然后在Matlab 软件平台下,利用函数wavread对语音信号进行采样,并记录采样频率和采样点数。
在抽样信号的基础上,通过采样后的的信号与原信号实现一次及多次延迟、叠加产生回波信号,再使用Matlab绘出有回声及无回声语音信号的时域波形和频谱图。
再分别用频率抽样法设计的FIR滤波器和冲激相应不变法设计设计的IIR滤波器消除回声,并记录滤波器的频域响应,再绘制滤波后信号的时域波形和频谱,并对前后信号进行对比,分析信号的变化。
[关键词] 录音 matlab 采样滤波抽样[Abstract] this course is to use a tape recorder to record voice under Windows, a section of their own not less than 10s, then in Matlab software platform, sampling of the speech signal using the function wavread, and record the sampling frequency and sampling points. Based on the sampling signal, through its implementation of single and multiple superposition delay, echo, and use Matlab to draw the echo and echo free speech signal time-domain waveform and spectrum. FIR filter respectively by frequency sampling design method and impulse corresponding invariant IIR filter design to eliminate echo, and record the response of the filter in frequency domain, and then draw the time-domain waveform and spectrum of the filtered signal, and compared before and after the signal, analysis of signal changes目录1 设计目的及要求 (3)1.1设计回音目的及要求 (3)1.2设计滤波器目的及要求 (3)1.2.1 FIR滤波器 (3)1. 2. 2 巴特沃兹滤波器 (3)1. 2. 3 距离估计要求 (4)2 设计原理 (4)3设计内容 (4)3.1语音采集........ (4)3. 2信号分析 (4)3.3制作回音 (5)3.4设计滤波器及滤波 (8)3. 4. 1 设计FIR滤波器及滤波 (8)3.4.1.1单回声的滤波 (8)3. 4.2设计巴特沃兹滤波器及滤波 (12)3.4.2.1设计巴特沃斯数字低通滤波器 (12)3.5估算距离 (13)3.5.1通过理论计算法 (13)3.5.2程序返回测量法 (14)4总结 (15)5、参考文献 (16)1 设计目的及要求1.1设计回音目的及要求现代通信中回波是影响通信质量的噪声,本课程设计是在matble库元件中搜索一段不小于10s的录音,再利用函数wavread对语音信号进行采样,并自身实现一次及多次延迟、叠加产生回波信号,再使用Matlab绘出有回声及无回声语音信号的时域波形和频谱图。
利用Matlab进行声音信号处理的技术方法引言:在现代科技飞速发展的时代,声音信号处理成为一个热门的技术领域。
利用Matlab这一功能强大的软件工具,可以进行各种声音信号处理的研究和应用。
本文将介绍利用Matlab进行声音信号处理的技术方法,包括声音信号采集、预处理、频域分析、音频特征提取、降噪以及语音识别等方面的内容。
一、声音信号采集声音信号采集是声音信号处理的第一步,它的质量直接影响后续处理的效果。
在Matlab中,我们可以利用声音输入和录音功能来实现声音信号的采集。
声音输入函数可以从外部声卡、麦克风等设备录取音频数据,而录音函数则可以通过计算机内部的声卡进行录音。
要进行声音信号采集,首先要设置好采样率和采样位数。
采样率表示每秒采样的次数,常用的采样率有8kHz、16kHz和44.1kHz等。
采样位数表示每个采样值的位数,一般为8位或16位。
在Matlab中,可以使用audiorecorder函数设置采样率和采样位数。
二、声音信号的预处理声音信号预处理是为了去除噪声和提高信号质量,以便后续处理。
常用的声音信号预处理方法包括去噪、滤波、归一化等。
去噪是声音信号预处理的重要步骤。
常见的去噪方法有时域滤波和频域滤波。
时域滤波是通过卷积运算对声音信号进行滤波,可以去除特定频率范围内的噪声。
频域滤波则是将声音信号从时域转换到频域,利用频域上的滤波器对噪声进行滤波。
滤波是声音信号预处理的另一种常用方法,它可以去除声音信号中的杂音和干扰信号。
低通滤波器可以去除高频噪声,而高通滤波器则可以去除低频噪声。
在Matlab中,可以使用fir1函数设计滤波器,然后使用filter函数进行滤波。
归一化是将声音信号的振幅范围缩放到合适的范围内,以便后续处理。
通过归一化,可以消除不同音频文件之间的振幅差异。
三、频域分析频域分析是声音信号处理中常用的方法之一。
在Matlab中,可以通过使用快速傅里叶变换(FFT)函数对声音信号进行频谱分析。
MATLAB中的回声消除与降噪方法详述引言:回声和噪声是我们在日常生活和通信中经常遇到的问题,它们对音频和语音的质量和清晰度产生了负面影响。
为了解决这一问题,MATLAB提供了一系列强大的回声消除和降噪方法。
本文将详细介绍这些方法的原理和应用。
一、回声消除算法回声是由于声音信号在传输路径中由于反射而产生的重复信号。
回声消除的目标是从接收到的信号中移除掉回声部分,以使得最终的信号质量达到最优。
MATLAB提供了几种回声消除算法,其中最常用的两种是自适应滤波器法和频域法。
1. 自适应滤波器法自适应滤波器法是一种实时回声消除算法。
它利用了信号的相关性和自适应滤波器的特性,通过不断调整滤波器的系数来估计和消除回声分量。
该方法的核心思想是使用最小均方(LMS)算法或最小误差(RLS)算法来更新滤波器的系数。
LMS算法是一种基于梯度下降的算法,通过不断调整滤波器系数来最小化预测误差。
RLS算法则是一种递推最小二乘(recursive least squares)算法,通过递推更新协方差矩阵和增益向量来实现快速的滤波器调整。
这两种算法在MATLAB 中都有对应的函数实现,可以根据具体的需求选择合适的算法进行回声消除。
2. 频域法频域法是一种非实时的回声消除算法,它通过对信号进行频谱分析和变换来消除回声成分。
在MATLAB中,常用的频域方法有自适应滤波法、谱减法和频率域滤波法。
自适应滤波法在频域利用滤波器的性质消除回声,谱减法通过对信号的短时傅里叶变换(STFT)分析,将回声成分和噪声成分分离出来,并进行相应的补偿和减弱处理。
频率域滤波法则是通过选择合适的滤波器,仅保留感兴趣频率段内的信号,而将回声成分滤除。
二、降噪方法除了回声消除,降噪也是音频和语音处理中一个重要的任务。
传统的降噪方法有统计学方法和频域滤波方法。
MATLAB提供了丰富的降噪函数和算法,包括使用小波变换、频谱减法、最小均方误差(MMSE)估计等方法。
如何使用MATLAB进行声音信号处理声音信号处理在现代通信、音频处理、语音识别等领域起着非常重要的作用。
MATLAB作为一款功能强大的科学计算软件,在声音信号处理方面具有广泛的应用。
本文将介绍如何使用MATLAB进行声音信号处理。
一、声音信号的基本概念和特征声音信号是一种通过空气、水等介质传播的机械波,具有振幅、频率和相位等特征。
在声音信号处理中,我们常用到的一些概念和特征包括频谱、语谱图、信噪比等。
频谱是声音信号在频域上的表现形式,可以通过傅里叶变换将时域信号转换为频域信号。
MATLAB提供了fft函数可以方便地进行傅里叶变换。
语谱图是声音信号在时间和频率上的三维表示,可以通过短时傅里叶变换(STFT)得到。
MATLAB的spectrogram函数可以实现语谱图的计算和绘制。
信噪比是衡量声音信号中有用信息和噪声之间比例的常用指标,可以通过计算信号的能量和噪声的能量比值得到。
MATLAB提供了snr函数可以计算信噪比。
二、声音信号的读取和保存在使用MATLAB进行声音信号处理之前,我们首先需要将声音信号读取到MATLAB中进行处理。
MATLAB的audioread函数可以实现读取常见音频格式的声音文件,例如.wav、.mp3等。
读取得到的声音信号可以保存在一个向量中,每个采样点的数值表示声音的振幅。
保存处理后的声音信号可以使用MATLAB的audiowrite函数。
我们可以指定保存的音频格式和保存的文件名。
三、声音信号的滤波处理滤波是声音信号处理中常用的技术,可以用来去除信号中的噪声或者增强信号中的某些频率成分。
MATLAB提供了fir1和butter函数可以用于设计和实现各种类型的滤波器。
fir1函数用于设计FIR滤波器,可以通过指定滤波器的阶数和截止频率来设计低通、高通、带通或带阻滤波器。
butter函数用于设计IIR滤波器,可以通过指定滤波器的阶数和截止频率来设计低通、高通、带通或带阻滤波器。
电子信息工程学院《DSP技术及应用》课程设计报告题目:基于MATLAB的回声信号产生器专业班级:通信工程专业二〇一三年六月十六日目录一、设计目的 (1)二、设计要求 (1)三、设计原理及方案 (1)四、设计流程 (5)五、调试分析 (5)六、GUI界面 (17)七、设计总结.………………………………………………………. .20一、设计目的综合运用我们掌握的数字信号处理知识,利用matlab语言编程进行回声信号产生器的设计再对其进行频谱分析,实现回声的产生,消除和隐藏。
1、首先熟练掌握对声音采集、处理、衰减、延时等过程的理论知识。
2、根据设计思路,学习资料的搜集与整理。
3、通过理论与实际的结合,在理论的基础结合实际情况完成课程的设计。
关于MATLAB软件:MATLAB语言具备高效、可及推理能力强等特点,是目前工程界流行最广泛的科学计算语言。
MATLAB强大的运算和图形显示功能,可使信号与系统上机实验效率大大提高。
特别是它的频谱分析和滤波器分析与设计功能很强,使数字信号处理工作变得十分简单,直观。
关于GUI界面:图形用户界面GUI (Graphics User Interface) 是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交流信息的工具和方法。
GUI 设计即可以基本的MATLAB 程序设计为主,也可以鼠标为主利用GUIDE 工具进行设计。
二、设计要求首先,自己录取一个合适的原声信号,并对其进行频谱分析;然后通过数字信号处理对已录制好的原声信号进行延时,衰减,产生出回声信号,通过图形与原声信号进行比较;再把信息转换成二进制信号将其叠加在回声中,通过数字信号处理实现信息的隐藏;最后,通过设计GUI界面将结果展示出来。
1、通过计算机中的y=fft(x)傅里叶变换,对原声信号和回声信号进行频谱分析。
2、通过设计FIR、IIR滤波器对原声信号进行衰减、延时产生一次、三次、六次无限次回声。
3、学习并掌握MATLAB的使用方法,用MATLAB编程和会使用MATLAB中的GUI界面设计。
三、设计原理及方案1、设计原理(1)回声的定义:当声投射到距离声源有一段距离的大面积上时,声能的一部分被吸收,而另一部分声能要反射回来,如果听者听到由声源直接发来的声和由反射回来的声的时间间隔超过十分之一秒,它就能分辨出两个声音这种反射回来的声叫“回声”。
(2)回声信号产生:根据回声的定义,回声信号可以是原始信号通过延时、衰减来生成。
(3)回声信号消除:数字滤波器的作用是滤除信号中某一部分频率分量。
可以将回声信号消除。
(4)回声信号隐藏:回声隐藏利用了人耳的听觉掩蔽效应,是一种有效的音频信息隐藏方法。
(5)处理单元原理:假设x(n)为原始信号,y(n)为经过延时、衰减迭加后产生的“回声信号”,声音信号和经延迟R个周期,衰减系数α(α<1)的单个回声的差分方程有如下表示:y(n)=x(n)+ α·x(n-R)上述差分方程可用系统函数表示为:H(z)=1+α·z-R此滤波器为FIR滤波器,其结构图如下:在实际生活中,往往不止存在一重回声,因此,需要实现多重回声的设计,关于均匀间隔的多重回声的实现,是将每一级回声相对于上一级回声依次衰减和延时R个周期,此时不能再用FIR滤波器来实现,应该用IIR滤波器设计。
IIR 滤波器设计的系统函数如下:当回声次数很多时多重回声的系统函数如下:IIR滤波器结构图:IIR滤波器结构隐藏目的是以添加回声的方式在原有音频信息中嵌入新信息,实现信息隐藏。
它的数学模型可以表示为:典型的回声核脉冲嵌入回声的声音可表示为和的卷积,和,分别为原始声音信号和回声核的单位脉冲响应。
回声信号由引入到原始声音当中,其中,d为延迟时间,为衰减系数。
嵌入回声后的声音信号可以表示为(1)读取语音信号与回放录制一段合适的原声信号,用“[x,fs,bits]=wavread('y',[1 40000])”来读取录制好的语音信号,这是以采样频率fs、采样位数bits从[1 40000]来读取语音,并将采样值放在x中。
用sound(5*x,fs,bits)对声音信号进行回放,乘以5以加强信号,便于听取。
(2)傅里叶变换FFT傅里叶变换调用格式:y=-fft(x)其中,x是序列,y是序列的FFT,,x可以为一向量或矩阵,若x为一向量,y是x的FFT。
且和x相同长度。
若x为一矩阵,则y是对矩阵的每一列向量进行FFT。
如果x长度是2的幂次方,函数fft执行高速基-2FFT算法;否则fft执行一种混合基离散傅里叶变换算法,计算速度较慢。
(3)函数filter函数filter的调用格式为:y=filter(b,a,x)该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。
其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a=1,此时表示FIR滤波器,否则就是IIR滤波器。
该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。
(4)函数zearos函数的一种调用格式为:B = zeros(n)返回一个n*n的矩阵,其元素都为零,如果参数n不是一个标量就会报错。
函数的另一种调用格式为:B = zeros(m,n) 或 B = zeros([m n])返回一个m*n的零矩阵。
函数的另一种调用格式为:B = zeros(m,n,p,…)或 B = zeros([m n p …])返回一个m*n*p*…的零矩阵。
注意:参数m,n,p都是非负整数,负整数都会看成零。
五、调试与分析1、原始信号分析读取一段语音信号,画出其时域波形,用fft对读取的语音信号进行傅里叶变换,并画出其相位与幅值。
[x,fs,bits]=wavread('y',[1 40000]); %读取语音信号n1=0:2000;figure(1)subplot(2,1,1);plot(x); %原始信号时域波形title('原始信号时域波形');X=fft(x); %对原始信号做FFT变换subplot(2,1,2);plot(n1(1:1000),X(1:1000)); %原始信号频谱图title('原始信号频谱图');figure(2)subplot(2,1,1);plot(abs(X));%经傅里叶变换之后的信号的幅值title('幅值');subplot(2,1,2);plot(angle(X));%经傅里叶变换之后的信号的相位title('相位');sound(5*x,fs,bits); %原始语音信号,乘以5是为了加强信号2、回声信号的产生对原始信号取出单声道信号,并用filter函数对其进行衰减和延时,得到回声信号。
(1)FIR滤波器产生一次回声[x,fs,bits]=wavread('y',[1 40000]); %读取语音信号n1=0:2000;b=x(:,1);%取单声道信号yy1=filter([1,zeros(1,12000),0.7],1,[b',zeros(1,30000)]); %FIR滤波器进行滤波figure(1)subplot(2,1,1);plot(yy1); %单回声滤波器时域波形title('单回声滤波器时域波形');YY1=fft(yy1); %对单回声信号做2001点的FFT变换subplot(2,1,2);plot(n1(1:1000),YY1(1:1000)); %单回声滤波器频谱图title('单回声滤波器频谱图');figure(2)subplot(2,1,1);plot(abs(YY1));%经傅里叶变换之后的信号的幅值title('幅值');subplot(2,1,2);plot(angle(YY1));%经傅里叶变换之后的信号的相位title('相位');sound(5*yy1,fs,bits); %经单次回声滤波器后的语音信号,乘以5是为了加强信号(2)IIR滤波器产生多次回声:yy2=filter(1,[1,zeros(1,80000/(N+1)),0.7],[b',zeros(1,40000)]);通过改变式中N 的数值可设置回声的次数,三次回声:[x,fs,bits]=wavread('y',[1 40000]); %读取语音信号n1=0:2000;b=x(:,1);%产生单声道信号N=3;yy2=filter(1,[1,zeros(1,80000/(N+1)),0.7],[b',zeros(1,40000)]);%IIR滤波器进行滤波figure(3)subplot(2,1,1);plot(yy2); %三次回声滤波器时域波形title('三次回声滤波器时域波形');YY2=fft(yy2); %对三次回声信号做FFT变换subplot(2,1,2);plot(n1(1:1000),YY2(1:1000)); %三次回声滤波器频谱图title('三次回声滤波器频谱图');figure(4)subplot(2,1,1);plot(abs(YY2));%经傅里叶变换之后的信号的幅值title('幅值');subplot(2,1,2);plot(angle(YY2));%经傅里叶变换之后的信号的相位title('相位');sound(5*yy2,fs,bits); %经三次回声滤波器后的语音信号,乘以5是为了加强信号使用叠加法产生三次回波:[x,fs]=wavread(‘ding.wav’);x1=x(1:40000); %产生40000行1列矩阵x2=x(1:40000);x3=x(1:40000);x4=x(1:40000);x1=[x1’,zeros(1,18000)]; %x1’为x1的转置,zero是(1,18000)产生1行18000列全零矩阵并加到x1’的后面x2=[zeros(1,6000),0.7*x2’,zeros(1,12000)];x3=[zeros(1,12000),0.4*x3’,zeros(1,6000)];x4=[zeros(1,18000),0.2*x4’];yy1=x1+x2+x3+x4;figure(3)subplot(2,1,1);plot(yy1); %三次回声时域波形title(‘三次回声滤波器时域波形’);YY1=fft(yy1); %三次回声信号做FFT变换subplot(2,1,2);plot(n1(1:1000),YY1(1:1000)); %三次回声频谱图title(‘三次回声滤波器频谱图‘);figure(4)subplot(2,1,1);plot(abs(YY1));%经傅里叶变换之后的信号的幅值title(‘幅值’);subplot(2,1,2);plot(angle(YY1));%经傅里叶变换之后的信号的相位title(‘相位');sound(5*yy1,fs);六次回声:[x,fs,bits]=wavread('y',[1 40000]); %读取语音信号n1=0:2000;b=x(:,1);%产生单声道信号N=6;yy2=filter(1,[1,zeros(1,70000/(N+1)),0.7],[b',zeros(1,40000)]);%IIR滤波器进行滤波figure(3)subplot(2,1,1);plot(yy2); %六次回声滤波器时域波形title('六次回声滤波器时域波形');YY2=fft(yy2); %对六次回声信号做FFT变换subplot(2,1,2);plot(n1(1:1000),YY2(1:1000)); %三次回声滤波器频谱图title('六次回声滤波器频谱图');figure(4)subplot(2,1,1);plot(abs(YY2));%经傅里叶变换之后的信号的幅值title('幅值');subplot(2,1,2);plot(angle(YY2));%经傅里叶变换之后的信号的相位title('相位');sound(5*yy2,fs,bits); %经六次回声滤波器后的语音信号,乘以5是为了加强信号(3)IIR滤波器产生无限次回声函数yy1=filter(B,A,x)利用给出的向量b和a,对x中的数据进行滤波,结果放入向量yy1。