📄 c2_multitones_forhop_hard4.c
字号:
/* Include files */
#include "multitones_forhop_hard4_sfun.h"
#include "c2_multitones_forhop_hard4.h"
#define CHARTINSTANCE_CHARTNUMBER (chartInstance.chartNumber)
#define CHARTINSTANCE_INSTANCENUMBER (chartInstance.instanceNumber)
#include "multitones_forhop_hard4_sfun_debug_macros.h"
/* Type Definitions */
/* Named Constants */
#define c2_IN_NO_ACTIVE_CHILD (0)
/* Variable Declarations */
/* Variable Definitions */
static SFc2_multitones_forhop_hard4InstanceStruct chartInstance;
/* Function Declarations */
static void initialize_c2_multitones_forhop_hard4(void);
static void initialize_params_c2_multitones_forhop_hard4(void);
static void enable_c2_multitones_forhop_hard4(void);
static void disable_c2_multitones_forhop_hard4(void);
static void finalize_c2_multitones_forhop_hard4(void);
static void sf_c2_multitones_forhop_hard4(void);
static real_T c2_eML_blk_kernel(creal_T *c2_b_u);
static void c2_fft(creal_T *c2_x, creal_T *c2_b_y);
static real_T c2_abs(creal_T c2_x);
static real_T c2_mpower(real_T c2_a);
static const mxArray *c2_sf_marshall(void *c2_chartInstance, void *c2_b_u);
static const mxArray *c2_b_sf_marshall(void *c2_chartInstance, void *c2_b_u);
static const mxArray *c2_c_sf_marshall(void *c2_chartInstance, void *c2_b_u);
static const mxArray *c2_d_sf_marshall(void *c2_chartInstance, void *c2_b_u);
static const mxArray *c2_e_sf_marshall(void *c2_chartInstance, void *c2_b_u);
static creal_T *c2_u(void);
static real_T *c2_y(void);
static void init_dsm_address_info(void);
/* Function Definitions */
static void initialize_c2_multitones_forhop_hard4(void)
{
_sfTime_ = (real_T)ssGetT(chartInstance.S);
chartInstance.c2_is_active_c2_multitones_forhop_hard4 = 0U;
}
static void initialize_params_c2_multitones_forhop_hard4(void)
{
}
static void enable_c2_multitones_forhop_hard4(void)
{
}
static void disable_c2_multitones_forhop_hard4(void)
{
}
static void finalize_c2_multitones_forhop_hard4(void)
{
}
static void sf_c2_multitones_forhop_hard4(void)
{
uint8_T c2_previousEvent;
int32_T c2_i0;
creal_T c2_dcv0[1024];
_sfTime_ = (real_T)ssGetT(chartInstance.S);
_SFD_DATA_RANGE_CHECK(*c2_y(), 1U);
c2_previousEvent = _sfEvent_;
_sfEvent_ = CALL_EVENT;
_SFD_CC_CALL(CHART_ENTER_DURING_FUNCTION_TAG,1);
for(c2_i0 = 0; c2_i0 < 1024; c2_i0 = c2_i0 + 1) {
c2_dcv0[c2_i0].re = c2_u()[c2_i0].re;
c2_dcv0[c2_i0].im = c2_u()[c2_i0].im;
}
*c2_y() = c2_eML_blk_kernel((creal_T *)c2_dcv0);
_SFD_CC_CALL(EXIT_OUT_OF_FUNCTION_TAG,1);
_sfEvent_ = c2_previousEvent;
sf_debug_check_for_state_inconsistency(_multitones_forhop_hard4MachineNumber_,
chartInstance.chartNumber, chartInstance.
instanceNumber);
}
static real_T c2_eML_blk_kernel(creal_T *c2_b_u)
{
real_T c2_b_y;
real_T c2_b;
real_T c2_a;
creal_T c2_Y[1024];
int32_T c2_i1;
creal_T c2_dcv1[1024];
creal_T c2_dcv2[1024];
int32_T c2_i2;
creal_T c2_b_Y;
creal_T c2_c_Y;
real_T c2_A;
real_T c2_x;
real_T c2_B;
int32_T c2_i3;
static char c2_cv0[31] = { 'E', 'm', 'b', 'e', 'd', 'd', 'e', 'd', 'M', 'A',
'T', 'L', 'A', 'B', ':', 's', 'q', 'r', 't', ':', 'd',
'o', 'm', 'a', 'i', 'n', 'E', 'r', 'r', 'o', 'r' };
char c2_c_u[31];
const mxArray *c2_c_y = NULL;
int32_T c2_i4;
static char c2_cv1[77] = { 'D', 'o', 'm', 'a', 'i', 'n', ' ', 'e', 'r', 'r',
'o', 'r', '.', ' ', 'T', 'o', ' ', 'c', 'o', 'm', 'p',
'u', 't', 'e', ' ', 'c', 'o', 'm', 'p', 'l', 'e', 'x', ' ', 'r', 'e', 's',
'u', 'l', 't', 's', ' ', 'f',
'r', 'o', 'm', ' ', 'r', 'e', 'a', 'l', ' ', 'x', ',', ' ', 'u', 's', 'e',
' ', '\'', 's', 'q', 'r', 't'
, '(', 'c', 'o', 'm', 'p', 'l', 'e', 'x', '(', 'x', ')', ')', '\'', '.' };
char c2_d_u[77];
const mxArray *c2_d_y = NULL;
real_T c2_b_x;
real_T c2_e_y;
sf_debug_symbol_scope_push(5U, 0U);
sf_debug_symbol_scope_add("b", &c2_b, c2_e_sf_marshall);
sf_debug_symbol_scope_add("a", &c2_a, c2_d_sf_marshall);
sf_debug_symbol_scope_add("Y", &c2_Y, c2_c_sf_marshall);
sf_debug_symbol_scope_add("y", &c2_b_y, c2_b_sf_marshall);
sf_debug_symbol_scope_add("u", c2_b_u, c2_sf_marshall);
CV_EML_FCN(0, 0);
_SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,2);
for(c2_i1 = 0; c2_i1 < 1024; c2_i1 = c2_i1 + 1) {
c2_dcv1[c2_i1].re = c2_b_u[c2_i1].re;
c2_dcv1[c2_i1].im = c2_b_u[c2_i1].im;
}
c2_fft((creal_T *)c2_dcv1, (creal_T *)c2_dcv2);
for(c2_i2 = 0; c2_i2 < 1024; c2_i2 = c2_i2 + 1) {
c2_Y[c2_i2].re = c2_dcv2[c2_i2].re;
c2_Y[c2_i2].im = c2_dcv2[c2_i2].im;
}
_SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,3);
c2_b_Y.re = c2_Y[1].re;
c2_b_Y.im = c2_Y[1].im;
c2_a = c2_abs(c2_b_Y);
_SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,4);
c2_c_Y.re = c2_Y[3].re;
c2_c_Y.im = c2_Y[3].im;
c2_b = c2_abs(c2_c_Y);
_SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,5);
c2_A = c2_a - c2_b;
c2_x = c2_mpower(c2_a) + c2_mpower(c2_b);
c2_B = c2_x;
if(c2_B < 0.0) {
for(c2_i3 = 0; c2_i3 < 31; c2_i3 = c2_i3 + 1) {
c2_c_u[c2_i3] = c2_cv0[c2_i3];
}
c2_c_y = NULL;
sf_mex_assign(&c2_c_y, sf_mex_create(&c2_c_u, "y", 8, 0U, 1U, 2, 1, 31));
for(c2_i4 = 0; c2_i4 < 77; c2_i4 = c2_i4 + 1) {
c2_d_u[c2_i4] = c2_cv1[c2_i4];
}
c2_d_y = NULL;
sf_mex_assign(&c2_d_y, sf_mex_create(&c2_d_u, "y", 8, 0U, 1U, 2, 1, 77));
sf_mex_call("error", 0U, 2U, 14, c2_c_y, 14, c2_d_y);
}
c2_B = sqrt(c2_B);
c2_b_x = c2_A;
c2_e_y = c2_B;
c2_b_y = c2_b_x / c2_e_y;
_SFD_EML_CALL(STATE_DURING_DURING_ACTION_TAG,0,-5);
sf_debug_symbol_scope_pop();
return c2_b_y;
}
static void c2_fft(creal_T *c2_x, creal_T *c2_b_y)
{
int32_T c2_i5;
creal_T c2_b_x[1024];
int32_T c2_i6;
creal_T c2_c_x[1024];
int32_T c2_i7;
int32_T c2_ix;
int32_T c2_j;
int32_T c2_iy;
int32_T c2_i;
int32_T c2_b_j;
uint32_T c2_nu;
uint32_T c2_ju;
boolean_T c2_tst;
int32_T c2_b;
int32_T c2_a;
int32_T c2_i1;
int32_T c2_b_i;
int32_T c2_b_a;
int32_T c2_i2;
creal_T c2_temp;
int32_T c2_c_a;
int32_T c2_iDelta;
int32_T c2_k;
int32_T c2_istart;
int32_T c2_d_a;
real_T c2_theta;
real_T c2_d_x;
real_T c2_e_x;
real_T c2_f_x;
real_T c2_g_x;
creal_T c2_twid;
int32_T c2_c_i;
int32_T c2_e_a;
int32_T c2_b_b;
int32_T c2_f_a;
int32_T c2_c_b;
int32_T c2_g_a;
int32_T c2_h_a;
int32_T c2_d_b;
int32_T c2_i_a;
int32_T c2_d_i;
uint32_T c2_ui;
uint32_T c2_u0;
int32_T c2_i8;
for(c2_i5 = 0; c2_i5 < 1024; c2_i5 = c2_i5 + 1) {
c2_b_x[c2_i5].re = c2_x[c2_i5].re;
c2_b_x[c2_i5].im = c2_x[c2_i5].im;
}
for(c2_i6 = 0; c2_i6 < 1024; c2_i6 = c2_i6 + 1) {
c2_c_x[c2_i6].re = c2_b_x[c2_i6].re;
c2_c_x[c2_i6].im = c2_b_x[c2_i6].im;
}
for(c2_i7 = 0; c2_i7 < 1024; c2_i7 = c2_i7 + 1) {
c2_b_y[c2_i7].re = 0.0;
c2_b_y[c2_i7].im = 0.0;
}
c2_ix = 1;
c2_j = 0;
c2_iy = 1;
for(c2_i = 1; c2_i < 1024; c2_i = c2_i + 1) {
c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("iy",
(real_T)c2_iy), 1, 1024, 1) - 1].re = c2_c_x[
_SFD_EML_ARRAY_BOUNDS_CHECK("x", _SFD_INTEGER_CHECK("ix", (real_T)c2_ix),
1, 1024, 1) - 1].re;
c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("iy",
(real_T)c2_iy), 1, 1024, 1) - 1].im = c2_c_x[
_SFD_EML_ARRAY_BOUNDS_CHECK("x", _SFD_INTEGER_CHECK("ix", (real_T)c2_ix),
1, 1024, 1) - 1].im;
c2_b_j = c2_j;
c2_j = c2_b_j;
c2_nu = 1024U;
c2_ju = (uint32_T)c2_j;
for(c2_tst = 1U; c2_tst; c2_tst = ((real_T)(c2_ju & c2_nu) == 0.0)) {
c2_nu = c2_nu >> 1U;
c2_ju = c2_ju ^ c2_nu;
}
c2_j = (int32_T)c2_ju;
c2_b = c2_j;
c2_iy = 1 + c2_b;
c2_a = c2_ix;
c2_ix = c2_a + 1;
}
c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("iy",
(real_T)c2_iy), 1, 1024, 1) - 1].re = c2_c_x[
_SFD_EML_ARRAY_BOUNDS_CHECK("x", _SFD_INTEGER_CHECK("ix", (real_T)c2_ix), 1,
1024, 1) - 1].re;
c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("iy",
(real_T)c2_iy), 1, 1024, 1) - 1].im = c2_c_x[
_SFD_EML_ARRAY_BOUNDS_CHECK("x", _SFD_INTEGER_CHECK("ix", (real_T)c2_ix), 1,
1024, 1) - 1].im;
c2_i1 = 1;
for(c2_b_i = 0; c2_b_i < 1023; c2_b_i = c2_b_i + 2) {
c2_b_a = c2_i1;
c2_i2 = c2_b_a + 1;
c2_temp.re = c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y",
_SFD_INTEGER_CHECK("i2", (real_T)c2_i2), 1, 1024, 1) - 1].re;
c2_temp.im = c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y",
_SFD_INTEGER_CHECK("i2", (real_T)c2_i2), 1, 1024, 1) - 1].im;
c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i2",
(real_T)c2_i2), 1, 1024, 1) - 1].re = c2_b_y[
_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i1", (real_T)c2_i1),
1, 1024, 1) - 1].re - c2_temp.re;
c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i2",
(real_T)c2_i2), 1, 1024, 1) - 1].im = c2_b_y[
_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i1", (real_T)c2_i1),
1, 1024, 1) - 1].im - c2_temp.im;
c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i1",
(real_T)c2_i1), 1, 1024, 1) - 1].re = c2_b_y[
_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i1", (real_T)c2_i1),
1, 1024, 1) - 1].re + c2_temp.re;
c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i1",
(real_T)c2_i1), 1, 1024, 1) - 1].im = c2_b_y[
_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i1", (real_T)c2_i1),
1, 1024, 1) - 1].im + c2_temp.im;
c2_c_a = c2_i2;
c2_i1 = c2_c_a + 1;
}
c2_iDelta = 2;
for(c2_k = 256; (real_T)c2_k > 0.0; c2_k = c2_i8) {
c2_istart = 0;
for(c2_j = 0; c2_j < 512; c2_j = c2_h_a + c2_d_b) {
c2_d_a = c2_istart;
c2_i1 = c2_d_a + 1;
c2_theta = (real_T)c2_j * -6.1359231515425647E-003;
c2_d_x = c2_theta;
c2_e_x = c2_d_x;
c2_e_x = sin(c2_e_x);
c2_f_x = c2_theta;
c2_g_x = c2_f_x;
c2_g_x = cos(c2_g_x);
c2_twid.re = c2_g_x;
c2_twid.im = c2_e_x;
for(c2_c_i = 1; c2_c_i <= c2_k; c2_c_i = c2_c_i + 1) {
c2_e_a = c2_i1;
c2_b_b = c2_iDelta;
c2_i2 = c2_e_a + c2_b_b;
c2_temp.re = c2_twid.re * c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y",
_SFD_INTEGER_CHECK("i2", (real_T)c2_i2), 1, 1024, 1) - 1].re -
c2_twid.im * c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y",
_SFD_INTEGER_CHECK("i2", (real_T)c2_i2), 1, 1024, 1) - 1].im;
c2_temp.im = c2_twid.re * c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y",
_SFD_INTEGER_CHECK("i2", (real_T)c2_i2), 1, 1024, 1) - 1].im +
c2_twid.im * c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y",
_SFD_INTEGER_CHECK("i2", (real_T)c2_i2), 1, 1024, 1) - 1].re;
c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i2",
(real_T)c2_i2), 1, 1024, 1) - 1].re = c2_b_y[
_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i1",
(real_T)c2_i1), 1, 1024, 1) - 1].re - c2_temp.re;
c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i2",
(real_T)c2_i2), 1, 1024, 1) - 1].im = c2_b_y[
_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i1",
(real_T)c2_i1), 1, 1024, 1) - 1].im - c2_temp.im;
c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i1",
(real_T)c2_i1), 1, 1024, 1) - 1].re = c2_b_y[
_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i1",
(real_T)c2_i1), 1, 1024, 1) - 1].re + c2_temp.re;
c2_b_y[_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i1",
(real_T)c2_i1), 1, 1024, 1) - 1].im = c2_b_y[
_SFD_EML_ARRAY_BOUNDS_CHECK("y", _SFD_INTEGER_CHECK("i1",
(real_T)c2_i1), 1, 1024, 1) - 1].im + c2_temp.im;
c2_f_a = c2_i2;
c2_c_b = c2_iDelta;
c2_i1 = c2_f_a + c2_c_b;
}
c2_g_a = c2_istart;
c2_istart = c2_g_a + 1;
c2_h_a = c2_j;
c2_d_b = c2_k;
}
c2_i_a = c2_iDelta;
c2_iDelta = c2_i_a * 2;
c2_d_i = c2_k;
c2_k = c2_d_i;
c2_ui = (uint32_T)c2_k;
c2_u0 = c2_ui >> 1U;
if(c2_u0 > 2147483647U) {
c2_i8 = MAX_int32_T;
} else {
c2_i8 = (int32_T)c2_u0;
}
}
}
static real_T c2_abs(creal_T c2_x)
{
real_T c2_x1;
real_T c2_x2;
real_T c2_a;
real_T c2_b;
real_T c2_b_x;
real_T c2_c_y;
real_T c2_c_x;
real_T c2_d_y;
c2_x1 = c2_x.re;
c2_x2 = c2_x.im;
c2_a = fabs(c2_x1);
c2_b = fabs(c2_x2);
if(c2_a == 0.0) {
return c2_b;
} else if(c2_b == 0.0) {
return c2_a;
} else if(c2_a == c2_b) {
return c2_a * 1.4142135623730951E+000;
} else if(c2_b > c2_a) {
c2_b_x = c2_a;
c2_c_y = c2_b;
c2_a = c2_b_x / c2_c_y;
return c2_b * sqrt(1.0 + c2_a * c2_a);
} else {
c2_c_x = c2_b;
c2_d_y = c2_a;
c2_b = c2_c_x / c2_d_y;
return c2_a * sqrt(1.0 + c2_b * c2_b);
}
}
static real_T c2_mpower(real_T c2_a)
{
real_T c2_b_a;
real_T c2_ak;
c2_b_a = c2_a;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -