本文介绍了Matlab数学工具箱中fft函数及LabVIEW自带VI算法在谐波分析中的具体应用。同时,实现了MatlabLabVIEW的混合编程及谐波分析。本文设计了RC测试电路及毫欧电阻测量电路,并介绍了电路原理,通过调试,可以实现毫欧电阻的精确测量,及RC测量电路中测量R,C的工作。
关键词:   
          谐波分析;
          MATLABLabVIEW混合编程;
          数字式毫欧级电阻测量仪;
          RC测量电路
ABSTRACT
  This article describes the mathematical toolbox Matlab fft function and the LabVIEW VI algorithm in harmonic analysis comes with the specific application. At the same time, to achieve a mix of Matlab and LabVIEW programming and harmonic analysis. RC paper designed to test the circuit and milliohms resistance measurement circuit, and circuit theory introduced through debugging, you can achieve accurate measurement of milli-ohm, and the RC measurement circuit to measure R, C's work.
Key words
        Harmonic analysis;
            Hybrid MATLAB and LabVIEW programming;
            Digital cents European level resistance measuring instrument;
            RC measurement circuit
         
 
  ………………………………………………………………扉页
ABSTRACT …………………………………………………………1
一、基于matlab进行谐波分析 ……………………………………3
二、基于LabviewVI)算法进行谐波分析 …………………… 9
三、LabVIEWMATLAB的混合编程………………………… 16
四、毫欧级电阻测量电路的设计………………………………… 24
五、RC测量模块的设计……………………………………………28
  ………………………………………………………………32
参考文献 ……………………………………………………………matlab求傅里叶变换32
     
第一章    基于 MATLAB(FFT函数)进行谐波分析
离散傅里叶变换:任何系统的相应都可以看作是一个输入对系统各个频率响应的加权和,这就是数字信号处理理论中的离散时间傅里叶变换(DTFT)。
 离散傅立叶变换(DFT) 是数字信号处理中最核心的数学工具。它可以实现信号在频域的离散化,从而使利用计算机在频域进行信号处理成为可能。特别是由于DFT有多种快速算法,又可以使信号处理的速度大大提高。同时,它又与信号处理的另两个重要工具:傅立叶变换和Z变换之间有着紧密的联系。因此,理解并熟练掌握离散傅立叶变换(DFT) 这个工具,对于数字信号处理有着至关重要的意义。
  x(n) 是一个长度为M的有限长序列,x(n) N 点离散傅里叶变换为:
  DFT变换,任一Xm)的计算都需要N次复数乘法和N-1次复数加法,而一次复数乘法等于四次实数乘法和两次实数加  快速傅里叶变换法,一次复数加法等于两次实  快速傅里
叶变换数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),那么求出N项复数序列的Xm,NDFT变换大约就需要N^2次运算。当N=1024点甚至更多的时候,需要N2=1048576次运算,在FFT中,利用WN的周期性和对称性,把一个N项序列(设N=2k,k为正整数),分为两个N/2项的子序列,每个N/2DFT变换需要(N/22次运算,再用N次运算把两个N/2点的DFT变换组合成一个N点的DFT变换。这样变换以后,总的运算次数就变成N+2N/22=N+N2/2。继续上面的例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT运算单元,那么N点的DFT变换就只需要Nlog2N次的运算,N1024点时,运算量仅有10240次,是先前的直接算法的1%,点数越多,运算量的节约就越大,这就是FFT的优越性。
  MATLAB信号处理工具箱中,提供了实现快速傅里叶变换(FFT)的函数 fft
  主要调用格式为:
                  X=fftxN-----采用FFT算法球离散序列的DFT
编写的代码以x(n),xx(n)为谐波分析所处理的初始函数.
首先,我们先测试正弦波,三角波,方波.
步骤:[1] 打开matlab
      [2] 点击左上角File —> New—>M File. 弹出窗口.
      [3] 将程序写入.
      [4] 运行
      [5] 得出三张频谱图
      [6] 分析比较后,得出结论
模拟的三个波形如下:
%正弦波:
xn=exp(j*pi/8*n);  for:n=0 to 15 )                                         
%三角波:
xxn=[0,3^(1/2),6^(1/2),9^(1/2),12^(1/2),9^(1/2),6^(1/2),3^(1/2),0,-3^(1/2),-6^(1/2),-9^(1/2),-12^(1/2),-9^(1/2),-6^(1/2),-3^(1/2)];
%方波:           
xxxn=[-12^(1/2),-12^(1/2),-12^(1/2),-12^(1/2),-12^(1/2),-12^(1/2),-12^(1/2),-12^(1/2),12^(1/2),12^(1/2),12^(1/2),12^(1/2),12^(1/2),12^(1/2),12^(1/2),12^(1/2)]
编写M脚本文件:
clear ,close all
N=16;                                                                  % 共采集16
n=0:N-1;
xn=exp(j*pi/8*n);                                                    %正弦波序列
xxn=[0,3^(1/2),6^(1/2),9^(1/2),12^(1/2),9^(1/2),6^(1/2),3^(1/2),0,-3^(1/2),-6^(1/2),-9^(1/
2),-12^(1/2),-9^(1/2),-6^(1/2),-3^(1/2),];%三角波序列
xxxn=[-12^(1/2),-12^(1/2),-12^(1/2),-12^(1/2),-12^(1/2),-12^(1/2),-12^(1/2),-12^(1/2),12^(1/2),12^(1/2),12^(1/2),12^(1/2),12^(1/2),12^(1/2),12^(1/2),12^(1/2)]                                                            %方波序列
Xk=fft(xn,N);                                                  %调用FFT函数
XXk=fft(xxn,N);
XXXk=fft(xxxn,N);
figure(1)
subplot(2,2,1);stem(n,xn,'k.');
title('2011-05-20 16:36 16点正弦波序列'),xlabel('n'),ylabel('x(n)')
subplot(2,2,3);k=0:N-1;stem(k,abs(Xk),'k.')
title('2011-05-20 16:36 16点DFT[x(n)]'),xlabel('k'),ylabel('|X(k)|')
figure(2)
subplot(2,2,1);stem(n,xxn,'k.');
title('2011-05-20 16:36 16点三角波序列'),xlabel('n'),ylabel('xx(n)')
subplot(2,2,3);k=0:N-1;stem(k,abs(XXk),'k')
title('2011-05-20 16:36 16点DFT[xx(n)]'),xlabel('k'),ylabel('|XX(k)|')
figure(3)
subplot(2,2,1);stem(n,xxxn,'k.');
title('2011-05-20 16:36 16点方波序列'),xlabel('n'),ylabel('xxx(n)')
subplot(2,2,3);k=0:N-1;stem(k,abs(XXXk),'k')
title('2011-05-20 16:36 16点DFT[xxx(n)]'),xlabel('k'),ylabel('|XXX(k)|')
程序截图:
频谱图:
              正弦波
              三角波
              方波
由图可看出,正弦波只存在基波,其幅值与信号发生器所输入得振幅是相同的用信号发生器输出方波与三角波所产生的谐波就丰富了。我们用的是同幅同频波形,所产生的基波幅
值是不相同的。从三个图中,我们还可以看出高次谐波的幅值趋势,这与理论所得基本吻合。周期信号频谱具有如下三个特点:
a. 离散性,即周期信号的频谱是离散的,有一系列不连续的谱线组成。
b.谐波性,即周期信号的谱线只出现在原周期信号角频(基波频率)w的整数频率点上,且谱线间的间隔等于w
c.收敛性,即谐波的幅度随谐波次数的增高而减小。
 
 
  第二章  基于 LabVIEW (VI算法) 进行谐波分析
LabVIEW提供了一组方便我们调用的VI。它的自功率谱VI-Auto Power SpectrumFFT求出时域信号的自功率谱。谐波分析VI-Harmonic Analyzer在这个基础上给出各次谐波的频率和幅值。
谐波分析面板设计
进行傅立叶变换的数据在理论上应为无限长的离散数据。但是实际上,我们只能对有限长的信号进行分析处理,对采样离散数据进行截取。而如果只取采样时间内有限数据,这样就存在频率泄漏。在本设计中所利用的加窗的方法就是用来减少频率泄漏。这里用到的加窗函数有:汉宁窗、海明窗、BLACKMAN窗、矩形窗等。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。