1 弧度的定义
为了便于数学上的运算,设以半径为 1 的圆的中心为原点,x 轴正方向为基准测量角度。这样的圆为单位圆,此单位圆的长度为 1,在圆周上取与半径相同长度的圆弧,对应的角度为 1 弧度。
在三角函数中弧度能大大地简化运算
弧度与角度对应关系
2 旋转与三角函数
现在有一个单位圆,半径为 1,旋转角度为 θ,则它在 y 轴上的投影为 1sinθ,在 x 轴上的投影为 1cosθ。
可以把此单位圆想象为摩天轮,摩天轮的高度随着转动角度的变化而变化
对应到波形图中(下面左图),横轴为旋转角度,纵轴为高度,这个图形就是正弦函数。纵轴值 y 是横轴(角度)值 x 的函数。正弦函数与旋转运动就联系起来了,单位圆上旋转角度 θ 一圈一圈的变化(下面右图),表现在波形图中(下面左图)就是随着 θ 的变化,y 值呈现周期性的变化
同理,如果纵轴表示的是在 x 上的投影,则这样的图形就是余弦函数。
将 sinθ 与 cosθ 画到一起可以看出,cosθ 只是滞后了 sinθ 的 π/2。将 cosθ 向右水平移动 π/2 后两者图形相同。
3 ωt 与三角函数
在三角函数中,变量是 θ,表示旋转角度。
在物理学中,物理量 ω 叫做角速度,单位是弧度/秒(rad/s),角速度可以用快慢来形容。ω (rad/s)乘以时间 t(s)得到的物理量就是角度了。ω 也叫做角频率,角频率与频率有很大的联系。
3.1 单个 ω 图形
假设 ω 确定,那么三角函数就可以表示为与时间相关的函数了,
sinθ = sinωt
ω 与 r(半径) 值都固定,用图形表示就是下图,它不随时间变化,是一种静态图形
3.2 多个 ω 图形
现在假设我们有三个 ω,这三个 ω 固定。分别表示慢速、正常速和快速。它们的半径分别是 1、2、3,角速度 ω 分别是 3ω、4ω、2ω
下图表示波形随时间变化(代码见第 5 部分)
ω 与 r 均已知且固定,ω 表示为横轴,r 表示为纵轴,就可以得到下面的图形
这也就是谱的图形
4 三角函数公式
5 Python 代码
# jupyter noteboook 中运行
# 导入需要的包
import numpy as np
from matplotlib import pyplot as plt
# 常数值 2π
PI2 = math.pi * 2
framerate = 22050
n = 22050
# 2*PI2 平均分为 10000 份
ts = np.linspace(0, PI2, 10000)
# r1,2,3 w3,4,2
w = 1
r1 = 1
w1 = 3*w
r2 = 2
w2 = 4*w
r3 = 3
w3 = 2*w
ys1 = r1 * np.sin(w1*ts)
ys2 = r2 * np.sin(w2*ts)
ys3 = r3 * np.sin(w3*ts)
plt.plot(ts,ys1,'r',label='1r,3w')
plt.plot(ts,ys2,'g',label='2r,4w')
plt.plot(ts,ys3,'b',label='3r,2w')
plt.hlines(0, 0, 7)#横线
# 给图片在右上角添加图例
plt.legend()
plt.xlabel("time")
plt.ylabel("sinwt")
plt.show()
参考
漫画傅里叶解析
Python数字信号处理应用