?? c5_std5.c
字號:
c5_c_ref_pilots.im = c5_b_ref_pilots.re * c5_b_channel_est1.im +
c5_b_ref_pilots.im * c5_b_channel_est1.re;
c5_dcv8[c5_i28 + (c5_i27 << 2)].re = c5_c_ref_pilots.re;
c5_dcv8[c5_i28 + (c5_i27 << 2)].im = c5_c_ref_pilots.im;
}
}
c5_sum((creal_T *)c5_dcv8, (creal_T *)c5_dcv9);
for(c5_i29 = 0; c5_i29 < 2; c5_i29 = c5_i29 + 1) {
c5_dcv10[c5_i29].re = c5_dcv9[c5_i29].re;
c5_dcv10[c5_i29].im = c5_dcv9[c5_i29].im;
}
c5_angle((creal_T *)c5_dcv10, (creal_T *)c5_dcv11);
for(c5_i30 = 0; c5_i30 < 2; c5_i30 = c5_i30 + 1) {
c5_phase_error_est[c5_i30].re = c5_dcv11[c5_i30].re;
c5_phase_error_est[c5_i30].im = c5_dcv11[c5_i30].im;
}
_SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,25);
for(c5_i31 = 0; c5_i31 < 2; c5_i31 = c5_i31 + 1) {
for(c5_i32 = 0; c5_i32 < 48; c5_i32 = c5_i32 + 1) {
c5_correction_phases[c5_i32 + 48 * c5_i31].re = 0.0;
c5_correction_phases[c5_i32 + 48 * c5_i31].im = 0.0;
}
}
_SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,26);
for(c5_i33 = 0; c5_i33 < 2; c5_i33 = c5_i33 + 1) {
c5_dcv12[c5_i33].re = c5_phase_error_est[c5_i33].re;
c5_dcv12[c5_i33].im = c5_phase_error_est[c5_i33].im;
}
c5_b_repmat((creal_T *)c5_dcv12, (creal_T *)c5_dcv13);
for(c5_i34 = 0; c5_i34 < 2; c5_i34 = c5_i34 + 1) {
for(c5_i35 = 0; c5_i35 < 48; c5_i35 = c5_i35 + 1) {
c5_correction_phases[c5_i35 + 48 * c5_i34].re = c5_dcv13[c5_i35 + 48 *
c5_i34].re;
c5_correction_phases[c5_i35 + 48 * c5_i34].im = c5_dcv13[c5_i35 + 48 *
c5_i34].im;
}
}
/* correct symbol using the phase estimate of this one OFDM symbol, */
_SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,29);
for(c5_i36 = 0; c5_i36 < 2; c5_i36 = c5_i36 + 1) {
for(c5_i37 = 0; c5_i37 < 48; c5_i37 = c5_i37 + 1) {
c5_dcv14[c5_i37 + 48 * c5_i36].re = 0.0 * c5_correction_phases[c5_i37 + 48
* c5_i36].re - -1.0 * c5_correction_phases[c5_i37 + 48 *
c5_i36].im;
c5_dcv14[c5_i37 + 48 * c5_i36].im = 0.0 * c5_correction_phases[c5_i37 + 48
* c5_i36].im + -1.0 * c5_correction_phases[c5_i37 + 48 *
c5_i36].re;
}
}
c5_exp((creal_T *)c5_dcv14, (creal_T *)c5_dcv15);
for(c5_i38 = 0; c5_i38 < 2; c5_i38 = c5_i38 + 1) {
for(c5_i39 = 0; c5_i39 < 48; c5_i39 = c5_i39 + 1) {
c5_b_corrected_syms[c5_i39 + 48 * c5_i38].re = c5_dcv15[c5_i39 + 48 *
c5_i38].re * c5_b_freq_data_syms[c5_i39 + 48 * c5_i38].re -
c5_dcv15[c5_i39 + 48 * c5_i38].im * c5_b_freq_data_syms[c5_i39 + 48 *
c5_i38].im;
c5_b_corrected_syms[c5_i39 + 48 * c5_i38].im = c5_dcv15[c5_i39 + 48 *
c5_i38].re * c5_b_freq_data_syms[c5_i39 + 48 * c5_i38].im +
c5_dcv15[c5_i39 + 48 * c5_i38].im * c5_b_freq_data_syms[c5_i39 + 48 *
c5_i38].re;
}
}
/* search_win = 320; */
/* D = 16; */
/* delay_xcorr=rx_signal; */
/* ma_M=rx_signal; */
/* for i=1:search_win */
/* delay_xcorr(i)=rx_signal(i)*conj(rx_signal(D+i)); */
/* end */
/* */
/* for n=1:search_win */
/* */
/* sum_delay_xcorr=complex(0); */
/* for ii=1:2*D */
/* sum_delay_xcorr=sum_delay_xcorr+delay_xcorr(ii+n-1); */
/* end */
/* sum_delay_xcorr2=abs(sum_delay_xcorr)^2; */
/* */
/* */
/* p=0; */
/* for iii=1:2*D */
/* pwr=abs(rx_signal(n+iii+D-1))^2; */
/* p=p+pwr; */
/* end */
/* p2=p^2; */
/* */
/* ma_M(n)=sum_delay_xcorr2/p2; */
/* */
/* end */
/* detected_packet = ma_M; */
/* rx_len = length(rx_signal); */
/* */
/* % Calculate the delayd correlation */
/* delay_xcorr = rx_signal(:,1:search_win+2*D).*conj(rx_signal(:,1*D+1:search_win+3*D)); */
/* */
/* % Moving average of the delayed correlation */
/* ma_delay_xcorr = abs(filter(ones(1,2*D), 1, delay_xcorr, [], 2)); */
/* */
/* % Moving average of received power */
/* ma_rx_pwr = filter(ones(1,2*D), 1, abs(rx_signal(:,1*D+1:search_win+3*D)).^2,[], 2); */
/* */
/* % The decision variable */
/* delay_len = length(ma_delay_xcorr); */
/* ma_M = ma_delay_xcorr(:,1:delay_len)./ma_rx_pwr(:,1:delay_len); */
/* */
/* % remove delay samples */
/* ma_M(:,1:2*D) = []; */
/* */
/* % combine antennas, if rx diversity is used */
/* ma_M = sum(ma_M, 1); */
/* */
/* if ~sim_options.UseRxDiv */
/* threshold = 0.75; */
/* else */
/* threshold = 1.5; */
/* end */
/* */
/* thres_idx = find(ma_M > threshold); */
/* if isempty(thres_idx) */
/* thres_idx = 1; */
/* else */
/* thres_idx = thres_idx(1); */
/* end */
/* */
/* else */
/* thres_idx = sim_consts.ExtraNoiseSamples; */
/* end; */
/* */
/* % check if the packet has been detected too late, */
/* % > sim_consts.extra_noise_samples + 35 index */
/* % is out of range of the fine timing algorithm */
/* % This prevents simulation error for code running out samples */
/* if thres_idx > sim_consts.ExtraNoiseSamples + 35 */
/* thres_idx = 1; */
/* end */
/* */
/* detected_packet = rx_signal(:,thres_idx:length(rx_signal)); */
_SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,-29);
sf_debug_symbol_scope_pop();
}
static void c5_repmat(creal_T *c5_a, creal_T *c5_b)
{
int32_T c5_i40;
int32_T c5_i41;
int32_T c5_ib;
real_T c5_jtilecol;
int32_T c5_ia;
real_T c5_k;
int32_T c5_b_a;
int32_T c5_c_a;
for(c5_i40 = 0; c5_i40 < 2; c5_i40 = c5_i40 + 1) {
for(c5_i41 = 0; c5_i41 < 4; c5_i41 = c5_i41 + 1) {
c5_b[c5_i41 + (c5_i40 << 2)].re = 0.0;
c5_b[c5_i41 + (c5_i40 << 2)].im = 0.0;
}
}
c5_ib = 1;
for(c5_jtilecol = 1.0; c5_jtilecol <= 2.0; c5_jtilecol = c5_jtilecol + 1.0) {
c5_ia = 1;
for(c5_k = 1.0; c5_k <= 4.0; c5_k = c5_k + 1.0) {
c5_b[_SFD_EML_ARRAY_BOUNDS_CHECK("b", _SFD_INTEGER_CHECK("ib",
(real_T)c5_ib), 1, 8, 1) - 1].re = c5_a[_SFD_EML_ARRAY_BOUNDS_CHECK(
"a", _SFD_INTEGER_CHECK("ia", (real_T)c5_ia), 1, 4, 1) - 1].re;
c5_b[_SFD_EML_ARRAY_BOUNDS_CHECK("b", _SFD_INTEGER_CHECK("ib",
(real_T)c5_ib), 1, 8, 1) - 1].im = c5_a[_SFD_EML_ARRAY_BOUNDS_CHECK(
"a", _SFD_INTEGER_CHECK("ia", (real_T)c5_ia), 1, 4, 1) - 1].im;
c5_b_a = c5_ia;
c5_ia = c5_b_a + 1;
c5_c_a = c5_ib;
c5_ib = c5_c_a + 1;
}
}
}
static void c5_squeeze(creal_T *c5_a, creal_T *c5_b)
{
int32_T c5_i42;
int32_T c5_i43;
creal_T c5_x[8];
int32_T c5_i44;
int32_T c5_i45;
int32_T c5_i46;
real_T c5_y[8];
int32_T c5_i47;
int32_T c5_iv1[8];
int32_T c5_i48;
for(c5_i42 = 0; c5_i42 < 2; c5_i42 = c5_i42 + 1) {
for(c5_i43 = 0; c5_i43 < 4; c5_i43 = c5_i43 + 1) {
c5_x[c5_i43 + (c5_i42 << 2)].re = c5_a[c5_i43 + (c5_i42 << 2)].re;
c5_x[c5_i43 + (c5_i42 << 2)].im = c5_a[c5_i43 + (c5_i42 << 2)].im;
}
}
for(c5_i44 = 0; c5_i44 < 2; c5_i44 = c5_i44 + 1) {
for(c5_i45 = 0; c5_i45 < 4; c5_i45 = c5_i45 + 1) {
c5_b[c5_i45 + (c5_i44 << 2)].re = 0.0;
c5_b[c5_i45 + (c5_i44 << 2)].im = 0.0;
}
}
for(c5_i46 = 0; c5_i46 < 8; c5_i46 = c5_i46 + 1) {
c5_y[c5_i46] = 1.0 + (real_T)c5_i46;
}
for(c5_i47 = 0; c5_i47 < 8; c5_i47 = c5_i47 + 1) {
c5_iv1[c5_i47] = (int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("y",
(int32_T)_SFD_INTEGER_CHECK("", c5_y[c5_i47]), 1, 8, 1) - 1;
}
for(c5_i48 = 0; c5_i48 < 8; c5_i48 = c5_i48 + 1) {
c5_b[c5_iv1[c5_i48]].re = c5_x[c5_i48].re;
c5_b[c5_iv1[c5_i48]].im = c5_x[c5_i48].im;
}
}
static void c5_sum(creal_T *c5_x, creal_T *c5_y)
{
int32_T c5_i49;
int32_T c5_i50;
creal_T c5_b_x[8];
int32_T c5_i51;
creal_T c5_c_x[2];
int32_T c5_i52;
int32_T c5_ix;
int32_T c5_iy;
int32_T c5_i;
int32_T c5_ixstart;
int32_T c5_a;
creal_T c5_d_x;
creal_T c5_s;
real_T c5_k;
int32_T c5_b_a;
creal_T c5_e_x;
creal_T c5_r;
int32_T c5_c_a;
for(c5_i49 = 0; c5_i49 < 2; c5_i49 = c5_i49 + 1) {
for(c5_i50 = 0; c5_i50 < 4; c5_i50 = c5_i50 + 1) {
c5_b_x[c5_i50 + (c5_i49 << 2)].re = c5_x[c5_i50 + (c5_i49 << 2)].re;
c5_b_x[c5_i50 + (c5_i49 << 2)].im = c5_x[c5_i50 + (c5_i49 << 2)].im;
}
}
for(c5_i51 = 0; c5_i51 < 2; c5_i51 = c5_i51 + 1) {
c5_c_x[c5_i51].re = 0.0;
c5_c_x[c5_i51].im = 0.0;
}
for(c5_i52 = 0; c5_i52 < 2; c5_i52 = c5_i52 + 1) {
c5_y[c5_i52].re = c5_c_x[c5_i52].re;
c5_y[c5_i52].im = c5_c_x[c5_i52].im;
}
c5_ix = 0;
c5_iy = 0;
for(c5_i = 1; c5_i < 3; c5_i = c5_i + 1) {
c5_ixstart = c5_ix;
c5_a = c5_ixstart;
c5_ixstart = c5_a + 1;
c5_ix = c5_ixstart;
c5_d_x.re = c5_b_x[_SFD_EML_ARRAY_BOUNDS_CHECK("x", _SFD_INTEGER_CHECK("ix",
(real_T)c5_ix), 1, 8, 1) - 1].re;
c5_d_x.im = c5_b_x[_SFD_EML_ARRAY_BOUNDS_CHECK("x", _SFD_INTEGER_CHECK("ix",
(real_T)c5_ix), 1, 8, 1) - 1].im;
c5_s.re = c5_d_x.re;
c5_s.im = c5_d_x.im;
for(c5_k = 2.0; c5_k <= 4.0; c5_k = c5_k + 1.0) {
c5_b_a = c5_ix;
c5_ix = c5_b_a + 1;
c5_e_x.re = c5_b_x[_SFD_EML_ARRAY_BOUNDS_CHECK("x",
_SFD_INTEGER_CHECK("ix", (real_T)c5_ix), 1, 8, 1) - 1].re;
c5_e_x.im = c5_b_x[_SFD_EML_ARRAY_BOUNDS_CHECK("x",
_SFD_INTEGER_CHECK("ix", (real_T)c5_ix), 1, 8, 1) - 1].im;
c5_r.re = c5_e_x.re;
c5_r.im = c5_e_x.im;
c5_s.re = c5_s.re + c5_r.re;
c5_s.im = c5_s.im + c5_r.im;
}
c5_c_a = c5_iy;
c5_iy = c5_c_a + 1;
c5_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("iy",
(real_T)c5_iy), 1, 2, 1) - 1].re = c5_s.re;
c5_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("iy",
(real_T)c5_iy), 1, 2, 1) - 1].im = c5_s.im;
}
}
static void c5_angle(creal_T *c5_x, creal_T *c5_b_x)
{
int32_T c5_i53;
int32_T c5_i54;
real_T c5_Y[2];
int32_T c5_i55;
real_T c5_X[2];
int32_T c5_i56;
real_T c5_R[2];
real_T c5_k;
real_T c5_b_k;
real_T c5_yk;
real_T c5_xk;
real_T c5_y;
real_T c5_c_x;
real_T c5_d_x;
boolean_T c5_b;
real_T c5_e_x;
boolean_T c5_b_b;
real_T c5_r;
real_T c5_f_x;
boolean_T c5_c_b;
real_T c5_g_x;
boolean_T c5_d_b;
real_T c5_h_x;
real_T c5_i_x;
real_T c5_b_xk;
real_T c5_j_x;
boolean_T c5_e_b;
real_T c5_k_x;
real_T c5_l_x;
real_T c5_c_xk;
real_T c5_m_x;
boolean_T c5_f_b;
real_T c5_n_x;
real_T c5_o_x;
int32_T c5_i57;
for(c5_i53 = 0; c5_i53 < 2; c5_i53 = c5_i53 + 1) {
c5_b_x[c5_i53].re = c5_x[c5_i53].re;
c5_b_x[c5_i53].im = c5_x[c5_i53].im;
}
for(c5_i54 = 0; c5_i54 < 2; c5_i54 = c5_i54 + 1) {
c5_Y[c5_i54] = c5_b_x[c5_i54].im;
}
for(c5_i55 = 0; c5_i55 < 2; c5_i55 = c5_i55 + 1) {
c5_X[c5_i55] = c5_b_x[c5_i55].re;
}
for(c5_i56 = 0; c5_i56 < 2; c5_i56 = c5_i56 + 1) {
c5_R[c5_i56] = 0.0;
}
for(c5_k = 1.0; c5_k <= 2.0; c5_k = c5_k + 1.0) {
c5_b_k = c5_k;
c5_yk = c5_Y[(int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("Y",
(int32_T)_SFD_INTEGER_CHECK("k", c5_b_k), 1, 2, 1) - 1];
c5_xk = c5_X[(int32_T)_SFD_EML_ARRAY_BOUNDS_CHECK("X",
(int32_T)_SFD_INTEGER_CHECK("k", c5_b_k), 1, 2, 1) - 1];
c5_y = c5_yk;
c5_c_x = c5_xk;
c5_d_x = c5_c_x;
c5_b = rtIsNaN(c5_d_x);
if(c5_b) {
goto label_1;
} else {
c5_e_x = c5_y;
c5_b_b = rtIsNaN(c5_e_x);
if(c5_b_b) {
goto label_1;
} else {
c5_f_x = c5_y;
c5_c_b = rtIsInf(c5_f_x);
if(c5_c_b) {
c5_g_x = c5_c_x;
c5_d_b = rtIsInf(c5_g_x);
if(c5_d_b) {
c5_h_x = c5_c_x;
c5_i_x = c5_h_x;
c5_b_xk = c5_i_x;
c5_j_x = c5_b_xk;
c5_e_b = rtIsNaN(c5_j_x);
if(c5_e_b) {
c5_i_x = rtNaN;
} else if(c5_b_xk > 0.0) {
c5_i_x = 1.0;
} else if(c5_b_xk < 0.0) {
c5_i_x = -1.0;
}
c5_k_x = c5_y;
c5_l_x = c5_k_x;
c5_c_xk = c5_l_x;
c5_m_x = c5_c_xk;
c5_f_b = rtIsNaN(c5_m_x);
if(c5_f_b) {
c5_l_x = rtNaN;
} else if(c5_c_xk > 0.0) {
c5_l_x = 1.0;
} else if(c5_c_xk < 0.0) {
c5_l_x = -1.0;
}
c5_n_x = atan2(c5_l_x, c5_i_x);
c5_r = c5_n_x;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -