基于LabVIEW虚拟滤波器去除噪声VI设计
引言
本文引用地址:http://www.amcfsurvey.com/article/195863.htm在振动、声学、地震、通讯、雷达、控制系统和生物医学工程等广泛的科学技术领域中都对实际所观察的信号提出了滤波和频谱分析的要求。以数字形式对它们进行处理的内容,就构成了数字信号处理的基本研究内容。在虚拟仪器中滤波技术有着广泛的应用。从测试现场采集到的信号中包含有对数据处理有用的信号、无用信号和噪声,滤波的目的是从信号中提取有用的信号。在虚拟仪器系统中,将信号采集到电脑中,通常还需要利用软件完成复杂的分析和信号处理工作,LabVIEW 提供了大量的分析工具,成熟的算法,方便了软件的开发。基于此本文在PC机LabVIEW软件中模拟产生一个接近于实际信号的带噪声的信号,生成一个带噪声的信号发生装置。选择滤波速度较快的无限冲激响应滤波器IIR,对虚拟滤波器去除噪声进行设计。
1、设计思路
在信号传输过程中,经常会混入高频噪声,噪声的能量甚至会超过信号能量。因此接收端收到信号后,通常首先要进行低通滤波,然后才能对信号做进一步处理。 设计的流程图图1所示:
2.虚拟滤波器去除噪声VI设计原理
2.1 生成滤波器的自选信号
自选信号是信号发生器发出的信号加上噪声信号来实现的。在信号发生器部分应用Basic Function Generator.vi产生正弦波、方波、三角波、锯齿波等标准信号,噪声部分我使用了Uniform White Noise Waveform.vi生成均匀分布的伪随机的白噪声,然后一起相加生成自选信号。
图1 虚拟滤波器去除噪声VI流程图
在本程序中,设定Fs(采样频率)和#s(采样点数)均为1000,根据奈奎斯特抽样定理生成信号的频率小于Fs/2,频谱就不会失真,所以Basic Function Generator.vi生成信号的频率最好不要超过500Hz。但经过试验在LabVIEW中采样频率如果越接近Fs/2频谱很容易失真。所以Basic Function Generator.vi生成信号的频率一定要根据实际使用情况选择。
噪声的幅度值在[-a,a]之间,a是幅度的绝对值,本次设的是默认值0.10。由于生成的噪声输出信号要和Basic Function Generator.vi的生成信号相加,所以Sampling info(采样信息)和Basic Function Generator.vi的Sampling info一致。输出的signal out同样也是一个簇,包含了to,Y,dt三个数据,各个数据的作用和Basic Function Generator.vi中的signal out是一样的。Basic Function Generator.vi和Uniform White Noise Waveform.vi的signal out输出的信号各自经过一个get waveform component.vi得到波形成分Y。最后两者生成的信号经过get waveform component.vi后再经过一个Add得到模仿的真实信号,如图2所示,在连线时可以将两者的error in(out)相连以备最后总程序产生报错系统。
图2 自选信号部分程序图
2.2. 滤波部分
滤波部分是本程序的核心部分。选用滤波速度快,对相位没有要求的IIR滤波器,本程序采用Butterworth滤波器和Chebyshev滤波器。巴特沃斯滤波器拥有最平滑的频率响应,在截断频率以外,频率响应单调下降。在通带中是理想的单位响应,在阻带中响应为零,过渡带的陡峭成度正比于滤波器的阶数,所以通过提高阶数可以明显的提高滤波效果。并且可以选择低通滤波,高通滤波,带通滤波或者带阻滤波,用户可以根据自己的滤波要求选择合适的滤波模式。这个功能的实现是用一个case选择结构完成的。
评论