• 大小: 4KB
    文件类型: .c
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: C/C++
  • 标签: FxLms  c语言  

资源简介

c语言编写的FxLMS算法程序

资源截图

代码片段和文件信息

#define S_FUNCTION_NAME  FxLms//这里把文件名sfuntmpl_basic修改为FxLms
#define S_FUNCTION_LEVEL 2
#include “simstruc.h“
//程序里面要用到的头文件在这里引用,如“math.h”等。
//double u; //定义全局变量
int j;
double d[1000001];//用于存储输入信号x
double r[1000001];//用于存储输入信号xx

static void mdlInitializeSizes(SimStruct *S)
{
 //这个函数用来设置输入、输出和参数的。
    ssSetNumSFcnParams(S5);  /*设置参数个数,这里为0 */
    if (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S)) {
        return;
    }
    ssSetNumContStates(S 0);//设置连续状态的个数,缺省为0;
    ssSetNumDiscStates(S 0);//设置离散状态的个数,缺省为0;
    if (!ssSetNumInputPorts(S 4)) return;//设置输入变量的个数,这里为1
    ssSetInputPortWidth(S 0 1); //设置输入变量0的维数为1
    ssSetInputPortWidth(S 1 1); //设置输入变量1的维数为1
    ssSetInputPortWidth(S 2 1); //设置输入变量2的维数为1
    ssSetInputPortWidth(S 3 1);
    ssSetInputPortRequiredContiguous(S 0 true); //设置input0的访问方式,true就是临近访问,这样指针的增量后就可以直接访问下个input端口了。
    ssSetInputPortRequiredContiguous(S 1 true); 
    ssSetInputPortRequiredContiguous(S 2 true); 
    ssSetInputPortRequiredContiguous(S 3 true);
    ssSetInputPortDirectFeedThrough(S 0 1);// 设置输入端口的信号是否mdlOutputs函数中使用,这儿设置为true。
    ssSetInputPortDirectFeedThrough(S 1 1);
    ssSetInputPortDirectFeedThrough(S 2 1);
    ssSetInputPortDirectFeedThrough(S 3 1);
    if (!ssSetNumOutputPorts(S 2)) return;//设置输出变量的个数
    ssSetOutputPortWidth(S 0 1);//设置输出变量0的维数为1维
    ssSetOutputPortWidth(S 1 40);//设置输出变量1的维数为40维w滤波器系数为40
    ssSetNumSampleTimes(S0.0001); //设置采样时间,此处为0.001s。(感觉没什么用)
    ssSetNumRWork(S 0);//不管
    ssSetNumIWork(S 0);
    ssSetNumPWork(S 0);
    ssSetNumModes(S 0);
    ssSetNumNonsampledZCs(S 0);
    ssSetOptions(S 0);
//下面可以写全局变量的初始化程序
    j=0;
}
static void mdlInitializeSampleTimes(SimStruct *S)//暂时不管
{
    ssSetSampleTime(S 0 CONTINUOUS_SAMPLE_TIME);
    ssSetOffsetTime(S 0 0.0);
 
}
#define MDL_INITIALIZE_CONDITIONS   /* Change to #undef to remo

评论

共有 条评论