- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信号的采集及其频率和频谱测量
一 实验目的
1 学习在CVI环境里面使用非NI数据采集卡。
2 学习用过零法计算被测每个周期采样点数。
3 学习数据采集卡采样间隔的测定。
4 学习计算被测信号的频率和周期。
5 熟悉FFT算法原理。
二 实验原理
CVI环境里非NI数据采集卡的驱动
在CVI编辑器中将库文件PCI_Dask.lib添加到工程中。
非NI数据采集卡头文件的添加
在CVI源文件编辑器中添加 #include Dask.h ,如下图所示
#include analysis.h
#include cvirte.h
#include userint.h
#include 频率.h //在此添加
#include Dask.h
#define MAX 9216
static int panelHandle;
I16 CardID;
零计数法测频率原理
不含直流分量的正弦波每个周期内都应该有两个过零点,根据每两个过零点之间的采样次数我们可以得到每个周期的采样点数N,由于采样时间间隔△t是由数据采集卡决定的,是一个确定值。所以可以得到正弦波的周期为N*△t,,从而可以计算出频率f.
对被测信号x(t)进行数据采集,得到被测信号序列为x(n),n=1,2,3….k。我们把该信号序列中上次采样为负值,本次采样为正值的点记为正过零点,两个正过零点的时间间隔t为:
T=k△t
t-------采样时间间隔
k--------两次过零点时间内采样的次数
t-------两个过零点之间的时间间隔
则被测波形的频率f为:
F=1/t=1/( k△t)
虚拟示波器的基本原理
实测是指该虚拟仪器可以测量实际的信号,这时需要数据采集卡,将所测得电量信号采集到计算机中,由软件完成波形的显示。
如下图所示
由计算机对数据采集卡发出指令,启动采集卡,计算机将采集到的信号数据进行存储,处理和显示,从而实现虚拟示波器。
PCI_9119数据采集卡使用方法
性能指标:
16路单端模拟输入通道:
A/D采样速率100KHz:
模拟输入电压范围为±10V, ±5V, ±2.5V, ±1.25V, ±0.625V
3种A/D触发方式,软件触发,外部脉冲触发和可编程定时触发。
三 程序设计和实验内容
编写波形采集程序,在CVI中设计的简单仪器面板中的波形显示和信号频率界面如下
在仪器面板中,添加一个波形显示GRAPH控件,一个edit numeric 控件channel,一个
NUMERIC控件显示被测信号的频率,两个command button 按钮,分别控制采集的开始和停止。
四 信号频谱分析的主程序流程图
主程序框图
快速傅里叶变换FFT
FFT不是一种新的变换,而是DFT的快速算法。
直接DFT计算的复杂度:
计算DFT需要:次复数乘法;次复数加法。
FFT算法推导:
(i) 第L次迭代中对偶结点值的计算公式为:
,是循环控制变量。
(ii) 对偶结点的关系如图2所示:
图2 FFT中对偶结点关系图
旋转因子:被称为旋转因子,可预先算好并保存。
整序:经过r次迭代后,得到结果,实际结果应是,所以流程的最后一步是按下标的正常二进制顺序对结果进行整序。
FFT算法特点:()
共需次迭代;
第次迭代对偶结点的偶距为,因此一组结点覆盖的序号个数是。
第次迭代结点的组数为。
可以预先计算好,而且的变化范围是。
FFT算法流程:()
初始化:;
第次迭代:
下标控制变量初始化;
“结点对”的个数初始化;
按对偶结点对的计算公式进行置位运算,得到和的值;
;;
跳过已经计算过的结点(即上面所对应的那些结点):;
如果,转到b)继续计算下一组结点;否则结束本次迭代。
当次迭代全部完成后,对结果按下标二进制位进行整序,从而得到结果。
FFT算法复杂度分析:(,预先算好)
一个对偶结点对的计算需要2次复数加法和1次复数乘法
对任一次迭代,共有N/2对结点,因此共需N次复数加法和N /2次复数乘法
次迭代的总计算量为:复数加法次数,复数乘法次数为
算法复杂度为
IDFT同样可用FFT实现,算法复杂度也是。
过零法计算频率的程序代码如下:
#include analysis.h
#include cvirte.h
#include userint.h
#include 频率.h
#include Dask.h
#define MAX 9216
static int panelHandle;
I16 CardID;
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
ret
您可能关注的文档
最近下载
- (完整版)电气设备安装标准规范.pdf
- GB∕T 13861-2022生产过程危险和有害因素分类、解读与示例说明清单【危险源识别工具】(雷泽佳-2024A0).doc
- 2021年中国光大银行校园招聘在线测试笔试题考试真题笔经.doc
- 新浪·按键精灵开发者1级认证参考解析.docx VIP
- 2023年福建省各地中考语文模拟卷【文学类文本阅读题解及答案解析】汇集.docx VIP
- 皮亚杰认知发展论.ppt VIP
- 2.1 几代中国人的美好夙愿 课件初中读本.ppt
- 流域化“厂网一体”运营模式的探索与实践.pdf
- 半导体制造技术离子注入工艺.pptx
- 全国普通话水平测试用普通话词语表(表一+表二).pdf
文档评论(0)