24小时热门版块排行榜    

CyRhmU.jpeg
查看: 809  |  回复: 3

zihai123

铁虫 (小有名气)

[求助] stdafx.h是MFC中处理矩阵的函数,能不能在DSP中调用。

stdafx.h是MFC中处理矩阵的函数,能不能在DSP中调用。如:
#include "stdafx.h"
#include "math.h"
......
void CMatrixOper::fftshift(COMPLEX*Matr,int row,int colum)
{
        COMPLEX temp;
        temp.im = 0;
        temp.re = 0;
        int i,j;
        for (i = 0;i < row;i++)
        {
                if (fmod(colum,2))
                {
                        for (j = 0;j < (colum-1)/2;j++)
                        {                       
                                temp.re = (*(Matr + colum*i + (colum+1)/2+j)).re;
                                temp.im = (*(Matr + colum*i + (colum+1)/2+j)).im;
                                (*(Matr + colum*i + (colum+1)/2+j)).re = (*(Matr + colum*i + j)).re;
                                (*(Matr + colum*i + (colum+1)/2+j)).im = (*(Matr + colum*i + j)).im;
                                (*(Matr + colum*i + j)).re = temp.re;
                                (*(Matr + colum*i + j)).im = temp.im;
                        }
                        for (j = (colum-1)/2;j                         {
                                temp.re = (*(Matr + colum*i + j)).re;
                                temp.im = (*(Matr + colum*i + j)).im;
                                (*(Matr + colum*i + j)).re = (*(Matr + colum*i + j + 1)).re;
                                (*(Matr + colum*i + j)).im = (*(Matr + colum*i + j + 1)).im;
                                (*(Matr + colum*i + j + 1)).re = temp.re;
                                (*(Matr + colum*i + j + 1)).im = temp.im;
                        }
                }
                else
                {
                        for (j = 0;j < colum/2;j++)
                        {
                                temp.re = (*(Matr + colum*i + colum/2+j)).re;
                                temp.im = (*(Matr + colum*i + colum/2+j)).im;
                                (*(Matr + colum*i + colum/2+j)).re = (*(Matr + colum*i + j)).re;
                                (*(Matr + colum*i + colum/2+j)).im = (*(Matr + colum*i + j)).im;
                                (*(Matr + colum*i + j)).re = temp.re;
                                (*(Matr + colum*i + j)).im = temp.im;
                        }
                }
        }
        for (j = 0;j < colum;j++)
        {
                if (fmod(row,2))
                {
                        for (i = 0;i < (row-1)/2;i++)
                        {
                                temp.re = (*(Matr + colum*i + (row+1)*colum/2+j)).re;
                                temp.im = (*(Matr + colum*i + (row+1)*colum/2+j)).im;
                                (*(Matr + colum*i + (row+1)*colum/2+j)).re = (*(Matr + colum*i + j)).re;
                                (*(Matr + colum*i + (row+1)*colum/2+j)).im = (*(Matr + colum*i + j)).im;
                                (*(Matr + colum*i + j)).re = temp.re;
                                (*(Matr + colum*i + j)).im = temp.im;
                        }
                                for (i = (row-1)/2;i                         {
                                temp.re = (*(Matr + colum*i + j)).re;
                                temp.im = (*(Matr + colum*i + j)).im;
                                (*(Matr + colum*i + j)).re = (*(Matr + colum*(i+1) + j)).re;
                                (*(Matr + colum*i + j)).im = (*(Matr + colum*(i+1) + j)).im;
                                (*(Matr + colum*(i+1) + j)).re = temp.re;
                                (*(Matr + colum*(i+1) + j)).im = temp.im;
                        }
                }
                else
                {
                        for (i = 0;i < row/2;i++)
                        {
                                temp.re = (*(Matr + colum*i + row*colum/2+j)).re;
                                temp.im = (*(Matr + colum*i + row*colum/2+j)).im;
                                (*(Matr + colum*i + row*colum/2+j)).re = (*(Matr + colum*i + j)).re;
                                (*(Matr + colum*i + row*colum/2+j)).im = (*(Matr + colum*i + j)).im;
                                (*(Matr + colum*i + j)).re = temp.re;
                                (*(Matr + colum*i + j)).im = temp.im;
                        }
                }
        }
}
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
zihai123: 金币+2, ★★★很有帮助 2012-06-08 19:21:42
(1)stdafx.h是MFC中的头文件
(2)stdafx.h与处理矩阵的函数无关
(3)不是MFC框架的程序,没办法也没必要用stdafx.h
2楼2012-06-07 09:46:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zihai123

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by yalefield at 2012-06-07 09:46:42
(1)stdafx.h是MFC中的头文件
(2)stdafx.h与处理矩阵的函数无关
(3)不是MFC框架的程序,没办法也没必要用stdafx.h

我在DSP中需要用到一个能区分复数的函数,如求复数的角度像matlab中的angle,,其中用到了complex.h这个头文件能不能在DSP中调用啊,谢啦
3楼2012-06-08 19:21:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

【答案】应助回帖


zihai123: 金币+1 2012-06-13 21:05:27
当然可以用。

您应该学习一下,那些函数是“纯”函数,也就是与操作系统、开发环境无关的函数。
4楼2012-06-08 21:07:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zihai123 的主题更新
信息提示
请填处理意见