180305 手寫python高斯白雜訊函式

2021-08-16 03:28:45 字數 1210 閱讀 4925

原文出處

**結果

**實現

# -*- coding: utf-8 -*-

"""created on mon mar 5 13:41:09 2018

"""'''

snr = [-4,-2,0,2,4,6,8,10](db)

snr = 10*log10( sum(x**2) / sum(n**2))

程式中用hist()檢查雜訊是否是高斯分布,psd()檢查功率譜密度是否為常數。

'''import numpy as np

import pylab as plt

defwgn

(x, snr):

snr = 10**(snr/10.0)

xpower = np.sum(x**2)/len(x)

npower = xpower / snr

return np.random.randn(len(x)) * np.sqrt(npower)

t = np.arange(0, 1000000) * 0.1

x = np.sin(t)

snr = 10

n = wgn(x, snr)

xn = x+n # 增加了6dbz訊雜比雜訊的訊號

plt.figure(figsize=(6,8))

plt.subplot(411)

plt.title('gauss distribution')

plt.hist(n, bins=100, normed=true)

plt.subplot(412)

plt.psd(n)

plt.subplot(413)

plt.plot(t[0:100],x[0:100])

plt.title('the original sin signal')

plt.subplot(414)

plt.plot(t[0:100],xn[0:100])

plt.title('the noisy sin signal')

plt.show()

plt.tight_layout()

從零手寫RPC

clientstub sereverstub 可以看作乙個 物件,遮蔽rpc呼叫過程中複雜的網路處理邏輯,使rpc透明化,使得呼叫遠端方法想呼叫本地方法一樣。server 服務端提供遠端服務。注 serverstub又叫skeleton。public inte ce ihellopublic cla...

2020 09 15 手寫基本演算法

基本演算法 氣泡排序 兩兩相比,大小決定左右位置。public int bubblesort int arr arr list.toarray int tmp 0 for int outer 0 outer arr.length outer return arr 選擇排序 宣告最值下標,初始值為每次...

1手寫線性回歸 2

github import numpy as np from sklearn.linear model import linearregression from sklearn.datasets import load diabetes from sklearn.utils import shuff...