基于MATLAB的语音信号的延时和混响处理.doc_第1页
基于MATLAB的语音信号的延时和混响处理.doc_第2页
基于MATLAB的语音信号的延时和混响处理.doc_第3页
基于MATLAB的语音信号的延时和混响处理.doc_第4页
基于MATLAB的语音信号的延时和混响处理.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计任务书摘要(中文)数字信号处理(Digital Signal Processing)技术,从20世纪60年代以来,随着计算机科学和信息科学发展,数字处理技术应运而生并得以快速发展。 语言是人们进行信息沟通的主要方式之一,它具有直接、自然、方便等优点。语音则是语言的物理层表达方式。语音处理主要是对语音进行机器处理,以达到传输、自动识别、机器理解等目的。进行了语音处理过程的滤波、采样、傅立叶变换和谱包络提取的算法实现研究,讨论了在算法的DSP实现方法, Matlab 语言是一种广泛应用于工程计算及数值分析领域的新型高级语言, Matlab 功能强大、简单易学、编程效率高。特别是Matlab 还具有信号分析工具箱, 不需具备很强的编程能力, 就可以很方便地进行信号分析、处理和设计关键词 语音信号处理 MATLAB语言 滤波器 频谱分析 图形用户界面摘要(英文)Digital Signal Processing (Digital Signal Processing) technology from the 1960s,along with the development of computer science and information science, digital processing techniques have emerged and to rapid development. Language is the communication of people to one of the main, it has a direct, natural, and easy. Voice is the language of the physical layer of expression. Voice processing machines mainly for voice processing, in order to achieve transmission, automatic recognition, machine understanding of other purposes. For voice processing filtering, sampling, Fourier transform and spectral envelope extraction algorithm research, discusses the implementation of DSP algorithms, Matlab language is a widely used engineering calculation and numerical analysis of the field of new high-level language, Matlab powerful, easy to learn, programming and high efficiency. Matlab also has a particular signal analysis toolbox, need not have strong programming skills, you can easily carry out signal analysis, processing and design Keywords Speech signal processing Spectral analysis of MATLAB Filter Spectrum analysis Graphical User Interface1 引言数字信号处理主要是研究用数字或符号序列表示和处理信号。处理的目的可以是削弱信号中的多余内容,滤除混杂的噪声和干扰,或者是将信号变换为容易分析和识别的形式,便于估计和选择它的特征参数。声音信号是一维连续信号,而计算机只能处理离散信号。为了从离散信号还原连续信号,根据采样定理,可以确定采样频率的最小值。wav文件是一种数字声音文件格式,本课程设计基于Matlab分析了wav声音文件频谱与声音的关系。通过采集个人的一段声音进行频谱分析等处理,然后设计数字滤波器处理这个原始声音的wav文件,并比较滤波以后输出声音信号与原声音信号的异同。基于MATLAB 的语音信号特技处理, 其实质是针对于不同的滤波器性能的分析与比较。对于滤波器的设计可以使用MATLAB 中自带的工具, 也可以通过编程或直接利用MATLAB中的函数库来实现。2 课程设计题目描述和要求2.1设计内容(1)利用Windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样。(2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图。(3)将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较。(4)设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器,并画出滤波器的频域响应。(5)用自己设计的滤波器对采集的语音信号进行滤波。(6)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。(7)回放语音信号。2.2设计要求(1)熟悉离散信号和系统的时域特性。(2)熟悉语音信号的特点。(3)掌握数字信号处理的基本概念,基本理论和基本方法。(4)掌握序列快速傅里叶变换方法。(5)学会MATLAB的使用,掌握MATLAB的程序设计方法。(6)掌握MATLAB设计各种数字滤波器的方法和对信号进行滤波的方法3 课程设计报告内容3.1 总体设计3.1.1设计的总体方案图利用Windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较设计几种特殊类型的滤波器:无限个回声滤波器,全通结构的混响器,并画出滤波器的频域响应。用自己设计的滤波器对采集的语音信号进行滤波分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化回放语音信3.1.2程序流程图用wavread从自己的电脑导入Windows下1s语音信号画出采样后语音信号的时域波形与频谱图。N=2001,和调用fft函数快速傅里叶变换。对采样后语音信号进行延时30,在调整采样信号的长度,两者相加,就得到混响。无限个回声滤波器Bz=0,0,0,0,0,0,0,0,0,0,1;Az=1,0,0,0,0,0,0,0,0,0,-a;yy1=filter(Bz,Az,x);YY1=fft(yy1,2001);全通结构的混响器Bz1=a,0,0,0,0,0,0,0,0,0,1;Az1=1,0,0,0,0,0,0,0,0,0,a;yy2=filter(Bz1,Az1,x);YY2=fft(yy2,2001);单回声滤波器a=0.5;y2=x+z*0.5;Y2=fft(y2,2001);sound(yy1,fs,bits);sound(yy2,fs,bits);sound(y2,fs,bits);3.2 详细设计过程3.2.1混响与延时混响效果主要是用于增加音源的融合感。自然音源的延时声阵列非常密集、复杂,所以模拟混响效果的程序也复杂多变。常见参数有以下几种:(1)混响时间:能逼真的模拟自然混响的数码混响器上都有一套复杂的程序,其上虽然有很多技术参数可调,然而对这些技术参数的调整都不会比原有的效果更为自然,尤其是混响时间。(2)高频滚降:此项参数用于模拟自然混响当中,空气对高频的吸收效应,以产生较为自然的混响效果。一般高频混降的可调范围为0.11.0。此值较高时,混响效果也较接近自然混响;此值较低时,混响效果则较清澈。(3)扩散度:此项参数可调整混响声阵密度的增长速度,其可调范围为010,其值较高时,混响效果比较丰厚、温暖;其值较低时,混响效果则较空旷、冷僻。(4)预延时:自然混响声阵的建立都会延迟一段时间,预延时即为模拟次效应而设置。(5)声阵密度:此项参数可调整声阵的密度,其值较高时,混响效果较为温暖,但有明显的声染色;其值较低时,混响效果较深邃,切声染色也较弱。(6)频率调制:这是一项技术性的参数,因为电子混响的声阵密度比自然混响稀疏,为了使混响的声音比较平滑、连贯,需要对混响声阵列的延时时间进行调制。此项技术可以有效的消除延时声阵列的段裂声,可以增加混响声的柔和感。(7)调治深度:指上述调频电路的调治深度。延时就是将音源延迟一段时间后,再欲播放的效果处理。依其延迟时间的不同,可分别产生合唱、镶边、回音等效果。当延迟时间在335ms之间时人耳感觉不到滞后音的存在,并且他与原音源叠加后,会因其相位干涉而产生梳状滤波效应,这就是镶边效果。如果延迟时间在50ms以上时,其延迟音就清晰可辨,此时的处理效果才是回音。回音处理一般都是用于产生简单的混响效果。延时、合唱、镶边、回音等效果的可调参数都差不多,具体有以下几项:延时时间(Dly),即主延时电路的延时时间调整。反馈增益(FB Gain),即延时反馈的增益控制。反馈高频比(Hi Ratio),即反馈回路上的高频衰减控制。调制频率(Freq),指主延时的调频周期。调制深度(Depth),指上述调频电路的调制深度。高频增益(HF),指高频均衡控制。预延时(Ini Dly),指主延时电路预延时时间调整。均衡频率(EQ F),这里的频率均衡用于音色调整,此为均衡的中点频率选择。由于延时产生的效果都比较复杂多变,如果不是效果处理专家,建议使用设备提供的预置参数,因为这些预置参数给出的处理效果一般都比较好。3.2.2离散傅立叶变换在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅立叶变换和逆变换。下面介绍这些函数。函数FFT用于序列快速傅立叶变换。函数的一种调用格式为 y=fft(x)其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT。且和x相同长度。若x为一矩阵,则y是对矩阵的每一列向量进行FFT。如果x长度是2的幂次方,函数fft执行高速基2FFT算法;否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。函数FFT的另一种调用格式为 y=fft(x,N)式中,x,y意义同前,N为正整数。函数执行N点的FFT。若x为向量且长度小于N,则函数将x补零至长度N。若向量x的长度大于N,则函数截短x使之长度为N。若x 为矩阵,按相同方法对x进行处理。经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。MATLAB提供求复数的幅值和相位函数:abs,angle,这些函数一般和FFT同时使用。用MATLAB工具箱函数fft进行频谱分析时需注意:(1) 函数fft返回值y的数据结构对称性。(2) 频率计算。(3) 作FFT分析时,幅值大小与FFT选择点数有关,但不影响分析结果。3.2.3滤波器设计单回声滤波器的系统函数:H(z)= 1无限个回声滤波器的系统函数:H(z)= 1全通结构的混响器的系统函数:H(z)= 1 函数filter函数filter的调用格式为 y=filter(b,a,x)该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a1,此时表示FIR滤波器,否则就是IIR滤波器。该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。3.2.4图形用户界面设计图形用户界面GUI (Graphics User Interface) 是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交流信息的工具和方法。GUI 设计即可以基本的MATLAB 程序设计为主,也可以鼠标为主利用GUIDE 工具进行设计。GUIDE ( Graphics User Interface Design Environ2ment) 是一个专用于GUI 程序设计的快速开发环境,使用者通过鼠标就能迅速地产生各种GUI 控件,并随心所欲地改变它们的外形、大小及颜色等,从而帮助用户方便地设计出各种符合要求的图形用户界面。调用GUIDE 的方法有2 种,在MATLAB 命令窗口中输入guide 命令,或在MATLAB 主菜单中点击File New GUI 即可打开一个可编辑的新窗口。在GUIDE 设计环境中,需要用到的工具有属性编辑器、控件布置编辑器、菜单编辑器、对象浏览器、网格标尺设置编辑器以及GUI 应用属性设置编辑器等。GUI 设计面板是GUI 设计工具应用的平台,面板上部提供了菜单和常用工具按钮,左边提供了多种GUI 控件,如按钮、单选按钮、复选框、文本框等。进行GUI 设计时,首先单击GUI 面板左边所需的控件,然后在右边的图形界面编辑区中再次单击某一恰当的位置,这时将在该位置上为图形界面添加一相应的控件,接下来,通过属性编辑器和对齐编辑器对各控件设置相关属性和进行界面布置,以完善界面功能。4.设计的步骤及代码编写4.1从Windows读取1s的语音信号x,fs,bits=wavread(bb.wav,500 50000);用于读取语音,采样值放在向量x中,fs表示采样频率(Hz),bits表示采样位数。500 50000表示读取从501点到50000点的值(若只有一个N的点则表示读取前N点的采样值)。4.2采样后语音信号的时域波形和频谱x=x(:,1); %我这里假设的声音是双声道,我只取单声道作分析,如果你想分析另外一个声道,n1=0:2000;N=size(x,1);axes(handles.axes3); % GUI句柄将图形与axes3联系起来plot(x);title(采样后语音信号的时域波形,fontname,宋体);Y=fft(x,2001);axes(handles.axes4);plot(n1(1:1000),Y(1:1000);title(采样后语音信号的频谱图,fontname,宋体);3.1 原始语音信号时域波形和频谱y,fs,bits=wavread(OVoice.wav);%用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。sound(y,fs,bits);%播放原始信号Y=fft(y);%对原始信号取傅里叶变换subplot(2,2,1:2);plot(y);title(原始信号时域波形);subplot(2,2,3);plot(abs(Y);title(原始信号幅频);subplot(2,2,4);plot(angle(Y);title(原始信号相频);4.3对采样后的信号延时100和混响z=zeros(100,1);x;plot(z);title(延时后的时域图);Z=fft(z,2001);plot(n1(1:1000),Z(1:1000);title(延时后的频谱图 );x=x;zeros(100,1);y1=x+z;plot(y1);title(混响的时域图);Y1=fft(y1,2001);plot(n1(1:1000),Y1(1:1000);title(混响的频谱图 );4.4单回声滤波器sound(y,fs,bits); 用于对声音的回放。向量y则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。a=0.5;y2=x+z*0.5;plot(y2);title(单回声滤时域图);Y2=fft(y2,2001);plot(n1(1:1000),Y2(1:1000);title(单回声滤波器频谱图 );sound(y2,fs,bits); 4.5无限个回声滤波器Bz=0,0,0,0,0,0,0,0,0,0,1; Az=1,0,0,0,0,0,0,0,0,0,-a; yy1=filter(Bz,Az,x);plot(yy1);title(无限个回声滤波器时域波形);YY1=fft(yy1,2001);plot(n1(1:1000),YY1(1:1000);title(无限个回声滤波器频谱图 );sound(yy1,fs,bits);4.6全通结构的混响器Bz1=a,0,0,0,0,0,0,0,0,0,1;Az1=1,0,0,0,0,0,0,0,0,0,a;yy2=filter(Bz1,Az1,x);plot(yy2);title(全通应的时域图 )YY2=fft(yy2,2001);plot(n1(1:1000),YY2(1:1000);title(全通应的频谱图 )sound(yy2,fs,bits);plot(n1(1:1000),YZ(1:1000);5. 调试分析1设计的用户界面运行程序2语音信号经过采样操作图4采样后信号的时域和频域图3采样后信号进行延时操作图5 延时后信号的时域和频域图延时:从时域图出延时是让原来的波形向右移动。从频谱图看在刚开始延时前曲线往上,延时后曲线往下,4采样后语音信号经混响操作图6采样后信号的时域和频域图混响:在时域图看出来在前30Hz没有变化,混响之后幅度都变化了并且在频率有了延长了。在频谱图中在刚开始延时前曲线往上,混响后的有跳动、下降、上升。也在1000Hz幅度有变化,混响大概在2000Hz很密集,而混响前的很稀疏。相反在大概3000Hz混响的很稀疏,混响前的很密集。5语音信号通过单回声滤波器图7单回声滤波后信号的时域和频域图时域上形状大致相同,幅度有微小变化。频谱上滤波前在开始先上跳变,再下降,在上升。而滤波后先上跳变,后面的下降和上升波动很大,滤波前的密集的长度比滤波后的短。6语音信号通过无限回声滤波器图8无限回声滤波后信号的时域和频域图时域上滤波前的幅度比滤波后的数值大,形状大体相似,在1800以后滤波前有较小的波动,滤波后只有一次的波动。在频谱上在1000Hz以后幅度的变化趋势是相反的,滤波前的幅度大体上比滤波后的高,在5000Hz以后滤波前的波动比滤波后大。7语音信号通过全通滤波器图9 全通滤波后信号的时域和频域图时域上形状大致一样,滤波前的幅度比滤波后大,2000Hz左右滤波波动较小,滤波后的波动相比较大。在频谱上滤波后有一条负值幅度很大的直线,其它的幅度都比滤波前的小,并且紧密的地方不同。结果分析与体会通过两周的课程设计对数字信号处理有了更进一步的熟悉,实际操作加深了对课本上的知识的理解。本次课题是基于MATLAB的语音信号的特技处理,对语音信号进行延时、混响、滤波等操作。通过上网搜索资料,查阅课本及课外书籍,动手设计滤波器、用户图形界面,采集语音,语音分析等工作,加强了对MATLAB程序的编写能力以及对数字信号处理的相关知识的理解。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,通过课程设计我们能够比较系统的了解理论知识,把理论和实践相结合,并且用到生活当中。在做设计的过程中总会出现各种问题,在这种情况下我们都会努力寻求最佳路径解决问题,无形间提高了我们的动手,动脑能力,并且同学之间还能相互探讨问题,研究解决方案,增进大家的团队意识。通过课程设计让我知道了,我们平时所学的知识如果不加以实践的话等于纸上谈兵。课程设计主要是我们理论知识的延伸,它的目的主要是要在设计中发现问题,并且自己要能找到解决问题的方案,形成一种独立的意识。我们还能从设计中检验我们所学的理论知识到底有多少,巩固我们已经学会的,不断学习我们所遗漏的新知识,把这门课学的扎实。参考资料1. 邹彦,DSP原理及应用,第1版,电子工业出版社,2006;2张雄伟,DSP集成开发与应用实例,第1版,电子工业出版社,2002;3. 张洪涛等,数字信号处理,第一版,华中科技大学出版社,20074. 彭启琮等,DSP技术的发展与应用,第二版,高等教育出版社,20075. 杨述斌等,数字信号处理实践教程,第一版,华中科技大学出版社,2007附录function varargout = design100(varargin)% DESIGN100 M-file for design100.fig% DESIGN100, by itself, creates a new DESIGN100 or raises the existing% singleton*.% H = DESIGN100 returns the handle to a new DESIGN100 or the handle to% the existing singleton*.% DESIGN100(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in DESIGN100.M with the given input arguments.% DESIGN100(Property,Value,.) creates a new DESIGN100 or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before design100_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to design100_OpeningFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help design100 % Last Modified by GUIDE v2.5 21-Jun-2011 19:49:33 % Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, design100_OpeningFcn, . gui_OutputFcn, design100_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT % - Executes just before design100 is made visible.function design100_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to design100 (see VARARGIN) % Choose default command line output for design100handles.output = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes design100 wait for user response (see UIRESUME)% uiwait(handles.figure1); % - Outputs from this function are returned to the command line.function varargout = design100_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structurevarargout1 = handles.output; % - Executes on button press in only.function only_Callback(hObject, eventdata, handles)% hObject handle to only (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)x,fs,bits=wavread(bb.wav,500 50000);%x,fs,bits=wavread(44.wav,50000);x=x(:,1);%sound(x,fs);n1=0:2000;N=size(x,1);z=zeros(100,1);x;k=x;zeros(100,1);alabel(x,y,b)a=0.5;y2=k+z*0.5;axes(handles.axes11)plot(y2);title(单回声滤波时域图,fontname,宋体);Y2=fft(y2,2001);axes(handles.axes12)plot(n1(1:1000),Y2(1:1000);title(单回声滤波频谱图,fontname,宋体);sound(y2,fs,bits); % - Executes on button press in many.function many_Callback(hObject, eventdata, handles)% hObject handle to many (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)x,fs,bits=wavread(bb.wav,500 50000);%x,fs,bits=wavread(44.wav,50000);x=x(:,1);sound(x,fs);n1=0:2000;N=size(x,1);z=zeros(100,1);x;k=x;zeros(100,1);a=0.5;Bz=0,0,0,0,0,0,0,0,0,0,1; Az=1,0,0,0,0,0,0,0,0,0,-a; yy1=filter(Bz,Az,k);axes(handles.axes13)plot(yy1);title(无限个回声滤波时域波形,fontname,宋体);YY1=fft(yy1,2001);axes(handles.axes14)plot(n1(1:1000),YY1(1:1000);title(无限个回声滤波频谱图,fontname,宋体);sound(yy1,fs,bits); % - Executes on button press in all.function all_Callback(hObject, eventdata, handles)% hObject handle to all (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)x,fs,bits=wavread(bb.wav,500 50000);%x,fs,bits=wavread(44.wav,50000);x=x(:,1);%sound(x,fs);n1=0:2000;N=size(x,1);z=zeros(100,1);x;k=x;zeros(100,1);a=0.5;Bz1=a,0,0,0,0,0,0,0,0,0,1;Az1=1,0,0,0,0,0,0,0,0,0,a;yy2=filter(Bz1,Az1,k);axes(handles.axes9)plot(yy2);title(全通结构的时域图,fontname,宋体)YY2=fft(yy2,2001);axes(handles.axes10)plot(n1(1:1000),YY2(1:1000);title(全通结构的频谱图,fontname,宋体)sound(yy2,fs,bits); % - Executes on button press in same.function same_Callback(hObject, eventdata, handles)% hObject handle to same (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)x1=wavread(bb.wav);%x1=wavread(44.wav);axes(handles.axes1);%subplot(2,1,1);plot(x1); %做原始语音信号的时域图形title(原始语音信号时域图,fontname,宋体); n1=0:2000;Y=fft(x1,2001);axes(handles.axes2);%subplot(2,1,2);plot(n1(1:1000),Y(1:1000);title(原始语音信号频谱图,fontname,宋体);x,fs,bits=wavread(bb.wav,500 50000);%x,fs,bits=wavread(44.wav,50000);sound(x,fs); % - Executes on button press in after.function after_Callback(hObject, eventdata, handles)% hObject handle to after (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)x,fs,bits=wavread(bb.wav,500 50000);%x,fs,bits=wavread(44.wav,50000);x=x(:,1);sound(x,fs);n1=0:2000;N=size(x,1);axes(handles.axes3); %subplot(2,1,1);plot(x);title(采样后语音信号时域波形,fontname,宋体);Y=fft(x,2001);axes(handles.axes4);%subplot(2,1,2);plot(n1(1:1000),Y(1:1000);title(采样后语音信号频谱图,fontname,宋体); % - Executes on button press in delay.function delay_Callback(hObject, eventdata, handles)% hObject handle to delay (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)x,fs,bits=wavread(bb.wav,500 50000);%x,fs,bits=wavread(44.wav,50000);x=x(:,1);%sound(x,fs);n1=0:2000;N=size(x,1);z=zeros(100,1);x;axes(handles.axes5);%subplot(2,1,1);plot(z);title(延时后的时域图,fontname,宋体);Z=fft(z,2001);axes(handles.axes6);%subplot(2,1,2);plot(n1(1:1000),Z(1:1000);title(延时后的频谱图 ,fontname,宋体);sound(z,fs); % - Executes on button press in mix.function mix_Callback(hObject, eventdata, handles)% hObject handle to mix (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)x,fs,bits=wavread(bb.wav,500 50000);%x,fs,bits=wavread(44.wav,50000);x=x(:,1);sound(x,fs);n1=0:2000;N=size(x,1);k=x;zeros(100,1);z=zeros(100,1);x;y1=k+z;axes(handles.axes7);%figure(3);%subplot(2,1,1);plot(y1);title(混响的时域图,fontname,宋体);Y1=fft(y1,2001);axes(handles.axes8);%subplot(2,1,2);plot(n1(1:1000),Y1(1:1000);title(混响的频谱图,fontname,宋体);sound(y1,fs);% - Executes during object creation

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论