Difference between revisions of "WAVEFORM"

From ICE Enterprises
Jump to navigation Jump to search
(creates signal waveforms of various shapes)
(creates signal waveforms of various shapes)
 
Line 2: Line 2:
 
<pre>
 
<pre>
 
<out>  Name of output file
 
<out>  Name of output file
<shape> Shape of waveform [DEF=SIN]
 
 
<form>  Format of output file (SF, CF, SB, etc.)
 
<form>  Format of output file (SF, CF, SB, etc.)
 
<elem>  Number of elements in output file
 
<elem>  Number of elements in output file
<rate> Sample rate in Hz
+
<shape> Shape of waveform [DEF=SIN]
<gain> Waveform amplitude (0=nominal for given data type)
+
<amp>   Waveform amplitude
 
<freq>  Waveform (IF) frequency (Hz)
 
<freq>  Waveform (IF) frequency (Hz)
<baud> Waveform BaudRate frequency (Hz)
+
<phase> Waveform phase offset (fractions of a cycle)
 +
<start> Abscissa start time
 +
<delta> Abscissa delta
 +
 
 +
Keyword Only Parameters:
 +
  [CHIRP]    - Chirp the frequency by this accumulated amount at each /TL=n
 +
              boundary. [DEF=0.0]
 +
  [MEAN]    - Adds this amplitude offset to all waveforms. [DEF=0.0]
 +
  [SDEV]    - WhiteNoise standard deviation parameter. [DEF=<amp/log(10)>]
 +
  [VARIANCE] - WhiteNoise variance parameter. [DEF=<sdev**2>]
 +
  [SR]      - Overrides <delta> by specifying Sample Rate in Hz. (Since NeXtMidas 3.3.2)
 +
  [DURATION] - Overrides <ELEM> by specifying the duration of the file in sec.
 +
              Since number of elements must be an integer, this will round up
 +
              to the nearest sample, as required.      (Since NeXtMidas 3.3.1)
 +
 
 +
  [RF]      - Overrides <FREQ> (which is IF) by giving RF of the signal in Hz.
 +
              This must be used with [VRF] and [BW].    (Since NeXtMidas 3.3.1)
 +
  [VRF]      - Center frequency of the simulated tuner in Hz. This is usually
 +
              combined with [RF] and [BW], but can be used on its own as it
 +
              causes the VRF= key to be set in <OUT>.  (Since NeXtMidas 3.3.1)
 +
  [BW]      - Bandwidth of the simulated tuner in Hz. Although intended for use
 +
              with [RF] and [VRF] this can be used on its own as it overrides
 +
              <DELTA>.                                  (Since NeXtMidas 3.3.1)
 +
 
  
 
This primitive generates the following shaped waveforms:
 
This primitive generates the following shaped waveforms:
   Sine    - Sinusoid  
+
   Sine    - Sinusoid with MAX <amp> and MIN of -<amp>
   CoSine  - CoSinusoid  
+
   CoSine  - CoSinusoid with MAX <amp> and MIN of -<amp>
   Square  - Square waveform  
+
   Square  - Square waveform with MAX <amp> and MIN of -<amp>
   Triangle - Triangle waveform  
+
   Triangle - Triangle waveform with MAX <amp> and Min of -<amp>
   SawTooth - Sawtooth or RIGHT triangle waveform
+
   SawTooth - Sawtooth or RIGHT triangle waveform with MAX <amp> and MIN of -<amp>
   Pulse    - Single sample pulse
+
   Pulse    - Single sample pulse of <amp>
   Constant - Constant values given by nominal value adjusted by gain
+
   Constant - Constant values given by <amp>
 
   Zero    - Same as CONSTANT with all zeros
 
   Zero    - Same as CONSTANT with all zeros
 
   LRS      - Efficient noise generator using a linear recursive sequence
 
   LRS      - Efficient noise generator using a linear recursive sequence
 
   White    - White noise algorithm with standard deviation of <sdev>. See note below.
 
   White    - White noise algorithm with standard deviation of <sdev>. See note below.
 
   Ramp    - Ramp that increments by one with MAX <amp>-1 and MIN of -<amp>.
 
   Ramp    - Ramp that increments by one with MAX <amp>-1 and MIN of -<amp>.
  TRamp    - Test Ramp that increments by 3 in the upper byte
+
 
  Notch    - LRS with a notch at <freq>. Use /DFREQ=df to adust width
+
If you want to adjust the RAMP increment using <freq> and <delta>, use SAWTOOTH.
  MixLS    - Mix of LRS and SIN
 
  MuxLS    - Mux of LRS and SIN
 
  MixNS    - Mix of Notch and SIN
 
  BPSK    - 2 Phase Shift Keyed
 
  QPSK    - 4 Phase Shift Keyed
 
  8PSK    - 8 Phase Shift Keyed
 
  16APSK  - 16 Amplitude+Phase Shift Keyed
 
  16QAM    - 16 Quadrature Amplitude Modulation
 
  64QAM    - 64 Quadrature Amplitude Modulation
 
  128QAM  - 128 Quadrature Amplitude Modulation
 
  256QAM  - 256 Quadrature Amplitude Modulation
 
  
 
The most current list of waveforms may be listed as follows:
 
The most current list of waveforms may be listed as follows:
   nM> invoke list=nxm.ice.prim.icewave.shapeList
+
   nM> invoke list nxm.sys.prim.waveform.shapeList
 
   nM> results list
 
   nM> results list
  
Line 44: Line 55:
 
is throttled to be produced at a rate of 1 element per <delta> second(s).
 
is throttled to be produced at a rate of 1 element per <delta> second(s).
 
In the BLOCK mode, no data is produced.
 
In the BLOCK mode, no data is produced.
 +
 +
Note that the data values for White noise will often be 3 to 4 times the stdDev.
 +
Make sure the amplitude/stdDev is scaled correctly for the output data type to
 +
avoid clipping (if necessary).  The command line <amp> is scaled by 1/log(10) to
 +
set the default <sdev>.  If the user supplies both <amp> and <sdev>, the ratio
 +
will be preserved when setting amplitude and shape with realtime widgets.
 +
 +
Note that, unlike X-Midas, the units of the command line <phase> are fractions
 +
of a cycle, that is, 0.5 rather than 180.  The PHASE OFFSET widget is expressed
 +
in terms of fractions of a cycle as well.
  
 
Examples:
 
Examples:
 +
  1. Simulate 10 seconds of a CW signal at 300.1 MHz as it would look in a
 +
    receiver with a bandwidth of 1 MHz that is tuned to 300 MHz.
 +
 +
      nM> WAVEFORM myfile.tmp FORM=CF ELEM=16M SHAPE=SINE &
 +
                              RF=300.1e6 VRF=300e6 BW=1e6 &
 +
                              DURATION=10
 +
    or
 +
 +
      nM> WAVEFORM myfile.tmp FORM=SF ELEM=16M SHAPE=SINE &
 +
                              RF=300.1e6 VRF=300e6 BW=1e6 &
 +
                              DURATION=10
  
 
Switches:
 
Switches:
 +
  /DP              - Use double precision buffers [DEF=single precision] or
 +
                      [DEF=double precision] if <out> is type double]
 +
  /EXACT            - use slower but exact SIN/COS algorithm
 
   /RT              - RealTime mode
 
   /RT              - RealTime mode
 
   /SEED=<num>      - Set seed number [DEF=-1]
 
   /SEED=<num>      - Set seed number [DEF=-1]
 
   /THROTTLE=<mode>  - Data Throttle Mode (RealTime,Full,Block). Overrides /RT.
 
   /THROTTLE=<mode>  - Data Throttle Mode (RealTime,Full,Block). Overrides /RT.
 
   /TL=n            - Transfer Length elements [DEF=4096]
 
   /TL=n            - Transfer Length elements [DEF=4096]
  /FB              - Use page aligned fast buffer
 
  /FB=2            - Repeat first buffer of TL elements for speed tests
 
  /STATS            - Show transfer statistics
 
  /NTAP=n          - Number of taps in filter (notch or mod resampler)
 
  
 
</pre>
 
</pre>
  
[[Category:ICE_Explain]]
+
[[Category:NXM_Explain]]

Latest revision as of 18:05, 27 April 2020

creates signal waveforms of various shapes

<out>   Name of output file
<form>  Format of output file (SF, CF, SB, etc.)
<elem>  Number of elements in output file
<shape> Shape of waveform [DEF=SIN]
<amp>   Waveform amplitude
<freq>  Waveform (IF) frequency (Hz)
<phase> Waveform phase offset (fractions of a cycle)
<start> Abscissa start time
<delta> Abscissa delta

Keyword Only Parameters:
  [CHIRP]    - Chirp the frequency by this accumulated amount at each /TL=n
               boundary. [DEF=0.0]
  [MEAN]     - Adds this amplitude offset to all waveforms. [DEF=0.0]
  [SDEV]     - WhiteNoise standard deviation parameter. [DEF=<amp/log(10)>]
  [VARIANCE] - WhiteNoise variance parameter. [DEF=<sdev**2>]
  [SR]       - Overrides <delta> by specifying Sample Rate in Hz. (Since NeXtMidas 3.3.2)
  [DURATION] - Overrides <ELEM> by specifying the duration of the file in sec.
               Since number of elements must be an integer, this will round up
               to the nearest sample, as required.       (Since NeXtMidas 3.3.1)

  [RF]       - Overrides <FREQ> (which is IF) by giving RF of the signal in Hz.
               This must be used with [VRF] and [BW].    (Since NeXtMidas 3.3.1)
  [VRF]      - Center frequency of the simulated tuner in Hz. This is usually
               combined with [RF] and [BW], but can be used on its own as it
               causes the VRF= key to be set in <OUT>.   (Since NeXtMidas 3.3.1)
  [BW]       - Bandwidth of the simulated tuner in Hz. Although intended for use
               with [RF] and [VRF] this can be used on its own as it overrides
               <DELTA>.                                  (Since NeXtMidas 3.3.1)


This primitive generates the following shaped waveforms:
  Sine     - Sinusoid with MAX <amp> and MIN of -<amp>
  CoSine   - CoSinusoid with MAX <amp> and MIN of -<amp>
  Square   - Square waveform with MAX <amp> and MIN of -<amp>
  Triangle - Triangle waveform with MAX <amp> and Min of -<amp>
  SawTooth - Sawtooth or RIGHT triangle waveform with MAX <amp> and MIN of -<amp>
  Pulse    - Single sample pulse of <amp>
  Constant - Constant values given by <amp>
  Zero     - Same as CONSTANT with all zeros
  LRS      - Efficient noise generator using a linear recursive sequence
  White    - White noise algorithm with standard deviation of <sdev>. See note below.
  Ramp     - Ramp that increments by one with MAX <amp>-1 and MIN of -<amp>.

If you want to adjust the RAMP increment using <freq> and <delta>, use SAWTOOTH.

The most current list of waveforms may be listed as follows:
  nM> invoke list nxm.sys.prim.waveform.shapeList
  nM> results list

The /RT or /THROTTLE= switch can be applied to simulate a throttled data source.
In FULL mode, the primitive runs as fast as it can.  In REALTIME mode the data
is throttled to be produced at a rate of 1 element per <delta> second(s).
In the BLOCK mode, no data is produced.

Note that the data values for White noise will often be 3 to 4 times the stdDev.
Make sure the amplitude/stdDev is scaled correctly for the output data type to
avoid clipping (if necessary).  The command line <amp> is scaled by 1/log(10) to
set the default <sdev>.  If the user supplies both <amp> and <sdev>, the ratio
will be preserved when setting amplitude and shape with realtime widgets.

Note that, unlike X-Midas, the units of the command line <phase> are fractions
of a cycle, that is, 0.5 rather than 180.  The PHASE OFFSET widget is expressed
in terms of fractions of a cycle as well.

Examples:
  1. Simulate 10 seconds of a CW signal at 300.1 MHz as it would look in a
     receiver with a bandwidth of 1 MHz that is tuned to 300 MHz.

       nM> WAVEFORM myfile.tmp FORM=CF ELEM=16M SHAPE=SINE &
                               RF=300.1e6 VRF=300e6 BW=1e6 &
                               DURATION=10
     or

       nM> WAVEFORM myfile.tmp FORM=SF ELEM=16M SHAPE=SINE &
                               RF=300.1e6 VRF=300e6 BW=1e6 &
                               DURATION=10

Switches:
  /DP               - Use double precision buffers [DEF=single precision] or
                      [DEF=double precision] if <out> is type double]
  /EXACT            - use slower but exact SIN/COS algorithm
  /RT               - RealTime mode
  /SEED=<num>       - Set seed number [DEF=-1]
  /THROTTLE=<mode>  - Data Throttle Mode (RealTime,Full,Block). Overrides /RT.
  /TL=n             - Transfer Length elements [DEF=4096]