傅里叶级数的指数形式的形象化

$$f(t)=a_{0}+\sum_{n=1}^{\infty}(a_{n} \cos n\omega t+b_{n} \sin n\omega t)$$

由《知乎专栏——与时间无关的故事》启发,三角形式、频率振幅谱、相位谱解释得如此这般形象~~

$$f(t)=a_{0}+\sum_{n=1}^{\infty}(A_{n}\cos (n\omega t + \varphi_{n}))\quad A_{n}=\sqrt{a_{n}^2+b_{n}^2}\quad \tan \varphi_{n}=-\frac{b_{n}}{a_{n}}$$

$$=RealPart[a_{0}+\sum_{n=1}^{\infty}A_{n}e^{i\varphi_{n}}e^{in\omega t}]$$

$$=RealPart[a_{0}+\sum_{n=1}^{\infty}(a_{n}+ib_{n})e^{in\omega t}]$$

$$\qquad z=x+iy$$

$$\qquad \bar{z}=x-iy $$

$$\qquad \therefore x=\frac{1}{2}(z+\bar{z})$$

$$=\frac{1}{2}[ (a_{0}+\sum_{n=1}^{\infty}(a_{n}+ib_{n})e^{in\omega t}) +(a_{0}+\sum_{n=1}^{\infty}(a_{n}-ib_{n})e^{-in\omega t})]$$

$$=a_{0}+\sum_{n=1}^{\infty}F_{(n)}e^{in\omega t}+\sum_{n=1}^{\infty}F_{(-n)}e^{-in\omega t}\quad F_{(n)}=\frac{1}{2}(a_{n}+ib_{n})\quad F_{(-n)}=\frac{1}{2}(a_{n}-ib_{n})\quad n=1, 2, 3, ...$$

$$=a_{0}+\sum_{n=1}^{\infty}F_{(n)}e^{in\omega t}+\sum_{-\infty}^{n=-1}F_{(n)}e^{in\omega t}\quad F_{(0)}=a_{0}$$

$$=\sum_{-\infty}^{\infty}F_{(n)}e^{in\omega t}$$

从上面的推导过程,结合复数的几何意义,就得到复指数形式的傅里叶级数的形象:

复平面上的点作“轮上轮”运动,在实轴的投影。

这是从复数几何意义的角度理解傅里叶级数的,\(e^{in\omega t}\) 很容易联想到复平面上点的圆周运动。
可以使用MATLAB中的`expfourier`函数来求解指数傅里叶级数。以下是使用`expfourier`函数求解指数傅里叶级数的示例代码: 假设我们要求解函数f(t)=sin(2πt)+cos(4πt),在区间[0,1]上的指数傅里叶级数,代码如下: ``` syms t; f = sin(2*pi*t) + cos(4*pi*t); T = 1; % 周期 N = 10; % 傅里叶级数项数 a = -N:N; F = expfourier(f, t, a, T); % 求解指数傅里叶级数 ``` 其中,`syms t`定义了符号变量t,`f`表示要求解的函数,`T`表示函数的周期,`N`表示要求解的傅里叶级数的项数,`a`表示傅里叶级数中的系数,`expfourier`函数即为求解指数傅里叶级数的函数,它的返回值`F`表示函数f(t)在傅里叶级数下的展开式。 可以使用`plot`函数将函数f(t)和指数傅里叶级数F进行比较: ``` t = linspace(0, T, 1000); f_val = eval(subs(f, t)); F_val = eval(subs(sum(F), t)); plot(t, f_val, 'b', t, F_val, 'r'); legend('f(t)', 'F(t)'); ``` 这里使用`linspace`函数生成0到T之间的1000个等间距的点,`eval`函数用于计算指数傅里叶级数F在这些点上的值,`subs`函数用于将符号变量t替换为具体的值。最后使用`plot`函数绘制函数f(t)和指数傅里叶级数F在这些点上的值,并使用`legend`函数添加图例。 完整代码如下: ``` syms t; f = sin(2*pi*t) + cos(4*pi*t); T = 1; % 周期 N = 10; % 傅里叶级数项数 a = -N:N; F = expfourier(f, t, a, T); % 求解指数傅里叶级数 t = linspace(0, T, 1000); f_val = eval(subs(f, t)); F_val = eval(subs(sum(F), t)); plot(t, f_val, 'b', t, F_val, 'r'); legend('f(t)', 'F(t)'); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值