当前位置:首页 > 基于MATLAB的信号消噪处理和程序设计
基于MATLAB的信号消噪处理和程序设计
2.数字信号处理
2.1 数字信号处理的基本概念
几乎在所有的工程技术领域中都会涉及到信号处理问题,其信号表现形式有电、磁、机械以及热、光、声等。信号处理一般包括数据采集以及对信号进行分析、变换、综合、估值与识别等。
一般来说,数字信号处理的对象是数字信号,模拟信号处理的对象是模拟信号。但是,如果系统中增加数/模转换器和模/数转换器,那么,数字信号处理系统也可以处理模拟信号。这里关键的问题是两种信号处理系统对信号处理方式的不同,数字信号处理是采用数值计算的方法完成对信号的处理,而模拟信号处理则是通过一些模拟器件完成对信号的处理。
2.2 数字信号处理的基本方法
数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此,在进行信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。数字信号处理的输出经常也要变换到模拟域,这是数模转换器实现的。
数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器和专用集成电路等。数字信号处理技术及设备具有灵活、精确。抗干扰性强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备无法比拟的。
数字信号处理的核心算法是离散傅立叶变换,是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。然而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能,极大地促进了该学科的发展。
6
基于MATLAB的信号消噪处理和程序设计
2.3 MATLAB在数字信号处理中的应用
2.3.1基本信号的表示及可视化
数字信号处理的基础是离散信号及离散系统,在MATLAB中可直观快速进行离散信号的显示与运算。用MATLAB表示一离散序列x[k]时,可用两个向量来表示。其中一个向量表示自变量k的取值范围,另一个向量表示序列x[k]的值,在命令窗口直接输入表示两个向量的命令语句即可。
另外,MATLAB的工具箱中还提供了大量的信号产生函数,例如:sawtooth(产生锯齿波或三角波信号)、square(产生方波信号)、chirp(产生调谐余弦信号)、gauspuls(产生高斯正弦脉冲信号)等等,调用这些函数可以方便地生成多种复杂信号。
2.3.2 MATLAB在采样与波形发生的应用
数字信号处理的对象,是在采样时钟的控制之下,通过A/D转换器一定的采样频率对模拟信号进行采样得到的。根据采样定理,采样率必须大于模拟信号的最高采样率(Nyquist频率)的2倍。但是在许多情况下,要求信号以不同的频率采样,改变采样时钟虽然可行,但是并不可取。这时需要对采样数据进行处理:或者用抽取的方法降低其采样率(下采样);或者用内插的方法提高其采样率(上采样);或者两者兼有之(重采样)。
在程序设计阶段,为了对程序进行调试或验证算法的正确性,需要一些特性已知的信号(简单的如正弦、方波、三角波等),所以可以由Matlab提供一些波形产生函数。例如在上节中提到的方波发生器square()、锯齿波和三角波发生器sawtooth()等。
2.4.3 MATLAB在数字滤波器中的应用
滤波器是指用来对输入信号进行滤波的硬件或软件。如果滤波器的输入、输出都是离散时间信号,则该滤波器冲击响应也必然是离散的,这样的滤波器定义为数字滤波器。
7
基于MATLAB的信号消噪处理和程序设计
数字滤波器用硬件实现的基本部件包括延迟器、乘法器和加法器;如果用软件来实现时,它即是一段线性卷积程序。软件实现的优点是系统函数具有可变性,仅依赖于算法结构,而且易于获得较理想的滤波功能。
MATLAB的信号处理工具箱的两个基本组成就是滤波器的设计与实现以及谱分析。工具箱提供了丰富而简便的设计、实现FIR和IIR的方法,使原来繁琐的程序设计简化成函数调用,特别是滤波器的表达方式和形式之间的相互转换显得十分简便,为滤波器的设计和实现开辟了一片广阔的天地。
数字滤波器从功能上分类,可分为低通滤波器、高通滤波器、带通滤波器、带阻滤波器。从滤波器的网络结构或者从单位脉冲响应分类,可分为IIR滤波器(即无限长单位冲击响应滤波器)和FIR滤波器(即有限长单位冲击响应滤波器)。
IIR滤波器和FIR滤波器的设计方法有很多不同之处,IIR滤波器设计方法有两类,经常用到的一类设计方法是借助于模拟滤波器的设计方法进行的。其设计思路是:先设计模拟滤波器得到传输函数H(s),然后将H(s)按某种方法转换成数字滤波器的系统函数H(z)。这类方法是基于模拟滤波器的设计方法比较成熟的情况下,它不仅有完整的设计公式,也有完整的图表供查阅。更可以直接调用MATLAB中的对应的函数进行设计。另一类是直接在频域或者时域中进行设计的,设计时必须用计算机作辅助设计,直接调用MATLAB中的一些程序或者函数可以很方便地设计出所需要的滤波器。
FIR滤波器不能采用由模拟滤波器的设计进行转换的方法。经常用的是窗函数法和频率采样法。也可以借助计算机辅助设计软件采用切比雪夫等波逼近法进行设计。
8
基于MATLAB的信号消噪处理和程序设计
3.MATLAB程序及仿真
3.1原始信号试验程序和波形图
figure(1);%原始信号分析 t=linspace(0,6,512) ft=sin(t*pi)+cos(t*pi); subplot(2,1,1); plot(t,ft); xlabel('t'); ylabel('f(t)');
title('f(t)=sin(πt)+cos(πt)'); grid on; Fw1=fft(ft); Fw=abs(Fw1); subplot(2,1,2); plot(Fw(1:32)); xlabel('w'); ylabel('|Fw|');
title('原始信号的幅频特性'); grid on;
9
共分享92篇相关文档