⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 signal_determination_wrapper.c

📁 用simlink开发的space-time coding仿真模型,仿真的精度与效率有不小的提高
💻 C
字号:
/*
  *
  *   --- THIS FILE GENERATED BY S-FUNCTION BUILDER: 3.0 ---
  *
  *   This file is a wrapper S-function produced by the S-Function
  *   Builder which only recognizes certain fields.  Changes made
  *   outside these fields will be lost the next time the block is
  *   used to load, edit, and resave this file. This file will be overwritten
  *   by the S-function Builder block. If you want to edit this file by hand, 
  *   you must change it only in the area defined as:  
  *
  *        %%%-SFUNWIZ_wrapper_XXXXX_Changes_BEGIN 
  *            Your Changes go here
  *        %%%-SFUNWIZ_wrapper_XXXXXX_Changes_END
  *
  *   For better compatibility with the Real-Time Workshop, the
  *   "wrapper" S-function technique is used.  This is discussed
  *   in the Real-Time Workshop User's Manual in the Chapter titled,
  *   "Wrapper S-functions".
  *
  *   Created: Sun Aug 21 20:47:55 2005
  */


/*
 * Include Files
 *
 */
#if defined(MATLAB_MEX_FILE)
#include "tmwtypes.h"
#include "simstruc_types.h"
#else
#include "rtwtypes.h"
#endif
/* %%%-SFUNWIZ_wrapper_includes_Changes_BEGIN --- EDIT HERE TO _END */
#include <math.h>
/* %%%-SFUNWIZ_wrapper_includes_Changes_END --- EDIT HERE TO _BEGIN */
#define u_width 4
#define y_width 1
/*
 * Create external references here.  
 *
 */
/* %%%-SFUNWIZ_wrapper_externs_Changes_BEGIN --- EDIT HERE TO _END */
/* extern double func(double a); */
/* %%%-SFUNWIZ_wrapper_externs_Changes_END --- EDIT HERE TO _BEGIN */

/*
 * Output functions
 *
 */
void signal_determination_Outputs_wrapper(const real_T *h2,
                          const creal_T *x,
                          real_T *y0)
{
/* %%%-SFUNWIZ_wrapper_Outputs_Changes_BEGIN --- EDIT HERE TO _END */
        //---------this is for 16-QAM------------//
       /*double Constellations_re[16]={-0.9487,-0.9487,-0.9487,-0.9487,-0.3162,-0.3162,-0.3162,-0.3162,0.3162,0.3162,0.3162,0.3162,0.9487,0.9487,0.9487,0.9487 };
       double Constellations_im[16]={0.9487,0.3162,-0.3162,-0.9487,0.9487,0.3162,-0.3162,-0.9487,0.9487,0.3162,-0.3162,-0.9487,0.9487,0.3162,-0.3162,-0.9487};
       int    SignalPoints[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};*/
         //--------- this is for 4-PSK (gray coding)--------//
       double Constellations_re[4]={1,0,-1,0};
       double Constellations_im[4]={0,1,0,-1};
       int    SignalPoints[4]={0,1,3,2};
        double temp_h,temp_x[4],temp_d[4],temp1,temp2;
        int m,n;
          
         temp_h=0;
         for (m=0;m<=3;m++)
         {   temp_h=temp_h+h2[m];    
         }
         temp_h=2*temp_h-1;
         
         
         for (m=0;m<=3;m++)
         {   temp_x[m]=Constellations_re[m]*Constellations_re[m]+Constellations_im[m]*Constellations_im[m];
             temp_x[m]=temp_x[m]*temp_h;
         }
         
         for (m=0;m<=3;m++)
         {   for (n=0;n<=3;n++)
             {   temp1=x[m].re-Constellations_re[n];
                 temp2=x[m].im-Constellations_im[n];
                 temp_d[n]=temp1*temp1+temp2*temp2+temp_x[n];        
             }
             temp1=99999;
             for (n=0;n<=3;n++)
             {   if (temp_d[n]<=temp1)
                 {   temp1=temp_d[n];
                     y0[m]=SignalPoints[n];
                 }
             }
         }
/* %%%-SFUNWIZ_wrapper_Outputs_Changes_END --- EDIT HERE TO _BEGIN */
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -