方波的基波和谐波详细推导,以及matlab验证[电路原理---2]

发布于:2025-02-11 ⋅ 阅读:(16) ⋅ 点赞:(0)

最近要滤波,从1KHZ 方波中获得正弦波,这让我们要对方波的频谱有具体的了解。虽然楼主一年前刚学过傅里叶。但也是忘的干干净净查阅资料后终于是整理出来。用漂亮的latex打出来了,为自己留存一份记录,也分享给大家学习。

方波的基波和谐波

复指数形式的傅里叶级数公式 - 对于周期为(T)的周期函数(f(t)),其复指数形式的傅里叶级数展开式为
f ( t ) = ∑ n = − ∞ ∞ F n e j n ω 0 t f(t)=\sum_{n = -\infty}^{\infty}F_{n}e^{jn\omega_{0}t} f(t)=n=Fnejnω0t
_其中
ω 0 = 2 π T \omega_{0}=\frac{2\pi}{T} ω0=T2π
_系数
F n = 1 T ∫ − T / 2 T / 2 f ( t ) e − j n ω 0 t d t F_{n}=\frac{1}{T}\int_{-T/2}^{T/2}f(t)e^{-jn\omega_{0}t}dt Fn=T1T/2T/2f(t)ejnω0tdt

对于1kHz方波的分析 - 已知方波周期(T = 10^{-3}s),
ω 0 = 2 π × 1 0 3 r a d / s   \omega_{0}=2\pi\times10^{3}rad/s\ ω0=2π×103rad/s 
设方波函数(f(t))在一个周期内为

f ( t ) = { A , 0 ≤ t ≤ T 2 − A , T 2 < t ≤ T f(t)=\left\{\begin{matrix}A, &0\leq t\leq\frac{T}{2}\\ -A, &\frac{T}{2}\lt t\leq T\end{matrix}\right. f(t)={A,A,0t2T2T<tT

  • 计算系数(F_{n}):
    F n = 1 T ∫ − T / 2 T / 2 f ( t ) e − j n ω 0 t d t = 1 T ( ∫ 0 T / 2 A e − j n ω 0 t d t + ∫ T / 2 T ( − A ) e − j n ω 0 t d t ) F_{n}=\frac{1}{T}\int_{-T/2}^{T/2}f(t)e^{-jn\omega_{0}t}dt=\frac{1}{T}\left(\int_{0}^{T/2}Ae^{-jn\omega_{0}t}dt+\int_{T/2}^{T}(-A)e^{-jn\omega_{0}t}dt\right) Fn=T1T/2T/2f(t)ejnω0tdt=T1(0T/2Aejnω0tdt+T/2T(A)ejnω0tdt)

    ∫ T / 2 T ( − A ) e − j n ω 0 t d t = A j n ω 0 ( e − j n 2 π − e − j n π ) \int_{T/2}^{T}(-A)e^{-jn\omega_{0}t}dt=\frac{A}{jn\omega_{0}}\left(e^{-jn2\pi}-e^{-jn\pi}\right) T/2T(A)ejnω0tdt=jnω0A(ejn2πejnπ)

    F n = 1 T [ − A j n ω 0 ( e − j n π − 1 ) + A j n ω 0 ( e − j n 2 π − e − j n π ) ] F_{n}=\frac{1}{T}\left[-\frac{A}{jn\omega_{0}}\left(e^{-jn\pi}- 1\right)+\frac{A}{jn\omega_{0}}\left(e^{-jn2\pi}-e^{-jn\pi}\right)\right] Fn=T1[jnω0A(ejnπ1)+jnω0A(ejn2πejnπ)]

  • 化简
    F n = A j n π ( 1 − e − j n π ) F_n= \frac{A}{jn \pi} (1-e^{-jn \pi}) Fn=jnπA(1ejnπ)

  • 讨论
    F o d d = A j n π ( 1 − ( − 1 ) n ) = A j n π ( 1 − ( − 1 ) o d d ) = 2 A j n π F_{odd}=\frac{A}{jn \pi}(1- (-1)^n)=\frac{A}{jn \pi}(1- (-1)^{odd})=\frac{2A}{jn \pi} Fodd=jnπA(1(1)n)=jnπA(1(1)odd)=jnπ2A

    F e v e n = A j n π ( 1 − ( − 1 ) n ) = A j n π ( 1 − ( − 1 ) e v e n ) = 0 F_{even}=\frac{A}{jn \pi}(1- (-1)^n)=\frac{A}{jn \pi}(1- (-1)^{even})=0 Feven=jnπA(1(1)n)=jnπA(1(1)even)=0

  1. 方波的复指数形式傅里叶级数展开式 - 所以(
    f ( t ) = ∑ n = − ∞ ∞ F n e j n ω 0 t = ∑ n = − ∞ , n   o d d ∞ 2 A j n π e j n ω 0 t   f(t)=\sum_{n = -\infty}^{\infty}F_{n}e^{jn\omega_{0}t}=\sum_{n = -\infty,n\ odd}^{\infty}\frac{2A}{jn\pi}e^{jn\omega_{0}t}\ f(t)=n=Fnejnω0t=n=,n oddjnπ2Aejnω0t 
    基波频率
    ω 1 = ω 0 = 2 π × 1 0 3 r a d / s \omega_{1}=\omega_{0}=2\pi\times10^{3}rad/s ω1=ω0=2π×103rad/s
    对应的频率
    f 1 = 1 k H z ,谐波频率为 n ω 0 ( n = 3 , 5 , 7 , ⋯   ) f_{1}=1kHz,谐波频率为n\omega_{0}(n = 3,5,7,\cdots) f1=1kHz,谐波频率为nω0(n=3,5,7,)
    在电子信息中,这种复指数形式的傅里叶级数方便分析信号的频谱等特性,,可以了解信号在不同频率成分上的分布情况。例如,幅度
    ∣ F n ∣ = 2 A ∣ n ∣ π ( n 为奇数 ) \vert F_{n}\vert=\frac{2A}{\vert n\vert\pi}(n为奇数) Fn=nπ2A(n为奇数)
    表示了各频率成分的强度。
matlab代码验证
% 参数设置
Fs = 100e3;       % 采样频率 (100 kHz)
T = 1/Fs;         % 采样周期
t = 0:T:1-T;      % 时间向量 (1秒)
f1 = 1e3;         % 基波频率 (1 kHz)

% 生成 1 kHz 方波信号
square_wave = square(2*pi*f1*t);

% 计算 FFT
L = length(square_wave);  % 信号长度
Y = fft(square_wave);     % 计算 FFT
P2 = abs(Y/L);            % 双边频谱
P1 = P2(1:L/2+1);         % 单边频谱


% 频率向量
f = Fs*(0:(L/2))/L;       % 频率向量

% 绘制频谱图
figure;
plot(f, P1);
title('1 kHz 方波信号的频谱');
xlabel('频率 (Hz)');
ylabel('|P1(f)|');
grid on;

在这里插入图片描述

可以看出,0.63658强度的1KHZ基波和0.211强度的3次谐波都是如我们计算的这样