matlab如何提出谐波成分

2024-12-28 13:10:47
推荐回答(1个)
回答1:

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模块,它可以对你的波形进行直接的傅里叶分析,从它那里可以直接读出各谐波分量的大小情况。是个及其好用的模块哦!

希望我的解答能够帮助你!!!