引言 在振动、声学、地震、通讯、雷达、控制系统和生物医学工程等广泛的科学技术领域中都对实际所观察的信号提出了滤波和频谱分析的要求。以数字形式对它们进行处理的内容,就构成了数字信号处理的基本研究内容。在虚拟仪器中滤波技术有着广泛的应用。从测试现场采集到的信号中包含有对数据处理有用的信号、无用信号和噪声,滤波的目的是从信号中提取有用的信号。在虚拟仪器系统中,将信号采集到电脑中,通常还需要利用软件完成复杂的分析和信号处理工作,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)相连以备最后总程序产生报错系统。
Real FFT.vi:这个VI计算输入序列的快速傅立叶变换(FFT)或离散傅立叶变换(DFT)。如果输入序列的长度为2的幂,Real FFT.vi将执行FFT程序;如果输入序列的长度不是2的幂,则会调用一个有效的DFT程序。本程序中将滤波器输出的数组输入到Real FFT中进行快速傅立叶变换,这时候的输出是复数数组,才通过一个Complex To Polar.vi得到信号的幅度分量。显示部分的程序如图4所示: