我一直在研究用 C# 实现的离散余弦变换和离散傅里叶变换的各种实现,但没有一个像我想要的那样简洁。
一个奖励点是,代码源自一个更大的开源项目(即久经考验的)。
具有最佳指针的答案将是公认的答案。
目前发现
- C# 中的 DCT 实现
- DCT & IDCT(受版权保护,“未经测试”,速度慢)
- Aforge(优化良好)
PS:原则上我正在寻找一维实现,但是“矢量化”输入数据是微不足道的,所以经典的二维实现同样受欢迎。
我一直在研究用 C# 实现的离散余弦变换和离散傅里叶变换的各种实现,但没有一个像我想要的那样简洁。
一个奖励点是,代码源自一个更大的开源项目(即久经考验的)。
具有最佳指针的答案将是公认的答案。
目前发现
PS:原则上我正在寻找一维实现,但是“矢量化”输入数据是微不足道的,所以经典的二维实现同样受欢迎。
用 C# 实现库是否重要,或者 C 是否适合您?
如果可以接受 C 而不是 C#,那么您可以使用GNU Scientific Library (GSL)。在那里实现了快速傅里叶变换 (FFT),它为您提供了 DFT。GSL 还提供仅限于真实数据的 FFT,我认为这正是您提到的离散余弦变换。