三次樣條去噪

2021-10-04 18:10:58 字數 1626 閱讀 3785

# 1. 繪製原始圖形曲線

from pandas import read_csv

import pandas as pd #匯入pandas

import numpy as np

import matplotlib.pyplot as plt

from scipy.interpolate import make_interp_spline

from scipy import interpolate

dataframe = read_csv(

'2010 - 1.csv'

, usecols=[1

], engine=

'python'

, skipfooter=0)

y = dataframe.values

length =

len(y)

# 2. 資料減少到1/3

x_new =

[i for i in

range(1

,length+1,

3)]#將資料縮為1/3

y_smooth = y[x_new]

print

("y_smooth的後5個資料是\n"

,y_smooth[-5

:])##檢視資料框的尾部資料

# 2. 使用插值法,將縮減到減少到1/3的資料擴充到原有的數量

x_new_1 = np.linspace(

1, length, length)

tck = interpolate.splrep(x_new, y_smooth,k=3)

#樣本點匯入,生成引數

y_bspline = interpolate.splev(x_new_1, tck)

#根據原有長度和樣條引數,生成插值

# 3. 資料儲存

y_bspline= pd.dataframe(y_bspline)

y_bspline=y_bspline.values

print

(y_bspline.shape)

new=np.hstack(

(y,y_bspline)

)columns=

["實際"

,"處理"

]df1 = pd.dataframe(new,columns = columns )

#df1 = pd.dataframe()

df1.to_csv(r'2.csv'

,columns=columns )

#儲存到csv中

plt.figure(figsize=(8

,6))

plt.plot(y,

'red'

,label=

'orginal data'

, marker=

'.')

plt.plot(y_bspline,

'green'

,label=

'processed data'

,marker=

'.')

plt.title(

'dada compare'

) plt.legend(

) plt.show(

)

三次樣條曲線

include include using namespace std const int m 16 double dknowx m double dknowy m double dknowdy m double dknowddy m const int n 15 double dinsertx n...

b樣條和三次樣條 樣條曲線

最近在學習軌跡規劃中的軌跡生成,涉及到樣條曲線方面的知識,總結一下。曲線的平滑性和相應的平滑性的評判準則相關,在 1 中,作者採用曲率的平方和曲率導數的平方作為評判準則 其中 是路徑點的方向角。最小化這兩個準則的軌跡分別是圓弧和三階螺旋線,並對在對稱和不對稱情況下如何生成路徑進行了分析,事實表明三階...

三次樣條插值

條件 1 輸入 x y f x 0 leq i leq n 2 要求擬合的曲線 s x 滿足 對於任意的 1 leq i leq n 1 在 x 處一階二階導數連續,s x 也連續,且 s x f x s x f x 求解過程 設 s m 對於區間 x x s x 是 x x 上的線性函式,所以設 ...