一个MATLAB中傅里叶级数变换的函数

一个MATLAB中傅里叶级数变换的函数

很多朋友在做傅里叶级数变换时,会发自己的matlab中并不带有傅里叶级数变换函数,这就需要我们自己编一个级数变换函数。在大学高数我们学过傅里叶级数的变换原理,就是下面的公式了,方便大家理解后面的代码。

一个MATLAB中傅里叶级数变换的函数_第1张图片

具体的代码就是下面的了,大家要记得保存为fseries.m格式,今后用时直接调用就可以啦。


function [an,bn,f]=fseries(fx,x,n,a,b)
%傅里叶级数展开
%an为fourier余弦项系数
%bn为fourier正弦项系数
%f为展开表达式
%f为给定函数
%x为自变量
%n为展开系数
%a,b为x的区间,默认为[-pi,pi]
 
if nargin==3
    a=-pi;
    b=pi;
end
l=(b-a)/2;
if a+b
    fx=subs(fx,x,x+l+a);
end
an=int(fx,x,-l,l)/l;
bn=[];
f=an/2;
for ii=1:n
    ann=int(fx*cos(ii*pi*x/l),x,-l,l)/l;
    bnn=int(fx*sin(ii*pi*x/l),x,-l,l)/l;
    an=[an,ann];
    bn=[bn,bnn];
    f=f+ann*cos(ii*pi*x/l)+bnn*sin(ii*pi*x/l);
end
if a+b
    f=subs(f,x,x-l-a);
end


你可能感兴趣的:(傅里叶级数变换,matlab)