fftshift(Xr,2) c++实现

fftshift(Xr,2) c++实现

///
/// \brief get_FFT_SHIFT_2_index 获取 FFT_SHIFT_2 变换之后的行索引
///         以矩阵 Xr 为例。运算 fftshift(Xr,2) 会将 Xr 的每一行的左右两半部分进行交换
///
/// \param rowIndex  原始行索引 (从0开始)
/// \param rowSize   行的大小
/// \return             fftshift(Xr,2)之后的行索引
///
static int get_FFT_SHIFT_2_Index(int rowIndex,int rowSize)
{
    int ret = 0;
    int remainder  = rowSize % 2;
    int midNumber = 0;
    if(remainder){//奇数
        midNumber = (rowSize + 1)/2;
    }else {//偶数
        midNumber = rowSize/2;
    }

    if((rowIndex+1)<=midNumber){
        ret = rowIndex - midNumber + rowSize;
    }else{
        ret = rowIndex - midNumber;
    }
    return ret;
}

你可能感兴趣的:(MATLAB,算法)