周期信号傅里叶级数公式

连续周期信号

x(t)=+akejkw0t=+akejk(2π/T)tak=1TTx(t)ejkw0tdt=1TTx(t)ejk(2π/T)tdt x ( t ) = ∑ − ∞ + ∞ a k e j k w 0 t = ∑ − ∞ + ∞ a k e j k ( 2 π / T ) t a k = 1 T ∫ T x ( t ) e − j k w 0 t d t = 1 T ∫ T x ( t ) e − j k ( 2 π / T ) t d t

离散周期信号

x(n)=k=(N)akejkw0n=k=(N)akejk(2π/N)nak=1Nn=(N)x[n]ejkw0n=1Nn=(N)x[n]ejk(2π/N)n x ( n ) = ∑ k = ( N ) a k e j k w 0 n = ∑ k = ( N ) a k e j k ( 2 π / N ) n a k = 1 N ∑ n = ( N ) x [ n ] e − j k w 0 n = 1 N ∑ n = ( N ) x [ n ] e − j k ( 2 π / N ) n

### 关于周期信号傅里叶级数表示 #### 三角函数形式的傅里叶级数 周期信号 \( f(t) \),其周期为 \( T_0 \),角频率为 \( \omega_0 = \frac{2\pi}{T_0} \),可以被表达成一系列正弦波和余弦波的线性组合。具体来说,该信号可以用如下公式描述: \[ f(t)=a_{0}+\sum _{{n=1}}^{\infty }\left(a_{n}\cos(n\omega _{0}t)+b_{n}\sin(n\omega _{0}t)\right)[^1] \] 其中, - \( a_0 \) 是直流分量; - \( a_n, b_n \) 称作傅立叶系数。 这些系数可以通过下述积分计算得出: - 对于常数项 \( a_0 \): \[ a_{0}={\frac {1}{T_{0}}}\int _{-{\frac {T_{0}}{2}}}^{+{\frac {T_{0}}{2}}}f(t){\rm {{d}t}}[^1] \] - 正弦/余弦项对应的系数分别为: \[ a_{n}={\frac {2}{T_{0}}}\int _{-{\frac {T_{0}}{2}}}^{+{\frac {T_{0}}{2}}}f(t)\cos(n\omega _{0}t){\rm {{d}t}}, n>0 \] \[ b_{n}={\frac {2}{T_{0}}}\int _{-{\frac {T_{0}}{2}}}^{+{\frac {T_{0}}{2}}}f(t)\sin(n\omega _{0}t){\rm {{d}t}}, n>0 [^1]\] #### 复指数形式的傅里叶级数 除了上述基于实数值的三角函数外,还可以采用更简洁紧凑的形式来表述同样的概念—即通过复数单位圆上的旋转因子 e^(jωt). 这种方式不仅简化了公式的书写而且更容易处理实际应用中的问题. 此时,原始的时间域函数可写作: \[ f(t)=\sum _{{k=-\infty }}^{{+\infty }}c_{k}e^{{jk\omega _{0}t}} [^1]\] 这里引入新的傅里叶系数 \( c_k \), 它们由原来的两个独立变量合成而来,并可通过以下关系获得: \[ c_{k}= {\begin{cases} (a_k-jb_k)/2 & k > 0 \\ a_0 & k = 0\\ (a_{|k|}+jb_{|k|})/2& k<0 \end{cases}} \] 值得注意的是,这种转换使得原本分离存在的正负频谱成分得以统一考虑,从而大大提高了分析效率。 #### 性质说明 周期信号傅里叶级数具有若干重要的特性,比如线性、奇偶虚实对称性和移位定理等[^2]. 特别的,如果一个周期信号满足狄利克雷条件,则它一定能够展开成为绝对且一致收敛的傅里叶级数;反之则可能存在某些特殊情况导致无法正常展开或者即使展开了也不一定能精确还原原信号[^3]. ```python import numpy as np from scipy.integrate import quad def fourier_coefficients(f, period, num_terms): """Calculate Fourier coefficients of the given function.""" omega_0 = 2 * np.pi / period def integrand_cos(x, n): return f(x)*np.cos(n*omega_0*x) def integrand_sin(x, n): return f(x)*np.sin(n*omega_0*x) # Calculate constant term and other terms. a0 = quad(integrand_cos, -period/2., period/2., args=(0))[0]/(period) an = lambda n: quad(integrand_cos, -period/2., period/2., args=(n))[0]*2./period bn = lambda n: quad(integrand_sin, -period/2., period/2., args=(n))[0]*2./period ak = [an(k) for k in range(num_terms)] bk = [bn(k) for k in range(num_terms)] ck_pos = [(ak[k]-bk[k]*1j)/2. for k in range(len(ak))] ck_neg = [(ak[k]+bk[k]*1j)/2. for k in reversed(range(len(bk)))] return {'constant': a0, 'positive_freqs': ck_pos, 'negative_freqs': ck_neg} # Example usage with square wave approximation using first few harmonics square_wave = lambda t : (-1)**((t%(2*np.pi)>np.pi)) coefficients = fourier_coefficients(square_wave, 2.*np.pi, 5) print(coefficients) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值