如何用C++高效实现matlab中的fftshift

suseyaoyao suseyaoyao 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
matlab中fftshift规则是这样的:
假如输入矩阵为:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
经过fftshift之后变成:
14 15 11 12 13
4 5 1 2 3
9 10 6 7 8
步骤:1、先获取输入数组的长和宽: M ,N
2、对宽和高除以2取整,即:M1 = floor(M/2),N1=floor(N/2);
3,对每一个位置的值移动M1行,N1列;
eg:比如输入数组中第一个元素1,M1 = 1,N1 = 2;即移动1行2列,从输出数组很容易看出1所在的新位置,
4、对于溢出的元素,比如输入数组中的第5个元素“5”自动循环到矩阵开始位置并移动1行2列;

发帖的目的是想寻求速度比较快的算法,因为实际矩阵比较大,不知道描述清楚没有,希望大大们赐教
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
suseyaoyao
C++ 语言 65,214 成员 250,514 内容