累加求和,计算n?0?x(n)eN?1?j2?nkN,再改变k,外循环。最后将X(k)转换为幅度谱和相位谱。设计中要用到数
值运算子模板中的Complex Functions复数处理函数。
具体步骤:(1)产生仿真信号。打开3.5节第2个实验内容的程序,它能够产生频率、幅值和直流偏值可调的正弦、方波、三角波、锯齿波信号,还可叠加高斯噪声信号,并且采样率和采样点可选。
?j2?nN(2)计算
n?0,1,2...,N?1,结果为1个数组,见图 的右下部分。采样点数N从仿真波形产生函数
?2?N?j2?nN的采样信息簇得到,使用簇cluster子模板中的Unbundle函数实现。采用一个循环次数为N的For循环产生元素为0,1,?,N-1的1维数组,乘以(其实部为零)。
(3)采用双循环,计算X(k),见图。。。的左上部分。内外循环的循环次数都为N。内循环改变n,累加求和,计算n?0。再用复数处理函数中的Re/Im To Complex,组合为复数
?x(n)eN?1?j2?nkN,累加求和需要使用移位寄存器。先使用Index Array函数从数组中得到第n个元素,再
2*Re2(k)?Im2(k)2相乘。外循环中再改变k。
(4)将X(k)转换为幅度谱和相位谱。计算公式为:有效值幅度谱为?(k)?arctanX(k)RMS?,相位谱为Im(k)Re(k), 函数Complex To Polar可直接得到复数的模和相位角。再把用弧度表示的相位转换为角
度。使用两个图形控件显示幅度谱和相位谱。图1为DFT计算频谱的程序框图和结构框图。
21
图1为DFT计算频谱的程序框图和结构框图
2.使用LabVIEW提供的频谱分析函数:波形VI中的FFT Spectrum(Mag-Phase).vi,分析仿真信号的频谱。 结果如图2所示。
22
图2
3.使用上面设计的程序,分别选择波形为正弦、方波、三角波、锯齿波,改变信号频率和幅度,选择适当的采样率和采样点,分析正弦、方波、三角波、锯齿波信号的频谱,并与理论计算值比较。 正弦波频谱:
方波频谱:
23
三角波频谱:
24