【电路笔记】-谐波

谐波

文章目录

  • 谐波
    • 1、概述
    • 2、频谱分析
    • 3、已知信号
    • 4、未知信号
    • 5、总结

周期性信号并不总是完美的正弦模式,例如我们之前有关 正弦波的文章之一中介绍的那样。 有时,信号确实可以是简单正弦波的叠加,它们被称为复杂波形。

在本文中,我们将重点关注复杂的周期性波形,以了解它们的组成以及如何分析它们。

首先,我们介绍谐波的概念以及频谱表示。 在第二部分中,我们重点关注谱分析,这是基于傅立叶级数的分析谐波的数学工具。

1、概述

假设一个周期信号 s ( t ) s(t) s(t),它是两个称为谐波 y 0 ( t ) y_0(t) y0(t) y 1 ( t ) y_1(t) y1(t) 的正弦波形的叠加,它们的频率和幅度满足 ω 1 = 2 ω 0 \omega_1=2\omega_0 ω1=2ω0 A 0 = 2 A 1 A_0=2A_1 A0=2A1。 因此,它们的表达式由 y 0 ( t ) = A 0 sin ⁡ ( ω 0 t ) y_0(t)=A_0\sin(\omega_0t) y0(t)=A0sin(ω0t) y 1 ( t ) = A 1 sin ⁡ ( ω 1 t ) y_1(t)=A_1\sin(\omega_1t) y1(t)=A1sin(ω1t) 给出。 图 1 显示了与结果信号 s ( t ) s(t) s(t) 分开的谐波 y 0 ( t ) y_0(t) y0(t) y 1 ( t ) y_1(t) y1(t)

在这里插入图片描述

图1:复杂波形及其谐波的表示

在此示例中, y 0 ( t ) y_0(t) y0(t) 称为基波, y 1 ( t ) y_1(t) y1(t) 称为一次谐波。 基波谐波是频率较低的信号,它给出了结果信号 s ( t ) s(t) s(t) 的周期性:我们确实可以看到 ω 0 = ω S ω_0=ω_S ω0=ωS

因此,谐波是复杂波形的“构建”函数,但是,它们的频率不是随机的,并且始终满足 ω 0 = ω S ω_0=ω_S ω0=ωS ω 1 = 2 ω 0 ω_1=2ω_0 ω1=2ω0 ω 2 = 3 ω 0 ω_2=3ω_0 ω2=3ω0(如果存在二次谐波)等等……在一般情况下, 第n次谐波的频率满足关系式 ω n = ( n + 1 ) × ω 0 ω_n=(n+1)\times ω_0 ωn=(n+1)×ω0

当给定特定的复杂波形时,一种非常合适的表示形式称为信号的频谱。 这种表示方法包括绘制每个谐波的幅度作为频率的函数,并且可以通过 Python 或 MatLab 等数值程序进行计算:

在这里插入图片描述

图2:s(t)的频谱

检查 s ( t ) s(t) s(t) 的频谱,可以清楚地看到基波信号的频率为 f 0 = 15 / 2 π = 2.4 H z f_0=15/2\pi=2.4Hz f0=15/2π=2.4Hz,幅度 A 0 = 1 A_0=1 A0=1(例如 V V V A A A),而一次谐波的频率为 2 f 0 = 4.8 H z 2f_0=4.8Hz 2f0=4.8Hz,振幅 A 1 = 0.5 A_1=0.5 A1=0.5

2、频谱分析

绘制如图 2 所示的频谱是基于称为傅立叶级数的数学工具。 这种方法是在19世纪初期由法国科学家约瑟夫·傅立叶提出的,至今仍然是信号分析的主要工具之一。

该方法基于这样的观察:任何周期信号 y ( t ) y(t) y(t) 实际上都是可以计算幅度和相位的谐波的无限和(一系列)。 同样的观察可以写成一个数学方程:

在这里插入图片描述

等式1:将周期信号分解为傅立叶级数

复指数项只是写谐波的复数形式(请参阅复数这篇文章)。 整数n指的是第n次谐波,T是 y ( t ) y(t) y(t)的周期。

系数 c n ( y ) c_n(y) cn(y) 称为函数 y ( t ) y(t) y(t)的傅里叶系数,由以下关系确定:

在这里插入图片描述

等式2:傅里叶系数

通常将系数 c n c_n cn 分为两个系数 a n a_n an b n b_n bn,对于实函数,这两个系数由下式给出:

在这里插入图片描述

等式3:实函数的简化傅立叶系数

这种确定任何周期信号的傅里叶分解的方法,因此给出如图 2 所示的频谱,也称为傅里叶变换 (FT),它是针对非周期信号的相同方法的扩展。

需要分别考虑两种情况才能进行周期信号的 FT,并在以下小节中进行解释。

3、已知信号

第一种情况是要分解的信号是否具有已知的解析表达式。 例如,考虑周期性为 T 的方波信号 s q ( t ) sq(t) sq(t)。其表达式通过以下定义可知:

在这里插入图片描述

图 3 表示几个周期内周期 T = 2 π T=2\pi T=2π 的方波信号:

在这里插入图片描述

图3:方波信号示意图

首先,我们确定项 a 0 a_0 a0 的表达式:

在这里插入图片描述
该系数表示信号的平均值: y ( t ) y(t) y(t),并且在一半的时间内确实等于 1,否则等于 0。 请注意,由于 sin ⁡ ( 0 ) = 0 \sin(0)=0 sin(0)=0,因此项 b 0 b_0 b0 等于 0。

当开发 n > 0 n>0 n>0 a n a_n an 表达式时,我们意识到这些系数与在 0 和 π \pi π 之间计算的 sin ⁡ ( n x ) \sin(nx) sin(nx) 成正比,它始终等于 0,因此 ( a n ) n > 0 = 0 (a_n)_{n>0}=0 (an)n>0=0

最后,我们确定 n > 0 n>0 n>0 时系数 b n b_n bn 的一般表达式:

在这里插入图片描述
当在 0 和 π \pi π 之间求值时,如果 n 为奇数,则 cos ⁡ ( n x ) \cos(nx) cos(nx) 项等于 -2;如果 n 为偶数,则 cos ⁡ ( n x ) \cos(nx) cos(nx)等于 0。 ( b n ) n > 0 (b_n)_{n>0} (bn)n>0 的最终表达式由下式给出:

在这里插入图片描述
每个系数 b n b_n bn 对应于谐波 sin ⁡ ( n t ) \sin(nt) sin(nt) 的幅度。 因此,根据 a 0 a_0 a0 b n b_n bn 的表达式,我们可以给出方波信号 s q ( t ) sq(t) sq(t) 的完整傅里叶展开:

在这里插入图片描述

等式:周期2π方波信号的傅立叶展开

根据等式4,我们可以绘制 s q ( t ) sq(t) sq(t) 的频谱的一部分,如下图 4 所示:

在这里插入图片描述

图4:方波信号的频谱 sq(t)

对于该信号,仅存在奇次谐波,其幅度由 2 / n π 2/n\pi 2/ 给出,频率由 n / 2 π n/2\pi n/2π 给出。 请注意,平均值也出现在 0Hz 频率的频谱中。 由于方波信号呈现无限数量的谐波,因此频谱当然仅显示到特定频率。

例如,当使用函数发生器生成方波信号时,仅采用有限数量的谐波来构建波形。 例如,如果我们使用谐波 1、2、3、4 和 5,我们称信号是使用直到五阶的谐波生成的,阶数给出了形状的准确度:

在这里插入图片描述

图5:使用谐波分解对方波信号进行两种近似图

当近似阶数增加时,我们可以查明在不连续性跳跃周围出现过冲(信号从 0 到 1 或从 1 到 0 残酷地交替)。 这被称为吉布斯现象(Gibbs Phenomenon),并且出现在存在不连续跳跃的每个信号中。

4、未知信号

让我们重新考虑演示部分中给出的示例,并解释数值程序如何确定 s ( t ) s(t) s(t)的傅立叶分解。 在图 1 中,我们可以测量 s ( t ) s(t) s(t) 的周期性为 T = 0.42 s T=0.42s T=0.42s

第一个系数 c 0 ( y ) c_0(y) c0(y)很容易确定,在我们的示例中等于 0,因为围绕水平轴对称的周期信号在一个周期内的积分始终等于 0。实际上,该第一个系数始终与 直流量,因此是平均值,这在我们的例子中不存在。

当函数 s ( t ) s(t) s(t)的表达式已知时,可以分析计算系数 c n c_n cn,如上一小节所示。 然而,对于未知函数 s ( t ) , n > 0 s(t),n>0 s(t)n>0时的系数 a n ( y ) an(y) an(y) b n ( y ) bn(y) bn(y) 通过计算 − T / 2 -T/2 T/2 T / 2 T/2 T/2(或 0 和 T T T)之间的面积来数值确定 函数 s ( t ) cos ⁡ ( 2 π n t / T ) s(t)\cos(2\pi nt/T) s(t)cos(2πnt/T) s ( t ) sin ⁡ ( 2 π n t / T ) s(t)\sin(2\pi nt/T) s(t)sin(2πnt/T)的曲线。

这可以通过多种方法来完成,最容易实现和理解的方法之一是矩形方法,其思想如图 6 中的函数 s ( t ) sin ⁡ ( 2 π t / T ) s(t)\sin(2\pi t/T) s(t)sin(2πt/T)所示:

在这里插入图片描述

图6:矩形法图解

如图 5 所示,该方法包括通过对宽度为 d t dt dt 和高度为 y ( n × d t ) y(n\times dt) y(n×dt)的小矩形面积求和来近似曲线的积分,其中 n n n是所考虑矩形的索引。

信号 y ( t ) y(t) y(t)的周期T被细分为 N N N个矩形,例如 N × d t = T N\times dt=T N×dt=T。 当 d t dt dt 足够小时,矩形面积之和约等于 y ( t ) y(t) y(t)在一段时间内的积分:

在这里插入图片描述

值得一提的是,为了更好地收敛到精确结果,存在更精确的方法,例如通过选择矩形以外的其他形状来更准确地遵循曲线。

5、总结

  • 如本文第一部分所述,谐波是形成任何周期信号的基本正弦波形。 一些复杂波形可以具有有限数量的谐波,而其他波形则具有无限数量,例如本文后面介绍的方波信号。
  • 谐波的频率始终是复信号基频的整数倍。 它们的幅度通常向高频方向减小,并且可以通过傅里叶分解来确定。
  • 频谱表示是突出显示信号谐波的最方便的方法,它是通过第二部分中介绍的傅里叶分解来计算的。 如果复杂波形的表达式已知,则分解可以是解析的;如果信号未知,则分解可以是数值的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/117147.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++深入浅出】STL之string用法详解

目录 一. 前言 二. STL概要 2.1 什么是STL 2.2 STL的六大组件 2.3 STL的缺陷 三. string类概述 3.1 什么是string类 3.2 为什么要使用string类 四. string类的使用 4.1 包含头文件 4.2 构造函数 4.3 赋值运算符重载 4.4 容量操作 4.5 访问/遍历操作 4.6 查找修改…

JavaEE平台技术——Spring和Spring Boot

JavaEE平台技术——Spring和Spring Boot 1. 控制反转1.1. IoC是什么1.2. IoC能做什么1.3. IoC和DI 2. SpringBean对象定义3. Spring容器4. SpringBoot 在观看这个之前,大家请查阅前序内容。 😀JavaEE的渊源 😀😀JavaEE平台技术——…

基于SSM的网吧计费管理系统(有报告)。Javaee项目,ssm项目。

演示视频: 基于SSM的网吧计费管理系统(有报告)。Javaee项目,ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通…

基于SSM的教学管理系统(有报告)。Javaee项目。

演示视频: 基于SSM的教学管理系统(有报告)。Javaee项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring SpringMvc My…

自动化测试之争:code vs codeless

在TesterHome看到的一个话题,当我们选择做自动化时是否需要code 或者codeless。 code方案 用code去做自动化,实现过程就是拿个IDE撸代码。 python pytest/unittest appium/selenium/requests ... Java Junit/testNG appium/selenium/requests .…

go测试库之apitest

前言 使用go语言做开发差不多快一年了,主要用来写后端Web服务,从一开始吐槽他的结构体,比如创建个复杂的JSON格式数据,那是相当的痛苦。还有 err 处理写的巨麻烦。 当然,go 也有爽的地方,创建个线协程简直…

Compose-Multiplatform在Android和iOS上的实践

本文字数:4680字 预计阅读时间:30分钟 01 简介 之前我们探讨过KMM,即Kotlin Multiplatform Mobile,是Kotlin发布的移动端跨平台框架。当时的结论是KMM提倡将共有的逻辑部分抽出,由KMM封装成Android(Kotlin/JVM)的aar和…

Spring Cloud分布式缓存

目录 单点Redis Redis数据持久化 RDB持久化 bgsave细节 RDB的缺点 AOF持久化 AOF的问题 RDB与AOF对比 搭建Redis主从架构 数据同步原理 全量同步 增量同步 主从同步优化 Redis哨兵 集群检测 选举主节点 故障转移 搭建哨兵集群 RedisTemplate的哨兵模式 单点…

ConcurrentHashMap是如何实现线程安全的

目录 原理: 初始化数据结构时的线程安全 put 操作时的线程安全 原理: 多段锁cassynchronize 初始化数据结构时的线程安全 在 JDK 1.8 中,初始化 ConcurrentHashMap 的时候这个 Node[] 数组是还未初始化的,会等到第一次 put() 方…

【Java】三种方案实现 Redis 分布式锁

序言 setnx、Redisson、RedLock 都可以实现分布式锁&#xff0c;从易到难得排序为&#xff1a;setnx < Redisson < RedLock。一般情况下&#xff0c;直接使用 Redisson 就可以啦&#xff0c;有很多逻辑框架的作者都已经考虑到了。 方案一&#xff1a;setnx 1.1、简单实…

PDF 表单直接保存到您的文档中--TX Text Control

TX Text Control .NET Server for ASP.NET Document Viewer 32.0.2 允许用户保存包含已填写表单字段的文档&#xff0c;从而更轻松地协作和共享信息。 TX Text Control .NET Server for ASP.NET 是一个适用于 ASP.NET 和 ASP.NET Core 的综合服务器端文档处理库。功能包括 PDF …

程序员笔记本电脑选 windows 还是 MAC

计算机选择是每个进入 IT 行业同学的第一个重要选择&#xff0c;那么你是怎么选择的呢&#xff1f; 选择操作系统&#xff08;Windows还是macOS&#xff09;取决于程序员的需求、偏好和工作流程。每个操作系统都有其优点和缺点&#xff0c;下面将分别讨论它们&#xff0c;以帮助…

volatile-无原子性案例详解

package com.nanjing.gulimall.zhouyimo.controller;import java.util.concurrent.TimeUnit;/*** author zhou* version 1.0* date 2023/11/5 7:56 下午*/ class MyNumber{int number;public synchronized void add(){number;} } public class VolatileNoAtomicDemo {public st…

gcc -static 在centos stream8 和centos stream9中运行报错的解决办法

gcc -static 在centos stream8 和centos stream9中运行报错的解决办法&#xff1a; 报/usr/bin/ld: cannot find -lc 我们下载glibc-static&#xff1a; 选择x86_64的。 还有一个是libxcrypt-static&#xff0c;依旧在这个网站里搜。 rpm -ivh glibc-static-2.28-239.el8.x…

排序——冒泡排序

冒泡排序的基本思想 从前往后&#xff08;或从后往前&#xff09;两两比较相邻元素的值&#xff0c;若为逆序&#xff08;即 A [ i − 1 ] < A [ i ] A\left [ i-1\right ]<A\left [ i\right ] A[i−1]<A[i]&#xff09;&#xff0c;则交换它们&#xff0c;直到序列…

【Linux】多路IO复用技术③——epoll详解如何使用epoll模型实现简易的一对多服务器(附图解与代码实现)

在正式阅读本篇博客之前&#xff0c;建议大家先按顺序把下面这两篇博客看一下&#xff0c;否则直接来看这篇博客的话估计很难搞懂 多路IO复用技术①——select详解&如何使用select模型在本地主机实现简易的一对多服务器http://t.csdnimg.cn/BiBib多路IO复用技术②——poll…

Web3游戏的十字路口:沿用传统IP还是另起炉灶?

人们经常问我对 Web3 游戏有什么看法。因此&#xff0c;我想以书面形式概述一下我目前的想法。 让我先澄清一下&#xff1a;我不是专家。这不是一篇深入探讨游戏世界精细指标如 MAU 或 D14 等的全面分析。请把这看作是我根据个人交流和研究&#xff0c;这反映我在游戏领域关注…

java代码检查

目录 jacoco 引入依赖 构建配置修改 单元测试 生成报告 查看报告 报告说明 1. Instructions 2. Branches 3. Cyclomatic Complexity 4. Lines 5. Methods 6. Classes sonar7.7 基础环境 需要下载软件 解压文件并配置 运行启动 jacoco 引入依赖 <dep…

jenkins安装以及基本配置

一、docker 1.安装docker 联网安装命令如下 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun或者也可以使用国内 daocloud 一键安装命令&#xff1a; curl -sSL https://get.daocloud.io/docker | sh2.启动docker systemctl start docker二、docker…

pycharm更改远程服务器地址

一、问题描述 在运行一些项目时&#xff0c;我们常需要在pycharm中连接远程服务器&#xff0c;但万一远程服务器的ip发生了变化&#xff0c;该如何修改呢&#xff1f;我们在file-settings-python interpreter中找到远程服务器&#xff0c;但是发现ip是灰色的&#xff0c;没有办…