三角变换

正弦三角恒等式

\sin(x+y) = \sin(x)\cos(y)+\cos(x)\sin(y)

\sin(x-y) = \sin(x)\cos(y)-\cos(x)\sin(y)

因此

\sin(x+y)+\sin(x-y) = 2\sin(x)\cos(y)

如果把 \sin(x) 看作函数 f(x),把 y 看作常数 \Delta\theta,就有

f(x+\Delta\theta)+f(x-\Delta\theta)=2\cos(\Delta\theta)\cdot f(x)

或者

f(x+\Delta\theta)=2\cos(\Delta\theta)\cdot f(x)-f(x-\Delta\theta)

所以,f(x-\Delta\theta)、f(x) 和 f(x+\Delta\theta) 之间存在固定的关系。

离散正弦波序列

一般形式

定义 a_n = f(n\cdot\Delta\theta),就得到正弦波的离散递推公式

a_n = 2\cos(\Delta\theta)a_{n-1}-a_{n-2}

令 \Delta\theta=2\pi/N,则在区间 [0,\ 2\pi) 内有 N 个 a_i。

进一步,如果把 a_n 写成

a_n=k\ a_{n-1}-a_{n-2},那么对任意 k\in (-1,\ 0) \bigcap (0,\ 1) 且 | a_{n-1} | + | a_{n-2} | \neq 0,a_n 总是一个正弦序列。原因在于,对任意有效的 k,总存在一个(或两个)\Delta\theta 满足 2\cos(\Delta\theta)=k。

另一种一般形式

可以由 a_n 定义另一个序列 b_n:

b_n = \cfrac{k_\mathrm{L}\ a_{n} + k_\mathrm{R}\ a_{n+M}}{k_\mathrm{L}+k_\mathrm{R}}

对任意 | k_\mathrm{L} | + | k_\mathrm{R} | \neq 0 且 k_\mathrm{L}+k_\mathrm{R}\neq 0,b_n 同样是正弦波的离散序列,因为它满足下面的递推公式。

b_n=k\ b_{n-1}-b_{n-2}

图形演示

让 N、M、k_\mathrm{L} 和 k_R 取不同的值,就能得到 a_n 和 b_n 的不同图案。下图中,黑色的点是 a_n,彩色的点是 b_n。

注意:左边直角坐标系中的直线与右边极坐标系中的直线并不对应。

N=10、KL=1、KR=1,M 变化

SinCurve_N10_M1_WA1_WB1

SinCurve_N10_M2_WA1_WB1

SinCurve_N10_M3_WA1_WB1

SinCurve_N10_M4_WA1_WB1

SinCurve_N10_M5_WA1_WB1

SinCurve_N10_M6_WA1_WB1

SinCurve_N10_M7_WA1_WB1

SinCurve_N10_M8_WA1_WB1

SinCurve_N10_M9_WA1_WB1

SinCurve_N10_M10_WA1_WB1

N=100、KL=1、KR=1,M 变化

SinCurve_N100_M10_WA1_WB1

SinCurve_N100_M20_WA1_WB1

SinCurve_N100_M30_WA1_WB1

SinCurve_N100_M40_WA1_WB1

SinCurve_N100_M50_WA1_WB1

SinCurve_N100_M60_WA1_WB1

SinCurve_N100_M70_WA1_WB1

SinCurve_N100_M80_WA1_WB1

SinCurve_N100_M90_WA1_WB1

SinCurve_N100_M100_WA1_WB1

N=10、M=2、KR=1,KL 变化

SinCurve_N10_M2_WA1_WB1

SinCurve_N10_M2_WA2_WB1

SinCurve_N10_M2_WA3_WB1

N=100、M=38、KR=1,KL 变化

SinCurve_N100_M38_WA1_WB1

SinCurve_N100_M38_WA2_WB1

SinCurve_N100_M38_WA3_WB1

SinCurve_N100_M38_WA4_WB1

SinCurve_N100_M38_WA5_WB1

SinCurve_N100_M38_WA6_WB1

SinCurve_N100_M38_WA7_WB1

SinCurve_N100_M38_WA8_WB1


0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注