MATLAB之傅里叶展开(五)

傅里叶(Fourier)展开

傅里叶级数的定义如下:

设函数 f ( x ) f(x) f(x)在区间 [ 0 , 2 π ] [0,2\pi] [0,2π]上绝对可积,令
{ a n = 1 π ∫ 0 2 π f ( x ) cos ⁡ n x   d x ( n = 0 , 1 , 2 , ⋯   ) b n = 1 π ∫ 0 2 π f ( x ) sin ⁡ n x   d x ( n = 1 , 2 , ⋯   ) \left\{\begin{array}{ll} a_{n}=\frac{1}{\pi} \int_{0}^{2 \pi} f(x) \cos n x \mathrm{~d} x & (n=0,1,2, \cdots) \\ b_{n}=\frac{1}{\pi} \int_{0}^{2 \pi} f(x) \sin n x \mathrm{~d} x & (n=1,2, \cdots) \end{array}\right. {an=π102πf(x)cosnx dxbn=π102πf(x)sinnx dx(n=0,1,2,)(n=1,2,)
a n , b n a_n,b_n an,bn为系数作三角级数
a 0 2 + ∑ n = 1 ∞ ( a n c o s n x + b n s i n n x ) \frac{a_0}{2}+\sum_{n=1}^{\infty}(a_ncosnx+b_nsinnx) 2a0+n=1(ancosnx+bnsinnx)
称为 f ( x ) f(x) f(x)的傅里叶级数, a n , b n a_n,b_n an,bn称为傅里叶系数。

具体的傅里叶级数推导过程可以参考下面这篇文章:

https://zhuanlan.zhihu.com/p/41455378

根据定义可以编写计算傅里叶系数的函数:

function [a0,an,bn] = Fourierzpi(f)
%本函数旨在计算[0,2pi]上的傅里叶系数
syms x n
a0 = int(f,0,2*pi)/pi;
an = int(f*cos(n*x),0,2*pi)/pi;
bn = int(f*sin(n*x),0,2*pi)/pi;
end

利用该函数计算 s i n x + e x x 2 \frac{sinx+e^x}{x^2} x2sinx+ex在[0,2pi]上的傅里叶系数

syms x
f = (sin(x)+exp(x))/x^2;
[a0,an,bn] = Fourierzpi(f)

a0 =

Inf


an =

int((cos(n*x)*(exp(x) + sin(x)))/x^2, x, 0, 2*pi)/pi


bn =

int((sin(n*x)*(exp(x) + sin(x)))/x^2, x, 0, 2*pi)/pi

如果想要计算不同区间的傅里叶变化,只需要改变函数中范围,这样就可以计算不同区间,不同函数的傅里叶系数。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值