可以用示波器测量信号在进行FFT运算,找到需要计算的N次谐波位置即可算出频率
如下图红色直方图就是对示波器的校准方波进行FFT(快速傅里叶变换)以后的样子。从红色直方图中可以看出,频率为0Hz的信号成分电压为0,代表该信号不含有直流成分。而第一根红线就是该信号的基波,其频率为1KHZ,幅值为8966mV。通过X轴光标X1和X2的差值,我们发现第五条直线的频率为9KHz,是基波的9倍,那就是九次谐波。通过Y轴光标Y1和Y2的差值,我们可以得知该次谐波的幅值为104mv。
由于周期信号的频谱是线谱,用FFT计算频谱时,需要设置采样频率是基波频率的整数倍,才能采样一个基波周期以最小运算量精确的计算出谐波幅度及相位本文把CZT算法用于周期信号基波测量,提出了一种小点数多次CZT的运算方法,用4倍的基波频率采样,采样16点施加汉宁窗,合理设置计算路径,在估计的频率范围内求10点CZT,把求频谱的运算量集中在真实谱线附近,多次循环从粗测到细测逐步缩小计算范围提高精度,将计算误差控制在要求的范围内,最后把计算结果经过换算得到基波的频率仿真结果说明该算法精度高,运算量小,优于直接FFT算法
如图所示:在FFT分析的窗口中的右下角有个FFT setings,在其中的display style中选择List (relative to specified base),然后点击display按钮就可以了。如图中所示:基波幅值为311V,第11次谐波幅值则为2828V,总谐波畸变为909%。希望能够解答你的问题!
function y=myditfft(x)
%本程序对输入序列实现DIT-FFT基2算法,点数取大于等于长度的2的幂次
%------------------------------------
%
myditfftc
%------------------------------------
m=nextpow2(x);
%求的x长度对应的2的最低幂次m
N=2^m;
if length(x)<N
x=[x,zeros(1,N-length(x))];
%若的长度不是2的幂,补0到2的整数幂
end
nxd=bin2dec(fliplr(dec2bin([1:N]-1,m)))+1;
%求1:2^m数列的倒序
y=x(nxd);
%将倒序排列作为的初始值
for mm=1:m
%将DFT做m次基2分解,从左到右,对每次分解作DFT运算
Nmr=2^mm;
u=1;
%旋转因子u初始化
WN=exp(-i2pi/Nmr);
%本次分解的基本DFT因子WN=exp(-i2pi/Nmr)
for j=1:Nmr/2
%本次跨越间隔内的各次碟形运算
for k=j:Nmr:N
%本次碟形运算的跨越间隔为Nmr=2^mm
kp=k+Nmr/2;
%确定碟形运算的对应单元下标
t=y(kp)u;
%碟形运算的乘积项
y(kp)=y(k)-t;
%碟形运算的加法项
y(k)=y(k)+t;
end
u=uWN;
%修改旋转因子,多乘一个基本DFT因子WN
end
end
以上就是关于怎么求信号的频率和谐波频率全部的内容,包括:怎么求信号的频率和谐波频率、如何用fft实现czt的运算、在FFT分析中如何读出谐波幅值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)