第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在python(或numpy/scipy)中生成復(fù)雜的高斯白噪聲信號?

如何在python(或numpy/scipy)中生成復(fù)雜的高斯白噪聲信號?

白衣非少年 2022-01-11 15:46:25
我正在做一些關(guān)于 DSP(數(shù)字信號處理)的工作,需要生成一個離散的復(fù)雜高斯白噪聲信號。我知道我可以numpy.random.normal(0, 1, n)用來生成離散序列,但它是在實(shí)數(shù)字段中。用matlab模擬很容易,但是我在想如何用python替換matlab代碼?
查看完整描述

1 回答

?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個贊

這是您可以做到的一種方法。這會生成一個形狀為 (n, 2) 的標(biāo)準(zhǔn)正態(tài)變量數(shù)組,然后使用該.view()方法將數(shù)組視為形狀為 (n,) 的復(fù)數(shù)值數(shù)組。


In [26]: n = 10                                                                                                     


In [27]: z = np.random.randn(n, 2).view(np.complex128)                                                              


In [28]: z                                                                                                          

Out[28]: 

array([[ 0.90179497-0.14081956j],

       [-2.17633115+0.88782764j],

       [ 0.94807348+0.27575325j],

       [-1.25452512+0.64883484j],

       [-0.58886548+0.15419947j],

       [ 0.58296574+1.45711421j],

       [ 0.803825  +0.6197812j ],

       [ 0.09225137+0.38012939j],

       [ 0.5017482 -0.39747648j],

       [-1.00186317+1.02918796j]])

您可以替換np.random.randn(n, 2)使用np.random.normal(size=(n, 2)),如果你喜歡使用該功能。


根據(jù)關(guān)于復(fù)數(shù)正態(tài)分布的維基百科文章,復(fù)數(shù)標(biāo)準(zhǔn)正態(tài)隨機(jī)變量的實(shí)部和虛部的方差應(yīng)為 1/2(因此復(fù)數(shù)樣本的方差為 1)。我會使用np.random.normal這個時間,但你也可以np.random.rand適當(dāng)?shù)財(cái)U(kuò)展。


創(chuàng)建一個大樣本,以便我們可以驗(yàn)證方差接近 1:


In [19]: n = 100000                                                                                                                                                               


In [20]: z = np.random.normal(loc=0, scale=np.sqrt(2)/2, size=(n, 2)).view(np.complex128)                                                                                         


In [21]: z[:10]                                                                                                                                                                   

Out[21]: 

array([[ 0.31439115+1.39059186j],

       [ 0.18306617+1.19364778j],

       [ 0.20281354+0.31695626j],

       [ 0.27230747+1.18380383j],

       [-0.71353935-0.11587812j],

       [-0.2371236 +0.91542372j],

       [ 0.04254323+1.50538309j],

       [ 0.23024067+0.96947144j],

       [ 0.6954942 +0.20933687j],

       [-0.66853093+2.00389192j]])

正如預(yù)期的那樣,方差接近 1:


In [22]: np.var(z)                                                                                                                                                                

Out[22]: 0.9998204444495904

或者,您可以使用np.random.multivariate_normal和0.5*np.eye(2)用于協(xié)方差矩陣:


In [31]: z = np.random.multivariate_normal(np.zeros(2), 0.5*np.eye(2), size=n).view(np.complex128)                                                                                


In [32]: z[:10]                                                                                                                                                                   

Out[32]: 

array([[-0.25012362+0.80450233j],

       [-0.85853563+0.05350865j],

       [ 0.36715694-0.10483562j],

       [ 1.0740756 +0.081779j  ],

       [-1.04655701+0.15211247j],

       [ 0.18248473+0.49350875j],

       [ 0.6152102 +0.08037717j],

       [ 0.12423999+0.56175553j],

       [-1.05282963-0.60113989j],

       [-0.01340098+0.80751573j]])


In [33]: np.var(z)                                                                                                                                                                

Out[33]: 1.0001327524747319


查看完整回答
反對 回復(fù) 2022-01-11
  • 1 回答
  • 0 關(guān)注
  • 202 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號