diff --git a/mindscience/sciops/dft/README.md b/mindscience/sciops/dft/README.md new file mode 100644 index 0000000000000000000000000000000000000000..f8012726dd4086c334988dc22981ea1d92a2f22d --- /dev/null +++ b/mindscience/sciops/dft/README.md @@ -0,0 +1,65 @@ +# Dft + +## Dft介绍 + +DFT(离散傅里叶变换)是将离散时域信号映射到频域的经典运算,由连续傅里叶变换离散化而来,最初用于信号分析,现已是深度学习与科学计算的核心张量工具。该模块提供基于 **DFT 矩阵(dense matrix)和 矩阵乘法(matmul)** 的可微分离散变换,包括: + +- 实数离散傅里叶变换:RDFTn / IRDFTn +- 复数离散傅里叶变换:DFTn / IDFTn +- 一维离散余弦变换:DCT / IDCT +- 一维离散正弦变换:DST / IDST + + + +## Dft 算法流程 + +DFT 的算法主要流程如下: + +1.解析输入的参数:shape、dim、norm、modes等,检查参数合法性并进行标准化。 + +2.根据对应维度构造一维 DFT 矩阵。 + +3.将需要变换的轴移动到最后,以便执行矩阵乘法。 + +4.通过矩阵乘法执行一维变换,得到对应维度的输出。 + +5.重复执行步骤 3~4中的轴变换和矩阵乘法,实现n维离散变换。 + +6.恢复轴顺序、拼接输出,返回最终张量 + + + +## sciops.Dft模块特点 + +sciops模块中的Dft算子进行如下优化: + +1.初始化与结构优化:DFT 矩阵的生成、参数解析与校验在初始化阶段完成,使算子结构更清晰、并减少运行时的重复构图与冗余检查,提高整体的接口稳定性。 + +2.环境适配与兼容性优化:自定义 `MyRoll`、`MyFlip`,规避原生算子在 Ascend/GRAPH_MODE 下的兼容性问题; 可以根据设备(Ascend/CPU)与运行模式自动选择合适算子实现。 + + + +## 使用样例 + +- RDFT使用样例 + +```python +import mindspore as ms +from mindscience.sciops import RDFTn + +x = ms.ops.rand((2, 32, 512)) +rdft = RDFTn(shape=x.shape[-2:]) +br, bi = rdft(x) +``` + +- DCT使用样例 + +```python +import mindspore as ms +from mindscience.sciops import DCT + +a = ms.ops.rand((4, 128)) +dct = DCT(shape=(128,)) +b = dct(a) +``` +