matlab如何提出谐波成分
1。如果你是用编程的话,可以用matlab提供的fft函数分析,下面是给你举个例子:
给定数学函数:x(t)=12sin(2pi*10t+pi/4)+5cos(2pi*40t)
程序如下:
N=128; %采样点数
T=1; %采样时间终点
t=linspace(0,T,N); %给出N个采样时间ti(i=1:N)
x=12*sin(2*pi*10*t+pi/4)+5*cos(2*pi*40*t); %求各采样点样本值x
dt=t(2)-t(1);
f=1/dt; %采样频率(Hz)
X=fft(x); %计算x的快速傅里叶变换X
F=X(1:N/2+1); %
f=f*(0:N/2)/N; %使频率从零开始
plot(f,abs(F)) %绘制振幅—频率图
xlable('Frequency');
ylable('|F(K)|');
运行后可得下图:
从图中可以看出幅值曲线上有两个峰值,分别对应给定函数的两个频率值(10和40HZ)。
2。如果你用的是simulink仿真的话,那就更容易了,simulink里的simpower system里有一个powergui模块,它可以对你的波形进行直接的傅里叶分析,从它那里可以直接读出各谐波分量的大小情况。是个及其好用的模块哦!
希望我的解答能够帮助你!!!