基于MATLAB 回声信号产生器.doc

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MATLAB 回声信号产生器

电子信息工程学院 《》设计报告 题 目:基于的 专业班级:信工程专业      二〇一 年 六 月 十 日 目 录 一、设计目的…………………………………………………………1 二、设计要求…………………………………………………………1 三、设计原理及方案………………………………………………… 四、流程………………………………………………………… 五、调试分析………………………………………………………… 六、…………………………………………………………17 七、………………………………………………………. .20 设计目的 关于软件: 关于GUI界面:图形用户界面GUI (Graphics User Interface) 是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交流信息的工具和方法。GUI 设计即可以基本的MATLAB 程序设计为主,也可以鼠标为主利用GUIDE 工具进行设计。 设计要求 设计原理及方案 当声投射到距离声源有一段距离的大面积上时,声能的一部分被吸收,而另一部分声能要反射回来,如果听者听到由声源直接发来的声和由反射回来的声的时间间隔超过十分之一秒,它就能分辨出两个声音这种反射回来的声叫“回声”。数字滤波器的作用是滤除信号中某一部分频率分量。α(α1)的单个回声的差分方程有如下表示: y(n)=x(n)+ α·x(n-R) 上述差分方程可用系统函数表示为: H(z)=1+α·z-R 此滤波器为FIR滤波器,其结构图如下: 在实际生活中,往往不止存在一重回声,因此,需要实现多重回声的设计,关于均匀间隔的多重回声的实现,是将每一级回声相对于上一级回声依次衰减和延时R个周期,此时不能再用FIR滤波器来实现,应该用IIR滤波器设计。IIR滤波器设计的系统函数如下: 当回声次数很多时多重回声的系统函数如下: IIR滤波器结构图: IIR滤波器结构 隐藏目的是以添加回声的方式在原有音频信息中嵌入新信息,实现信息隐藏。它的数学模型可以表示为: 典型的回声核脉冲 嵌入回声的声音可表示为和的卷积,和,分别为原始声音信号和回声核的单位脉冲响应。回声信号由引入到原始声音当中,其中,d为延迟时间,为衰减系数。嵌入回声后的声音信号可以表示为 2、设计方案 (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=1B?=?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

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档