0

トランジェントの影響を受けずにデータを平滑化し、元のデータ配列の長さを失わないようにしたいと考えています。

次のコードを使用すると、配列の長さが失われることなくスムージングを取得できますが、端にトランジェントが発生します。

import numpy as np

def continuum(y,N):
        return np.convolve(y, np.ones((N,))/N, mode='same')

plt.figure()
plt.errorbar(x1,y1,yerr=err1,zorder=1)
cont = continuum(y1,10)
plt.plot(x1,cont,'r-',zorder=2)

ここに画像の説明を入力

以下を使用すると、トランジェントなしで平滑化できますが、結果の配列の長さが短くなります。

def continuum(x,y,N):
        contin = np.convolve(y, np.ones((N,))/N, mode='valid')
        x_new = np.linspace(x[0],x[-1],len(contin))        
        return x_new,contin

plt.figure()
plt.errorbar(x1,y1,yerr=err1,zorder=1)

ここに画像の説明を入力

これは確かに優れていますが、連続減算のためにさらに平滑化すると、配列の長さが異なるため、元のデータからそれを減算できなくなります。

最高の平滑化機能のために2つを組み合わせる方法についてのアイデアはありますか?

4

0 に答える 0