有人告诉我,快速切比雪夫变换具有出色的光谱收敛性,但我无法验证其传闻中的收敛性。我得到了它的频谱收敛图,其中信号的第 40 个切比雪夫系数从其最大值信号是一个均匀分布的 64 个数据点的高斯采样。我对快速切比雪夫变换的实现仅产生第 40 个切比雪夫系数为小于最大的。不幸的是,我还没有被允许发布所谓的收敛图。我用 Python 编写代码来为自己重现结果,以方便自己使用快速切比雪夫变换的强大功能。下面是我的 Python 代码,用于实现快速切比雪夫变换并对切比雪夫系数的对数绝对值进行排序。我是否使用了快速切比雪夫变换的错误实现?
def fct(xp,fp): # fast Chebyshev transform
# size of array
N = xp.size
# define Chebyshev grid and scale/translate to fit inside window
x = xp[0]+(xp[n-1]-xp[0])*(1-np.cos(np.pi*(np.arange(N)+1/2)/N))/2
# interpolate signal from Chebyshev grid and compute Chebyshev coefficients
a = ((-1)**(np.arange(N)))*dct(np.interp(x,xp,fp),type=2)
a[0]=a[0]/2
return a
def sortnormlogspec(a,ee=1e-100): # normalize data to log absolute
# log10 abs norm with -100 floor
b=np.log10(ee+np.abs(a))
# sort from largest to smallest coefficient
b=sorted(b,reverse=True)
return b
下面是我的结果图。
