在计算机广泛应用的今天,数据采集的重要性是十分显著的。它是计算机与外部物理世界连接的桥梁。各种类型信号采集的难易程度差别很大。实际采集时,噪声也可能带来一些麻烦。数据采集时,有一些基本原理要注意,还有更多的实际的问题要解决。
采样频率、抗混叠滤波器和样本数
假设现在对一个模拟信号 x(t) 每隔Δt时间采样一次。时间间隔Δt被称为采样间隔或者采样周期。它的倒数 1/Δt被称为采样频率,单位是采样数 / 每秒。 t=0, Δt,2 Δt,3 Δt …… 等等,x(t) 的数值就被称为采样值。所有 x(0),xΔt),x(2Δt) 都是采样值。下图显示了一个模拟信号和它采样后的采样值。样间隔是Δt,注意,采样点在时域上是分散的。
模拟信号和采样显示 |
如果对信号x(t)采集 N 个采样点,那么x(t)就可以用下面这个数列表示:
模拟信号和采样显示 |
这个数列被称为信号x(t)的数字化显示或者采样显示。注意这个数列中仅仅用下标变量编制索引,而不含有任何关于采样率(或Δt)的信息。所以如果只知道该信号的采样值,并不能知道它的采样率,缺少了时间尺度,也不可能知道信号x(t)的频率。
根据采样定理,最低采样频率必须是信号频率的两倍。反过来说,如果给定了采样频率,那么能够正确显示信号而不发生畸变的最大频率叫做恩奎斯特频率,它是采样频率的一半。如果信号中包含频率高于奈奎斯特频率的成分,信号将在直流和恩奎斯特频率之间畸变。 图2显示了一个信号分别用合适的采样率和过低的采样率进行采样的结果。
采样率过低的结果是还原的信号的频率看上去与原始信号不同。这种信号畸变叫做混叠(alias)。出现的混频偏差(alias frequency)是输入信号的频率和最靠近的采样率整数倍的差的绝对值。
不同采样率的采样结果 |
不同采样率的采样结果 |
图3给出了一个例子。假设采样频率fs是100HZ, 信号中含有25、70、160、和510Hz的成分。
说明混叠的例子 |
采样的结果将会是低于奈奎斯特频率(fs/2=50 Hz)的信号可以被正确采样。而频率高于50HZ的信号成分采样时会发生畸变。分别产生了30 、40和10 Hz 的畸变频率 F2、F3和F4 。计算混频偏差的公式是:
混频偏差=ABS(采样频率的最近整数倍-输入频率)
其中ABS表示“绝对值”,例如:
混频偏差 F2 = |100–70| = 30 Hz
混频偏差 F3 = |(2)100–160| = 40 Hz
混频偏差 F4 = |(5)100–510| = 10 Hz
为了避免这种情况的发生,通常在信号被采集(A/D)之前,经过一个低通滤波器,将信号中高于奈奎斯特频率的信号成分滤去。在图3的例子中,这个滤波器的截止频率自然是25HZ 。这个滤波器称为抗混叠滤波器。
采样频率应当怎样设置呢?也许你可能会首先考虑用采集卡支持的最大频率。但是,较长时间使用很高的采样率可能会导致没有足够的内存或者硬盘存储数据太慢。理论上设置采样频率为被采集信号最高频率成分的2倍就够了,实际上工程中选用5~10倍,有时为了较好地还原波形,甚至更高一些。
通常,信号采集后都要去做适当的信号处理,例如 FFT 等。这里对样本数又有一个要求,一般不能只提供一个信号周期的数据样本,希望有5~10个周期,甚至更多的样本。并且希望所提供的样本总数是整周期个数的。这里又发生一个困难,有时我们并不知道,或不确切知道被采信号的频率,因此不但采样率不一定是信号频率的整倍数,也不能保证提供整周期数的样本。我们所有的仅仅是一个时间序列的离散的函数 x(n) 和采样频率。这是测量与分析的唯一依据。
数据采集系统的构成
数据采集系统结构 |
上图表示了数据采集的结构。在数据采集之前,程序将对采集板卡初始化,板卡上和内存中的 Buffer 是数据采集存储的中间环节。需要注意的两个问题是:是否使用 Buffer?是否使用外触发启动、停止或同步一个操作?