DSP语音信号处理课程设计报告书-语音信号处理GUI工具箱设计.doc_第1页
DSP语音信号处理课程设计报告书-语音信号处理GUI工具箱设计.doc_第2页
DSP语音信号处理课程设计报告书-语音信号处理GUI工具箱设计.doc_第3页
DSP语音信号处理课程设计报告书-语音信号处理GUI工具箱设计.doc_第4页
DSP语音信号处理课程设计报告书-语音信号处理GUI工具箱设计.doc_第5页
免费预览已结束,剩余24页可下载查看

下载本文档

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

文档简介

吉林工程技术师范学院dsp语音信号处理课程设计报告书设计内容: 语音信号处理gui工具箱设计 专 业: 电子信息 班级: 0742 学生姓名: 学号: 29 指导教师: 信息工程学院 摘要语音信号处理是研究数字信号要处理技术和语音信号进行处理的一门学科,是一门新型的学科,是在多们学科基础上发展起来的综合性技术,它设计到数字信号处理、模式识别、语言学、语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科。处理的目的是要得到一些语音参一以便高效地传输或储存;或者是通过处理的某种运算以达到某种用途的要求。语音信号处理又是一门新兴的边缘学科。如上所述,它是“语言语音学”与“数字信号处理”两个学科相结合的产物。语音信号处理属于信息科学的一个重要分支,大规模集成技术的高度发展和计算机技术的飞速前进,推动了这一技术的发展。在数字音频技术和多媒体技术迅速发展的今天,传统的磁带语音录放系统因体积大、使用不便、放音不清晰而受到了巨大挑战。本课题组提出的体积小巧,功耗低的数字化语音存储与回放系统,可以有效的解决传统的语音录放系统在电子与信息处理的使用中受到的限制。 本文提出了语音信号处理课程建设的实验环节中的一些考虑,作为专业课程的学习,实验内容不能仅仅停留在验证性实验上,还应增加实验延伸的设计要求,使学生加深对理论分析认识的同时,强调培养学生的实际动手能力和知识综合运用能力。从而提高语音信号的教学和实验的质量。实验内容采用matlab编程实现,不仅易于语音信号处理的实现,更易引导学生完成实验延伸的设计。关键字:matlab软件 语音信号处理 实验设计i 目录目 录摘 要 第一章 绪论11.1 选题背景11.2 课题任务11.3 课题意义1第二章 理论基础及系统要求22.1 引言22.2 课程设计基本要求22.3 系统基本原理2第三章 设计方案论证33.1设计理论依据3第四章 图形用户界面设计4 4.1图形用户界面概念4 4.2用户界面设计4第五章 课程设计的软件实现8 5.1部分函数语法格8 5.2语音信号处理的相关函数8 5.3 gui实验箱操作界面设计14第六章 心得体会15附录源代码13参考文献1i dsp语音信号处理系统课程设计第一章 绪论1.1 选题背景 在我们的现实生活中从磁带、录像带到cd、vcd、dvd;从黑白电视机、彩色电视机、高清晰度电视机(hdtv)到具有数字信号处理功能的电视机;从留声机、录音机到语音信箱;现在正处在模拟信息到数字信息的变革之中,传统的磁带语音录放系统因其体积大,使用不便,在电子与信息处理的使用中受到许多限制。 虽然,目前广播电视系统尚未实现真正的数字化,相信在不久的将来,真正的数字电视机、数字收音机、数字收录机将进入家庭。所以,研究音频信号的数字化存储、处理和回放系统有着很重要的现实意义。通过设计语音信号实验箱可以对语音信号实现各种形式的变换,因此学会对语音信号的处理,也可自行研究将此语音处理技术应用到现实生活中。1.2 课题任务 本实验任务所提出的语音信号处理实验箱系统,其基本原理是对语音的录音和放音进行数字化控制.其中,关键技术在于:为了增加语音存储时间,提高存储器的利用率,采用了非失真压缩算法对语音信号进行压缩后再存储,而在回放是再进行解压缩;同时,对输入语音信号进行数字滤波以抑制杂音和干扰,从而确保了语音回放的可靠质量. 通过设计一个gui实验箱,并添加相应的控制控件,添加一个声音文件,通过matlab编程,使其通过各种按钮实现语音信号处理的各种功能,最后做成一个完整的语音信号处理实验箱。1.3 课题意义:语音信号处理是一门比较实用的电子工程的专业课程,语音是人类获取信息的重要来源和利用信息的重要手段,通过语言相互传递信息是人类最重要的基本功能之一,语言是人类特有的功能,它是创造和记载几千年来人类文明史的根本手段,没有语言就没有今天的人类文明,语音是语言的声学表现,是相互传递信息的重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,它是一门新兴的学科,同时又是综合性的多学科领域行业涉及面很广的交叉学科。第二章 理论基础及系统要求2.1 引言目前,随着数字化信号处理技术的不断提高,单片机,数字信号处理器以及语音处理大规模集成电路的进步,语音合成,语音识别,语音存储和回放技术的应用越来越广泛.本文提出的体积小巧,功耗低的数字化语音存储与回放系统将完全可以替代传统的语音录放系统.2.2 课程设计基本要求(1)学会matlab的使用,掌握matlab的程序设计方法;(2)掌握在windows 环境下语音信号采集的方法;(3)掌握数字信号处理的基本概念,基本理论和基本方法;(4)掌握matlab设计的方法;(5)学会用matlab对信号进行分析和处理。2.3 系统基本原理语音采集原理是,人耳能听到的声音是一种频率范围为20hz20khz,而一般语音频率最高为3.4khz.语音的采集是指语音声波信号经麦克风和高频放大器转换成有一定幅度的模拟量电信号,然后再转换成数字量的全过程.本次设计的基本原理是对语音的录音和放音进行数字化控制.其中,关键技术在于:为了增加语音存储时间,提高存储器的利用率,采用了非失真压缩算法对语音信号进行压缩后再存储,而在回放是再进行解压缩;同时,对输入语音信号进行数字滤波以抑制杂音和干扰,从而确保了语音回放的可靠质量. 通过设计一个gui实验箱,并添加相应的控制控件,添加一个声音文件,通过matlab编程,使其通过各种按钮实现语音信号处理的各种功能,最后做成一个完整的语音信号处理实验箱。第三章 设计方案论证3.1 设计理论依据3.1.1采样定理:在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5-10倍;采样定理又称乃奎斯特定理。3.1.2 采样频率: 采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调、衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也就越精确,采样频率与声音频率之间有一定的关系,根据奈奎斯特理论,只有采样频率高于声音信号最高频率的2倍的时候,才能把数字信号表示的声音还原成为原来的声音,这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。3.1.3 采样位数与采样频率采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时候使用数字声音信号的二进制为数。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。采样位数和采样频率对于音频接口来说是最为重要的两个基本指标,也是选择音频接口的两个重要标准。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。每增加一个采样位数相当于力度范围增加了6db。采样位数越多则捕捉到的信号越精确。对于采样率来说你可以想象它类似一个照相机。显然采样率越高,计算机提取的图片越多,对于原始 的还原也越加精确。第四章 图形用户界面设计4.1图形用户界面概念图形用户界面或图形用户接口是指采用图形方式显示的计算机操作环境用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简便易用。gui是matlab提供的图形用户界面开发环境,提供了一系列用于创建图形用户界面的工具,从而简化界面布局和编程工作。4.2用户界面设计4.2.1 gui设计模板在matlab主窗口中,选择file菜单中的new菜单项,再选择其中的gui命令,就会显示图形用户界面的设计模板。matlab为gui设计一共准备了四个模板,分别是blank gui、gui with uicontrols、gui with axes and menu、modal question dialog。当用户选择不同的模板时,在gui设计模板界面的右边就会现实出与该模板对应的gui图形。4.2.2 gui设计窗口在gui设计模板中选中一个模板,然后单击ok按钮,就会现实gui设计窗口,选择不同的gui设计模式时,在gui设计窗口中显示的结果是不一样的。gui设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等部分组成。gui设计窗口的菜单栏有file、edit、view、layout、tools和help六个菜单项,使用其中的命令可以完成图形用户界面的设计操作。 4.2.3 gui设计窗口的基本操作(1)前面板的设计:在gui设计窗口创建图形对象后,通过双击该对象,就会显示该对象的属性编辑器。如下图所示。例如,创建一个push button对象,并设计该对象的属性值。 图4-1 按钮属性编辑器通过以上的按钮属性编辑器可以根据个人情况对按钮的名称、颜色、大小等方面的属性进行修改,使按钮在视觉上变的更加完美。(2)按钮功能的实现:在gui设计窗口创建按钮后,通过右键单击按钮,选择view callbacks 下的callback对相应的按钮进行编程,使按钮实现相应的功能,如下图所示对按钮的相应功能进行设置。 图4-2 按钮功能编辑器进入到按钮程序编辑窗口,通过编程即可实现按钮的相应功能,如下图: 图4-3 按钮的编程实现界面通过对各个按钮控件的修改,和对m文件程序的添加就完成对gui窗口的设计,最后得到的图形化操作界面如下图所示: 图4-4 图形化操作界面4.2.4 语音的录入与打开 在matlab中,y,fs,bits=wavread(blip,n1 n2);用于读取语音,采样值放在向y中,fs表示采样频率,bits表示采样位数。n1 n2表示读取从n1点到n2点的值。 sound(x,fs,bits);用于对声音的回放,向量y则就代表了一个信号也就是说可以像处理一个信号表达式一样处理这个声音信号。第五章 课程设计的软件实现5.1部分函数语法格式读wav文件: x=wavread(filename) 数组a及b中元素相乘: a.*b创建图形窗口命令: figure绘图函数: plot(x) 坐标轴: axis(xmin xmax ymin ymax)坐标轴注解: xlabel() ylabel() 图例注解: legend()一阶高通滤波器: y=filter(1-0.09375,1,x)分帧函数: f=enframe(x,len,inc) x为输入语音信号,len指定了帧长,inc指定帧移,函数返回为nlen的一个矩阵,每一行都是一帧数据。5.2 语音信号处理的相关函数5.2.1语音信号的短时谱:周期性声门波可表示为: (5-1)其中, gn是声门波的单周期的波形,pn是间隔为 p 的周期采样序列。当 un通过线性非时变声道,且该声道的单位冲击响应为 hn时,声道输出为: (5-2)为了观察一段语音,需要将声道输出乘以一个以时刻为中心的窗函数 wn,即得到: (5-3)这段语音信号的频域表达式为 : (5-4)即语音信号的谱包络为 语谱图就是显示时变频谱幅度特征的图形表达式为 (5-5)将语音信号短时谱程序写入到matlab中得到单色语谱图的波形如下:图 5-1 语音信号单色语谱图5.2.2 自相关方法估计语音信号的声道参数:由均方预测误差最小的得到正则方程 (5-6)其中, (5-7)在最佳解时的误差为 (5-8)在自相关法中式5-6,式5-8变为 (5-9) (5-10)由式5-9和式5-10可列出方程组式5-11 (5-11)解方程组 式5-9 求出线性预测系数,通过误差式5-11可求出增益g (5-12)加窗后信号频谱图如下:图5-2 加窗后信号频谱图通过以上的方法,改变参数分别求得4极点模型频率响应和6极点模型频率响应,六极点波形如下图所示: 图5-3 六极点波形图最后通过以上方法用一个函数分别实现以上三个功能,三个波形显示在一个界面,通过观察图形,查看它们之间的分别。三者比较所得到的波形如下:图 5-4 三者比较波形图5.2.3 基音周期检测:数据为浊音语音信号speech1_10k(10000 样点/秒)用 25ms 的汉明窗对语音信号 speech1_10k 进行加窗处理,并画出所得到的加窗信号的自相关函数,再用根据中心消波法及三电平中心消波法原理改进程序,最后对比中方法基音检测的效果并分析结果。实验原理及方法(1)自相关检测原理:对于离散的数字语音信号序列x(n),如果周期n,则自相关函数也是同周期的周期函数。即:x(n)=x(n+n).清音信号没有周期性,它的自相关函数也没有周期。浊音信号具有准周期性。自相关基因检测正是利用这一性质对语音信号进行基因检测的。(2)中心消波法检测原理:中心消波处理是使用如下图所示的中心消波函数进行处理的: 图5-5 中心消波检测图(3)三电平消波法原理:为了减少自相关计算中的乘法运算,可以把上述中心消波以后的信号y(n)的自相关用两个信号的互相关代替,其中一个信号是y(n)另一个信号是对y(n)进行三电平量化产生的结果。且这个信号有三种可能的取值,因而这里的互相关计算只需要做加减法,而这个互相关序列的周期性与y(n)的自相关序列是近似相同的。三电平法对语音信号处理得到的波形如下: 图5-6 三电平法波形图中心消波法得到的波形如下图: 图5-7 中心消波法波形图5.3 gui实验箱操作界面设计 通过对各个控件的编程和对参数的设计,最后得到的gui实验箱操作界面如下图所示,通过界面上的各个按钮即可实现相应的功能。 图 5-8 gui实验箱操作界面 第六章 心得体会通过本次课程设计完成了对语音信号的读取与打开,与课题的要求十分相符;初略的完成了界面的设计,但也存在相当的不足,达到了打开语音文件,显示已定波形。语音信号处理时语音学与数字信号处理技术相结合的交叉学科,将语音当做一种特殊的信号,即一种“复杂向量”来看待。也就是说,体现了数字信号处理技术。本次课程设计时希望将数字信号处理技术应用于某一实际领域,这里就是指对语音的处理。作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需要将这些离散的量提取出来,就可以对其进行处理了。本次课设,用到了处理数字信号的强有力工具matlab,通过matlab里几个命令函数的调用,很轻易的在实际化语音与数字信号的理论之间搭了一座桥。最后,还利用了matlab的另一强大功能gui界面设计。设计出了一个简易的用户应用界面,可以让人实现界面操作。通过本次课程设计让我更加了解了语音信号处理在现实中的强大的应用空间,同时查阅了很多相关的资料,应用matlab软件来完成,熟练掌握了matlab软件,本次课程设计要求用gui设计模块,查阅了很多资料,更加深刻的了解了这方面知识。本次课程设计,我明白了理论的学习需要在实践中才能得到巩固。在课程设计中,只有动手慢慢研究,才能真正了解matlab的运用以及各个基本函数的调用方法,掌握gui实验箱的设计方法及在matlab软件平台中可以直接设计数字滤波器的各个函数的调用,对设计gui实验箱的所有函数的运用有了比较好的认识。通过这个课程设计,我学到了很多matlab和语音信号的知识,提高了自己在语音信号设计方面的知识能力,动手能力和思维能力都得到了一定的提升,希望自己以后可以更多的继续学习这一门课程设计方面的知识。- 9 - 附录(源程序代码)附录1.源程序代码:function varargout = likunpeng(varargin)gui_singleton = 1;gui_state = struct(gui_name, mfilename, . gui_singleton, gui_singleton, . gui_openingfcn, likunpeng_openingfcn, . gui_outputfcn, likunpeng_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:);endfunction likunpeng_openingfcn(hobject, eventdata, handles, varargin)handles.output = hobject; guidata(hobject, handles);function varargout = likunpeng_outputfcn(hobject, eventdata, handles) varargout1 = handles.output; function pushbutton1_callback(hobject, eventdata, handles)global file;x=wavread(file);sampling_rate = 44100; lfft = 1024; lfft2 = lfft/2;winlgh = 1024; frmlgh = 100; noverlap = winlgh - frmlgh;x = 2.0*x/max(abs(x);etime = length(x)/sampling_rate;spec = abs(specgram(x, lfft, sampling_rate, winlgh, noverlap);axes(handles.axes1);plot(1:length(x)/sampling_rate,x) function pushbutton2_callback(hobject, eventdata, handles)global file;x=wavread(file);sampling_rate = 44100; lfft = 1024; lfft2 = lfft/2;winlgh = 1024; frmlgh = 100; noverlap = winlgh - frmlgh;x = 2.0*x/max(abs(x);etime = length(x)/sampling_rate;spec = abs(specgram(x, lfft, sampling_rate, winlgh, noverlap);axis(0 etime -2.5 2.5);axes(handles.axes1);imagesc(0:.010:etime, 0:1000:(sampling_rate/2), log10(abs(spec);axis(xy) function pushbutton7_callback(hobject, eventdata, handles)global file;y,fs=wavread(file); l=length(y); fw=y.*hamming(l);r=real(log(fft(fw,l);axes(handles.axes1);plot(r); function pushbutton8_callback(hobject, eventdata, handles)global file;y,fs=wavread(file); l=length(y); fw=y.*hamming(l);axes(handles.axes1);plot(fw);function pushbutton5_callback(hobject, eventdata, handles)global file;y,fs=wavread(file); l=length(y); fw=y.*hamming(l);r=real(log(fft(fw,l)pfw=cceps(fw);rpfw=rceps(fw);axes(handles.axes1);plot(rpfw);function pushbutton6_callback(hobject, eventdata, handles)global file;y,fs=wavread(file); l=length(y); fw=y.*hamming(l);pfw=cceps(fw);rpfw=rceps(fw);z=rpfw(1:30);logz=real(exp(fft(z,l);axes(handles.axes1);plot(logz);function pushbutton4_callback(hobject, eventdata, handles)global file;y,fs=wavread(file); l=length(y); fw=y.*hamming(l);r=real(log(fft(fw,l)pfw=cceps(fw);axes(handles.axes1);plot(pfw); function pushbutton3_callback(hobject, eventdata, handles)global file;y,fs=wavread(file); axes(handles.axes1);plot(y); function pushbutton9_callback(hobject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);%250sw=speech1_10k.*hamming(250);%a rsw=xcorr(sw);%a t=0.1:0.1:25;axes(handles.axes1);plot(t,sw); function pushbutton10_callback(hobject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); rsw=xcorr(sw); t=0.1:0.1:length(rsw)/10; axes(handles.axes1); plot(t,rsw); function pushbutton11_callback(hobject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); rsw=xcorr(sw); w=pi/512:pi/512:pi; fw2=fft(sw,1024); fw3=fw2(1:512); w=(1/1024:1/1024:0.5)*10000; axes(handles.axes1);plot(w,log(abs(fw3);function pushbutton12_callback(hobject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); rsw=xcorr(sw); rsw4=rsw(250:253);rsw(249:252);rsw(248:251);rsw(247:250); rea4=inv(rsw4)*rsw(251:254); a4=sqrt(rsw(250)-rsw(251:254)*rea4); w=pi/512:pi/512:pi; j=sqrt(-1); fw4=rea4*exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4); hw4=a4./(1-fw4); w=(1/1024:1/1024:0.5)*10000; axes(handles.axes1);plot(w,log(abs(hw4),g); function pushbutton13_callback(hobject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); rsw=xcorr(sw); rsw6=rsw(250:255);rsw(249:254);rsw(248:253);rsw(247:252);rsw(246:251);rsw(245:250); rea6=inv(rsw6)*rsw(251:256); a6=sqrt(rsw(250)-rsw(251:256)*rea6); w=pi/512:pi/512:pi; j=sqrt(-1); fw6=rea6*exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4);exp(-j*w*5);exp(-j*w*6); hw6=a6./(1-fw6); w=(1/1024:1/1024:0.5)*10000; axes(handles.axes1); plot(w,log(abs(hw6),r); function pushbutton14_callback(hobject, eventdata, handles)global file;speech1_10k=wavread(file,1024 1273);sw=speech1_10k.*hamming(250); rsw=xcorr(sw); rsw4=rsw(250:253);rsw(249:252);rsw(248:251);rsw(247:250); rsw6=rsw(250:255);rsw(249:254);rsw(248:253);rsw(247:252);rsw(246:251);rsw(245:250); rea4=inv(rsw4)*rsw(251:254); rea6=inv(rsw6)*rsw(251:256); a4=sqrt(rsw(250)-rsw(251:254)*rea4);a6=sqrt(rsw(250)-rsw(251:256)*rea6); w=pi/512:pi/512:pi; j=sqrt(-1); fw4=rea4*exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4); fw6=rea6*exp(-j*w);exp(-j*w*2);exp(-j*w*3);exp(-j*w*4);exp(-j*w*5);exp(-j*w*6); hw4=a4./(1-fw4); hw6=a6./(1-fw6); fw2=fft(sw,1024); fw3=fw2(1:512); w=(1/1024:1/1024:0.5)*10000; axes(handles.axes1);plot(w,log(abs(fw3),w,log(abs(hw4),w,log(abs(hw6); function pushbutton21_callback(hobject, eventdata, handles)global file;y=wavread(file,1 1800);x1=y(271:510);x2=y(271:510);x3=y(271:510);r=zeros(1,240);for k1=1:1:240 if x2(k1)0 x2(k1)=1; else if x2(k1)=0 x2(k1)=0; else if x2(k1)tc x3(k1)=x3(k1)-tc; else if x3(k1)-tc x3(k1)=x3(k1)+tc; else x3(k1)=0; end endendj=1:240;axes(handles.axes1);plot(j,x3); function pushbutton20_callback(hobject, eventdata, handles)global file;y=wavread(file,1 1800);x1=y(271:510);x2=y(271:510);x3=y(271:510);r=zeros(1,240);for k=1:240 for n=1:240-k r(k)=r(k)+x1(n)*x1(n+k); endend j=1:240;axes(handles.axes1);plot(j,x1); function pushbutton19_callback(hobject, eventdata, handles)global file;y=wavread(file,1 1800);x1=y(271:510);x2=y(271:510);x3=y(271:510);r=zeros(1,240);for k=1:240 for n=1:240-k r(k)=r(k)+x1(n)*x1(n+k); endend j=1:240;axes(handles.axes1);plot(j,r); function pushbutton23_callback(hobject, eventdata, handles)close function pushbutton24_callback(hobject, eventdata, handles)global file;h=*.wav;filename,pathname=uigetfile(h,);file=strcat(pathname,filename);function pushbutton1_buttondownfcn(hobject, eventdata, handles)function pushbutton29_callback(hobject, eventdata, handles)global file;x=wavread(file);axes(handles.axes1);plot(x);function f=enframe(x,win,inc)nx=length(x(:);nwin=length(win);if (nwin = 1)len = win;elselen = nwin;endif (nargin 1)w = win(:);f = f .* w(ones(nf,1),:);endfunction pushbutton28_callback(hobject, eventdata, handles)global file;x=wavread(file);enhance=filter(1-0.9375,1,x);framelen=240; frameinc=80;yframe=enframe(x,framelen,frameinc);amp1=sum(abs(yframe),2);axes(handles.axes1);plot(amp1);function pushbutton27_callback(hobject, eventdata, handles)global file;x=wavread(file);enhance=filter(1

温馨提示

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

评论

0/150

提交评论