當前位置:首頁 » 編程語言 » python波形圖

python波形圖

發布時間: 2023-07-23 09:58:34

python科學計算——任意波形擬合

任意波形的生成 (geneartion of arbitrary waveform) 在商業,軍事等領域都有著重要的應用,諸如空間光通信 (free-space optics communication), 高速信號處理 (high-speed signal processing),雷達 (radar) 等。在任意波形生成後, 如何評估生成的任意波形 成為另外一個重要的話題。

假設有一組實驗數據,已知他們之間的函數關系:y=f(x),通過這些信息,需要確定函數中的一些參數項。例如,f 是一個線型函數 f(x)=k*x+b,那麼參數 k 和 b 就是需要確定的值。如果這些參數用 p 表示的話,那麼就需要找到一組 p 值使得如下公式中的 S 函數最小:

這種演算法被稱之為 最小二乘擬合 (least-square fitting)。scipy 中的子函數庫 optimize 已經提供實現最小二乘擬合演算法的函數 leastsq 。下面是 leastsq 函數導入的方式:

scipy.optimize.leastsq 使用方法

在 Python科學計算——Numpy.genfromtxt 一文中,使用 numpy.genfromtxt 對數字示波器採集的三角波數據導入進行了介紹,今天,就以 4GHz三角波 波形的擬合為案例介紹任意波形的擬合方法。

在 Python科學計算——如何構建模型? 一文中,討論了如何構建三角波模型。在標准三角波波形的基礎上添加了 橫向,縱向的平移和伸縮特徵參數 ,最後添加了 雜訊參數 模擬了三角波幅度參差不齊的隨機性特徵。但在波形擬合時,並不是所有的特徵參數都要納入考量,例如,雜訊參數應是 波形生成系統 的固有特徵,正因為它的存在使得產生的波形存在瑕疵,因此,在進行波形擬合並評估時,不應將雜訊參數納入考量,最終模型如下:

在調用 scipy.optimize.leastsq 函數時,需要構建誤差函數:

有時候,為了使圖片有更好的效果,需要對數據進行一些處理:

leastsq 調用方式如下:

合理的設置 p0 可以減少程序運行時間,因此,可以在運行一次程序後,用擬合後的相應數據對 p0 進行修正。

在對波形進行擬合後,調用 pylab 對擬合前後的數據進行可視化:

均方根誤差 (root mean square error) 是一個很好的評判標准,它是觀測值與真值偏差的平方和觀測次數n比值的平方根,在實際測量中,觀測次數n總是有限的,真值只能用最可信賴(最佳)值來代替.方根誤差對一組測量中的特大或特小誤差反映非常敏感,所以,均方根誤差能夠很好地反映出測量的精密度。

RMSE 用程序實現如下:

擬合效果,模型參數輸出:

leastsq 函數適用於任何波形的擬合,下面就來介紹一些常用的其他波形:

⑵ 如何用python實現圖像的一維高斯濾波

如何用python實現圖像的一維高斯濾波
建議你不要使用高斯濾波。
推薦你使用一維中值濾波
matlab的函數為
y = medfilt1(x,n);
x為數組,是你要處理原始波形,n是中值濾波器的參數(大於零的整數)。y是濾波以後的結果(是數組)
後面再
plot(y);
就能看到濾波以後的結果
經過medfilt1過濾以後,y里儲存的是低頻的波形,如果你需要高頻波形,x-y就是高頻波形
順便再說一點,n是偶數的話,濾波效果比較好。
N越小,y里包含的高頻成分就越多,y越大,y里包含的高頻成分就越少。
記住,無論如何y里保存的都是整體的低頻波。(如果你看不懂的話,濾一下,看y波形,你馬上就懂了)

⑶ 怎麼用python的numpy模塊和matplotlib模塊把下面這些文本做一個3d的數據建模

你好,你現在那個圖是一個連續的波形圖,因為你提供的是具體的數據,沒有xyz之間的關系公式,所以只能是畫一個散點圖。假設你已經將xyz都讀進來了,下面是一個畫三d散點圖的例子。
from mpl_toolkits.mplot3d.axes3d import Axes3D
#繪制3維的散點圖
x = np.random.randint(0,10,size=100) #用你X的數據來代替
y = np.random.randint(-20,20,size=100) #用你Y的數據來代替
z = np.random.randint(0,30,size=100) #用你的Z的數據來代替

# 此處fig是二維
fig = plt.figure()

# 將二維轉化為三維
axes3d = Axes3D(fig)

# axes3d.scatter3D(x,y,z)
# 效果相同
axes3d.scatter(x,y,z)

熱點內容
我的世界怎麼進2s2t伺服器 發布:2025-02-07 23:08:47 瀏覽:924
丁霞訪問 發布:2025-02-07 22:56:19 瀏覽:855
java中set集合 發布:2025-02-07 22:43:34 瀏覽:31
播放這個wifi密碼是多少 發布:2025-02-07 22:34:54 瀏覽:100
視頻存儲時間長了有雪花 發布:2025-02-07 22:24:34 瀏覽:569
哈佛f7x怎麼區分配置 發布:2025-02-07 22:22:34 瀏覽:772
廣州python培訓 發布:2025-02-07 22:22:26 瀏覽:200
陸金所的交易密碼是什麼 發布:2025-02-07 22:19:25 瀏覽:321
如何刪除平板儲存密碼 發布:2025-02-07 22:10:29 瀏覽:748
php微信授權登錄 發布:2025-02-07 22:10:27 瀏覽:379