本文中的图像来自于为什么 sin(x2)+sin(y2)=1 的图像这么复杂? 给出的图像。
§01 一维正弦波
把周期震荡的正弦波当做组成任何信号的基础是傅里叶分析的核心内容,这一点实际上并不非常直观。相关的理论直到十九世纪初期(1807年)才被法国数学家 Fourier 正式提出,并经历了大约一个世纪相关数学基础在逐步完善起来。
1.1 单个正弦波
下图是 y ( t ) = sin ( t + θ ) y\left( t \right) = \sin \left( {t + \theta } \right) y(t)=sin(t+θ) 在不同相位 θ \theta θ 对应的函数波形。
▲ 图1.1 正弦波图像
1.2 多个正弦波
下面显示多个正弦波叠化后的图像。函数具有八个正弦波叠加而成,它们的幅值与频率成反比。
y ( t ) = sin ( t + θ ) + 1 2 sin [ 2 ( t + θ ) ] + 1 4 sin [ 4 ( t + θ ) ] + 1 8 sin [ 8 ( t + θ ) ] + y\left( t \right) = \sin \left( {t + \theta } \right) + {1 \over 2}\sin \left[ {2\left( {t + \theta } \right)} \right] + {1 \over 4}\sin \left[ {4\left( {t + \theta } \right)} \right] + {1 \over 8}\sin \left[ {8\left( {t + \theta } \right)} \right] + y(t)=sin(t+θ)+21sin[2(t+θ)]+41sin[4(t+θ)]+81sin[8(t+θ)]+ 1 16 sin [ 16 ( t + θ ) ] + 1 32 [ 32 ( t + θ ) ] + 1 64 [ 64 ( t + θ ) ] + 1 128 [ 128 ( t + θ ) ] {1 \over {16}}\sin \left[ {16\left( {t + \theta } \right)} \right] + {1 \over {32}}\left[ {32\left( {t + \theta } \right)} \right] + {1 \over {64}}\left[ {64\left( {t + \theta } \right)} \right] + {1 \over {128}}\left[ {128\left( {t + \theta } \right)} \right] 161sin[16(t+θ)]+321[32(t+θ)]+641[64(t+θ)]+1281[128(t+θ)]
▲ 图1.2 具有多个谐波周期波形图像
下面将所有的频率分量的幅度修改成一致。
y ( t ) = sin ( t + θ ) + sin [ 2 ( t + θ ) ] + sin [ 4 ( t + θ ) ] + sin [ 8 ( t + θ ) ] + y\left( t \right) = \sin \left( {t + \theta } \right) + \sin \left[ {2\left( {t + \theta } \right)} \right] + \sin \left[ {4\left( {t + \theta } \right)} \right] + \sin \left[ {8\left( {t + \theta } \right)} \right] + y(t)=sin(t+θ)+sin[2(t+θ)]+sin[4(t+θ)]+sin[8(t+θ)]+ sin [ 16 ( t + θ ) ] + [ 32 ( t + θ ) ] + [ 64 ( t + θ ) ] + [ 128 ( t + θ ) ] \sin \left[ {16\left( {t + \theta } \right)} \right] + \left[ {32\left( {t + \theta } \right)} \right] + \left[ {64\left( {t + \theta } \right)} \right] + \left[ {128\left( {t + \theta } \right)} \right] sin[16(t+θ)]+[32(t+θ)]+[64(t+θ)]+[128(t+θ)]
下面显示了波形形状,大家也需注意到这个波形似乎随着相位补赛,波形在变化。
▲ 图1.4 正弦波图像
这实际上是个错觉。上面的波形是成将原来信号采集了512个点进行显示,由于采集频率过低使得采集到的的序列波形不能够很好的反映出原来信号幅度。下面是采集两10000个点进行显示,可以看到波形非常稳定。
▲ 图1.2.3 多个正弦波叠加
1.3 正弦波变成随机数字
虽然整体上,正弦波是周期可预测的,但从局部来看,改数字的小数部分则呈现随机特性。
sint = (sin(tt)*1000000.0) % 1.0
将 sin ( t ) \sin \left( t \right) sin(t) 乘以 1 0 6 10^6 106 取小数部分,绘制波形可以看到这几乎就是一个随机小数。
y ( t ) = [ sin ( t + θ ) ⋅ 1 0 6 ] % 1.0 y\left( t \right) = \left[ {\sin \left( {t + \theta } \right) \cdot 10^6 } \right]\% 1.0 y(t)=[sin(t+θ)⋅106]%1.0
▲ 图1.3.1 数字小数部分取值
下面是某些程序用于产生随机数的公示。至于其中为什么出现 12.9898 和 43758.5453123 这两个参数,也许大神的思维不是我们凡人能够理解的。
y ( t ) = [ sin ( t ∗ 12.9898 ) ⋅ 43758.5453123 ] % 1.0 y\left( t \right) = \left[ {\sin \left( {t*12.9898} \right) \cdot 43758.5453123} \right]\% 1.0 y(t)=[sin(t∗12.9898)⋅43758.5453123]%1.0
t = linspace(0, 20, 10000)
for id,phase in tqdm(enumerate(linspace(0, 2*pi, 10))):
tt = t + phase
sint = (sin(tt)*1000000.0) % 1.0
plt.clf()
plt.figure(figsize=(10,6))
plt.plot(t, sint)
plt.xlabel('t')
plt.ylabel('sin(t)')
plt.axis([0, 20, -.2, 1.2])
plt.grid(True)
plt.tight_layout()
savefile = os.path.join(gifpath, '%03d.jpg'%id)
plt.savefig(savefile)
plt.close()
§02 二维正弦波
将 y ( t ) = sin ( x ) y\left( t \right) = \sin \left( x \right) y(t)=sin(x) 扩展到以下几个函数:
z ( x , y ) = sin ( x ) + sin ( y ) z\left( {x,y} \right) = \sin \left( x \right) + \sin \left( y \right) z(x,y)=sin(x)+sin(y)
▲ 二维函数波形
z ( x , y ) = sin ( x + y ) z\left( {x,y} \right) = \sin \left( {x + y} \right) z(x,y)=sin(x+y)
▲ 二维函数波形
z ( x , y ) = sin ( x ) ⋅ sin ( y ) z\left( {x,y} \right) = \sin \left( x \right) \cdot \sin \left( y \right) z(x,y)=sin(x)⋅sin(y)
▲ 二维函数波形
z ( x , y ) = sin ( x ⋅ y ) z\left( {x,y} \right) = \sin \left( {x \cdot y} \right) z(x,y)=sin(x⋅y)
▲ 二维函数波形
z ( x , y ) = sin ( x 2 + y 2 ) z\left( {x,y} \right) = \sin \left( {x^2 + y^2 } \right) z(x,y)=sin(x2+y2)
▲ 二维函数波形
z ( x , y ) = sin ( x 2 ) + sin ( y 2 ) z\left( {x,y} \right) = \sin \left( {x^2 } \right) + \sin \left( {y^2 } \right) z(x,y)=sin(x2)+sin(y2)
▲ 图2.6 二维函数图像
from headm import * # =
from mpl_toolkits.mplot3d import Axes3D
ax = Axes3D(plt.figure(figsize=(12,8)))
x = linspace(-5,5, 50)
y = linspace(-5,5, 50)
xx,yy = meshgrid(x,y)
z = sin(xx * yy)
ax.plot_surface(xx,yy,z,
rstride=1,
cstride=1,
cmap=plt.cm.Blues)
ax.contourf(xx,yy,z,
zdir='z',
offset=-1,
cmap=plt.cm.BuGn)
plt.savefig('/home/aistudio/stdout.jpg')
plt.show()
§03 三维正弦波
剩下一个问题,对于三维正弦波该如何绘制呢?
W ( x , y , z ) = sin ( x ) + sin ( y ) + sin ( z ) W\left( {x,y,z} \right) = \sin \left( x \right) + \sin \left( y \right) + \sin \left( z \right) W(x,y,z)=sin(x)+sin(y)+sin(z)
对于这个问题我现在还不知道,下面是
给出的体素绘制图片,搬运到这儿一起欣赏一下。
▲ 图3.1 三维函数图像
▲ 图3.2 三维函数图像
▲ 图3.3 三维函数等高面
▲ 图3.4 三维函数等高面
w ( x , y , z ) = sin ( x 2 ) + sin ( y 2 ) + sin ( z 2 ) w\left( {x,y,z} \right) = \sin \left( {x^2 } \right) + \sin \left( {y^2 } \right) + \sin \left( {z^2 } \right) w(x,y,z)=sin(x2)+sin(y2)+sin(z2)
▲ 图3.5 三维函数等高面
▲ 图3.6 三维函数
▲ 图3.7 三维函数
▲ 图3.8 三维函数
▲ 图3.9 三维函数
▲ 图3.10 三维函数
▲ 图3.11 三维函数
■ 相关文献链接:
● 相关图表链接: