当前位置:文档之家› 噪声估计的算法及MATLAB实现

噪声估计的算法及MATLAB实现

太原理工大学

毕业设计(论文)任务书

噪声估计算法的研究及MATLAB仿真

摘要

日常的通信过程中,语音会常常受到环境噪声的干扰而使通话质量下降,严重时使得语音处理系统不能正常工作。因此,必须采用信号处理方法通过语音增强来抑制背景噪声从而提高语音通信质量,而噪声估计的准确性又直接影响语音的增强效果。可见,噪声估计是语音增强的一个非常重要的部分,所以研究噪声估计算法有很好的实用价值。本文主要研究两种噪声估计算法:基于最小统计和最优平滑的噪声估计算法和最小值控制递归平均法的噪声估计算法,通过实验仿真比较最终研究了一种改进的最小值统计量控制递归平均噪声估计算法。

本文的主要工作总结归纳为以下几方面:

首先,本文对几种经典的噪声估计算法进行研究,了解它们的各自优缺点,在此基础上选定两种较好的算法进行具体分析。

其次,了解最小统计和最优平滑和噪声功率谱统计跟踪的噪声估计算法的原理,它的基本思路是先用最优平滑滤波器对带噪语音的功率谱滤波,得到一个噪声的粗略估计,然后找出粗略估计噪声中的在一定时间窗内的最小值,对这个最小值进行一些偏差修正,即得到所要估计的噪声的方差。通过MATLAB仿真看其特征。

再次,本文研究了一种改进的最小统计法。算法采用递归平均进行噪声估计,其递归平均的平滑量控制递归平均噪声估计算因子受语音存在概率控制,而语音存在概率的计算采用了两次平滑和最小统计量跟踪。与I.Cohen提出的IMCRA 算法相比,本文采用了一种快速有效的最小统计量跟踪算法。仿真结果表明:在非平稳噪声条件下,该算法具有较好的噪声跟踪能力和较小的噪声估计误差,可以有效地提高语音增强系统的性能。

最后,对整体论文总结,通过研究发现改进的最小统计量控制递归平均噪声算法在IMCRA算法的基础上,采用了一种简单有效地最小统计量估计算法,在保证噪声估计准确性的同时,减小了算法的复杂度。同时,基于这种噪声估计的语音增强系统能有效地提高增强语音的信噪比,并且能有效地消除增强语音中的音乐噪声。

关键词: 噪声估计,谱减法,语音检测,最小递归统计量

NOISE ESTIMATION ALGORITHM RESEARCH

AND MATLAB SIMULATION

ABSTRACT

The Daily communication process, speech will often affected by environmental noise interference and make calls the quality descend, serious when make speech processing system didn't work properly. Therefore, must use signal processing methods through speech enhancement to curb background noise so as to improve the quality of voice communication, and the accuracy of the noise estimates directly affected speech enhancement effect. Visible, the speech enhancement noise estimation is a very important part, so the noise estimation algorithm has very good practical value. This paper makes a study of the two kinds of noise estimation algorithm based on least statistics and: the optimal smooth noise estimation algorithm and minimum control recursion average method noise estimation algorithm through experiment comparative simulation, finally puts forward an improved minimum statistic control recursion average noise estimation algorithm.

This paper sums up the main work for the following aspects:

First of all, the paper on the noise estimation algorithm several classic study, understand their respective advantages and disadvantages, based on selected two good concrete analysis algorithm.

Second, understand the smallest statistics and optimal smoothing and noise power spectrum statistical tracking noise estimation algorithm of principle, it is to use the basic ideas of the optimal smoothing filter belt chirp voice power spectral filtering, get a noise a rough estimate, and then find out roughly in certain time window of noise to a minimum, within the minimum deviation correction, some of which is estimated to have the variance of noise. Through the simulation of MATLAB see its characteristics. noise recursively, estimates that the average recursive average smooth quantity cont Again, this paper proposes an improved minimum statistics. Algorithm

for recursion average noise estimates by speech exist probability is factor control, and calculation of speech exist probability by two smooth and minimum statistic tracking. And I. Cohen proposed IMCRA algorithms, this paper adopts a kind of fast and effective minimum statistic tracking algorithm. The simulation results show that the non-stationary noise conditions, the algorithm has good noise tracking ability and smaller noise estimation error, can effectively improve the performance of the system speech enhancement.

Finally, the whole thesis summed up, through the research found that improved least statistic control recursion algorithm in IMCRA average noise based on the algorithm of a simple and effective minimum statistic estimation algorithm, noise estimation accuracy in guarantee, while reducing the algorithm complexity. Meanwhile, based on this kind of noise estimates speech enhancement system can effectively improve the signal-to-noise ratio of the voice enhanced, and can effectively eliminate the music noise voice enhanced. Analytical papers deficiency and future development direction.

Key words: noise estimation, the spectral subtraction, voice detection, recursive least statistic

目录

1 绪论 (1)

1.1 噪声估计算法研究的目的和意义 (1)

1.2 国内外研究的现状 (2)

1.3 论文的整体安排 (3)

2 几种经典的噪声估计的算法 (4)

2.1 几种噪声估计算法的优点 (4)

2.2 噪声估计算法 (4)

3 基于语音活动性检测的噪声估计算法及MATLAB实现 (6)

3.1 基于语音活动性检测的噪声估计算法 (6)

3.1.1 短时能量 (6)

3.1.2 短时平均过零率 (7)

3.1.3 基于短时能量和短时平均过零率的语音活动性检测 (7)

3.1.4 实验仿真 (9)

4 最小统计递归平均的噪声估计算法及MATLAB仿真 (12)

4.1 最小值统计法 (12)

4.1.1 最优平滑 (12)

4.1.2 最小功率谱统计跟踪 (13)

4.1.3 实验仿真 (15)

4.2 基于统计信息的非平稳噪声自适应算法 (16)

4.2.1 概述 (16)

4.2.2 非平稳噪声自适应算法 (16)

4.3 最小值控制递归平均算法 (19)

4.3.1 计算局部能量最小值 (20)

4.3.2 估计语音存在的概率 (21)

4.3.3 更新噪声谱的估计 (21)

4.4 一种改进的最小统计量控制递归平均噪声估计算法 (22)

4.4.1 改进的噪声估计算法 (22)

4.4.2 实验仿真 (24)

5 总结与展望 (25)

5.1 论文的主要工作 (25)

5.2 目前存在的问题及今后的发展方向 (25)

参考文献 (26)

致谢 (27)

附录:外文文献 (28)

1 绪论

1.1 噪声估计算法研究的目的和意义

语音作为语言的声学表现,是人类特有的也是最重要的思想和情感交流段,也是人机交互最自然的方式。而人们在通信过程中,语音常常受到环境噪声的干扰而使通话质量下降,在实际应用中噪声的存在也会产生很多问题,语音处理设备对人类语音进行获取或处理的过程不可避免地要受到来自周围环境的各种噪声或其它讲话者的干扰,这些干扰噪声最终将使语音处理设备的接收到的语音不再是纯净的原始语音,而是被噪声污染过的带噪语音。由于环境噪声的污染会使许多语音处理系统的性能急剧恶化,严重时使语音处理系统不能正常工作,因此在上述情况下,背景噪声的存在不仅严重破坏了语音信号原有的模型参数和声学特性,导致许多语音处理系统服务质量的降低,而且会影响系统输出语音的可懂程度,使听众产生听觉疲劳。在视频信号中也同样存在噪声,很多视频图像处理都是在没有考虑噪声情况下得出的,如果存在噪声就必将会影响这些算法的有效性。由于噪声对视频图像处理算法的影响如此大,因此在开发图像视频处理算法时必须考虑噪声,必须有一种可靠的方法能准确地估计噪声,以便使很多图像视频处理算法(比如边缘检测、图像分割和滤波等)在噪声存在的情况下依旧保持非常良好的性能。然而,语音增强技术作为一种预处理技术,是消除这些噪声干扰的一个最重要的手段,它通过对带噪语音进行处理来改善语音质量,使人们易于接受或提高语音处理系统的性能。

语音增强的主要目标是从带噪语音信号中提取尽可能纯净的原始语音,通过语音增强,抑制背景噪声,提高语音通信质量,而噪声估计又是语音增强的一个非常重要的部分,噪声估计的准确性直接影响到语音增强的效果,因此研究噪声估计算法有很好的实用价值。在这种情况下,必须建立一个语音增强系统,通过对带噪语音进行处理,以消除背景噪声,改善语音质量,提高语音的清晰度、可懂度和自然度,提高语音处理系统的性能;或者将语音增强作为一种预处理手段,以提高语音处理处理系统的抗干扰能力。要实现这些第一个环节就是要利用噪声的特性参数,很好的将噪声估计出来。语音增强算法可从信号输入的通道数上分为单通道的语音增强算法和多通道的语音增强算法。单通道语音系统在实际应用中较为常见,如电话,手机等。这种情况下语音和噪声同时存在一个通道中,语音信息与噪声信息必须从同一个信号中得出。而单通道语音增强是语音增强的基础,单通道语音增强第一个环节就是要利用噪声的特性参数,很好的将噪声估计出来,而在此方法中,噪声源是不可接近的,背景噪声的特性只能从带噪语音中获得。

因此,噪声估计的准确性会直接影响最终效果:噪声估计过高,则微弱的语音将被去掉,增强语音会产生的失真;而估计过低,则会有较多的背景残留噪声。因此,对噪声估计方法的研究是非常必要的,在语音算法的前期必需要对噪声进行估计。

噪声估计还在语音通讯领域非常重要,同时在统计学、图像处理、军事等方面也起着非常重要的作用. 由于噪声的统计特性比语音的统计特性更平稳,所以噪声估计在统计学中也很有研究意义。可见,噪声估计在很多领域起着非常重要

的作用,那么噪声估计算法作为研究课题是非常有意义的。

1.2 国内外研究的现状

有关抗噪声技术的研究,在国内外作为非常重要的研究课题,已经作了大量的研究工作,取得了丰富的研究成果。而噪声估计是语音增强中非常重要的一个部分,在这方面的研究,国外比较多一些,以下介绍几种经典的噪声估计算法。

传统的噪声估计方法是使用语音活动性监测( VAD:Voice Active Detection)判别语音是否出现,并分离出无声段,此时无声段主要表现为噪声特性,然后在无声区通过某种统计方法,获得背景噪声特性的近似估计,对噪声谱进行更新。尽管该方法在噪声为平稳的情况下是可行的,但是在实际的噪声环境中噪声谱的特性变化很大,在低信噪比下,VAD的误检率会增大,在不能正确判断无声段的情况下很难保证估计出来的噪声的准确性。因此,为了实现精确的噪声估计,就要对噪声谱进行实时的估计。

1994年Martin提出了一种基于最小值统计的方法来估计噪声,它是基于带噪语音信号的功率水平滞后于噪声的功率水平,因此可以通过跟踪带噪语音信号功率谱的最小值来获得噪声功率谱的估计值。在大约1.5s 的滑动窗口内寻找每一频率带内的频谱最小值,经过补偿后和带噪语音的功率谱进行比较。不论带噪语音的功率谱是否小于局部最小值,局部最小值都需要更新。同时,为了能更快的跟踪并更新局部最小值和频谱最小值,把滑动窗口分为子窗口,在每个子窗口内更新噪声的估计谱,提高了精确度[4]。此算法的基本思路是先用一个最优平滑滤波对带噪语音的功率谱滤波,得到一个噪声的粗略估计。然后找出粗略噪声中的在一定时间窗内的最小值,对这个最小值进行一些偏差修正,即得到所要估计的噪声的方差。

1995年Doblinger通过比较前帧带噪语音子带平滑功率谱最小值和后帧带噪语音子带平滑功率谱之间大小,对带噪语音子带平滑功率谱最小值每帧进行跟踪和更新,并将其作为估计的噪声谱,该噪声谱估计方法计算效率高,能快速适应背景噪声的变化,但是它直接把带噪语音子带平滑功率谱最小值作为估计的噪声谱,使得噪声谱过估计。但这种算法容易将语音电平的增长当作噪声电平的增长。与此类似的算法还有基于分位数统计量的噪声估计算法,先对噪声估计窗内的信号进行排序,然后按一定的分数比例取信号作为噪声估计,算法复杂度比较高。

2002年Cohen 和Berdugo提出了一种基于最小值控制递归平均法的噪声估计算法,把最小追踪法的鲁棒性与递归平均方法的简单性结合到一起,该算法能够快速地追踪突变的噪声功率谱。与最小统计相比,对最小值的跟踪不是关键性的,在进行递归平均时不需要对语音出现与缺失进行区分,因此即使在弱语音段也同样可以进行连续噪声估计更新。具有能够快速跟踪噪声谱的突变的能力。Cohen提出的噪声估计算法不直接依赖于最小统计量,而依赖于最小值的跟踪算法,具有较好的鲁棒性。虽然比起Martin的最小值统计跟踪算法效果要好的多,但无法完全避免在噪声上升区域的噪声欠估计及持续强语音后面区域出现的噪声过估计的缺陷。为了进一步提高算法性能,Cohen提出了改进的最小统计量控制递归平均算法(IMCRA,Improved Minima Controlled Recursive Averaging)。

2004年Rangachari 和Loizou提出了一种快速估计方法,不仅使得带噪语音子带中语音出现概率计算更准确,而且噪声谱的更新在连续时间内不依赖固定时间

的窗长,但是在语音或噪声能量过高时噪声的估计就会慢下来,而且如果时间大于0.5s 时,就会削弱一些语音能量。因此,噪声估计算法有待更进一步的改进。

2009年余力, 陈颖琪提出了一种基于DCT变换的自适应噪声估计算法,采用DCT系数作为块均匀度的度量,较好地适应了高低噪声的情况,算法复杂度不大,能适用于各种实时图像视频处理系统。理论分析及实验结果表明本算法不仅在低噪声的图片中表现出良好的性能,而且在高噪声的图片中依旧有效。此外,还能适应不同质量的图像。

通过对基于最小统计量的噪声估计方法和改进的最小统计量控制递归平均噪声估计算法研究发现这些噪声估计方法可以在语音存在段进行噪声估计,能够有效地跟踪非平稳噪声。但是,这些算法在各个频带进行噪声估计,算法复杂度高,噪声估计方差大。于是在考虑各频带间的相关性上提出了在巴克域进行噪声估计,减小了噪声估计方差,提高了噪声估计的准确性,并极大地减小算法运算量和存储量。而且,在巴克域进行噪声估计更符合人耳听觉特性,增强语音具有更好的质量。

其他类似的方法还有低能量包络跟踪和基于分位数的估计方法,后者噪声的估计是基于带噪语音未平滑功率谱的分位数,而不是提取平滑功率谱的最小值,但是此方法计算复杂度很高,且需要很大的内存来存储过去的功率谱值。

本文重点就是在前人研究的基础上,跟踪国内外最新资料,研究了一种新的噪声估计算法,使延迟时间能够缩短,最好没有延迟。

1.3 论文的整体安排

第一章绪论。噪声估计算法研究的目的和意义及国内外研究的现状。

第二章几种经典的噪声估计的算法。Martin的最小统计量的估计算法, Cohen和Berdugo提出的基于最小统计量控制递归平均算法,通过比

较最终提出改进的最小统计量控制递归平均算法,仿真结果表明,

这种方法在非平稳噪声条件下,也具有较好的噪声跟踪能力和较小

的噪声估计误差,可以有效地提高语音增强系统的性能。

第三章基于语音活动性检测的噪声估计算法及MATLAB仿真。通过基于语音活动性检测的噪声估计算法,对能量和最小过零率的语音端点进行

检测,仿真结果得出,我们需要鲁棒性更强的算法,即使在有语音

存在的情况下,也能够实现噪声的连续估计和不断更新。

第四章最小统计递归平均的噪声估计算法及MATLAB仿真。首先研究了最小值统计跟踪法通过仿真得出此算法不能快速跟踪真实噪声的变化,

并研究了基于统计信息的非平稳噪声自适应算法,但它的计算很复

杂。其次是Cohen和Berdugo提出的最小值控制递归平均算法,为了

进一步提高算法性能,本文提出了一种改进的最小值控制递归平均

算法,此算法在保证噪声估计准确性的同时减小了算法的复杂度。

第五章总结全文,并分析论文存在的不足及今后的的发展方向。在以后的噪声估计算法的研究中要进一步完善噪声功率谱的估计算法,进一步

将噪声估计方法和其他方法相结合,争取得到更加精确的噪声估计。

2 几种经典的噪声估计的算法

2.1 几种噪声估计算法的优点

(1) Martin提出的基于最小统计量的噪声估计算法,是先用一个最优平滑滤波对带噪语音的功率谱滤波,得到一个噪声的粗略估计。然后找出粗略噪声中的在一定时间窗内的最小值,对这个最小值进行一些偏差修正,即得到所要估计的噪声的方差。而且,为了能更快的跟踪并更新局部最小值和频谱最小值,把滑动窗口分为子窗口,在每个子窗口内更新噪声的估计谱,提高了精确度。

(2)Cohen和Berdugo提出的基于最小统计量控制递归平均算法, 该方法用一个与时频相关的平滑因子对带噪语音的过去值进行平均,以得到噪声的估计值,然后在每一帧内连续的更新噪声。采用递归平均进行噪声估计,平滑参数受语音存在概率控制,并由最小统计量控制语音存在概率。

(3) 近年来,提出了一种自适应连续噪声谱估计方法,它是一种专门用语单声道语音增强系统的噪声估计的。它不需要语音的有声/无声检测,噪声谱在所有的帧中连续的更新,并不关心本帧是语音帧还是噪声帧,对每一帧都重新计算其噪声功率谱。自适应连续的噪声估计算法,省去了对语音端点的检测,对非平稳噪声也有较好的适应性,即使在有语音存在的情况下,也能够实现噪声的连续估计和不断更新。

2.2 噪声估计算法

Martin提出的基于最小统计量的噪声估计算法的基本思路是先用一个最优平滑滤波对带噪语音的功率谱滤波,得到一个噪声的粗略估计。然后找出粗略噪声中的在一定时间窗内的最小值,对这个最小值进行一些偏差修正,即得到所要估计的噪声的方差。这种方法是在噪声估计窗内搜索最小值作为噪声估计量,而且此算法对窗长的选择比较敏感,当窗长比较长时,对非平稳噪声的跟踪速度慢,而且容易出现噪声低估;当窗长比较短时,比较容易出现将语音的低能量成分当作噪声。这些问题可以通过优化的平滑参数和偏差补偿得以改进,虽然提高了精确度,但这大大地提高了算法的复杂度。仿真结果表明:最小值统计跟踪法对平稳噪声噪声的估计是比较准确的,但是对非平稳噪声就表现的不好了。

而Cohen和Berdugo提出的最小统计量控制递归平均算法(MCRA,Minima Controlled Recursive Averaging),采用递归平均进行噪声估计,平滑参数受语音存在概率控制,并由最小统计量控制语音存在概率。这种算法不直接依赖于最小统计量,具有较好的鲁棒性,它是使用一个平滑参数对功率谱的过去值进行平均,该平滑参数是根据每个子带中语音存在的概率进行调整的。在一给定帧的某个子带中语音是否存在的概率可以由带噪语音的局部能量值与其待定时间窗内的最小值的比值决定,把该比值与某一门限做比较,小的比值意味着该子带中不存在语音,反之,意味着该子带内存在语音。如果给定帧的某个子带中存在语音,那么该子带内的噪声谱等于上一帧的噪声谱,如果不存在,则根据带噪语音的功率

谱更新噪声谱。最后,为了防止估计的噪声起伏较大,对其进行了递归平滑。

为了进一步提高算法性能,本文研究了一种改进的最小统计量控制递归平均算法。该算法采用递归平均进行噪声估计,其递归平均的平滑因子受语音存在概率控制,而语音存在概率的计算采用了两次平滑和最小统计量跟踪。与Cohen提出的IMCRA算法相比,本文采用的是一种快速有效的最小统计量跟踪算法,在IMCRA算法的基础上,利用其对语音最小统计量估计的鲁棒性,采用了一种简单有效的最小统计量估计算法,在保证噪声估计准确性的同时,减小了算法的复杂度。仿真结果表明:在非平稳噪声条件下,算法具有较好的噪声跟踪能力和较小的噪声估计误差,可以有效地提高语音增强系统的性能。

3 基于语音活动性检测的噪声估计算法及MATLAB 实现 传统的噪声估计方法使用语音活动监测(VAD )技术分离出无声段,这时无声段主要表现为噪声特性,然后再通过某种统计方法,即可获得背景噪声特性的近似估计。尽管该方法在噪声为平稳的情况下是可行的,但是在实际的噪声环境中噪声谱的特性变化很大,就很难达到好的降噪效果。从实用性、易实现性等方面考虑,很多算法都是建立在相对理想的实验室条件下的,要求背景噪声保持平稳,信噪比较高,而且需要一定的训练算法以预先得到背景噪声及语音的统计信息。在实际工作中,这些条件很难得到满足,而且经常会遇到信噪比较低,背景噪声缓慢变化的情况,也不可能预先得到背景噪声或语音的统计信息。而且在低信噪比下,VAD 的误检率会增大,在不能正确判断出有声/无声段的情况下,估计出来的噪声很难保证准确性。

因此,为了实现精确的噪声估计,就要对噪声谱进行实时的估计。近年来,人们提出了一种自适应连续噪声谱估计方法,它是一种专门用语单声道语音增强系统的噪声估计。噪声谱在所有的帧中连续的更新,并不关心本帧是语音帧还是噪声帧,对每一帧都重新计算其噪声功率谱,它不需要语音的有声/无声检测,对非平稳噪声也有较好的适应性,即使在有语音存在的情况下,也能够实现噪声的连续估计和不断更新。

本章从语音活动检测和连续更新噪声两方面入手,将几种算法的基本原理及过程进行了详细的描述,并分析了实验结果。

3.1 基于语音活动性检测的噪声估计算法

3.1.1 短时能量

语音信号和噪声信号的区别可以体现在他们的能量上,对于一列叠加有噪声干扰的语音信号而言,其语音段的能量是噪声段能量叠加语音声波能量之和。因此,语音段的能量一般要大于噪声段的能量。如果环境噪声和系统输入噪声比较小,以至于能够保证系统的信噪比相当高,那么只要计算输入信号的短时能量或短时平均幅度就能够把语音段和噪声背景分开。这就是仅仅基于短时能量的端点检测方法。

信号x (t )短时能量∑定义为:

E=()[]2

m w ∑∞-∞

=m x

(3-1)

语音信号的短时平均幅度定义为:

M=()∑

-∞=m x m w (3-2)

短时能量有两种定义:短时时域能量和短时谱幅能量,一般用的是短时频域能量表示,因此,短时能量用傅立叶变换后的平方表示,平均幅度为傅立叶变换后谱绝对值的和。

短时能量主要有下面几个应用:首先利用短时能量可以区分清音和浊音,因为浊音的能量要比清音的能量大得多;其次可以用短时能量对有声和无声段进行判断。

3.1.2 短时平均过零率

信号x (t )的短时平均过零率定义为: Z=()[]()[]()m t h m x m x w w -?--∑1sgn sgn 21 (3-3)

一般取: ??

???-≤≤0,1t 0N 21 N 其中N 为窗长 信号的过零率是其频率量的一种简单度量,窄带信号尤其如此。其中,当信号为单一正弦波时,过零率为信号频率的两倍。对于采样率为s F 、频率为0F 的正弦波数字信号,平均每个样本的过零率为s 2F / F 0 。

过零率有两个重要应用:第一,用于粗略地描述信号的频谱特性。第二,用于判别清音和浊音、有声和无声。由上面定义出发,计算过零率容易受低频干扰,所以需要对上述定义做一点修改,设置一个门限T ,将过零率的含义修改为跨过正负门限。如下式: Z={()[]()[]∑∞-∞=----m T m x T m x 1sgn sgn 21

+()[]()[]}()m t h T m x T m x -?+--+1sgn sgn (3-4)

这样过零率就有一定的抗干扰能力了。即使存在较小的随机噪声,只要它不使信号越过正负门限所构成的带,就不会产生虚假的过零率。

3.1.3 基于短时能量和短时平均过零率的语音活动性检测

虽然短时能量有时能将噪声和语音分开,但是在实际应用中,往往很难保证有这么高的信噪比,因而仅依靠短时能量或短时平均幅度来检测语音段的起止点常会遇到问题。而且在一些特殊情况下,在以某些音为开始或结尾时,如当弱摩擦音(如[f],[h]等音素)、弱爆破音(如[p],[t],[k]等音素)为开始或结尾;以鼻音(如[ng],[n],[m]等音素)为语音的结尾时,只用其中一个参数量来判别语音的起点和终点是有困难的,往往会漏掉某些音素,必须同时使用这两个参

数。所以,有了经典的端点检测方法——Lawrennce Rabiner[24]提出的以过零率Z 和能量E 为特征进行端点检测。

这种方法也常称为双门限比较法。此方法是在短时能量检测方法的基础上加上短时平均过零率,利用能量和过零率作为特征来进行检测。通常是利用过零率来检测清音,用短时能量来检测浊音,两者配合实现可靠的语音端点检测。

该方法的基本原理[25]如下所述:由于采集声音信号的最初的短时段为无语音段,仅有均匀分布的背景噪声信号。这样就可以用该语音信号的最初几帧(一般取10 帧)信号作为背景噪声的统计样本来计算其过零率阈值ZT 及能量阈值EL (低能量阈)和EU(高能量阈)。ZT 的定义为:

()

,

=(3-5)ZT,2

min+

IF

zc

fzc

其中IF 为经验值,一般取25;zc、fzc 分别为根据所取最初10 帧样值算得的过零率的“均值”和“标准差”。

计算EL 和EU 时,先算出最初10 帧信号每帧的短时平均能量或平均幅度E,最大值记为EMAX,最小值记为EMIN。然后令:

()EMIN

=03

.0

?

1 (3-6)

EMIN

-

EMAX

amp+

2 (3-7)

=4

EMIN

amp?

在本次设计中用前10 帧的平均值来代替最小值EMIN

最后按下式计算出EL 和EU:

()2

EL= (3-8)

amp

min amp

,1

=5 (3-9)

EU?

EL

接下来就可以用过零率阈值Z 及能量阈值EL 和EU 来进行起止点的判别。

先根据EL,EU 计算出初始起点S1。方法如下所述:从第11 帧开始,将每一帧的能量E 值与门限EL 相比较,如果能量E 超过门限EL,则将该帧计为S1。但若后续n帧的平均能量或幅度尚未超过EU 而能量又降到EL 之下,则该帧不能作为初始起点S1,然后继续寻找下一个平均能量或幅度超过EU 的帧,若后续n 帧的平均能量或幅度超过EU,则将此帧计为S1,该帧就可以作为根据能量信号找到的语音的起点。

但是,S1 只是根据能量信息找到的起点,还未必是语音的精确起点。这是由于语音的起始段往往存在着能量很弱的清辅音(如[f],[s]等),仅依靠能量很难把它们和无声区分开。但人们发现这些清辅音的过零率明显高于无声段,因此可以利用过零率这个参数来精确判断清辅音与无声区二者的分界点。当S1 确定后,从S1 帧之前的30 帧搜索,依次比较各帧的过零率,若有3 帧以上的过零率超过ZT,则将起始点S1 定为满足Z>ZT 的最前帧的帧号,如果这些帧的过零率都小于门限ZT 则将S1 作为起点。语音结束点S2 的检测方法与检测起点相同,从后向前搜索,找出第一个平均能量幅度高于EL、且其前向帧的平均能量或幅度在超出EU 前没有下降到EL 以下的帧号,记为N2,随后根据过零率向N2+25 帧搜索,若有3 帧以上的Z>ZT,则将结束点N2 定为满足Z>ZT的最后的帧号即Ne,否则即以N2 作为结束点。

3.1.4 实验仿真

下面是以一段语音为例,进行语音端点检测的Matlab 仿真。实验采用的纯净语音材料是HINT 数据库中的一条语音(语音内容:Read verse out loud for pleasure),大概2.1s 左右;噪声材料取自NOISEX-92 的高斯白噪声和f16 战斗机噪声。语音和噪声都是以8KHz 采样,16bit 量化,wav 格式存储,并通过Matlab 按一定线形比例混合成不同信噪比的带噪语音。

图3-1 语音的原始波形图

图3-2 语音的能量曲线图

图3-3 语音的短时过零率曲线图

由上图可以看出基于能量和短时过零率的端点检测算法在无噪声的环境下比较准确的检测到了语音的开始和结束点。为了验证其鲁棒性,利用了Matlab 给以上信号添加信噪比-5db 的高斯白噪声,采用同样的算法,其仿真结果如下图所示:

图3-4 加入高斯白噪声的语音波形图

图3-5 加入高斯白噪声的能量曲线图

图3-6 加入高斯白噪声的短时过零率曲线图

由以上图中可看出,在较强背景噪声的环境下,上述算法的准确性急剧下降,已经不能准确的检测出信号的端点了。因此,我们需要鲁棒性更强的算法,即使在有语音存在的情况下,也能够实现噪声的连续估计和不断更新。

MATLAB中产生高斯白噪声

MATLAB中产生高斯白噪声,涉及到awgn和wgn函数 MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1. WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。 y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗。 y = wgn(m,n,p,imp,state) 重置RANDN的状态。 在数值变量后还可附加一些标志性参数: y = wgn(…,POWERTYPE) 指定p的单位。POWERTYPE可以是'dBW', 'dBm'或 'linear'。线性强度(linear power)以瓦特(Watt)为单位。 y = wgn(…,OUTPUTTYPE) 指定输出类型。OUTPUTTYPE可以是'real'或 'complex'。 2. AWGN:在某一信号中加入高斯白噪声 y = awgn(x,SNR) 在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。 y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为'measured',则函数将在加入噪声之前测定信号强度。y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN的状态。 y = awgn(…,POWERTYPE)指定SNR和SIGPOWER的单位。POWERTYPE可以是'dB'或'linear'。如果POWERTYPE是'dB',那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是'linear',那么SNR作为比值来度量,而SIGPOWER 以瓦特为单位。 注释 1. 分贝(decibel,dB):分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB),用待表示的量与参考值之比取对数,再乘以20作为电平的分贝数(功率的电平值改乘10)。 2. 分贝瓦(dBW, dB Watt):指以1W的输出功率为基准时,用分贝来测量的功率放大器的功率值。 3. dBm (dB-milliWatt):即与1milliWatt(毫瓦)作比较得出的数字。 0 dBm = 1 mW 10 dBm = 10 mW 20 dBm = 100 mW 也可直接用randn函数产生高斯分布序列,例如: 程序代码 y=randn(1,2500); y=y/std(y);

高斯白噪声

MATLAB中产生高斯白噪声的两个函数 MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 1. WGN:产生高斯白噪声 y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。 y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗。 y = wgn(m,n,p,imp,state) 重置RANDN的状态。 在数值变量后还可附加一些标志性参数: y = wgn(…,POWERTYPE) 指定p的单位。POWERTYPE可以是'dBW', 'dBm'或'linear'。线性强度(linear power)以瓦特(Watt)为单位。 y = wgn(…,OUTPUTTYPE) 指定输出类型。OUTPUTTYPE可以是'real'或 'complex'。 2. AWGN:在某一信号中加入高斯白噪声 y = awgn(x,SNR) 在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x 的强度假定为0dBW。如果x是复数,就加入复噪声。 y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为'measured',则函数将在加入噪声之前测定信号强度。 y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN的状态。 y = awgn(…,POWERTYPE) 指定SNR和SIGPOWER的单位。POWERTYPE 可以是'dB'或'linear'。如果POWERTYPE是'dB',那么SNR以dB为单位,而SIGPOWER以dBW为单位。如果POWERTYPE是'linear',那么SNR作为比值来度量,而SIGPOWER以瓦特为单位。 注释 1. 分贝(decibel, dB):分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电

白噪声的测试MATLAB程序

白噪声的测试MATLAB程序 学术篇 2009-11-13 22:18:03 阅读232 评论0 字号:大中小订阅 clear; clc; %生成各种分布的随机数 x1=unifrnd(-1,1,1,1024);%生成长度为1024的均匀分布 x2=normrnd(0,1,1,1024);%生成长度为1024的正态分布 x3=exprnd(1,1,1024);%生成长度为1024的指数分布均值为零 x4=raylrnd(1,1,1024);%生成长度为1024的瑞利分布 x5=chi2rnd(1,1,1024);%生成长度为1024的kaifang分布%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %求各种分布的均值 m1=mean(x1),m2=mean(x2),m3=mean(x3),m4=mean(x4),m5=mean(x5) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %求各种分布的方差 v1=var(x1),v2=var(x2),v3=var(x3),v4=var(x4),v5=var(x5) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %求各种分布的自相关函数 figure(1);title('自相关函数图'); cor1=xcorr(x1);cor2=xcorr(x2);cor3=xcorr(x3);cor4=xcorr(x4);cor5=xcorr(x5); subplot(3,2,1),plot(1:2047,cor1);title('均匀分布自相关函数图'); subplot(3,2,2),plot(1:2047,cor2);title('正态分布'); subplot(3,2,3),plot(1:2047,cor3);title('指数分布'); subplot(3,2,4),plot(1:2047,cor4);title('瑞利分布'); subplot(3,2,5),plot(1:2047,cor5);title('K方分布'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %求各种分布的概率密度函数 y1=unifpdf(x1,-1,1); y2=normpdf(x2,0,1); y3=exppdf(x3,1); y4=raylpdf(x4,1); y5=chi2pdf(x5,1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %各种分布的频数直方图 figure(2); subplot(3,2,1),hist(x1);title('均匀分布频数直方图'); subplot(3,2,2),hist(x2,[-4:0.1:4]);title('正态分布'); subplot(3,2,3),hist(x3,[0:.1:20]);title('指数分布'); subplot(3,2,4),hist(x4,[0:0.1:4]);title('瑞利分布'); subplot(3,2,5),hist(x5,[0:0.1:10]);title('K方分布'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %各种分布的概率密度估计 figure(3);

高斯白噪声地matlab实现

通信系统建模与仿真 实验一、高斯白噪声的matlab 实现 要求: 样本点:100 1000 标准差:0.2 2 10 均值: 0 0.2 白噪声 如果噪声的功率谱密度在所有的频率上均为一常数,即 ) /(),(,)(0Hz W f n f P n +∞<<-∞= 式中:0n 为常数,责成该噪声为白噪声,用)(t n 表示。 高斯白噪声的matlab 实现

1.样本点为1000、均值为0、标准差为0.2时,高斯白噪声分布为下图所示: 程序如下所示: % White background nois clear all f = 1:1:1000; for i = 1:length(f) K = (0.2) * randn(1,1) - 0; P(i) = 10.^(K - 3.95*(10^-5)*f(i)); A(i) = sqrt(2*P(i)); end xifft = ifft(A); realx = real(xifft); ti = [1:length(xifft)-1]/1000; realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2) 2.样本点为1000、均值为0、标准差为2时,高斯白噪声分布为下图所示:

程序如下所示: % White background nois clear all f = 1:1:1000; for i = 1:length(f) K = (2) * randn(1,1) - 0; P(i) = 10.^(K - 3.95*(10^-5)*f(i)); A(i) = sqrt(2*P(i)); end xifft = ifft(A); realx = real(xifft); ti = [1:length(xifft)-1]/1000; realx2(1:length(xifft)-1) = realx(2:length(xifft)); plot(ti,realx2) 3.样本点为1000、均值为0、标准差为10时,高斯白噪声分布为下图所示:

matlab产生高斯噪声

%正态分布(normal distribution)又名高斯分布(Gaussian distribution), % MATLAB 命令是normrnd。 %1)R=normrnd(MU,SIGMA):生成服从正态分布(MU参数代表均值,DELTA参数代表标准差)的随机数。 % 输入的向量或矩阵MU和SIGMA必须形式相同,输出R也和它们形式相同。 %2)R=normrnd(MU,SIGMA,m):生成服从正态分布(MU参数代表均值,DELTA参数代表标准差)的随机数矩阵, % 矩阵的形式由m定义。m是一个1×2向量,其中的两个元素分别代表返回值R中行与列的维数。 %3) R=normrnd(MU,SIGMA,m,n):生成m*n形式的正态分布的随机数矩阵。 %4)randn()是标准正态分布;MA TLAB命令是normrnd 功能:生成服从指定均数和标准差的正态分布的随机数列, %即高斯随机序列。 例如: %高斯噪声为n(m)=nmr+jnmi,其中实虚部均为独立同分布N(0, a)的高斯随机数,信号x(m)=s(m) + n(m) % SNR = 10 lg[1/(2a)] = – 3 – 10 lg(a) (dB) [之所以是2a不是a是因为实虚部] %若有用信号s(n)的最大幅度am,要求得到的信噪比为p,则p=10log10[(am^2)/b^2],用这个公式反推出高斯 %噪声的方差b^2 snr=10; sqrt(a)=10^(-(snr+3)/10); noise=normrnd(0,sqrt(a),1,1000)+1*i*normrnd(0,sqrt(a),1,1000); %或者 noise=sqrt(a)*randn(1,1000)+1*i*sqrt(a)*randn(1,1000);

白噪声产生程序

第二章的白噪声产生程序 例2.2 用乘同余法产生(见光盘FLch2bzsheg2.m) ①编程如下: A=6; x0=1; M=255; f=2; N=100;%初始化; x0=1; M=255; for k=1: N %乘同余法递推100次; x2=A*x0; %分别用x2和x0表示x i+1和x i-1; x1=mod (x2,M); %取x2存储器的数除以M的余数放x1(x i)中; v1=x1/256; %将x1存储器中的数除以256得到小于1的随机数放v1中; )减去0.5再乘以存储器f中的系数,存放在v(:,k)=(v1-0.5 )*f; %将v1中的数( i 矩阵存储器v的第k列中,v(:,k)表示行不变、列随递推循环 次数变化; x0=x1; % x i-1= x i; v0=v1; end %递推100次结束; v2=v %该语句后无‘;’,实现矩阵存储器v中随机数放在v2中,且 可直接显示在MATLAB的window中; k1=k; %grapher %以下是绘图程序; k=1:k1; plot(k,v,k,v,'r'); xlabel('k'), ylabel('v');tktle(' (-1,+1)均匀分布的白噪声') ②程序运行结果如图2.6所示。 图2.6 采用MA TLAB产生的(-1,+1)均匀分布的白噪声序列 ③产生的(-1,1)均匀分布的白噪声序列 在程序运行结束后,产生的(-1,1)均匀分布的白噪声序列,直接从MATLAB的window 界面中copy出来如下(v2中每行存6个随机数):

v2 = -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 -0.0156 0.9219 0.5703 0.4531 -0.2500 -0.4844 0.1016 -0.3672 0.8047 -0.1328 0.2188 0.3359 -0.9531 -0.7188 0.6875 -0.8359 *另外,书中图2.3白噪声的产生如下: 显然,只要在例2.2程序的初始化部分中给N=300,f=6,运行程序就可以得到如图2.3所示的(-3,3)的白噪声过程. ①编程如下: A=6; x0=1; M=255; f=6; N=300;%初始化; x0=1; M=255; for k=1: N %乘同余法递推100次; x2=A*x0; %分别用x2和x0表示x i+1和x i-1; x1=mod (x2,M); %取x2存储器的数除以M的余数放x1(x i)中; v1=x1/256; %将x1存储器中的数除以256得到小于1的随机数放v1中; )减去0.5再乘以存储器f中的系数,存放在v(:,k)=(v1-0.5 )*f; %将v1中的数( i 矩阵存储器v的第k列中,v(:,k)表示行不变、列随递推循环 次数变化; x0=x1; % x i-1= x i; v0=v1; end %递推100次结束; v2=v %该语句后无‘;’,实现矩阵存储器v中随机数放在v2中,且 可直接显示在MATLAB的window中; k1=k; %grapher %以下是绘图程序; k=1:k1; plot(k,v,k,v,'r'); xlabel('k'), ylabel('v');tktle(' (-1,+1)均匀分布的白噪声')

matlab 正弦波 高斯白噪声 均匀白噪声 功率谱密度 自相关函数

现代通信原理作业一 姓名:张英伟学号:8036 班级:13级理工部3班 利用matlab完成: ●产生正弦波信号、均匀白噪声以及高斯白噪声并分别将两种噪声叠加到正弦 波信号上,绘出波形。 ●分别求取均匀白噪声序列和高斯白噪声序列的自相关及功率谱密度,绘出波 形。 一、白噪声区别及产生方法 1、定义: 均匀白噪声:噪声的幅度分布服从均匀分布,功率谱密度在整个频域内均匀分布的噪声。 高斯白噪声:噪声的幅度分布服从正态分布,功率谱密度在整个频域内均匀分布的噪声。 2、matlab仿真函数: rand函数默认产生是区间在[0,1]的随机数,这里需要利用公式: z2=a+(b-(a))*rand(m,n)............(公式1) randn函数默认产生均值是0、方差是1的随机序列,所以可以用其来产生均值为0、方差为1的正态分布白噪声,即N(0,12)。利用公式: z1=a+b*randn(1,n).................(公式2) 可以产生均值为a,方差为b2 高斯白噪声,即N(a,b2)。 二、自相关函数与功率谱密度之间的关系 1、功率谱密度:每单位频率波携带的功率,这被称为信号的功率谱密度。 2、自相关函数:描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度。 3、维纳-辛钦定理: 由于平均值不为零的信号不是平方可积的,所以在这种情况下就没有傅里叶变换。幸运的是维纳-辛钦定理提供了一个简单的替换方法,如果信号可以看作是平稳随机过程,那么功率谱密度就是信号自相关函数的傅里叶变换。 4、平稳随机过程:是在固定时间和位置的概率分布与所有时间和位置的概率分布相同的随机过程。(就是指得仅一个随机过程,中途没有变成另外一个统计特性的随机过程)

王能超 计算方法——算法设计及MATLAB实现课后代码

第一章插值方法 1.1Lagrange插值 1.2逐步插值 1.3分段三次Hermite插值 1.4分段三次样条插值 第二章数值积分 2.1 Simpson公式 2.2 变步长梯形法 2.3 Romberg加速算法 2.4 三点Gauss公式 第三章常微分方程德差分方法 3.1 改进的Euler方法 3.2 四阶Runge-Kutta方法 3.3 二阶Adams预报校正系统 3.4 改进的四阶Adams预报校正系统 第四章方程求根 4.1 二分法 4.2 开方法 4.3 Newton下山法 4.4 快速弦截法 第五章线性方程组的迭代法 5.1 Jacobi迭代 5.2 Gauss-Seidel迭代 5.3 超松弛迭代 5.4 对称超松弛迭代 第六章线性方程组的直接法 6.1 追赶法 6.2 Cholesky方法 6.3 矩阵分解方法 6.4 Gauss列主元消去法

第一章插值方法 1.1Lagrange插值 计算Lagrange插值多项式在x=x0处的值. MATLAB文件:(文件名:Lagrange_eval.m)function [y0,N]= Lagrange_eval(X,Y,x0) %X,Y是已知插值点坐标 %x0是插值点 %y0是Lagrange插值多项式在x0处的值 %N是Lagrange插值函数的权系数 m=length(X); N=zeros(m,1); y0=0; for i=1:m N(i)=1; for j=1:m if j~=i; N(i)=N(i)*(x0-X(j))/(X(i)-X(j)); end end y0=y0+Y(i)*N(i); end 用法》X=[…];Y=[…]; 》x0= ; 》[y0,N]= Lagrange_eval(X,Y,x0) 1.2逐步插值 计算逐步插值多项式在x=x0处的值. MATLAB文件:(文件名:Neville_eval.m)function y0=Neville_eval(X,Y,x0) %X,Y是已知插值点坐标 %x0是插值点 %y0是Neville逐步插值多项式在x0处的值 m=length(X); P=zeros(m,1); P1=zeros(m,1); P=Y; for i=1:m P1=P; k=1; for j=i+1:m k=k+1;

基于MATLAB的高斯白噪声信道分析报告

基于matlab高斯白噪声信道分析系统的设计 ×× (陕西理工学院物理与电信工程学院通信工程专业1202班,陕西汉中 723003) 指导教师:吴燕 [摘要] MATLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。本文在matlab的环境下构建了BFSK在高斯白噪声信道中传输的系统模型,通过simulink程序仿真,研究系统的误码率与信道质量的关系,找到在高斯白噪声信道上传输的最大信噪比及所需发射功率和调制频率,从而得出该系统在高斯白噪声信道中的最佳传输性能。 [关键词] MATLAB;高斯白噪声;信道分析;simulink仿真

Design and production of the Gauss white noise channel analysis system based on MATLAB ×× (Grade 2012,Class 2,Major of Communication Engineering,School of Physics and Telecommunication Engineering of Shaanxi University of Technology,Hanzhong 723003,Shaanxi) Tutor: Wu Yan Abstract: MATLAB is a high-level technical computing language and interactive environment for the development of algorithms, data visualization, data analysis and numerical calculation. This article in the matlab environment build BFSK in AWGN channel model simulation,by running simulation the program on the system of quality of error rate and channel relationships,found in AWGN channel transport of maximum signal-to-noise ratio and the desired transmitter power. Key words:MA TLAB; Gauss white noise; channel analysis; Simulink simulation

matlab 正弦波 高斯白噪声 均匀白噪声 功率谱密度 自相关函数

现代通信原理作业一 姓名:张英伟学号:133320085208036 班级:13级理工部3班 利用matlab完成: ●产生正弦波信号、均匀白噪声以及高斯白噪声并分别将两种噪声叠加到正弦 波信号上,绘出波形。 ●分别求取均匀白噪声序列和高斯白噪声序列的自相关及功率谱密度,绘出波 形。 一、白噪声区别及产生方法 1、定义: 均匀白噪声:噪声的幅度分布服从均匀分布,功率谱密度在整个频域内均匀分布的噪声。 高斯白噪声:噪声的幅度分布服从正态分布,功率谱密度在整个频域内均匀分布的噪声。 2、matlab仿真函数: rand函数默认产生是区间在[0,1]的随机数,这里需要利用公式: z2=a+(b-(a))*rand(m,n)............(公式1) randn函数默认产生均值是0、方差是1的随机序列,所以可以用其来产生均值为0、方差为1的正态分布白噪声,即N(0,12)。利用公式: z1=a+b*randn(1,n).................(公式2) 可以产生均值为a,方差为b2 高斯白噪声,即N(a,b2)。 二、自相关函数与功率谱密度之间的关系 1、功率谱密度:每单位频率波携带的功率,这被称为信号的功率谱密度。 2、自相关函数:描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度。 3、维纳-辛钦定理: 由于平均值不为零的信号不是平方可积的,所以在这种情况下就没有傅里叶变换。幸运的是维纳-辛钦定理提供了一个简单的替换方法,如果信号可以看作是平稳随机过程,那么功率谱密度就是信号自相关函数的傅里叶变换。 4、平稳随机过程:是在固定时间和位置的概率分布与所有时间和位置的概率分布相同的随机过程。(就是指得仅一个随机过程,中途没有变成另外一个统计特性的随机过程)

M序列的matlab产生方法

M序列是工程中常用的输入信号,它的性质类似于白噪声,而白噪声是理论上最好的输入信号,可见M序列的价值。下面介绍M序列的matlab产生方法。 idinput函数 产生系统辨识常用的典型信号。 格式 u = idinput(N,type,band,levels) [u,freqs] = idinput(N,'sine',band,levels,sinedata) N 产生的序列的长度,如果N=[N nu],则nu为输入的通道数,如果N=[P nu M],则nu指定通道数,P为周期,M*P为信号长度。默认情况下,nu=1,M=1,即一个通道,一个周期。 Type 指定产生信号的类型,可选类型如下 Band 指定信号的频率成分。对于’rgs’、’rbs’、’sine’,band = [wlow, whigh]指定通带的范围,如果是白噪声信号,则band=[0, 1],这也是默认值。指定非默认值时,相当于有色噪声。 对于’prbs’,band=[0, B],B表示信号在一个间隔1/B(时钟周期)内为恒值,默认为[0, 1]。 Levels 指定输入的水平。Levels=[minu, maxu],在type=’rbs’、’prbs’、’sine’时,表示信号u的值总是在minu和maxu之间。对于type=’rgs’,minu指定信号的均值减标准差,maxu指定信号的均值加标准差,对于0均值、标准差为1的高斯白噪声信号,则levels=[-1, 1],这也是默认值。 说明 对于PRBS信号,如果M>1,则序列的长度和PRBS周期会做调整,使PRBS的周期为对应一定阶数的最大值(即2^n-1,n为阶数);如果M=1,PRBS的周期是大于N的相应阶数的值。在多输入的情形时,信号被最大平移,即P/nu为此信号能被估计的模型阶次的上界。 上面的意思可如下理解:对于M=1时, ms = idinput(12, 'prbs', [0 1], [0 1]); figure stairs(ms) title('M序列')

0计算方法及MATLAB实现简明讲义课件PPS8-1欧拉龙格法

第8章 常微分方程初值问题数值解法 8.1 引言 8.2 欧拉方法 8.3 龙格-库塔方法 8.4 单步法的收敛性与稳定性 8.5 线性多步法

8.1 引 言 考虑一阶常微分方程的初值问题 00(,),[,],(). y f x y x a b y x y '=∈=(1.1) (1.2) 如果存在实数 ,使得 121212(,)(,).,R f x y f x y L y y y y -≤-?∈(1.3) 则称 关于 满足李普希茨(Lipschitz )条件, 称为 的李普希茨常数(简称Lips.常数). 0>L f y L f (参阅教材386页)

计算方法及MATLAB 实现 所谓数值解法,就是寻求解 在一系列离散节点 )(x y <<<<<+121n n x x x x 上的近似值 . ,,,,,121+n n y y y y 相邻两个节点的间距 称为步长. n n n x x h -=+1 如不特别说明,总是假定 为定数, ),2,1( ==i h h i 这时节点为 . ) ,2,1,0(0 =+=i nh x x n 初值问题(1.1),(1.2)的数值解法的基本特点是采取 “步进式”. 即求解过程顺着节点排列的次序一步一步地向前推进. 00(,),[,], (). y f x y x a b y x y '=∈=

描述这类算法,只要给出用已知信息 ,,,21--n n n y y y 计算 的递推公式. 1+n y 一类是计算 时只用到前一点的值 ,称为单步法. 1+n y n y 另一类是用到 前面 点的值 , 1+n y k 11,,,+--k n n n y y y 称为 步法. k 其次,要研究公式的局部截断误差和阶,数值解 与 精确解 的误差估计及收敛性,还有递推公式的计算 稳定性等问题. n y )(n x y 首先对方程 离散化,建立求数值解的递推 公式. ),(y x f y ='

MATLAB环境下的正弦信号及高斯白噪声仿真程序说明

姓名:朱奇峰 专业:电子与通信工程 方向:数字广播电视技术 学号:103320430109033 MATLAB 环境下的正弦信号及高斯白噪声仿真程序说明 一、信号的产生及时域观察 1、设定正选信号的频率为10HZ ,抽样频率为100HZ ; 2、设定N(0,0.25)高斯白噪声,及噪声功率为0.25W ; 3、最后将噪声叠加到正弦信号上,观察其三者时域波形。 二、信号频谱及白噪声功率谱的求解与观察 1、对原正弦信号直接进行FFT ,得出其频谱; 2、求白噪声的自相关函数,随机序列自相关函数的无偏估计公式为: 1 ^ 01()()()N m xx n r m x n x n m N m --==+-∑ 01m N ≤≤- ^^ ()()xx xx r m r m =- 01m N <<- 对所求自相关函数进行FFT 变换,求的白噪声的功率谱函数。 三、仿真结果:

附源程序代码: fs=100; fc=10; x=(0:1/fs:2); n=201; y1=sin(2*pi*fc*x); %原正弦信号,频率为10 a=0;b=0.5; %均值为a,方差为b^2 subplot(3,2,1); plot(x,y1,'r'); title('y=sin(20pi*x)'); ylabel('y'); xlabel('x/20pi'); grid; y2=a+b*randn(1,n); %高斯白噪声 subplot(3,2,2); plot(x,y2,'r'); title('N(0,0.25)的高斯白噪声'); ylabel('y'); xlabel('x/20pi'); grid; y=y1+y2; %加入噪声之后的信号 subplot(3,2,3); plot(x,y,'r'); title('叠加了高斯白噪声的sinx'); ylabel('y'); xlabel('x/20pi'); grid; FY=fft(y); %傅里叶变换得出频谱函数 FY1=fftshift(FY); %频谱校正 f=(0:200)*fs/n-fs/2; subplot(3,2,4); plot(f,abs(FY1),'r'); title('函数频谱图'); ylabel('F(jw)'); xlabel('w'); grid; %求高斯白噪声的自相关函数 m=50; i=-0.49:1/fs:0.49;

用MATLAB实现结构可靠度计算.

用MATLAB实现结构可靠度计算 口徐华…朝泽刚‘u刘勇‘21 。 (【l】中国地质大学(武汉工程学院湖北?武汉430074; 12】河海大学土木工程学院江苏?南京210098 摘要:Matlab提供了各种矩阵的运算和操作,其中包含结构可靠度计算中常用的各种数值计算方法工具箱,本文从基本原理和相关算例分析两方面,阐述利用Matlab,编制了计算结构可靠度Matlab程.序,使得Matlab-语言在可靠度计算中得到应用。 关键词:结构可靠度Matlab软件最优化法 中图分类号:TP39文献标识码:A文章编号:1007-3973(200902-095-Ol 1结构可靠度的计算方法 当川概率描述结构的可靠性时,计算结构可靠度就是计算结构在规定时问内、规定条件F结构能够完成预定功能的概率。 从简单到复杂或精确稃度的不同,先后提出的可靠度计算方法有一次二阶矩方法、二次二阶矩方法、蒙特卡洛方法以及其他方法。一次■阶矩方法又分为。I-心点法和验算点法,其中验算点法足H前可靠度分析最常川的方法。 2最优化方法计算可靠度指标数学模型 由结构111n个任意分布的独立随机变量一,x:…以表示的结构极限状态方程为:Z=g(■.托…t=0,采用R-F将非正念变量当罱正态化,得到等效正态分布的均值o:和标准差虹及可靠度指标B,由可靠度指标B的几何意义知。o;辟

开始时验算点未知,把6看成极限状态曲面上点P(■,爿:---37,的函数,通过优化求解,找到B最小值。求解可靠皮指标aJ以归结为以下约束优化模型: rain睁喜t华,2 s.,.Z=g(工i,x2’,…,工:=0 如极限状态方栉巾某个变最(X。可用其他变量表示,则上述模型jfIJ‘转化为无约束优化模型: 。。B!:手f生丛r+阻:坚:坠:盐尘}二剐 t∞oY?’【叫,J 3用MATLAB实现结构可靠度计算 3.1Matlab简介 Matlab是++种功能强、效率高、便.丁.进行科学和工程计算的交互式软件包,汇集了人量数学、统计、科学和工程所需的函数,MATI.AB具有编程简甲直观、用户界mf友善、开放性强等特点。将MATLAB用于蒙特卡罗法的一个显著优点是它拥有功能强大的随机数发生器指令。 3.2算例 3.2.I例:已知非线形极限状态方程z=g(t r'H=567f r-0.5H2=0’f、r服从正态分布。IIf=0.6,o r=0.0786;la|_ 2.18,o r_0.0654;H服从对数正态分布。u H= 3218,O。 =0.984。f、r、H相互独立,求可靠度指标B及验算点(,,r’,H‘。 解:先将H当量正念化:h=ln H服从正态分布,且 ,‘-““了:等专虿’=,。49?口二-、『五ir面_。。3

MATLAB白噪声正弦信号分析

1. 程序设计目的 机械故障诊断中,通过在机械设备上布置传感器,利用传感器采集机械设备工作时的振动信号,通过对采集得到的信号进行加工分析,从而了解设备的工作状态,达到对机械设备故障诊断的目的。 2. 程序实现功能 本次作业设计了一段程序分析信号,信号采用加白噪声的正弦信号,实现以下目的: 1) 绘制出信号时域波形图。 2) 计算信号时域特征值。 3) 通过快速傅里叶变换,使信号由时域转频域。 4) 绘制出信号的频域波形图,幅值图,相位图。 5) 计算信号频域特征值。 3. 程序运行结果: 图一 0.050.1-4-202 4t x (t ) 白噪声 -0.1 -0.05 00.050.1-2-1 01 2t r u (t ) 白噪声自相关 0.050.1 -4-202 4t x (t ) 带白噪声的正弦时域图 -0.1 -0.05 00.050.1 -1000100 200t r x (t ) 带白噪声的正弦函数自相关

图二 时域特性: 平均值=-0.072681 最小值=-3.049843 最大值=3.859065 标准差=1.268557 方差=1.609236 幅频特性: 平均值=0.840376 最小值=1.791697 最大值=1.077591 标准差=12.678479 方差=160.743820 4. 源程序: %正弦带白噪声信号时域,频域分析 %时域分析 fs=1000;N=100; t=(0:N-1)/fs;n=0:N-1; mlag=100; u=randn(size(t)); [ru,lags]=xcorr(u,mlag,'unbiased'); x=sin(2*pi*60*t)+u; 0.050.1 -4-202 4t x (t ) 带白噪声的正弦时域图0 5001000 -20-10010 20频率幅值 频谱图 5001000 0.51 1.5f 幅值 幅值谱 5001000 -4-202 4f 相位角 相位谱

MATLAB 生成高斯噪声wgn函数

function y = wgn(varargin) %WGN Generate white Gaussian noise. % Y = WGN(M,N,P) generates an M-by-N matrix of white Gaussian noise. % P specifies the power of the output noise in dBW. % % Y = WGN(M,N,P,IMP) specifies the load impedance in Ohms. % % Y = WGN(M,N,P,IMP,STATE) resets the state of RANDN to STATE. % % Additional flags that can follow the numeric arguments are: % % Y = WGN(..., POWERTYPE) specifies the units of P. POWERTYPE can % be 'dBW', 'dBm' or 'linear'. Linear power is in Watts. % % Y = WGN(..., OUTPUTTYPE); Specifies the output type. OUTPUTTYPE can % be 'real' or 'complex'. If the output type is complex, then P % is divided equally between the real and imaginary components. % % Example 1: % % To generate a 1024-by-1 vector of complex noise with power % % of 5 dBm across a 50 Ohm load, use: % Y = wgn(1024, 1, 5, 50, 'dBm', 'complex') % % Example 2: % % To generate a 256-by-5 matrix of real noise with power % % of 10 dBW across a 1 Ohm load, use: % Y = wgn(256, 5, 10, 'real') % % Example 3: % % To generate a 1-by-10 vector of complex noise with power % % of 3 Watts across a 75 Ohm load, use: % Y = wgn(1, 10, 3, 75, 'linear', 'complex') % % See also RANDN, AWGN. % Copyright 1996-2008 The MathWorks, Inc. % $Revision: 1.11.4.5 $ $Date: 2008/08/01 12:17:45 $ % --- Initial checks error(nargchk(3,7,nargin,'struct')); % --- Value set indicators (used for the strings) pModeSet = 0; cplxModeSet = 0; % --- Set default values p = []; row = []; col = []; pMode = 'dbw'; imp = 1; cplxMode = 'real'; seed = []; % --- Placeholders for the numeric and string index values numArg = [];

计算方法及其MATLAB实现第二章作业

作者:夏云木子 1、 >> syms re(x) re(y) re(z) >> input('计算相对误差:'),re(x)=10/1991,re(y)=0.0001/1.991,re(y)=0.0000001/0.0001991 所以可知re(y)最小,即y精度最高 2、 >> format short,A=sqrt(2) >> format short e,B=sqrt(2) >> format short g,C=sqrt(2)

>> format long,D=sqrt(2) >> format long e,E=sqrt(2) >> format long g,F=sqrt(2) >> format bank,H=sqrt(2) >> format hex,I=sqrt(2) >> format +,J=sqrt(2) >> format,K=sqrt(2)

3、 >> syms A >> A=[sqrt(3) exp(7);sin(5) log(4)];vpa(pi*A,6) 4、1/6251-1/6252=1/6251*6252 5、(1)1/(1+3x)-(1-x)/(1+x)=x*(3*x-1)/[(1+3*x)*(1+x)] (2) sqrt(x+1/x)-sqrt(x-1/x)=2/x/[sqrt(x-1/x)+sqrt(x+1/x)] (3) log10(x1)-log(x2)=log10(x1/x2) (4) [1-cos(2*x)]/x =x^2/factorial(2)-x^4/factorial(4)+x^6/factorial(6)-…

相关主题
文本预览
相关文档 最新文档