加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1.1 單個正弦波
    • 1.2 多個正弦波
    • 1.3 正弦波變成隨機數(shù)字
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

都是正弦波,三維不同

2022/02/11
1608
閱讀需 8 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

在推文為什么 sin(x2)+sin(y2)=1 的圖象這么復雜? 給出不同維度下的正弦波??吹阶詈笮睦镉悬c接受不了。

01 一維正弦波

把周期震蕩的正弦波當做組成任何信號的基礎是傅里葉分析的核心內(nèi)容,這一點實際上并不非常直觀。相關的理論直到十九世紀初期(1807年)才被法國數(shù)學家 Fourier 正式提出,并經(jīng)歷了大約一個世紀相關數(shù)學基礎在逐步完善起來。

1.1 單個正弦波

下圖是  在不同相位 對應的函數(shù)波形。

▲ 圖1.1  正弦波圖像

 

1.2 多個正弦波

下面顯示多個正弦波疊化后的圖像。函數(shù)具有八個正弦波疊加而成,它們的幅值與頻率成反比。

▲ 圖1.2  具有多個諧波周期波形圖像

 

下面將所有的頻率分量的幅度修改成一致。

下面顯示了波形形狀,大家也需注意到這個波形似乎隨著相位補賽,波形在變化。

▲ 圖1.4  正弦波圖像

這實際上是個錯覺。上面的波形是成將原來信號采集了512個點進行顯示,由于采集頻率過低使得采集到的的序列波形不能夠很好的反映出原來信號幅度。下面是采集兩10000個點進行顯示,可以看到波形非常穩(wěn)定。

▲ 圖1.2.3  多個正弦波疊加

 

1.3 正弦波變成隨機數(shù)字

雖然整體上,正弦波是周期可預測的,但從局部來看,數(shù)字的小數(shù)部分則呈現(xiàn)隨機特性。

    sint = (sin(tt)*1000000.0) % 1.0

將 乘以   取小數(shù)部分,繪制波形可以看到這幾乎就是一個隨機小數(shù)。

▲ 圖1.3.1  數(shù)字小數(shù)部分取值

下面是某些程序用于產(chǎn)生隨機數(shù)的公式。至于其中為什么出現(xiàn) 12.9898 和 43758.5453123 這兩個參數(shù),也許大神的思維不是我們凡人能夠理解的。

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 二維正弦波

將 擴展到以下幾個函數(shù):

▲ 二維函數(shù)波形

▲ 二維函數(shù)波形

 

▲ 二維函數(shù)波形

 

▲ 二維函數(shù)波形$$zleft( {x,y} right) = sin left( {x2  + y2 } right) $$

 

▲ 二維函數(shù)波形$$zleft( {x,y} right) = sin left( {x2 } right) + sin left( {y2 } right) $$

 

▲ 圖2.6 二維函數(shù)圖像

 

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 三維正弦波

剩下一個問題,對于三維正弦波該如何繪制呢?

對于這個問題我現(xiàn)在還不知道,下面是

  • 知乎上的原始鏈接[1] : https://www.zhihu.com/question/325445882/answer/692389802

給出的體素繪制圖片,搬運到這兒一起欣賞一下。

▲ 圖3.1 三維函數(shù)圖像

 

▲ 圖3.2 三維函數(shù)圖像

 

▲ 圖3.3 三維函數(shù)等高面

 

▲ 圖3.4 三維函數(shù)等高面

 

▲ 圖3.5 三維函數(shù)等高面

 

▲ 圖3.6 三維函數(shù)

 

▲ 圖3.7 三維函數(shù)

 

▲ 圖3.8 三維函數(shù)

 

▲ 圖3.9 三維函數(shù)

 

▲ 圖3.10 三維函數(shù)

 

▲ 圖3.11 三維函數(shù)

 

參考資料

[1]知乎上的原始鏈接: https://www.zhihu.com/question/325445882/answer/692389802

相關推薦

電子產(chǎn)業(yè)圖譜

公眾號TsinghuaJoking主筆。清華大學自動化系教師,研究興趣范圍包括自動控制、智能信息處理、嵌入式電子系統(tǒng)等。全國大學生智能汽車競賽秘書處主任,技術組組長,網(wǎng)稱“卓大大”。