scipy.fft.dst

scipy.fft.dst(x, type=2, n=None, axis=- 1, norm=None, overwrite_x=False, workers=None)[源代码]

返回任意类型序列x的离散正弦变换。

参数
xarray_like

输入数组。

type{1,2,3,4},可选

DST的类型(请参阅备注)。默认类型为2。

n整型,可选

转换的长度。如果 n < x.shape[axis]x 被截断。如果 n > x.shape[axis]x 是零填充的。默认情况下,结果为 n = x.shape[axis]

axis整型,可选

沿其计算DST的轴;缺省值在最后一个轴上(即, axis=-1 )。

norm{“向后”,“正向”,“向前”},选填

规格化模式(请参见注释)。默认值为“向后”。

overwrite_x布尔值,可选

如果为True,则 x 可以销毁;默认值为false。

workers整型,可选

用于并行计算的最大工作进程数。如果为负值,则值从 os.cpu_count() 。看见 fft 了解更多详细信息。

退货
dst雷亚尔

转换后的输入数组。

参见

idst

逆DST

注意事项

对于一维数组 x

norm="backward" ,则不会出现缩放现象。 dst 以及 idst 按以下比例进行缩放 1/N 哪里 N 是DST的“逻辑”大小。为 norm='ortho' 两个方向都按相同的因子进行缩放 1/sqrt(N)

从理论上讲,对于偶/奇边界条件和边界偏移的不同组合,有8种类型的DST [1], 在SciPy中只实现了前4种类型。

第I类

DST-I有几种定义;我们使用以下定义 norm="backward" 。DST-I假设输入是奇数 \(n=-1\)\(n=N\)

\[y_k=2\sum_{n=0}^{N-1}x_n\sin\Left(\frac{\pi(k+1)(n+1)}{N+1}\right)\]

请注意,仅当输入大小大于1时才支持DST-I。(未标准化的)DST-I是其自身的逆数,最高可达一个系数 \(2(N+1)\) 。正交规格化的DST-I正好是它自己的逆。

类型II

DST-II有几种定义;我们使用以下定义 norm="backward" 。DST-II假设输入在奇数附近 \(n=-1/2\)\(n=N-1/2\) ;产量是奇数。 \(k=-1\) 甚至在周围 \(k=N-1\)

\[y_k=2\sum_{n=0}^{N-1}x_n\sin\sin(\frac{\pi(k+1)(2n+1)}{2n}\right)\]

如果 norm='ortho'y[k] 乘以比例因子 f

\[\begin{split}F=\开始{案例} \sqrt{\frac{1}{4n}}&\text{if}k=0,\\ \sqrt{\frac{1}{2N}}&\text{否则}\end{case}\end{split}\]

类型III

DST-III有几种定义,我们使用以下定义(对于 norm="backward" )。DST-III假设输入在奇数附近 \(n=-1\) 甚至在周围 \(n=N-1\)

\[y_k=(-1)^k x_{N-1}+2\sum_{n=0}^{N-2}x_n\sin\Left( \frac{\pi(2k+1)(n+1)}{2n}\右)\]

(非规格化的)DST-III是(非规格化的)DST-II的逆数,最高可达一个因子 \(2N\) 。正交归一化的DST-III正好是正交归一化的DST-II的逆。

第IV类

DST-IV有几种定义,我们使用以下定义(对于 norm="backward" )。DST-IV假设输入在奇数附近 \(n=-0.5\) 甚至在周围 \(n=N-0.5\)

\[y_k=2\sum_{n=0}^{N-1}x_n\sin\sin(\frac{\pi(2k+1)(2n+1)}{4n}\right)\]

(非标准化的)DST-IV是其自身的逆数,直到某一因子 \(2N\) 。正交规格化的DST-IV完全是它自己的逆。

参考文献

1

维基百科,“离散正弦变换”,https://en.wikipedia.org/wiki/Discrete_sine_transform