- 积分
- 0
- 注册时间
- 2011-11-25
- 仿真币
-
- 最后登录
- 1970-1-1
|
程序的设计思路:
一、此程序根据经典付氏采样算法来考虑的,采样数据类型是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. |
|