设计一个基于MATLAB的数字音频分析与处理系统,能够实现对数字音频的测试分析与处理。要求:
1) 输入语音信号源为实际环境采集语音;
2)至少实现1种音效测试分析功能(频率响应,瀑布频谱图,相位响应曲线,抗阻曲线,协波失真曲线,互调失真曲线,音压曲线等);并至少实现1种语音处理功能(声纹识别,关键词识别,语音去噪,声源分离等);并分别对其进行实际应用;
3)用人机交互界面操控、扬声器/耳机输出音效。
数字信号处理项目涉及数字音频分析和处理,我们采用MATLAB R2016a构造语音信号模型,通过编程,调用一系列函数,画出语音信号图像进行数据分析,最后采用人机交互界面GUI来展示。
audiorecorder函数的“前身”是wavrecord函数,相比于后者, audiorecorder函数更加适用于多种平台,用于录制声音信号。
audiorecorder函数及相关函数用法:
R = audiorecorder( Fs, nBits ,n) ; %创建一个保存音频信息的对象
record(R); %开始录制,此时对着麦克风说话即可。
myspeech = getaudiodata(R);
%得到以n*2列数字矩阵存储的刚录制的音频信号。
Fs表示采样率(即单位时间的样本个数(Hz)(可改为11025, 22050等,此数值越大,录入的声音质量越好)
nBits表示每个样本点用几个比特表示,即分辨率
n取值为1或2(1为单声道,2为两通道即立体声)
sound(R)
sound(R, Fs)
sound(R, Fs,nBits)
R为音频信号矩阵(可由audiowrite产生),Fs为采样率,nBits表示分辨率。第一种用法默认Fs为8192Hz。Play函数也是MATLABR2016a播放音频文件的函数(之前版本的播放函数是wavplay函数),可直接通过Play(R)播放录制的语音信号。
在matlab2012之后,就推出了audio系列的东西,可以读取或者写入各种音频。那么我们反向的过程也是一样的,我们用audiowrite函数反向生成WAV音频文件。
audiowrite()函数也有两种调用方法:
audiowrite(filename, y, Fs)
audiowrite(filename, y, Fs, Name, Value)
filename是想生成的音频文件名,y是要准备的音频数据,Fs是采样频率
我们小组每位成员都录制了一段语音,时间都为10 s,采样频率为11025HZ,加入到我们的语音库里面。
Fs = 11025;
RecObj = audiorecorder (Fs, nBits, n);
recordblocking (recObj, 10); %录音,第二个参数指定录音的时间长度(秒)
sound (recObj, Fs); %播放录制的语音信号
保存音频文件,需要用到uiputfile函数,选择保存文件的路径及名称
[filename, pathname]=uiputfile ({'*.wav','wav-files(*.wav)';'*.*','All-files(*.*)'},'另存为');
str = strcat (pathname, filename);
save (str, ‘recObj');
y=getaudiodata(recObj,'int16');
audiowrite (str, y,11025);
经查阅资料知,语音去噪有好些种方法,常见的有小波去噪、谱减法去噪、低通滤波去噪等,我们小组其中尝试了好几种去噪方法并算得各自的信噪比以进行比较分析。
目前已经提出的小波去噪方法主要有三种:模极大值去噪、空域相关滤波去噪以及小波阈值去噪法。阈值法具有计算量小、去噪效果好的特点,取得了广泛的应用。我们组因此选用此方法进行去噪。
小波去噪方法包括三个基本的步骤:对含噪声信号进行小波变换;变换得到的小波系数经过小波分解、阈值法处理,去除其中包含的噪声;对处理后的小波系数进行小波逆变换,得到去噪后的信号。小波去噪方法的不同之处集中在第一步。
小波变换不同于傅里叶变换,根据小波母函数的不同,小波变换的结果也不尽相同。选择小波的标准一般有以下几点:
1、支撑长度
小波函数Ψ(t)、Ψ(ω)、尺度函数φ(t)和φ(ω)的支撑区间,是当时间或频率趋向于无穷大时,Ψ(t)、Ψ(ω)、φ(t)和φ(ω)从一个有限值收敛到0的长度。支撑长度越长,一般需要耗费更多的计算时间,且产生更多高幅值的小波系数。大部分应用选择支撑长度为5~9之间的小波,因为支撑长度太长会产生边界问题,支撑长度太短消失矩太低,不利于信号能量的集中。
这里常常见到“紧支撑”的概念,通俗来讲,对于函数f(x),如果自变量x在0附近的取值范围内,f(x)能取到值;而在此之外,f(x)取值为0,那么这个函数f(x)就是紧支撑函数,而这个0附近的取值范围就叫做紧支撑集。总结为一句话就是“除在一个很小的区域外,函数为零,即函数有速降性”。
2、对称性
具有对称性的小波,在图像处理中可以很有效地避免相位畸变,因为该小波对应的滤波器具有线性相位的特点。
3、消失矩
在实际中,对基本小波往往不仅要求满足容许条件,对还要施加所谓的消失矩(VanishingMoments)条件,使尽量多的小波系数为零或者产生尽量少的非零小波系数,这样有利于数据压缩和消除噪声。消失矩越大,就使更多的小波系数为零。但在一般情况下,消失矩越高,支撑长度也越长。所以在支撑长度和消失矩上,我们必须要折衷处理。
小波的消失矩的定义为,若其中,Ψ(t)为基本小波,0<=p 4、正则性 在量化或者舍入小波系数时,为了减小重构误差对人眼的影响,我们必须尽量增大小波的光滑性或者连续可微性。因为人眼对“不规则”(irregular)误差比“平滑”误差更加敏感。换句话说,我们需要强加“正则性”(regularity)条件。也就是说正则性好的小波,能在信号或图像的重构中获得较好的平滑效果,减小量化或舍入误差的视觉影响。但在一般情况下,正则性好,支撑长度就长,计算时间也就越大。因此正则性和支撑长度上,我们也要有所权衡。 消失矩和正则性之间有很大关系,对很多重要的小波(比如,样条小波,Daubechies小波等)来说,随着消失矩的增加,小波的正则性变大,但是,并不能说随着小波消失矩的增加,小波的正则性一定增加,有的反而变小。 5、相似性 选择和信号波形相似的小波,这对于压缩和消噪是有参考价值的。 常见的小波基(以下列出的15种小波基是Matlab中支持的15种。 小波(Wavelet)这一术语,顾名思义,“小波”就是小的波形。所谓“小”是指它具有衰减性;而称之为“波”则是指它的波动性,其振幅正负相间的震荡形式。信号的奇异性或正则性往往包含了它的本质信息。信号的局部正则性可由其小波变换幅值随尺度参数的衰减特性来刻画,奇异性和边缘可以通过小波变换在细尺度下的局部的模极大值来刻画。图1,给出一带噪阶越信号的离散二进小波变换。从图中可以看出,原始信号在尖锐变化点在每个尺度上都产生极大值点,也就是说,局部模极大值点描述了信号和图像的边缘,而噪声能量却集中在小尺度上,其小波系数的幅度值随着尺度的增加迅速衰减。即信号和噪声在多尺度空间上具有不同的特性,数学上称它们有不同的Lipschitz指数。 小波变换特别是正交小波变换具有很强的数据去相关能力,它能使信号的能量在小波域集中于一些大的小波系数,而噪声的能量分布于整个小波域内, 因此经过小波分解后,信号的小波系数幅值大于噪声的小波系数幅值,可以认为,幅值较大的小波系数一般以信号为主,而幅值较小的在很大程度是噪声。 因此,采用阈值法去除噪声。对信号连续做几次小波分解,大尺度低分辨率下的系数全部保留,而对于其他尺度下的小波系数,可以设定一个阈值,低于该阈值的设为零或做一定程度的收缩处理,高于该阈值的系数保留。最后将处理后的小波系数重构信号,得到去噪后的结果。 小波阈值去噪算法步骤; (1) 信号的一维分解:选择一个小波并确定分解层次J,然后对信号进行J 层分解; (2) 小波分解高频系数的阈值压缩:选择合适的阈值和阈值函数,对第一层到第J层的高频系数进行压缩,去除其中的噪声; (3) 信号重构:将处理有的小波系数重构信号,得到消噪后结果。小波阈值最关键的是阈值的选取,它将直接决定去噪结果。 阈值的选取,通常有四种阈值选取规则: 通用阈值法 (sqtwolog),无偏风险阈值法(rigrsure),极大极小准则(minimaxi)和启发式阈值法(heursure)规则。 这里介绍使用最为普遍的通用阈值法。 通用阈值法 (sqtwo1og原理) 设含噪信号f(t)在尺度j(l 该方法的原理依据是N个具有独立同分布的标准高斯变量中的最大值小于 TH1的概率随着N的增大而趋于1。 若被测信号含有独立同分布的噪声时,经小波变换后,其噪声的小波变换系数也是独立同分布的。如果具有独立同分布的噪声经小波分解后,它的系数序列长度很大,则根据上述理论可知:该小波系数中小于最大值TH1的概率接近1,即存在一个阈值TH1使得该序列的所有小波系数都小于它。另外,小波系数随着分解层数的加深,其长度也越来越短。根据TH1的计算公式,可得出该阈值也越来越小,因此在假定噪声具有独立同分布的情况下,可通过设置简单的阈值来去除噪声。 小波阈值处理方法有硬阈值法和软阈值法。 以上介绍的硬阈值法和软阈值法其本质区别在于选取的阈值函数不同,体现了对小波系数的不同处理策略。硬阈值法直接将高于阈值的小波系数保留不做任何变化,而软阈值法将高于阈值的小波系数减去阈值做收缩处理。在实际应用中,应根据需要选择合适的处理方式。 由信噪比我们可以直观的看出三种去噪方法中,软阈值去噪后的信噪比最大,因此去噪效果最好;然后我们再对比播放了去噪之后的语音信号,发现强制去噪和默认阈值去噪之后的语音虽然几乎都听不到白噪声,但是都会发生一定程度的失真。而对于软阈值去噪,虽然白噪声去除的没有前两种去噪方法那么干净,但是它基本上不存在语音信号失真的情况(我们通过不断调整软阈值的阈值,使得白噪声去除的最多,但是语音信号任不发生失真)。综上所述,三种去噪方法中,软阈值去噪效果最好。 ) ( n h ) ( n h 维纳(Wiener)是用来解决从噪声中提取信号的一种过滤(或滤波)方法。这种线性滤波问题,可以看做是一种估计问题或一种线性估计问题。 一个线性系统,如果它的单位样本响应为 ,当输入一个随机信号 ,且 (1) 其中 表示信号, 表示噪声,则输出 为 (2) 我们希望 通过线性系统 后得到的 尽量接近于 ,因此称 为 的估计值,用 表示,即 (3) 则维纳滤波器的输入—输出关系可用下面图1表示。 图1 实际上,式(2)所示的卷积形式可以理解为从当前和过去的观察值 , , … ,…来估计信号的当前值 。因此,用 进行过滤问题实际上是一种统计估计问题。 一般地,从当前的和过去的观察值 , , …估计当前的信号值 成为过滤或滤波;从过去的观察值,估计当前的或者将来的信号值 称为外推或预测;从过去的观察值,估计过去的信号值 称为平滑或内插。因此维纳滤波器又常常被称为最佳线性过滤与预测或线性最优估计。这里所谓的最佳与最优是以最小均方误差为准则的。 如果我们分别以 与 表示信号的真实值与估计值,而用 表示他们之间的误差,即 (4) 显然 可能是正值,也可能是负值,并且它是一个随机变量。因此,用它的均方误差来表达误差是合理的,所谓均方误差最小即它的平方的统计期望最小: (5) 采用最小均方误差准则作为最佳过滤准则的原因还在于它的理论分析比较简单,不要求对概率的描述。 为了按(5)式所示的最小均方误差准则来确定维纳滤波器的冲激响应 ,令 对 的导数等于零,即可得 (6) 式中, 是 与 的互相关函数, 是 的自相关函数,分别定义为 式(6)称为维纳滤波器的标准方程或维纳-霍夫(Wiener-Hopf)方程。如果已知 和 ,那么解此方程即可求的维纳滤波器的冲激响应。 式(6)所示标准方程右端的求和范围即 的取值范围没有具体标明,实际上有三种情况:1.有限冲激响应(FIR)维纳滤波器, 从 到 取得有限个整数值;2.非因果无限冲激响应(非因果IIR)维纳滤波器, 从 到 取所有整数值;3.因果无限冲激响应(因果IIR)维纳滤波器, 从 到 取正整数值。 上述三种情况下标准方程的解法不同,我们只描述FIR维纳滤波器的求解。 设滤波器冲激响应序列的长度为 ,冲激响应矢量为 (7) 滤波器输入数据矢量为 (8) 则滤波器的输出为 (9) 这样,式(6)所示的维纳-霍夫方程可写成 或 (10) 其中 (11) 是 与 的互相关函数,它是一个 维列矢量; 是 的自相关函数,是 阶方阵 (12) 利用求逆矩阵的方法直接求解式(10),得 (13) 这里 表示“最佳”,这就是FIR维纳滤波器的冲激响应。 1. 带噪语音为X(n),加窗分帧后为Xi(m),相邻帧之间有重叠。 2. 对加窗分帧后的信号进行FFT,分别求其幅度谱和相位谱,把它们保存,并进一步计算功率谱。 3. 已知前导无话段(噪声)占有NIS帧,可以计算出噪声的平均功率谱值和噪声平均幅度谱。 4. 调用已有的VAD函数求出有话帧及无话帧。 5. 对于无话帧,修正噪声平均功率谱(方差)和噪声平均幅度谱。 6. 对于有话帧先计算其后验信噪比,在计算本帧的先验信噪比,在这基础上可以求出维纳滤波器的传递函数Hi(k)。 7. 计算出该帧维纳滤波器的输出Si^ (k)。 8. 用幅度谱Si^(k)结合步骤2中的相位谱进行傅里叶逆变换,将语音信号还原到时域,就可以得到减噪后的语音信号Xi^(m)。 经过对多种噪声背景进行时域和频域的分析,我们最后选取了收音机的噪声做噪声背景。当收音机选取的频段没有信号时,收音机会发出比较稳定的噪声。经过对其进行时域和频域分析,发现该噪声有点类似Matlab中仿真出的高斯白噪声:时域平稳,频域分布广泛,和人声的频域大部分重合,满足项目的要求。下面是我们在Matlab上单独对收音机噪声和人声进行的时域和频域分析图片 在实际的处理中,因为事先并不知道噪声,所以我们选择截取带噪信号前面的无话帧来代替噪声(因为我们已经假定噪声信号是平稳不变的)。不过这种近似的算法必定会导致有一定的误差 由图中信噪比可知,维纳滤波后的信噪比比原带噪信号的信噪比大很多,而且从听到的语音可知,维纳滤波去噪的效果很好,而且信号失真的程度也很小。 我们用自己录制的一段人声混合音乐进行分离,分别得到人声及音乐,并分别计算出其分离信噪比以进行数据分析。 盲信号分离是指在没有任何先验知识的条件下,仅根据源信号之间的统计独立特性和由传感器输出的观测信号,把源信号分离出来。独立分量分析正是盲信号分离的有效方法之一。 我们所要研究的混合语音信号盲分离问题就是用麦克风阵列或多个麦克风阵列来模仿人的耳朵,采集得到相互干扰的混叠语音信号,然后通过分离算法将混叠的语音信号相互分离开来,提取我们所感兴趣的信号。举个例子就是在多人同时说话的嘈杂环境下,我们能够辨识感兴趣人的说话声的能力。然后把它分辨出来。 盲信号处理数学模型 该线性模型可以用下式表示: x = A⋅s (公式一) u = W⋅x (公式二) 源信号s=(s1,s2......sn)和混合矩阵A都是未知的,W为待求分离矩阵,经过分离矩阵W 的作用,最终得到分离后的输出矢量u=(u1,u2......un);观测信号x=(x1,x2.......xn)已知。盲信号分离的最终目的是为了寻找分离矩阵W,使输出信号u尽可能地逼近源信号s。 对于盲源分离问题,独立分量分析(Independent ComponentAnaly2sis,ICA)是指在只知道混合信号,而不知道源信号、噪声以及混合机制的情况下,分离或近似地分离出源信号的一种分析过程。 假设源信号若干个统计上相互独立的信号组成的,它们在空间中形成交叠,独立分量分析(IndependentComponent Analysis,ICA)是借助于多个信道同步观察交叠信号,将观察信号经过解混分解成若干独立成分,作为对源信号的一组估计,如图3.3-1所示: 图3.3-1 独立分量分析法 可以假设:A是线性系统可用矩阵表示,实际仿真时是随机阵。且信道对信号无影响,观察信道数与信号数相 同(A,B方阵)。 独立分量分析ICA有多种算法,如基于代数结构的AMUSE,SOBI,JADE以及基于信息论的Fast-ICA和Info-max。与普通 ICA 相比较而言,Fast-ICA 具有更快的收敛度,而且还省去了选择步长常数的麻烦,迭代次数也相应减少。尤其是在处理分离复杂多变的语音信号时,优势非常明显。 Fast-ICA 算法的一般步骤如下: 1.观测信号x去均值;2.观测对去均值信号 进行白化;3.根据负熵最大化理论确定目标函数E[G( )];4.应用牛顿迭代算法求目标函数的最大值,即分离矩阵W;5.最后判断是否收敛,由W*x获取源信号y。 数据预处理 对于Fast-ICA算法,数据预处理是一个最基本、最必要的过程。该过程包括去均值和白化(或球化)处理。去均值处理是用 代替,进而起到了简化ICA 算法的作用。白化处理,即对信号的协方差矩阵进行对角化处理。由于我们所读取的混合音频信号之间具有一定的相关性,而便于后续独立分量的提取,需要对混合信号进行白化操作,以去除信号各个分量之间的相关性。 负熵最大化理论 由信息论理论可知:在所有等方差的随机变量中,高斯变量的熵最大,因而我 们可以利用熵来度量非高斯性,常用熵的修正形式,即负熵。根据中心极限定理, 若一随机变量X 由许多相互独立的随机变量Si(i=1,2,3…N)之和组成,只要Si 具有有限的均值和方差,则不论其为何种分布,随机变量X 较Si 更接近高斯分布。 换言之, Si 较X 的非高斯性更强。因此,在分离过程中,可通过对分离结果的非高斯性度量来表示分离结果间的相互独立性,当非高斯性度量达到最大时,则表明已完成对各独立分量的分离。 负熵的定义: 式中, 是一与Y 具有相同方差的高斯随机变量,H 为随机变量的微分熵: 根据信息理论,在具有相同方差的随机变量中,高斯分布的随机变量具有最大的微分熵。当Y 具有高斯分布时,Ng(Y)=0;Y 的非高斯性越强,其微分熵越小,Ng(Y)值越大,所以Ng(Y)可以作为随机变量Y 非高斯性的测度。由于计算微分熵需要知道Y 的概率密度分布函数,这显然不切实际,于是采用如下近似公式: 。 牛顿迭代算法公式: Fast-CIA学习规则是找一个方向以便使 (Y= )具有最大的非高斯性。这里采用简化后的Fast-ICA算法的牛顿迭代公式: 因为X 是经过预处理,所以存在近似关系: 所以迭代公式可近似为: 频率响应是指将一个以恒电压输出的音频信号与系统相连接时,音箱产生的声压随频率的变化而发生增大或衰减、相位随频率而发生变化的现象,这种声压和相位与频率的相关联的变化关系称为频率响应。一方面我们对于频率响应比较熟悉,一方面频响特性曲线很好的描述了音频信号的声压与相位随频率的变化情况,此次项目中我们首先采用频率响应来进行语音音效测试分析。 采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。通俗的讲采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样率的一半是最高频率,认为是1,那么真实频率和最高频率的比值就是归一化频率,有时频率的范围会非常的大,使用时会很不方便,将之归一化后就转换到[0,1]之间。这样做实现了一个统一的标准,有利于比较各个频率的分布情况。归一化的另一个目的是防止数据的溢出。 MATLAB提供了专门用于求离散系统频响特性的函数freqz(),freqz()函数计算线性系统的频率响应,包括幅频响应和相频响应。 调用freqz()的格式有以下两种: (1)[H,w]=freqz(B,A,N) (2)[H,w]=freqz(B,A,N,’whole’) (1)中B和A分别为离散系统的系统函数分子、分母多项式的系数向量,返回量H则包含了离散系统频响在 0~pi范围内N个频率等分点的值(其中N为正整数),w则包含了范围内N个频率等分点。调用默认的N时,其值是512。 (2)中调用格式将计算离散系统在0~pi范内的N个频率等分店的频率响应的值。 可直接调用freqz()函数计算系统的频率响应,然后即可绘制出系统在或范围内的频响曲线。我们组频率响应图的横坐标(频率)就是采用了归一化频率,纵坐标分别是幅度和相位。效果展示: 瀑布图是指通过巧妙的设置,使图表中数据点的排列形状看似瀑布。 这种效果的图形能够在反映数据的多少的同时,直观的反映出数据的增减变化,在工作表中非常有实用价值。 以时域的t,频域的f和幅度z作出瀑布频谱图 在MATLAB 中创建图形用户界面有两种方法,其中之一是使用图形句柄,用这种方法创建图形界面的过程相当繁琐,而且在程序编写好之前,用户图形界面是不可见的。所以为了便于创建图形用户界面,MATLAB 提供了一个开发环境,能够帮助用户创建图形用户界面,这就是GUIDE——Graphic User Interface DevelopmentEnvironment。 利用GUIDE 创建的图形用户界面应用程序一般由两个文件组成,一个是应用程序文件——M 文件,另一个是外观文件——fig 文件。 在MATLAB 环境中每一个图形对象都有一个相应的句柄,这些句柄帮助系统标识这些对象,获取或者设置它们的属性。理解图形对象句柄也是进行图形界面创建的前提之一,这里简要介绍图形对象句柄的概念,以及图形句柄的使用方法。MATLAB 的图形对象是按照一定的层次排列的,如图所示。 图形句柄的层次 在MATLAB 中,只要获得了图形对象的句柄,就可以通过对属性的操作来修改图形对象的外观,这也是MATLAB 图形用户界面编程的基本原理。MATLAB 提供了若干函数用来对图形句柄进行操作。 无论是利用GUIDE 还是图形句柄来创建图形用户界面,其基本过程都是首先获取当前的图形对象句柄,然后利用get 函数获取一些属性——获取动作,再通过set 函数设置一些属性——完成响应。 控件是加在GUI界面的基本元素,GUI图形用户界面中包含如下控件: 1.两个推按钮(push button),分别完成绘制三维曲面和改变色彩的功能; 2.五个静态文本框(static text),分别用来完成显示不同信息的功能; 3.一个滚动条(slide),用来完成改变三维曲面上的分隔线色彩; 4.一个坐标轴(axes),用来显示三维曲面; 5.一个菜单(menu),用来完成清除坐标轴的功能。 每一个控件都有自己的属性常规属性有: 一、控件风格和外观 (1)BackgroundColor:设置控件背景颜色,使用[R G B]或颜色定义。 (2)CData:在控件上显示的真彩色图像,使用矩阵表示。 (3)ForegroundColor:文本颜色。 (4)String属性:控件上的文本,以及列表框和弹出菜单的选项。 (5)Visible:控件是否可见。 二、对象的常规信息 (1)Enable属性:表示此控件的使能状态,设置为“on”,表示可选,为“off”时则表示不可选。 (2)Style:控件对象类型。 (3)Tag:控件表示(用户定义)。 (4)TooltipString属性:提示信息显示。当鼠标指针位于此控件上时,显示提示信息。 (5)UserData:用户指定数据。 (6)Position:控件对象的尺寸和位置。 (7)Units:设置控件的位置及大小的单位 (8)有关字体的属性,如 FontAngle, FontName等。 三、控件回调函数的执行 (1)BusyAction:处理回调函数的中断。有两种选项:即Cancel:取消中断事件,queue:排队(默认设置)。 (2)ButtonDownFcn属性:按钮按下时的处理函数。 (3)CallBack属性:是连接程序界面整个程序系统的实质性功能的纽带。该属性值应该为一个可以直接求值的字符串,在该对象被选中和改变时,系统将自动地对字符串进行求值。 (4)CreateFcn:在对象产生过程中执行的回调函数。 (5)DeleteFcn:删除对象过程中执行的回调函数。 (6)Interruptible属性:指定当前的回调函数在执行时是否允许中断,去执行其他的函数。 下面将介绍GUIDE 的基本使用方法: 在MATLAB 中启动GUIDE 的方法是在MATLAB 命令行中键入指令: >>guide 或者通过“Start”菜单选择“MATLAB”下的“GUIDE”命令。这时在MATLAB6.5 中,将直接启动GUIDE Quick Start 窗体,在这个窗体中,可以初步选择图形用户界面的类型,如图所示 我们先选择空白界面类型,并单击“OK”按钮,这时MATLAB 将启动GUIDE 的图形界面,如图所示 对开发环境进行了简要设置之后,接下来就要设置画布的尺寸,画布的尺寸也就是图形界面的未来尺寸,需要在绘制控件之前将界面的尺寸大体确定下来。之后,就要将不同的控件绘制在画布上了。 小波变换
小波阈值去噪
阈值的选取
小波阈值处理方法
小波去噪结果展示
3.2.2 维纳滤波
3.2.2.1
维纳滤波的原理
3.2.2.2构造维纳滤波器的具体步骤
3.2.2.3噪声背景的选择
3.2.2.4.信噪比的计算和分析
3.4声源分离
盲信号处理
独立分量分析ICA
声源分离结果展示
3.5音效测试分析
3.5.1 频率响应
3.5.2 瀑布频谱图
3.6 人机交互展示
3.6.1 句柄
3.6.2 控件
3.6.3 GUI的界面制作
3.6.4 GUI界面展示