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

📄 c5_std5.c

📁 mmo 信道估计算法 matlab 仿真 实现了无线信道环境下的信道估计
💻 C
📖 第 1 页 / 共 4 页
字号:
/* Include files */
#include "std5_sfun.h"
#include "c5_std5.h"
#define CHARTINSTANCE_CHARTNUMBER       (chartInstance.chartNumber)
#define CHARTINSTANCE_INSTANCENUMBER    (chartInstance.instanceNumber)
#include "std5_sfun_debug_macros.h"

/* Type Definitions */

/* Named Constants */
#define c5_IN_NO_ACTIVE_CHILD           (0)

/* Variable Declarations */

/* Variable Definitions */
static SFc5_std5InstanceStruct chartInstance;

/* Function Declarations */
static void initialize_c5_std5(void);
static void initialize_params_c5_std5(void);
static void enable_c5_std5(void);
static void disable_c5_std5(void);
static void finalize_c5_std5(void);
static void sf_c5_std5(void);
static void c5_eML_blk_kernel(real_T *c5_b_PilotSubcSymbols, creal_T
 *c5_b_channel_est, creal_T *c5_b_freq_data_syms, creal_T *c5_b_freq_pilot_syms,
 creal_T *c5_b_corrected_syms);
static void c5_repmat(creal_T *c5_a, creal_T *c5_b);
static void c5_squeeze(creal_T *c5_a, creal_T *c5_b);
static void c5_sum(creal_T *c5_x, creal_T *c5_y);
static void c5_angle(creal_T *c5_x, creal_T *c5_b_x);
static void c5_b_repmat(creal_T *c5_a, creal_T *c5_b);
static void c5_exp(creal_T *c5_x, creal_T *c5_b_x);
static const mxArray *c5_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_b_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_c_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_d_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_e_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_f_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_g_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_h_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_i_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_j_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_k_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_l_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_m_sf_marshall(void *c5_chartInstance, void *c5_u);
static const mxArray *c5_n_sf_marshall(void *c5_chartInstance, void *c5_u);
static real_T *c5_PilotSubcSymbols(void);
static creal_T *c5_channel_est(void);
static creal_T *c5_corrected_syms(void);
static creal_T *c5_freq_data_syms(void);
static creal_T *c5_freq_pilot_syms(void);
static void init_dsm_address_info(void);

/* Function Definitions */
static void initialize_c5_std5(void)
{
  _sfTime_ = (real_T)ssGetT(chartInstance.S);
  chartInstance.c5_is_active_c5_std5 = 0U;
}

static void initialize_params_c5_std5(void)
{
}

static void enable_c5_std5(void)
{
}

static void disable_c5_std5(void)
{
}

static void finalize_c5_std5(void)
{
}

static void sf_c5_std5(void)
{
  int32_T c5_i0;
  int32_T c5_i1;
  uint8_T c5_previousEvent;
  int32_T c5_i2;
  int32_T c5_i3;
  real_T c5_dv0[8];
  int32_T c5_i4;
  creal_T c5_dcv0[52];
  int32_T c5_i5;
  int32_T c5_i6;
  creal_T c5_dcv1[96];
  int32_T c5_i7;
  int32_T c5_i8;
  creal_T c5_dcv2[8];
  creal_T c5_dcv3[96];
  int32_T c5_i9;
  int32_T c5_i10;
  _sfTime_ = (real_T)ssGetT(chartInstance.S);
  for(c5_i0 = 0; c5_i0 < 2; c5_i0 = c5_i0 + 1) {
    for(c5_i1 = 0; c5_i1 < 4; c5_i1 = c5_i1 + 1) {
      _SFD_DATA_RANGE_CHECK(c5_PilotSubcSymbols()[c5_i1 + (c5_i0 << 2)], 2U);
    }
  }
  c5_previousEvent = _sfEvent_;
  _sfEvent_ = CALL_EVENT;
  _SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,4);
  for(c5_i2 = 0; c5_i2 < 2; c5_i2 = c5_i2 + 1) {
    for(c5_i3 = 0; c5_i3 < 4; c5_i3 = c5_i3 + 1) {
      c5_dv0[c5_i3 + (c5_i2 << 2)] = c5_PilotSubcSymbols()[c5_i3 + (c5_i2 << 2)];
    }
  }
  for(c5_i4 = 0; c5_i4 < 52; c5_i4 = c5_i4 + 1) {
    c5_dcv0[c5_i4].re = c5_channel_est()[c5_i4].re;
    c5_dcv0[c5_i4].im = c5_channel_est()[c5_i4].im;
  }
  for(c5_i5 = 0; c5_i5 < 2; c5_i5 = c5_i5 + 1) {
    for(c5_i6 = 0; c5_i6 < 48; c5_i6 = c5_i6 + 1) {
      c5_dcv1[c5_i6 + 48 * c5_i5].re = c5_freq_data_syms()[c5_i6 + 48 *
        c5_i5].re;
      c5_dcv1[c5_i6 + 48 * c5_i5].im = c5_freq_data_syms()[c5_i6 + 48 *
        c5_i5].im;
    }
  }
  for(c5_i7 = 0; c5_i7 < 2; c5_i7 = c5_i7 + 1) {
    for(c5_i8 = 0; c5_i8 < 4; c5_i8 = c5_i8 + 1) {
      c5_dcv2[c5_i8 + (c5_i7 << 2)].re = c5_freq_pilot_syms()[c5_i8 + (c5_i7 <<
        2)].re;
      c5_dcv2[c5_i8 + (c5_i7 << 2)].im = c5_freq_pilot_syms()[c5_i8 + (c5_i7 <<
        2)].im;
    }
  }
  c5_eML_blk_kernel((real_T *)c5_dv0, (creal_T *)c5_dcv0, (creal_T *)c5_dcv1,
   (creal_T *)c5_dcv2, (creal_T *)c5_dcv3);
  for(c5_i9 = 0; c5_i9 < 2; c5_i9 = c5_i9 + 1) {
    for(c5_i10 = 0; c5_i10 < 48; c5_i10 = c5_i10 + 1) {
      c5_corrected_syms()[c5_i10 + 48 * c5_i9].re = c5_dcv3[c5_i10 + 48 *
        c5_i9].re;
      c5_corrected_syms()[c5_i10 + 48 * c5_i9].im = c5_dcv3[c5_i10 + 48 *
        c5_i9].im;
    }
  }
  _SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,4);
  _sfEvent_ = c5_previousEvent;
  sf_debug_check_for_state_inconsistency(_std5MachineNumber_,
   chartInstance.chartNumber, chartInstance.instanceNumber);
}

static void c5_eML_blk_kernel(real_T *c5_b_PilotSubcSymbols, creal_T
 *c5_b_channel_est, creal_T *c5_b_freq_data_syms, creal_T *
 c5_b_freq_pilot_syms, creal_T *c5_b_corrected_syms)
{
  creal_T c5_correction_phases[96];
  creal_T c5_phase_error_est[2];
  creal_T c5_channel_est1[8];
  real_T c5_ref_pilots[8];
  real_T c5_scramble_patt1[8];
  real_T c5_scramble_patt[508];
  real_T c5_PilotSubcPatt[4];
  real_T c5_PilotScramble[127];
  real_T c5_num_symbols;
  int32_T c5_i11;
  int32_T c5_i12;
  int32_T c5_i13;
  static real_T c5_dv1[127] = { 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, 1.0, -1.0,
    -1.0, -1.0, -1.0, 1.0, 1.0, -1.0, 1.0, -1.0, -1.0,
    1.0, 1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0,
    1.0, 1.0, -1.0, 1.0, 1.0,
    -1.0, -1.0, 1.0, 1.0, 1.0, -1.0, 1.0, -1.0, -1.0, -1.0, 1.0, -1.0, 1.0,
    -1.0, -1.0, 1.0, -1.0, -1.0,
    1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, 1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0,
    -1.0, 1.0, 1.0, -1.0, -1.0
    , -1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0,
    1.0, 1.0, 1.0, -1.0, 1.0,
    -1.0, 1.0, -1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0,
    -1.0, 1.0, -1.0, 1.0, 1.0,
    1.0, -1.0, -1.0, 1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, -1.0 };
  int32_T c5_i14;
  static real_T c5_dv2[4] = { 6.0, 20.0, 33.0, 47.0 };
  int32_T c5_i15;
  int32_T c5_i16;
  static real_T c5_dv3[508] = { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
    1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0
    , -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0,
    -1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0,
    1.0, 1.0, 1.0, 1.0, 1.0,
    1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, -1.0, 1.0,
    1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0,
    1.0, 1.0, 1.0, 1.0, 1.0,
    -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
    1.0, 1.0, 1.0, 1.0, 1.0, 1.0
    , 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0,
    1.0, 1.0, 1.0, 1.0, 1.0,
    1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
    1.0, 1.0, 1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
    1.0, 1.0, 1.0, 1.0, -1.0,
    -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, -1.0, -1.0
    , -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0,
    -1.0, -1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, 1.0, 1.0, 1.0,
    1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
    1.0, 1.0, -1.0, -1.0, -1.0
    , -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
    -1.0, -1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0,
    1.0, -1.0, -1.0, -1.0,
    -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0,
    -1.0, -1.0, -1.0, -1.0, -1.0
    , -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0,
    1.0, 1.0, 1.0, 1.0, 1.0, 1.0
    , 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0,
    1.0, 1.0, -1.0, -1.0, -1.0
    , -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0,
    -1.0, -1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, 1.0, 1.0,
    1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
    -1.0, -1.0, -1.0, -1.0, 1.0
    , 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
    1.0, 1.0, 1.0, 1.0, 1.0,
    -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0,
    -1.0, -1.0, -1.0, -1.0, -1.0
    , -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
    1.0, 1.0, 1.0, 1.0, 1.0, -1.0
    , -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0,
    -1.0, -1.0, -1.0, -1.0, -1.0
    , -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0 };
  int32_T c5_i17;
  int32_T c5_i18;
  int32_T c5_i19;
  int32_T c5_i20;
  int32_T c5_i21;
  int32_T c5_iv0[4];
  int32_T c5_i22;
  creal_T c5_dcv4[4];
  creal_T c5_dcv5[8];
  int32_T c5_i23;
  int32_T c5_i24;
  int32_T c5_i25;
  int32_T c5_i26;
  creal_T c5_dcv6[8];
  creal_T c5_dcv7[8];
  int32_T c5_i27;
  int32_T c5_i28;
  creal_T c5_b_ref_pilots;
  creal_T c5_b_channel_est1;
  creal_T c5_c_ref_pilots;
  creal_T c5_dcv8[8];
  creal_T c5_dcv9[2];
  int32_T c5_i29;
  creal_T c5_dcv10[2];
  creal_T c5_dcv11[2];
  int32_T c5_i30;
  int32_T c5_i31;
  int32_T c5_i32;
  int32_T c5_i33;
  creal_T c5_dcv12[2];
  creal_T c5_dcv13[96];
  int32_T c5_i34;
  int32_T c5_i35;
  int32_T c5_i36;
  int32_T c5_i37;
  creal_T c5_dcv14[96];
  creal_T c5_dcv15[96];
  int32_T c5_i38;
  int32_T c5_i39;
  sf_debug_symbol_scope_push(14U, 0U);
  sf_debug_symbol_scope_add("correction_phases", &c5_correction_phases,
   c5_n_sf_marshall);
  sf_debug_symbol_scope_add("phase_error_est", &c5_phase_error_est,
   c5_m_sf_marshall);
  sf_debug_symbol_scope_add("channel_est1", &c5_channel_est1, c5_l_sf_marshall);
  sf_debug_symbol_scope_add("ref_pilots", &c5_ref_pilots, c5_k_sf_marshall);
  sf_debug_symbol_scope_add("scramble_patt1", &c5_scramble_patt1,
   c5_j_sf_marshall);
  sf_debug_symbol_scope_add("scramble_patt", &c5_scramble_patt,
   c5_i_sf_marshall);
  sf_debug_symbol_scope_add("PilotSubcPatt", &c5_PilotSubcPatt,
   c5_h_sf_marshall);
  sf_debug_symbol_scope_add("PilotScramble", &c5_PilotScramble,
   c5_g_sf_marshall);
  sf_debug_symbol_scope_add("num_symbols", &c5_num_symbols, c5_f_sf_marshall);
  sf_debug_symbol_scope_add("corrected_syms", c5_b_corrected_syms,
   c5_e_sf_marshall);
  sf_debug_symbol_scope_add("freq_pilot_syms", c5_b_freq_pilot_syms,
   c5_d_sf_marshall);
  sf_debug_symbol_scope_add("freq_data_syms", c5_b_freq_data_syms,
   c5_c_sf_marshall);
  sf_debug_symbol_scope_add("channel_est", c5_b_channel_est, c5_b_sf_marshall);
  sf_debug_symbol_scope_add("PilotSubcSymbols", c5_b_PilotSubcSymbols,
   c5_sf_marshall);
  CV_EML_FCN(0, 0);
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,6);
  c5_num_symbols = 2.0;
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,7);
  for(c5_i11 = 0; c5_i11 < 2; c5_i11 = c5_i11 + 1) {
    for(c5_i12 = 0; c5_i12 < 48; c5_i12 = c5_i12 + 1) {
      c5_b_corrected_syms[c5_i12 + 48 * c5_i11].re = 0.0;
      c5_b_corrected_syms[c5_i12 + 48 * c5_i11].im = 0.0;
    }
  }
  /*  estimate the phase change using the pilots */
  /* correction_phases = rx_pilot_phase_est(freq_pilot_syms, channel_est, sim_options); */
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,12);
  for(c5_i13 = 0; c5_i13 < 127; c5_i13 = c5_i13 + 1) {
    c5_PilotScramble[c5_i13] = c5_dv1[c5_i13];
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,13);
  for(c5_i14 = 0; c5_i14 < 4; c5_i14 = c5_i14 + 1) {
    c5_PilotSubcPatt[c5_i14] = c5_dv2[c5_i14];
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,14);
  for(c5_i15 = 0; c5_i15 < 127; c5_i15 = c5_i15 + 1) {
    for(c5_i16 = 0; c5_i16 < 4; c5_i16 = c5_i16 + 1) {
      c5_scramble_patt[c5_i16 + (c5_i15 << 2)] = c5_dv3[c5_i16 + (c5_i15 << 2)];
    }
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,16);
  for(c5_i17 = 0; c5_i17 < 2; c5_i17 = c5_i17 + 1) {
    for(c5_i18 = 0; c5_i18 < 4; c5_i18 = c5_i18 + 1) {
      c5_scramble_patt1[c5_i18 + (c5_i17 << 2)] = 1.0;
    }
  }
  /* ref_pilots = repmat(PilotSubcSymbols, 1, num_symbols); */
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,18);
  for(c5_i19 = 0; c5_i19 < 2; c5_i19 = c5_i19 + 1) {
    for(c5_i20 = 0; c5_i20 < 4; c5_i20 = c5_i20 + 1) {
      c5_ref_pilots[c5_i20 + (c5_i19 << 2)] = c5_b_PilotSubcSymbols[c5_i20 +
        (c5_i19 << 2)];
    }
  }
  /*  Estimate the symbol rotation from the pilot subcarriers */
  /*  Different Tx and/or Rx diversity options require different processing of the pilot symbols */
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,22);
  for(c5_i21 = 0; c5_i21 < 4; c5_i21 = c5_i21 + 1) {
    c5_iv0[c5_i21] = (int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("channel_est",
     (int32_T)_SFD_INTEGER_CHECK("PilotSubcPatt", c5_PilotSubcPatt[
      c5_i21]), 1, 52, 1) - 1;
  }
  for(c5_i22 = 0; c5_i22 < 4; c5_i22 = c5_i22 + 1) {
    c5_dcv4[c5_i22].re = c5_b_channel_est[c5_iv0[c5_i22]].re;
    c5_dcv4[c5_i22].im = c5_b_channel_est[c5_iv0[c5_i22]].im;
  }
  c5_repmat((creal_T *)c5_dcv4, (creal_T *)c5_dcv5);
  for(c5_i23 = 0; c5_i23 < 2; c5_i23 = c5_i23 + 1) {
    for(c5_i24 = 0; c5_i24 < 4; c5_i24 = c5_i24 + 1) {
      c5_channel_est1[c5_i24 + (c5_i23 << 2)].re = c5_dcv5[c5_i24 + (c5_i23 <<
        2)].re;
      c5_channel_est1[c5_i24 + (c5_i23 << 2)].im = c5_dcv5[c5_i24 + (c5_i23 <<
        2)].im;
    }
  }
  _SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,23);
  for(c5_i25 = 0; c5_i25 < 2; c5_i25 = c5_i25 + 1) {
    for(c5_i26 = 0; c5_i26 < 4; c5_i26 = c5_i26 + 1) {
      c5_dcv6[c5_i26 + (c5_i25 << 2)].re = c5_b_freq_pilot_syms[c5_i26 + (c5_i25
        << 2)].re;
      c5_dcv6[c5_i26 + (c5_i25 << 2)].im = c5_b_freq_pilot_syms[c5_i26 + (c5_i25
        << 2)].im;
    }
  }
  c5_squeeze((creal_T *)c5_dcv6, (creal_T *)c5_dcv7);
  for(c5_i27 = 0; c5_i27 < 2; c5_i27 = c5_i27 + 1) {
    for(c5_i28 = 0; c5_i28 < 4; c5_i28 = c5_i28 + 1) {
      c5_b_ref_pilots.re = c5_ref_pilots[c5_i28 + (c5_i27 << 2)] *
        c5_dcv7[c5_i28 + (c5_i27 << 2)].re;
      c5_b_ref_pilots.im = c5_ref_pilots[c5_i28 + (c5_i27 << 2)] *
        c5_dcv7[c5_i28 + (c5_i27 << 2)].im;
      c5_b_channel_est1.re = c5_channel_est1[c5_i28 + (c5_i27 << 2)].re;
      c5_b_channel_est1.im = -c5_channel_est1[c5_i28 + (c5_i27 << 2)].im;
      c5_c_ref_pilots.re = c5_b_ref_pilots.re * c5_b_channel_est1.re -
        c5_b_ref_pilots.im * c5_b_channel_est1.im;

⌨️ 快捷键说明

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