找回密码
 注册
Simdroid-非首页
查看: 43|回复: 0

关于matlab仿真付氏算法遇到的怪异问题?

[复制链接]
发表于 2011-11-28 09:29:59 | 显示全部楼层 |阅读模式 来自 江苏南京
程序的设计思路:
一、此程序根据经典付氏采样算法来考虑的,采样数据类型是float型,通过在matlab中建立一个*.c的文件,然后通过matlab的主函数接口初始化相关变量;
二、遇到的调试问题再下面,请各位高手帮忙分析一下:标识红色字体的行,为定位的错误行,实在是没发现有什么错误。
void dft(int n,float *x,float *w)
{
     extern int     inv;
     extern long    npt;
     int            k;
     double         WN,wk,c,s,XR[size],XI[size];
      extern complex x1[size];
      WN=2*pi/npt;
    if(inv==1)
     WN=-WN;
    for(k=0;k<npt;++k)
    {
       XR[k]=0.0;
       XI[k]=0.0;
      wk=k*WN;
     for(n=0;n<npt;++n)
     {
          c=cos(n*wk);
          s=sin(n*wk);
     XR[k]=XR[k]+x1[n+1].real*c+x1[n+1].imag*s;
     XI[k]=XI[k]-x1[n+1].real*s+x1[n+1].imag*c;
     }
     if(inv==1)
     {
     XR[k]=XR[k]/npt;
    XI[k]=XI[k]/npt;
     }
    }
    for(k=1;k<=npt;++k)
    {
        x1[k].real=XR[k-1];
         x1[k].imag=XI[k-1];
    }
  
}
void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[]) //nlhs是输出数据的个数,plhs是指向mxArray的输出数据指针,nrhs是输入数据的个数,prhs是指向mxArray的输入数据的指针
{                                                                       
    a=mxGetScalar(prhs[0]);
    b=mxGetScalar(prhs[1]);
    plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);
    c=mxGetPr(plhs[0]);  
    *c=dft(n,x,w);   
     
}
lcc preprocessor warning: dft.c:50 EOF inside comment
lcc preprocessor warning: dft.c:50 No newline at end of file
Error dft.c: 50  syntax error; found `end of input' expecting `;'
1 errors, 2 warnings

  D:\MATLAB\BIN\WIN32\MEX.PL: Error: Compile of 'dft.c' failed.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-6 07:57 , Processed in 0.026067 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表