傅里叶级数的3D表示 包括源码

傅里叶级数的3D表示 包括源码

flyfish
在这里插入图片描述傅里叶级数的基本形式 y ( t ) = ∑ n = 1 , 3 , 5 , … N 4 A n π sin ⁡ ( n π T t ) y(t) = \sum_{n=1,3,5,\ldots}^{N} \frac{4A}{n\pi} \sin\left(\frac{n\pi}{T} t\right) y(t)=n=1,3,5,N4Asin(Tt)
其中, A A A 是振幅, T T T 是周期, n n n 是傅里叶级数的项数。

傅里叶级数中每一项的形式
y n ( t ) = 4 A n π sin ⁡ ( n π T t ) y_n(t) = \frac{4A}{n\pi} \sin\left(\frac{n\pi}{T} t\right) yn(t)=4Asin(Tt)

这个公式表示傅里叶级数中每一项的贡献。

解释

t (时间) : 横坐标表示时间。
y (幅度) : 纵坐标表示傅里叶级数在该时间点的值。
f (频率) : 深度坐标表示傅里叶级数的项数对应的频率。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 定义傅里叶级数的参数
T = 2 * np.pi  # 周期
A = 1  # 振幅
N = 11  # 级数的最大项数

# 定义傅里叶级数的函数
def fourier_series(t, N, A, T):
    y = np.zeros_like(t)
    for n in range(1, N + 1, 2):  # 只考虑奇数项
        y += (4 * A / (np.pi * n)) * np.sin((n * np.pi / T) * t)
    return y

# 创建时间域和频率域的网格数据
t = np.linspace(0, 2 * T, 1000)
f = np.array([1 / T, 3 / T, 5 / T, 7 / T, 9 / T, 11 / T])
T_grid, F_grid = np.meshgrid(t, f)

# 创建3D图
fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(111, projection='3d')

# 绘制傅里叶级数的时域图像
for n in range(1, N + 1, 2):
    y = (4 * A / (np.pi * n)) * np.sin((n * np.pi / T) * t)
    ax.plot(t, n / T, zs=y, label=f'n={n}')

# 设置坐标轴标签和刻度
ax.set_xlabel('t (时间)')
ax.set_ylabel('f (频率)')
ax.set_zlabel('y (幅度)')

# 设置坐标轴的刻度
ax.set_xticks([0, np.pi, 2 * np.pi])
ax.set_xticklabels(['0', r'$\pi$', r'$2\pi$'])
ax.set_yticks(f)
ax.set_yticklabels([r'$\frac{1}{T}$', r'$\frac{3}{T}$', r'$\frac{5}{T}$', r'$\frac{7}{T}$', r'$\frac{9}{T}$', r'$\frac{11}{T}$'])
ax.set_zticks([-A, 0, A])
ax.set_zticklabels([f'-{A}', '0', f'{A}'])

plt.title('傅里叶级数的3D表示')
plt.legend()
plt.show()

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

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

相关文章

WPF/C#:在WPF中如何实现依赖注入

前言 本文通过 WPF Gallery 这个项目学习依赖注入的相关概念与如何在WPF中进行依赖注入。 什么是依赖注入 依赖注入(Dependency Injection,简称DI)是一种设计模式,用于实现控制反转(Inversion of Control&#xff0…

Apache Hadoop完全分布式集群搭建指南

Hadoop发行版本较多,Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称CDH)收费版本通常用于生产环境,这里用开源免费的Apache Hadoop原始版本。 下载:Apache Hadoop 版本下载&#x…

华盈生物-PhenoCycler-超多靶标揭示组织空间位置和互作关系

华盈生物获得美国Akoya公司认证的PhenoCycler-Fusion(原CODEX)空间单细胞蛋白组技术服务商,并进入该技术的全球CRO服务提供者网络:CRO Service Providers | Akoya Biosciences为科研工作者提供为更具有精准医学特色的服务&#xf…

Failed to start mysql.service:Unit mysql.service not found(100%成功解决问题)

问题:在ubuntu中安装mysql后,启动mysql报错 你能看到我这篇文章,是非常幸运的! 安装mysql-server: 然后启动mysql报错: 那要怎么处理呢?easy,跟着下面的步骤操作就好了 首先,先卸…

算法训练营day28--134. 加油站 +135. 分发糖果+860.柠檬水找零+406.根据身高重建队列

一、 134. 加油站 题目链接:https://leetcode.cn/problems/gas-station/ 文章讲解:https://programmercarl.com/0134.%E5%8A%A0%E6%B2%B9%E7%AB%99.html 视频讲解:https://www.bilibili.com/video/BV1jA411r7WX 1.1 初见思路 得模拟分析出…

php快速入门

前言 php是一门脚本语言,可以访问服务器,对数据库增删查改(后台/后端语言) 后台语言:php,java,c,c,python等等 注意:php是操作服务器,不能直接在…

教学神器大比拼:SmartEDA、Multisim、Proteus,谁是你的最佳选择?

随着科技的飞速发展,教学工具也在不断升级。在电子设计自动化(EDA)和电路仿真领域,SmartEDA、Multisim和Proteus三款软件备受关注。那么,对于广大教育工作者和学生们来说,这三者之间该如何选择呢&#xff1…

goaccess分析json格式日志

一.安装使用yum安装,yum install goaccess 二.主要介绍格式问题 1.nginx日志格式如下: log_format main escapejson {"time_local":"$time_local", "remote_addr":"$remote_addr", "r…

解决鸿蒙开发中克隆项目无法签名问题

文章目录 问题描述问题分析解决方案 问题描述 在一个风和日丽的早晨,这是我学习鸿蒙开发的第四天,把文档过了一遍的我准备看看别人的项目学习一下,于是就用git去clone了一个大佬的开源项目,在签名的时候遇到了问题: h…

docker 上传镜像到hub仓库

要将 Docker 镜像上传到 Docker Hub,你需要按照以下步骤操作: 登录 Docker Hub 首先,你需要登录到 Docker Hub。打开终端并运行以下命令:docker login系统会提示你输入 Docker Hub 的用户名和密码。 如果密码忘记可以token登录&a…

SAP S4 销售组的定义和分配

spro-企业结构-定义-销售与分销-维护销售组 新增一个记录 spro-企业结构-分配-销售与分销-给销售办公室分配销售组

[leetcode]kth-smallest-element-in-a-sorted-matrix 有序矩阵中第k小元素

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool check(vector<vector<int>>& matrix, int mid, int k, int n) {int i n - 1;int j 0;int num 0;while (i > 0 && j < n) {if (matrix[i][j] < mid) {num i 1;j;…

OTA与OTA升级

目录 一、OTA简介 二、OTA升级 三、操作方式 一、OTA简介 在嵌入式领域当中&#xff0c;OTA&#xff08;Over-The-Air&#xff09;指的是通过无线通信技术对嵌入式设备的软件进行远程更新和管理。这种技术广泛应用于物联网设备、智能家电、汽车电子、智能手机等领域。通过OTA…

自定义json序列化和反序列化

一、LocalDateTime反序列化异常 首先我们定义一个java POJO实体类&#xff0c;其中关键的成员变量时birthDate,我们没有采用Date数据类型&#xff0c;而是采用了Java8 新的日期类型LocalDateTime,使用LocalDateTime的好处我就不多说了&#xff0c;有很多的文章解释说明。我们把…

图鸟UI框架在uni-app多端应用开发中的实践与应用

摘要&#xff1a; 随着移动互联网的蓬勃发展&#xff0c;跨平台应用开发已成为行业趋势。本文将探讨图鸟UI框架如何在uni-app开发环境下助力开发者高效构建多端应用&#xff0c;并通过具体案例展示其在实际项目中的应用效果。 一、引言 在移动应用开发领域&#xff0c;跨平台…

高职软件测试实训室

一、高职软件测试实训室建设背景 随着《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》的深入实施&#xff0c;我国正在以不可阻挡的势头迈进数字化新时代。在这个波澜壮阔的时代背景下&#xff0c;软件作为数字经济的核心驱动力&#xff0c;其质量…

变量和常量(局部变量和全局变量)

常变的值叫变量&#xff0c;不变的值叫常量 变量分为局部变量和全局变量 在同一范围内&#xff0c;变量只能定义一次&#xff0c;否则就会报错 全部变量和局部变量是可以同时存在的&#xff0c;不过使用的时候是局部优先 变量如果你不给他初始化&#xff0c;那么他放得就是一…

【UML用户指南】-33-对体系结构建模-系统和模型

目录 1、系统和子系统 2、模型和视图 3、跟踪 4、常用建模技术 4.1、对系统的体系结构建模 4.2、对系统的系统建模 模型是对现实世界的简化——即对系统的抽象&#xff0c;建立模型的目的是为了更好地理解系统。 1、系统和子系统 一个系统可能被分解成一组子系统&#…

SAP ABAP ME21N 采购订单行项目屏幕增强

一、事务代码&#xff1a;SMOD 增强点&#xff1a;MM06E005 1.在CI_EKPODB 组建中添加自定义字段 2.事务码&#xff1a;SE11 进入CI_EKPODB 二、事务码&#xff1a;SE38 ZXM06TOP 定义结构 创建子屏幕 1.代码如下&#xff1a; TABLES:ci_ekpodb. DATA:EDIT_MODE TYPE cha…

Cocos如何跟iOS通信?

点击上方亿元程序员+关注和★星标 引言 Cocos如何跟iOS通信 大家好,相信小伙伴们通过阅读笔者前几期的文章**《你那么牛,怎么不教我打iOS包?安排!》,对Cocos如何打iOS**包有了一定的了解。 但是,除了把iOS包打出来,另外还有一个重要的就是要能够调用iOS提供的OC方法以…