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