(完整word版)基于LabVIEW的正弦信号频率与相位测量
- 格式:doc
- 大小:1.09 MB
- 文档页数:14
摘要信号处理几乎涉及到所有的工程技术领域,而频谱分析正是信号处理中一个非常重要的分析手段。
一般的频谱分析都依靠传统频谱分析仪来完成,价格昂贵,体积庞大,不便于工程技术人员的携带。
虚拟频谱分析仪改变了原有频谱分析仪的整体设计思路,用软件代替了硬件。
使工程技术人员可以用一部笔记本电脑到现场就可轻松完成信号的采集、处理及频谱分析。
关键字:Labview;信号处理;频谱分析。
目录1 目的及基本要求 12 频谱分析仪程序设计原理 13频谱分析仪设计和仿真 23.1 总体程序设计 23.2各功能模块详细设计 83.3 程序存在的不足 114 结果及性能分析 124.1 运行结果 124.2性能分析 13参考文献 141 目的及基本要求熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现梦幻钢琴程序游戏的设计和仿真。
要求通过本课程设计使学生熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器设计原理、设计方法和实现技巧,使学生掌握通信系统设计和仿真工具,为毕业设计做准备,为将来的学习及今后从事科学研究、工程技术工作打下较坚实的基础。
利用LabVIEW强大的虚拟仪器开发功能,可实现基于快速傅里叶变换(FFT)的现代频谱分析仪功能,采用数字方法直接由模拟/转换器(ADC)数字对输进信号取样,再经滤波,加窗函数处理后获得频谱图。
2频谱分析仪设计原理采用数字处理式频谱分析原理设计虚拟频谱分析仪.工作流程如下:连续时间信号经过采样变为离散时间信号,利用LabVIEW强大的数字信号处理功能,对数据进行滤波、加窗、FFT运算处理,得到信号的幅度谱、相位谱及功率谱等. 采样过程中,对不同的频率信号,选用合适的采样速率,以满足采样定理,防止频率混叠.进行傅里叶变换的数据在理论上应为无限长的离散数据序列.实际上,只能对有限长的信号进行分析与处理,所以必须对无限长的离散序列进行截断,只取采样时间内的有限数据,从而存在着频谱泄漏问题.本文设计中分别用矩形窗、汉宁窗、哈明窗、布来克曼窗等窗函数减少频谱泄漏.由于取样信号中混叠噪声信号,因此为了消除干扰,在进行FFT变换前,应先进行滤波处理.本文设计采用巴特沃斯(Butterworth)、切比雪夫(Chebyshev)、椭圆(Ellipse)、贝塞尔(Bessel)等滤波器进行滤波.3 频谱分析仪设计与仿真3.1总体程序设计本文设计的虚拟频谱分析仪由周期性信号发生器和频谱分析器两个子模块组成。
基于LabVIEW 的正弦信号频率与相位测量1. 前言信号频率与相位的测量具有重要的实际意义。
本文调研了频率与相位的多种测量算法,并借助LabVIEW 编程实现。
在此基础上,对各种算法进行了比较研究,且提出了行之有效的改进措施。
2. 采样定理与误差分析2.1 采样定理时域信号()f t 的频谱若只占据有限频率区间m m ωω(-,),则信号可以用等间隔的采样值唯一表示,而最低采样频率为m 2f 。
采样定理表明:信号最大变化速度决定了信号所包含的最高频率分量,要使采样信号能够不失真地反映原信号,必须满足在最高频率分量的一个周期内至少采样两个点。
2.2 误差分析对连续周期信号()a x t 进行采样得离散序列()d x n ,如果满足采样定理,则离散序列()d x n 的傅里叶级数()dg X k 是连续信号()a x t 的傅里叶级数1()ag X k ω的周期延拓,否则会出现两种形式的误差。
2.2.1 泄漏误差在连续信号()a x t 一个周期1T 内采样1N 个点,如果正好满足11s N T T =(s T 为采样间隔),则是完整周期采样,采样结果()d x n 仍为周期序列,周期为1N 。
基于()d x n 一个周期1N 个点计算离散傅里叶级数()dg X k ,由()dg X k 可以准确得到连续信号()a x t 的傅里叶级数1()ag X k ω。
如果在连续信号()a x t 的M 个周期时间内采样整数1N 个点,即11s N T MT =,也是完整周期采样。
在此情况下,采样结果()d x n 仍为周期序列,周期为1N ,但()d x n 的一个周期对应于()a x t 的M 个周期,由离散序列()d x n 仍然可以准确得到连续信号()a x t 的频谱。
如果以上两种情况都不满足,则为不完整周期抽样,()d x n 也不再是周期序列。
如果取()d x n 近似周期的1N 个点计算傅立叶级数,则产生误差,此误差称为泄漏误差。
虚拟仪器课程设计提取正弦波
姓名:彭明键
学号:2
班级:1221202
指导老师:方江雄
提取正弦波
从有限采样样本中提取正弦信号参数(包括频率、幅度、相位等)是信号处理中一类重要的估计问题。
1、设计目的
用数字滤波器从含有高频噪声的采样数据中提取正弦信号。
基于LabVIEW 8.2虚拟平台,使用图形语言编程设计一个系统,使输入信号为正弦波,并加载一个高频均匀白噪声作为模拟信号传输中的随机干扰信号,以及采用一个切比雪夫低通滤波器,以滤除信号中的噪声分量,提取出频率为5Hz的正弦信号。
2、程序框图主要功能模块介绍
滤波器子选板位于函数选板的“信号处理→滤波器”中,如图1所示。
其中“Chebyshev滤波器”函数节点用于对噪声的输入信号进行切比雪夫滤波处理。
根据输入数据类型的不同,它有两个多态实例(实数、复数)可供选用,其调用路径为“函数→信号处理→滤波器→Chebyshev滤波器”。
如表1是其输入/输出参数说明表。
表1 “Chebyshev滤波器”函数的输入/输出参数说明表。
使用LabVIEW进行信号处理实现信号滤波和频谱分析信号处理在科学研究和工程应用中扮演着重要的角色。
信号滤波和频谱分析是信号处理的两个基本任务,而LabVIEW是一款功能强大的可视化编程环境,适合用于信号处理的实现。
本文将介绍如何使用LabVIEW进行信号滤波和频谱分析的步骤和方法。
一、信号滤波信号滤波是通过改变信号的频率特性,去除不需要的频率成分,使得信号更加清晰和准确。
LabVIEW提供了多种滤波器模块,可以方便地实现信号滤波的功能。
1. 数据获取首先,需要从外部设备或者文件中获取待处理的信号。
LabVIEW 提供了多种数据采集模块,可以选择合适的模块进行数据获取。
2. 滤波器设计在信号滤波过程中,首先需要设计滤波器。
LabVIEW中的滤波器设计模块可以根据具体需求选择滤波器类型,并进行参数设置。
根据信号的特性和应用要求,可以选择低通、高通、带通或带阻滤波器。
3. 滤波器应用设计好滤波器后,需要将其应用到待处理的信号上。
LabVIEW提供了滤波器模块,可以直接调用已设计好的滤波器进行信号滤波。
4. 数据输出滤波后的信号经过处理后,可以将结果输出到显示模块或者保存到文件中,以便后续分析或应用。
二、频谱分析频谱分析是对信号进行频域分析,得到信号的频率分布和功率谱等信息。
LabVIEW提供了丰富的频谱分析工具和函数,可以方便地进行频谱分析。
1. 数据获取首先,需要获取待分析的信号数据。
可以利用LabVIEW的数据采集模块或者导入外部文件的方式获取数据。
2. 数据预处理在进行频谱分析之前,有时需要对数据进行预处理,例如去除噪声、降低采样率等。
LabVIEW提供了多种数据处理函数和模块,可以方便地进行数据预处理。
3. 频谱分析LabVIEW中的频谱分析模块可以对信号进行快速傅里叶变换(FFT)或者其他频谱分析算法。
可以选择合适的分析模块,并进行参数设置,如分辨率、窗函数等。
4. 结果展示频谱分析完成后,可以将结果以图表、曲线等形式展示出来,使得分析结果更加直观和易于理解。
收稿日期:2007-09 作者简介:付连锐(1986—),男,本科生,研究方向为信号检测与控制。
基于L a b V I E W 的正弦信号检测仪的设计付连锐,王兆仲(北京航空航天大学宇航学院,北京100083) 摘要:介绍基于L a b V I E W 的虚拟信号检测仪的工作原理、系统组成、设计步骤以及系统调试与仿真方法。
运用F F T 的选频特性及相位校正实现对正弦信号中的直流分量、幅值、频率和相位(差)的精确测量。
结果表明,系统测量精度高、抗干扰能力强。
关键词:虚拟仪器;L a b V I E W;正弦信号;F F T中图分类号:T M 935.2 文献标识码:B 文章编号:1006-2394(2008)04-0016-03D e s i g n o f S i n e -w a v e Me a s u r e m e n t I n s t r u m e n t a t i o nB a s e d o nL a b V IE WF UL i a n -r u i ,W A N GZ h a o -z h o n g(S c h o o l o f A s t r o n a u t i c s ,B e i j i n g U n i v e r s i t y o f A e r o n a u t i c s a n dA s t r o n a u t i c s ,B e i j i n g 100083,C h i n a )A b s t r a c t :T h e s i n e -w a v e m e a s u r e m e n t i n s t r u m e n t a t i o n i s d e v e l o p p e d b a s e d o n L a b V I E W .A n d i t s w o r k i n g p r i n c i p l e ,c o m p o n e n t s ,d e s i g n i n g s t e p s a n d d e b u g g i n g m e t h o d s a r e p r e s e n t e d i n t h i s p a p e r .B y u s i n g t h e f r e q u e n c y -s e l e c t i n g f e a t u r e o f F F T a n d t h e p h a s e a d j u s t m e n t m e t h o d ,t h e p a r a m e t e r s o f s i n -w a v e s i g n a l s u c h a s DC c o m p o n e n t ,a m p l i t u d e ,f r e q u e n c y a n d p h a s e c a n b e a c c u r a t e l y m e a s u r e d .T h e r e s u l t s s h o wt h a t t h e s y s t e mh a s h i g h p r e c i s i o n a n d a n t i -j a m m i n g c a p b i l i t y .K e y w o r d s :v i r t u a l i n s t r u m e n t s ;L a b V I E W ;s i n e -w a v e ;F F T 1 系统原理系统采用数据采集卡将模拟的正弦信号采集成为数字信号,通过U S B 接口将数据送入计算机,利用L a b V I E W 8.0图形化虚拟仪器开发平台,对正弦信号进行频谱分析和精细的相位校正处理,精确测量正弦信号的四个参数,同时将信号波形、频谱图以及测量结果通过显示器输出。
#include <reg52.h>#define uint unsigned int#define uchar unsigned char#define BN 16uchar tr[16]="hello!";#define LCDPORT P2 //LCD数据线sbit lcdrs=P1^0;sbit lcden=P1^1;sbit QW=P1^7;uchar start=0;uchar flag='0';uchar extentFactor=5;uchar freqFactor=0;uint OUTPUT;uint time=1;uint tab[5]={1,2,5,10,35};uint code sin[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2, 0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5, 0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1, 0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5, 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd, 0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1, 0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda, 0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc, 0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99, 0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76, 0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51, 0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30, 0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16, 0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06, 0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05, 0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15, 0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e, 0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e, 0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72, 0x76,0x79,0x7c,0x80 };/*正弦波码 */void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--) ;}void write_com(uchar com){lcdrs=0;P2=com;delay(1);lcden=1;delay(1);lcden=0;}void write_data(uchar date){lcdrs=1;P2=date;delay(1);lcden=1;delay(1);lcden=0;}/*******液晶初始化 ********/void lcd_init(){lcden=0;write_com(0x38) ; //初始化write_com(0x0c) ; //打开光标 0x0c不显示光标 0x0e光标不闪,0x0f光标闪write_com(0x01) ; //清显示write_com(0x80) ;}/********串口中断初始化 *****/void UART_init(){TMOD = 0x21; //定时器1工作于工作方式2 自动重载数据TH1 = 0xfd;TL1 = 0xfd; //波特率为9600TR1 = 1; //开启定时器1ET1=1;EA = 1; //开启总中断SCON = 0x50; // 串口工作于方式1(10位为一帧 1个起始位 8个数据位 1个停止位)ES = 1; //允许串口中断TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;TR0=1;}/*****发送数据*****/void send_data(uchar c){SBUF = c;while(TI == 0);TI = 0;}/*******串口中断服务程序******/void com_int(void) interrupt 4{if(RI){flag = SBUF;RI = 0;QW=0;write_data(flag);switch(flag){case '0':break;case '1': start=1; // 开始生产波形break;case '2':++extentFactor; //改变幅度if(extentFactor>5) extentFactor=0;break;case '3': //改变频率++freqFactor;if(freqFactor>4){freqFactor=0;}time=tab[freqFactor];break;case '4':start=0; //关闭break;}}}sbit key_fudu=P3^2;sbit key_freq=P3^3;sbit test=P1^7;void key_scan(){if(key_fudu==0){delay(5);if(key_fudu==0){test=!test;++extentFactor; //改变幅度if(extentFactor>5) extentFactor=0;}}if(key_freq==0){delay(5);if(key_freq==0){test=!test;++freqFactor;if(freqFactor>=4){freqFactor=0;}time=tab[freqFactor];}}}unsigned int aa;void Timer0InterruptService(void) interrupt 1 using 0 {TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++;if(aa>=4){key_scan();aa=0;}}void main(void){uint i;lcd_init(); //液晶初始化UART_init(); //串口中断初始化while(1){key_scan();if(start==0){for(i=0;i<256;i++){OUTPUT=sin[i]*extentFactor/5;send_data(OUTPUT);delay(time);}}// while(1);}}。
摘要采用虚拟仪器技术对高精度的频率源进行测量,具有简单、易行、精度高的特点。
这与以往利用实际仪器仪表对频率进行测量在方法上有着很大的不同。
LabVIEW就是基于虚拟仪器的开发环境,本文阐述了基于虚拟仪器技术在频率测量中的实际应用,根据电子测量的基本原理、计算方法和流程,实验利用了LabVIEW的特有语言—G语言—对被测对象进行程序编译、运行、修改并最终显示运行结果。
在实现频率测量的过程中,利用声卡代替了数据采集卡,把声音数据采集上来作为信号源,通过测量声音的频率,对外界声音信号进行仿真实验,最后给出了被测信号频率的仿真结果。
实验结果以图形显示和数据显示的方式,对被测对象进行了准确地测量。
通过实验,实现了虚拟仪器对信号频率的测量。
虚拟仪器是电子测量中的新技术,有着广阔的发展前景,是实验、教学及检测领域的重要技术。
关键词: 虚拟仪器;电子测量;频率测量ABSTRACTAdopting virtual instrument technique in the frequency source that high accuracy has characteristics of simplify、easy operation and high accuracy .This has the very big difference with the former frequency measurement method.LabVIEW was based on the virtual instrument development environment, and this article elaborates the practical application of virtual instrument technology in the frequency measurement. According to the basic theories、the computational method and the flow of electronic measurement, the experiment used the LabVIEW unique language (G language) to compile, run, correct the measured subject and eventually display the result. During the process of realizing the frequency measurement, there are some steps including using the sound card instead of data acquisition card as the signal source, measuring the frequency of sound, carrying out simulation experiment for outside voice acquisition and finally giving out the simulation results of the frequency of the measured signals. The result of experiment has measured the subject accurately by the means of displaying graph and data. The experiment has realized the measurement of signal frequency in the virtual instrument.Virtual instrument is a new technique in electronic measurement, having vast development foreground, and is the important technique of experiment, teaching and in the field of detection.Keywords: Virtual instrument; Electronic measurement; Frequency measurement目录引言 (1)1 电子测量 (2)1.1 测量概述 (2)1.1.1 测量的基本概念 (2)1.1.2 测量的重要意义 (2)1.2 电子测量的特点和应用 (3)2 虚拟仪器及LabVIEW基础 (6)2.1 虚拟仪器概述 (6)2.1.1 定义 (6)2.1.2 比较与差异 (6)2.1.3 虚拟仪器对电子测量的影响 (8)2.2 LabVIEW概述 (8)2.1.1 LabVIEW简介 (8)2.1.2 LabVIEW的体系结构 (9)3 时间与频率的测量 (11)3.1 概述 (11)3.1.1 时间、频率的基本概念 (11)3.2 数据采集 (11)3.2.1 数据采集系统的构成 (11)3.2.2 数据采集卡简介 (12)4 设计方法 (15)4.1 可行性研究及需求分析 (15)4.1.1 开发背景 (15)4.1.2 需求分析 (15)4.1.3 设计思想 (22)4.2 设计方法在Labview中的实现 (22)4.2.1 总设计的程序图 (22)4.2.2 程序框图分解分析 (24)4.2.3 设计图的前面板演示及结果 (29)4.2.4 程序中一些模块的功能 (35)5 虚拟仪器的发展前景 (37)结论 (39)致谢 (40)参考文献 (41)附录A 英文原文 (42)附录B 汉语翻译 (51)引 言现代科学技术的发展是建立在精密测量基础上的,目前人们所涉及到的物理量和物理常数中,频率时间是最精密、准确的计量单位,其他许多测量可以转化为频率时间的测量。
基于LabVIEW的相位差测量摘要:文章阐述了测量相位差的作用和意义。
在分析对比各种测量方法的特点之后,选择了利用相关分析原理来对相位差进行测量。
该方法是在LabVIEW平台上,通过图形化编程语言来实现,和传统的相位差测量方法相比,相关分析法具有抗干扰能力强最终的用户界面较好,操作简便、实用等优点。
关键词:相位差;测量;虚拟仪器(LabVIEW)1. 测量相位差的作用和意义相位差是电类学科中常出现的一个概念,在研究仪器性能时,相位差的精确程度越来越重要,具体表现在:(1)在正弦稳态电路分析研究中,相位差是一个非常重要的参数;(2)在雷达、声纳等系统中,研究相位差具有重要的军事价值和现实作用;(3)在研究网络的频率特性时,检测两个信号的相位差是非常重要的一个环节之一;(4)相位差是工业测控领域经常需要测量的参数,并且它是工程信号分析的基本任务之一;(5)在三相电路中,相位差是一个极为重要的参数,通过设置相位,可以把三相电路设置为对称三相电路和不对称三相电路;(6)功率因数、有功功率P、无功功率Q 、用电量等在电力系统的监控中都是非常重要参数,而这些量与交流电压与电流的相位差角Φ 有密切的联系,所以该系统在投入使用时,必须进行相位差的测量;2. 相关法的原理本节就通过在实验箱上采集数据来验证相关法来测量相位差,其实现的原理图如图2-1所示。
由于从信号源上采集的正弦波数据是动态的数据,但相关分析是对静态数组做求和运算,所以应该把从信号源中采集的动态信号转换为静态的数组,LabVIEW中提供了一个很好的控件,直接调用就可以把动态的数据(比如正弦信号等)转换为静态的数组。
但它们的实质是没有变化的,因为在进行模拟仿真时,两路信号都是在平台上模拟出来的,这样就会出现很多的信号参数设置控件,在进行采集信号分析时,可以直接把模拟仿真部分的信号控件去掉。
通过以上的分析可知,在电类学科中用相关分析原理来进行相位差的测量具有很大的适用价值,并且利用图形化编程语言来编程实现具有很大的发展前景。
基于LabVIEW 的正弦信号频率与相位测量1. 前言信号频率与相位的测量具有重要的实际意义。
本文调研了频率与相位的多种测量算法,并借助LabVIEW 编程实现。
在此基础上,对各种算法进行了比较研究,且提出了行之有效的改进措施。
2. 采样定理与误差分析2.1 采样定理时域信号()f t 的频谱若只占据有限频率区间m m ωω(-,),则信号可以用等间隔的采样值唯一表示,而最低采样频率为m 2f 。
采样定理表明:信号最大变化速度决定了信号所包含的最高频率分量,要使采样信号能够不失真地反映原信号,必须满足在最高频率分量的一个周期内至少采样两个点。
2.2 误差分析对连续周期信号()a x t 进行采样得离散序列()d x n ,如果满足采样定理,则离散序列()d x n 的傅里叶级数()dg X k 是连续信号()a x t 的傅里叶级数1()ag X k ω的周期延拓,否则会出现两种形式的误差。
2.2.1 泄漏误差在连续信号()a x t 一个周期1T 内采样1N 个点,如果正好满足11s N T T =(s T 为采样间隔),则是完整周期采样,采样结果()d x n 仍为周期序列,周期为1N 。
基于()d x n 一个周期1N 个点计算离散傅里叶级数()dg X k ,由()dg X k 可以准确得到连续信号()a x t 的傅里叶级数1()ag X k ω。
如果在连续信号()a x t 的M 个周期时间内采样整数1N 个点,即11s N T MT =,也是完整周期采样。
在此情况下,采样结果()d x n 仍为周期序列,周期为1N ,但()d x n 的一个周期对应于()a x t 的M 个周期,由离散序列()d x n 仍然可以准确得到连续信号()a x t 的频谱。
如果以上两种情况都不满足,则为不完整周期抽样,()d x n 也不再是周期序列。
如果取()d x n 近似周期的1N 个点计算傅立叶级数,则产生误差,此误差称为泄漏误差。
图1 所示是对连续正弦信号进行非完整周期抽样的两种情况,分别是11s N T T <和11s N T T >。
图1 正弦信号非完整周期采样序列的周期延拓2.2.2 混叠误差如果信号频率无限,则无论如何提高采样频率,都不能避免频谱混叠;如果频率有限,但采样不满足采样定理,也会出现频谱混叠,采样信号的离散傅里叶级数不再能准确表示原来连续信号的傅里叶级数。
混叠误差的本质在于,如果对信号中高频分量的采样不满足采样定理,其采样结果将表现为一低频序列,它和信号中原有低频分量的采样结果混在一起,造成低频分量频谱的误差。
在信号频率无限的情况下,混叠不可避免,但通过提高采样频率可以减小误差;在频率有限的情况下,只要满足采样定理,混叠误差可以完全避免。
3. 频率与相位测量算法3.1 频率测量算法3.1.1 三点法三点法是一种建立在三角函数变换基础上的数据拟合方法。
假设被测函数是正弦函数,在等间隔采样的前提下可以利用相邻3个数据样本,导出求解信号频率的线性方程,进而拟合求解频率[1]。
设信号为()sin()m u t U t ωϕ=+,若t ωϕα+=,则()sin m u t U α= (1)若设2ssfF F ωθ==,其中s F 为采样频率,则有 2s F f θ= (2)相邻的3个数据样本可表示为sin i m i u U α=1sin()i m i u U αθ+=+ (3)2sin(2)i m i u U αθ+=+由三角变换有212cos i i i u u u θ+++= (4) 所以21cos 2i i i u u u θ+++=(5)令12()2,()i i i x n u y n u u ++==+,则得到()()cos y n x n θ=arccos 2sF f θ=(6) 式**就是所需要的线性方程。
用最小二乘法拟合可以得到一个较准确的斜率cos θ,进而求出频率。
3.1.2 多周期平均计数法多周期平均计数方法是通过对多个周期的采样信号进行计数,然后以其平均值作为频率测量值。
假定采样频率为s F ,共采集m 个周期的信号,用计数的方法找到各个周期的样本数,分别为1N ,2N ,···,m N ,那么对应于各个周期的频率值分别为1s F N ,2s F N ,···,s mFN ,考虑m 个周期的频率的均值,有12111s m F f m N N N ⎛⎫=+++⎪⎝⎭(7) 实际上,在非整周期采样的条件下,式(3-1)中N 的取值只有两种情况,即多一个或少一个样本。
假定分别是1n 和11n +,与它们对应的周期数分别是1m 和2m ,则式(3-1)可以改写为121122111()1s F m m f m f m f m n n m⎛⎫=+=+ ⎪+⎝⎭(8) 其中11s F f n =和211sF f n =+分别对应于被测信号频率的最大偏差值和最小偏差值。
3.1.3 能量矩平衡法图2是能量矩平衡法[2]的示意图,用i p 表示第i 个谱线的幅值,i x 是i p 的横坐标,借助力学概念,设想第i 个谱线对原点形成了一个转矩(不妨称之为能量矩),其大小为i i p x ,对全部N 个谱线,总的能量矩为1Ni i i p x =∑,设想在x 轴上存在一个重心在0x 处,反方向施加给全部信号的能量0p ,在不考虑频率泄漏的情况下,令x 轴上的能量矩平衡,即001Ni i i p x p x ==∑ (9)由于0p 可表示为01N ii p p ==∑,所以有011N Nii ii i x p p x ===∑∑,从而得到11Ni ii Nii p xxp===∑∑。
最后将横坐标乘以sF f N∆=,得到所求频率: 11Ni ii sNii p xF f Np===∑∑ (10) 式中,s F 为采样率,N 为样本数。
3.1.4 比例法图3表示采样信号的频谱,其中显示的是主瓣内的谱线k y 和1k y +,其谱线序号分别为kx 图2 能量矩平衡法示意图和1k x +,而频率的准确值位于横坐标0x 处。
可以利用k y 和1k y +这两条谱线的幅值对间隔1k k x x +-,即f ∆进行细分。
在矩形窗的情况下,可以直观的视0x 处为重心,则有1010k k k ky x xy x x ++-=- (11) 于是1100110001k k k k k k k k k ky y x x x x x x y x x x x x x +++++-+--===--- (12)所以101k k k k y x x y y ++=++101k k k k y f f x x f y y ++⎛⎫=∆⋅=+⋅∆ ⎪+⎝⎭(13) 用Hanning 窗,可以导出1012k kk k k y y x x y y ++-=++112k k k k k y y f x f y y ++⎛⎫-=+⋅∆⎪+⎝⎭(14)3.2 相位测量算法3.2.1 过零法过零法的基本原理如图4所示。
判断两信号过零点时刻1t 与2t 的时间间隔t ∆,将时间差转化为相位差,计算公式为22t n phase T Tππτ∆== (15) 其中,t ∆为两信号过零点时刻1t 与2t 的时间间隔,T 为信号周期,τ为信号采样周期,n 为两信号过零点时刻1t 与2t 间的采样点数。
图3 比例法的示意图图4 过零法的原理图设A/D 转换器的位数为N ,最大模拟输入量为Dm U ,则幅值的采样分辨率为1/2N Dm U -,如图5所示。
在过零点附近,电压u 满足11112222Dm DmN N U U u ---≤≤+(16) 故采样点N P 的数值大于零,采样点1N P +的数值小于零,在N P 与1N P +之间必然有一个真实的过零点0P ,一般取为01()/2N N P P P +=+。
具体算法过程如下:(1)获取两路数字信号值数组;(2)寻找数组中正、负值变换点,即10N N P P +<; (3)根据正、负值点计算过零点,同时计算周期; (4)根据两过零点计算时间差,并转换为相位; (5)结果与误差显示。
3.2.2 相关分析法相关法利用两个同频正弦信号的互相关函数零时刻值与其相位差的余弦值成正比的原理获得相位差[3]。
由于噪声信号与有效信号的相关性很小,因而该方法有很好的抑制噪声能力。
假设两个同频信号表达式如下:00()sin()()x x t A N t ωϕ=++00()sin()()y y t B N t ωϕ=++ (17)其中,A 、B 分别为()x t 和()y t 的幅值,()x N t 、()y N t 分别为噪声信号。
对()x t 和()y t 进行相关运算,有00010011()()()[sin()()][sin(())()]T Txy x y R x t y t dt A t N t B t N t dt T T ττωϕωτϕτ=+=++++++⎰⎰ (18)当0τ=时000101(0)[sin()()][sin(())()]Txy x y R A t N t B t N t dt T ωϕωϕ=++++⎰(19) 由于噪声和信号、噪声和噪声不相关,积分后可得10(0)cos()2xy ABR ϕϕ=-102(0)cos()xy R arc ABϕϕ-= (20)其中,A =B =实际处理的信号为采样后的离散点序列,相应的离散计算公式为图5 过零点的取值11(0)()()k xy n R x n y n k -==∑121(0)()k x n R x n k -==∑ (21)1201(0)()k y n R y n k -==∑式中k 为采样点。
通过信号()x t 和()y t 的自相关与互相关函数的计算,可求得它们的相位差。
3.2.3 互功率谱法该方法首先对两路正弦信号进行采样得到两组离散数据,然后利用互相关原理求出两组数据互相关函数的幅度谱和相位谱。
因为两信号为同频信号,它们具有最大的相关性。
故在幅度谱中存在最大幅度值,在相位谱中与幅度谱最大值对应的相位信息即为两信号的相位差[4]。
互功率谱的计算是通过先求两待测信号的互相关函数再进行离散傅里叶变换来实现的。
设()x t 、()y t 分别为两待测同频正弦信号,ϕ为()x t 和()y t 的相位差,T 为采样时间,τ为互相关函数的变量,则互相关函数计算公式为1()lim()()Txy T R x t y t dt T ττ→∞=+⎰ (22)采样获得的离散时间序列信号的互相关函数表达式为11()()()Nxy k R i x k y k i N==+∑ (23)当两路信号为时不变信号时,它们的互功率谱密度同互相关函数是Z 变换关系,即 ()()k xy xyk S Z Rk Z ∞-=-∞=∑ (24)对求得的互功率谱密度函数进行极坐标变换,即可得到两正弦信号的幅度谱与相位谱,进而求出相位差[5]。