x = load('data.dat'); %load 数据
fs=10000; % 采样频率,自己根据实际情况设置
N=length(x); % x 是待分析的数据
n=1:N;
%1-FFT
X=fft(x); % FFT
X=X(1:N/2);
Xabs=abs(X);
Xabs(1) = 0; %直流分量置0
for i= 1 : m
[Amax,index]=max(Xabs);
if(Xabs(index-1) > Xabs(index+1))
a1 = Xabs(index-1) / Xabs(index);
r1 = 1/(1+a1);
k01 = index -1;
else
a1 = Xabs(index) / Xabs(index+1);
r1 = 1/(1+a1);
k01 = index;
end
Fn = (k01+r1-1)*fs/N; %基波频率
An = 2*pi*r1*Xabs(k01)/(N*sin(r1*pi)); %基波幅值
Pn = phase(X(k01))-pi*r1; %基波相角 单位弧度
Pn = mod(Pn(1),pi);
扩展资料:
当信号的谐波频率与基波频率差距较大时,即信号的基次谐波含量较小,主要为基波时,可以通过低通滤波的方法将高次谐波滤除,剩下就是信号的基波,采用均值检波表、峰值检波表和真有效值检波表均可测量其有效值,测量结果近似等于基波有效值。
当信号频谱较复杂时,尤其是次谐波含量较大时,很难用滤波的方法将基波准确分离,一般先用交流采样获取离散时间信号序列,再用离散傅里叶变换(DFT或FFT)对其进行傅里叶展开,即可求得基波有效值。
各种谐波分析仪和宽频功率分析仪(变频功率分析仪、高精度功率分析仪等)等设备均可测量适用频率范围内交流信号的基波有效值。上述仪器除了测量电压、电流的基波有效值之外,还具备功率测量及谐波测量功能。
参考资料来源:百度百科-基波分量