关于采集数据的实时显示问题
现使用NI的pci 6014数采卡采集从压力传感器传出的数据至电脑,由于有工频干扰,lv
编的接收和处理数据的程序里用到了buttworth低通滤波器,但现在遇到的问题是:经过
处理后显示在waveform chart上的数据和实际的压力值不太一致,比如:实际中的压力
值为10,然后突然减为0,但在chart中显示的数据不能立即降为0,在采样率为1000的时
候需要2秒以后才会降为0,采样率越低,这个时间就越长
请问高手,这个问题如何能解决?
低通滤波器的效果就是这样的啊。要么你可以不用低通滤波器,自己FFT后清掉工频然后ifft
提高采样频率,每次从缓存多读数据,还有就是处理数据和采集数据不要同一个线程,你试试吧,我也不清楚行不行
呵呵,那还是一样的,FFT的计算量比同点数的数字滤波还会稍大一点呢。
我觉得时延应该主要还是在采了多少点后再进行DSP处理决定的,
做数字滤波和作FFT都要等到采完一定的点数n。所以延时基本上还是nT的时间。
T就是采样间隔啦。
如果要实时的话,尽量减少低通滤波的计算点数,或者干脆前端在硬件上加模拟的滤波器。
他的题目和问题不一致的。他的信号不快,时间计算量不是主要考虑的问题。主要是波变形的问题。
你可以试验用一个方波叠加一个工频(比如用个50hz正弦模拟),看用什么办法可以恢复出方波来。低通肯定是不行的。数字模拟都不行。实际需要的是个类似带通的滤波器。不过是在通带内“截止”。
对,到底是因为延时还是变形他自己是没讲清楚。
但是我的延时的意思不是计算时间,而是采样时间,因为FFT和数字滤波都是采了n个点后再计算的,所以和实际的波形肯定有延时,而且n取得越大延时越明显。计算造成的延时一般是可以忽略的。
当然我不知道他的问题是延时还是变形。这个很好看出来的,把滤波前的波形也显示出来,对比一下就看出来了。
关于低通的,我是没想这方面,他说低通我就跟着说低通了,你说的是带阻滤波器?高通就可以了吧,可以把50Hz滤掉了。但是如果考虑到工频谐波噪声,还要用梳状滤波,那更繁了。
不好意思,是变形,不是延时
那的确是你的滤波器选错了,你用低通肯定不行,把高频部分滤掉了,
突变信号的频谱范围很宽的。
你自己想想你测量信号的频率范围是多少?
我数采卡设置采样率为200
是不是可以认为信号的频率就是200呢?
带阻,高通我都试过,效果还不如低通的
我在想是不是我的采集信号频率和干扰信号频率太过接近,致使模拟滤波效果不好?
lv里设计自适应滤波器有可能吗?
另外,lv里的butterworth filter控件中的fh和fl是绝对的频率值还是相对于fs的值呢?
你的采样频率是200Hz?感觉低的比较奇怪。
采样频率是根据信号的频谱宽度决定的,而不是反过来由采样频率定信号频率,呵呵
你首先要知道你的被测信号的最高频率,再决定采样频率至少为那个最高频率的两倍。
照你这样的看,应该是带阻滤波器最合适,把fl和fh设置到正好把50Hz的工频信号滤掉。
我不用lv,但是它的滤波器的fl和fh肯定是两个截止频率。
带阻的话把fl和fh设成49和51吧。
我建议你看看信号与系统方面的书,一些概念还是要有的。