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

最近要滤波,从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=T1∫−T/2T/2f(t)e−jnω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,0≤t≤2T2T<t≤T

  • 计算系数(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=T1∫−T/2T/2f(t)e−jnω0tdt=T1(∫0T/2Ae−jnω0tdt+∫T/2T(−A)e−jnω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)e−jnω0tdt=jnω0A(e−jn2π−e−jnπ)

    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(e−jnπ−1)+jnω0A(e−jn2π−e−jnπ)]

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

  • 讨论
    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 odd∑∞jnπ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代码验证
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次谐波都是如我们计算的这样

相关推荐
LXS_35712 小时前
Day 05 C++ 入门 之 指针
开发语言·c++·笔记·学习方法·改行学it
MicroTech202513 小时前
微算法科技(MLGO)研发突破性低复杂度CFG算法,成功缓解边缘分裂学习中的掉队者问题
科技·学习·算法
etsuyou14 小时前
js前端this指向规则
开发语言·前端·javascript
shizhenshide14 小时前
为什么有时候 reCAPTCHA 通过率偏低,常见原因有哪些
开发语言·php·验证码·captcha·recaptcha·ezcaptcha
mit6.82414 小时前
[Agent可视化] 配置系统 | 实现AI模型切换 | 热重载机制 | fsnotify库(go)
开发语言·人工智能·golang
友友马14 小时前
『 QT 』QT控件属性全解析 (一)
开发语言·前端·qt
future141215 小时前
MCU硬件学习
单片机·嵌入式硬件·学习
好奇龙猫15 小时前
日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(4):文法運用
学习
小白学大数据15 小时前
实战:Python爬虫如何模拟登录与维持会话状态
开发语言·爬虫·python
一念&15 小时前
每日一个C语言知识:C 结构体
c语言·开发语言