如何用C++高效实现matlab中的fftshift
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列;
发帖的目的是想寻求速度比较快的算法,因为实际矩阵比较大,不知道描述清楚没有,希望大大们赐教
假如输入矩阵为:
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列;
发帖的目的是想寻求速度比较快的算法,因为实际矩阵比较大,不知道描述清楚没有,希望大大们赐教
...全文
相关推荐
matlab中fftshift函数C代码实现
分享一下自己在学习将matlab中的一些简单函数的理解,亲测有效,可供参考
fftshift.zip
C代码实现matlab中fftshift函数,亲测有效,可供参考!(复数类型也可以)。另一种方法:https://blog.csdn.net/qq_41941875/article/details/117790954
常用的MATLAB函数 C语言版
在将MATLAB程序改写成C语言的过程中,用到了如标签所示的fft、ifft等函数,不局限在上面几个函数,还有一些相关的函数在里面
傅里叶描述子
傅里叶描述子,详细讲述了傅里叶描述子的推导过程及各种性质的讨论
微环光频梳仿真实践:基于MATLAB的LLE方程求解与参数分析
微环谐振腔产生的光学频率梳,因其体积小、重复频率高且与CMOS工艺兼容,已成为精密测量、微波光子学及波分复用通信中的关键光源。微腔光频梳的仿真核心在于求解LLE方程,它统一描述了泵浦、损耗、失谐、色散和Kerr非线性效应。相比直接求解Maxwell方程,LLE模型能大幅降低算力需求,并快速预测孤子态、调制不稳定性等物理现象。掌握分步傅里叶法,结合MATLAB的FFT与矩阵化编程,即可高效完成从参数映射到时频域特征判读的全流程。本文从归一化方程数值实现的常见陷阱出发,梳理了网格、步长、噪声种子等关键设置,以及


