文章目录
- 前言
- 一、相量叠加原理
- 二、使用旋转相量生成余弦和正弦波的Python代码
- 三、仿真结果及分析
- 写在后面的话
前言
首先给出使用复数指数函数生成正弦函数和余弦函数的数学表达式,然后给出Python仿真代码,并绘制了生成的函数图形,最后给出了仿真分析。
一、相量叠加原理
由欧拉公式可以知道,正弦信号可以通过两个相反方向旋转的相量(phasors)生成,这种方法通常被称为相量叠加原理。数学上表达为:
二、使用旋转相量生成余弦和正弦波的Python代码
使用旋转相量生成余弦和正弦波的Python代码如下:
# 导入numpy和matplotlib.pyplot库
import numpy as np
import matplotlib.pyplot as plt# Step 1: 设定参数
f = 5 # 频率为5 Hz
omega = 2 * np.pi * f # 角频率 ω = 2πf
t = np.linspace(0, 1, 1000) # 生成时间向量,从0到1秒,共1000个点# Step 2: 生成两个复数指数信号(旋转相量)
x1 = np.exp(1j * omega * t) # x_1(t) = e^(jΩt)
x2 = np.exp(-1j * omega * t) # x_2(t) = e^(-jΩt)#Step 3: 生成余弦函数和正弦函数
x_cos=(x1 + x2) / 2
x_sin=np.real((x1 - x2) / (2j))#Step 4: 画图
plt.subplot(2, 1, 1)
# 在第一个子图中绘制余弦函数
plt.plot(t, x_cos)
# 设置x轴和y轴的标签
plt.xlabel('Time')
plt.ylabel('Amplitude')
# 设置子图的标题
plt.title('余弦函数')# 使用subplot选中第二个子图进行绘制
plt.subplot(2, 1, 2)
# 在第二个子图中绘制正弦函数
plt.plot(t, x_sin)
# 设置x轴和y轴的标签
plt.xlabel('Time')
plt.ylabel('Amplitude')
# 设置子图的标题
plt.title('正弦函数')# 使用tight_layout自动调整子图参数,避免标签之间的重叠
plt.tight_layout()
# 在所有子图上添加网格线
plt.grid(True)
# 显示绘制的图像
plt.show()
三、仿真结果及分析
以下是执行代码后画图的结果。
第一个子图绘制了余弦函数,第二个子图绘制了正弦函数。以下是图形的详细描述:
-
余弦函数子图:
(1)显示了一个周期为0.2秒(因为频率为5 Hz)的余弦波。
(2)时间范围从0秒到1秒。
(3)可以看到余弦波的波峰和波谷分别位于振幅的+1和-1。 -
正弦函数子图:
(1)显示了一个周期同样为0.2秒的正弦波。
(2)时间范围也是从0秒到1秒。
(3)正弦波的波峰和波谷也分别位于振幅的+1和-1。
对比两个子图,也可以看到,正弦波和余弦波之间有一个90°的相位差。
仿真与绘图结果验证了欧拉公式,展示了如何通过复数指数信号来生成余弦和正弦函数。
写在后面的话
这是《数字信号处理python示例》系列文章的第8篇。整个系列将使用python语言示例说明数字信号处理的基本原理与工程应用。给出的所有Python程序将努力做到简单且具有说明性。在数字信号处理的理论方面,将尽量避免数学上的推导与证明,而注重其物理意义阐述和工程应用的介绍。
感谢您的阅读!