在(1)中我们谈到利用Sine Pattern.vi产生正弦信号的原因,主要是考虑便于更多的初学者更好的理解有关采样速率(Fs)和采样点数(#s)间的关系。请看下面的的图示。
 
Picture
2-1
图中正弦信号的三要素幅值、相位、频率中,唯独缺少频率项。

这里需要注意的是:cycles表示的是正弦信号周期的个数(应该称为:周期数),不要与频率的倒数的“周期”混为一谈。

前面谈过在默认的情况下,Sine Pattern.vi的参数是这样配置的:
samples=128
amplitude=1V
phase(度)=0
cycles=1

上面的其它参数都很好理解,包括cycles和samples(正弦信号一个完整周期所包含的点数)。它的输出是一个数组,只有这些参数还不能构成正弦波形信号。
 
在LabVIEW中有一种其它编程语言所不具备的特殊数据结构——波形数据。他类似一个簇结构,包含一些与波形有关的时序信息和数据,特别适合LabVIEW在工程应用中的信号传递和处理。而且在LabVIEW中还提供了一些合成或分解波形数据的内置函数。下面展示的就是创建LabVIEW波形数据的程序框图。
 
 
Picture
2-2
这些参数的含义,这里就不多谈了,不熟悉的可以看看帮助文件中的说明。

现在我们期望用Sine Pattern.vi和这个内置函数来创建我们所需的正弦信号。参见下图。
Picture
2-3
现在上图中的所有参数都可以理解,但是还缺少“频率”以及“dt"如何选取。
实际上“dt“是采样速率的倒数,即dt=1/Fs;而采样速率Fs=频率xSamples[#s]。参考下图来理解。
 
Picture
2-4
右边的图是用来对比理解Fs和#s的。具体的关系通过下图可以看得更清楚。
Picture
2-5
下图是频率为10Hz时的运行结果。

对比可以看出不同的方法数组的长度是不一样的,采样速率Fs也是不一样的。
图中下面的部分,#s=1000,意味着,每个周期含100点共10个周期的数据。而上面的那部分#s=128,是每个周期128点,只有128个数据。

也就是说:同样输出10Hz信号,一个是每个周期100点,另一个是每个周期是128点。从信号生成的角度看当然我们是希望每个周期内的点数越多越好。当点数趋于无穷多时,就是连续信号。

点数(#s)有时候也被称为:信号合成的点数。在生成正弦信号时,我们要考虑两个问题:每个信号周期包含多少个点(如128点);还有一个是采样频率,采样频率(Fs)=信号频率(freq)x每个信号周期的合成点数(#s)。
 
Picture
但是当将下面的Samples info中的参数设定为  Fs=1280,#s=128时,数组长度就一样了。

现在可以更清楚的理解Fs和#s的关系了。

如何使用DAQmx产生真实的正弦信号,且等下回分解!
Picture



Leave a Reply.


Google Analytics