123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- //
- // Academic License - for use in teaching, academic research, and meeting
- // course requirements at degree granting institutions only. Not for
- // government, commercial, or other organizational use.
- // File: AbstractLinearFMWaveform.cpp
- //
- // MATLAB Coder version : 5.3
- // C/C++ source code generated on : 27-Apr-2023 00:24:12
- //
- // Include Files
- #include "AbstractLinearFMWaveform301.h"
- #include "../rt_nonfinite.h"
- #include "../coder_array.h"
- #include <cmath>
- #include <math.h>
- // Function Definitions
- //
- // Arguments : ::coder::array<creal_T, 1U> &wav
- // Return Type : void
- //
- namespace coder {
- namespace phased {
- void AbstractLinearFMWaveform301::getMatchingWaveform(
- ::coder::array<creal_T, 1U> &wav)
- {
- array<creal_T, 1U> b_x;
- array<creal_T, 1U> x;
- array<double, 1U> b;
- double r;
- int exponent;
- frexp(20000.0, &exponent);
- b.set_size(20000);
- for (exponent = 0; exponent < 20000; exponent++) {
- r = static_cast<double>(exponent) / 2.0E+10;
- b[exponent] = r * r;
- }
- x.set_size(20000);
- for (exponent = 0; exponent < 20000; exponent++) {
- x[exponent].re = 0.0;
- x[exponent].im = b[exponent] * 3.141592653589793E+15;
- }
- b_x.set_size(20000);
- for (exponent = 0; exponent < 20000; exponent++) {
- if (x[exponent].im == 0.0) {
- x[exponent].re = std::exp(x[exponent].re);
- x[exponent].im = 0.0;
- } else if (std::isinf(x[exponent].im) && std::isinf(x[exponent].re) &&
- (x[exponent].re < 0.0)) {
- x[exponent].re = 0.0;
- x[exponent].im = 0.0;
- } else {
- r = std::exp(x[exponent].re / 2.0);
- x[exponent].re = r * (r * std::cos(x[exponent].im));
- x[exponent].im = r * (r * std::sin(x[exponent].im));
- }
- b_x[exponent].re = 0.0;
- b_x[exponent].im = 0.0;
- }
- for (exponent = 0; exponent < 20000; exponent++) {
- if (b_x[exponent].im == 0.0) {
- b_x[exponent].re = std::exp(b_x[exponent].re);
- b_x[exponent].im = 0.0;
- } else if (std::isinf(b_x[exponent].im) && std::isinf(b_x[exponent].re) &&
- (b_x[exponent].re < 0.0)) {
- b_x[exponent].re = 0.0;
- b_x[exponent].im = 0.0;
- } else {
- r = std::exp(b_x[exponent].re / 2.0);
- b_x[exponent].re = r * (r * std::cos(b_x[exponent].im));
- b_x[exponent].im = r * (r * std::sin(b_x[exponent].im));
- }
- }
- wav.set_size(20000);
- for (exponent = 0; exponent < 20000; exponent++) {
- double d;
- double d1;
- double d2;
- r = x[exponent].re;
- d = b_x[exponent].im;
- d1 = x[exponent].im;
- d2 = b_x[exponent].re;
- wav[exponent].re = r * d2 - d1 * d;
- wav[exponent].im = r * d + d1 * d2;
- }
- }
- } // namespace phased
- } // namespace coder
- //
- // File trailer for AbstractLinearFMWaveform.cpp
- //
- // [EOF]
- //
|