基于MATLAB的噪声消除方法
基于MATLAB的噪声消除方法 答 辩 人 :徐 苏 美 指导教师:杨卫平教授 论文的指导思想 21世纪的社会是信息化社会,我们生活中的每一天都离不开数字信号。随着信息、微电子学科和计算机技术的飞速发展,数字信号处理的理论在过去30年中得到了飞速的发展,其技术的应用范围也越来越广泛,程度也越来越复杂,因而对于算法及其实现的研究更显重要。 采用何种语言实现算法更方便,效率更高,对于数字信号处理极其重要。研究表明,应用MATLAB语言开发数字信号处理系统是非常高效实用的。目前,MATLAB已经广泛地应用于工程设计的各个领域。如电子、通信等领域。它已经成为国际上最流行的计算机仿真软件设计工具。现在的MATLAB不再仅仅是一个矩阵实验室,而是一种实用的、功能强大的,不断更新的高级计算机编程语言 论文结构 MATLAB简介 MATLAB是一种科学计算软件,专门以矩阵的形式处理数据,它将高性能的数值计算和可视化集成在一起,集科学计算、自动控制、信号处理、图像处理、神经网络和小波分析等于一体,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制计算、信息处理等领域的分析,仿真和设计工作中。 MATLAB产品族可以用来进行数值分析、数值和符号计算、工程与科学绘图、控制系统的设计与仿真、数字图像处理、通信系统设计与仿真、财务与金融工程等。与其他计算机语言相比,它的特点是简洁和智能化,具有极高的编程和调试效率。 噪声的定义与分类 噪声即不属于原信号且混杂在原信号中很难分离的部分。信号处理中一般认为噪声是有害的,即它“污染”了信号。噪声的本质是能量的一种无序运动,从宏观和微观上看物质总是不停的运动,在大量有序运动的同时总存在着一些无序的运动,从这个意义上说噪声是不可避免的,但是通过技术处理,可以把噪声降到最低程度。噪声有很多不同的类型,来源于电磁辐射、电子装置中电子器件的热噪声;对模拟信号抽样时所产生的量化噪声;有限位运算(+,-,*,/)所产生的舍入误差噪声; 在信号处理中为了模拟所研究的客观对象,常常需要人为地产生不同类型的噪声,最常用的一种噪声模型是所谓“白噪声(White noise)”,白噪声的名称来源于白色光的性质,意即在白噪声中含有所有的频率的成分,显然,这是一种理想化的模型。 去噪方法的有关研究 去除噪声是信号处理中的永恒话题,也是普遍关注并研究的问题之一,研究人员已经提出了很多去除噪声的方法,有滤波、小波变换等方法。传统的建立在傅里叶变换基础上的去噪声方法,在提高信噪比和提高空间分辨率两项指标上存在矛盾。低通滤波能通过平滑抑制噪声,但同时会使信号的边沿变模糊。高通滤波可以使信号边沿更加的陡峭,但背景噪声也同时被加强了。 相比之下,小波变换作为一种新型的时频分析方法,由于其具有良好的时频局部性,并且有快速算法(Mallat算法)加以实现,因而在去噪领域受到了越来越多的关注。Mallat曾于1992年利用奇异信号和随机噪声在多尺度空间中不同的模极大值特性设计了一种小波消噪方法,但这种方法对奇异性大的信号,效果比较好,而对奇异性小的信号,效果不太理想。 白噪声 MATLAB中的rand.m和randn.m文件可用来分别产生服从均匀分布和高斯分布的白噪声信号。 1.用MATLAB命令: x = rand(1, N) 可产生在区间(0,1)中均值为0.5、均匀分布的长度为N的随机信号。由rand(1, N)给出的噪声功率为 pu=1/12 2.用MATLAB命令: x = randn(1, N) 可产生长度为N的且具有零均值和单位方差的正态分布的随机信号。 有一信号x(n),设其中含有真实的信号s(n),并含有噪声u(n),若x(n)可表示为 有关信噪比的计算 白噪声的功率pu用其方差来定义。假定信号s(n)的功率为ps,则定义x(n) = s(n) + u(n) 中信号x(n)的信噪比(Signal noise rate,SNR)为 SNR=10 lg(ps/ pu)(dB) 正弦信号的功率表达式: 指数信号的功率表达式: 实验的算法流程 实验的基本算法 假定信号s[n]被噪声d[n]所污染,得到了一个含有噪声的信号x[n]=s[n]+d[n]。目的是对x[n]进行运算,产生一个合理逼近s[n]的信号y[n]。因此,对时刻n样本附近的一些样本求平均,产生输出信号是一种简单有效的方法。实验中采用三点滑动平均算法: y[n]=1/3(x[n-1]+x[n]+x[n+1]) 三点滑动平均算法