Rectangular¶
The recangular waveform is a single-carrier modulation scheme filtering the communication symbols with rectangle pulse shape:
( |
( |
The waveform can be configured by specifying the number of number of data- and preamble symbols contained within each frame, as well as the considered symbol rate:
1# Initialize the waveform description
2waveform = RectangularWaveform(
3 oversampling_factor=4,
4 symbol_rate=1e6,
5 num_preamble_symbols=16,
6 num_data_symbols=32,
7 modulation_order=64,
8)
Afterwards, additional processing steps such as synchronization, channel estimation, equalization, and the pilot symbol sequence can be added to the waveform:
1# Configure the waveform's synchronization routine
2waveform.synchronization = SingleCarrierCorrelationSynchronization()
3
4# Configure the waveform's channel estimation routine
5waveform.channel_estimation = SingleCarrierLeastSquaresChannelEstimation()
6
7# Configure the waveform's channel equalization routine
8waveform.channel_equalization = SingleCarrierZeroForcingChannelEqualization()
9
10# Configure the waveform's pilot symbol sequence
11waveform.pilot_symbol_sequence = CustomPilotSymbolSequence(
12 np.exp(.25j * np.pi * np.array([0, 1, 2, 3]))
13)
In order to generate and evaluate communication transmissions or receptions, waveforms should be added to modem
implementations.
Refer to Transmitting Modem, Receiving Modem or Simplex Link for more information.
For instructions how to implement custom waveforms, refer to Implementing Communication Waveforms.
- class RectangularWaveform(relative_bandwidth=1.0, *args, **kwargs)[source]¶
Bases:
FilteredSingleCarrierWaveform
,Serializable
Rectangular filtered single carrier modulation.
- Parameters:
symbol_rate (float) – Rate at which symbols are being generated in Hz.
num_preamble_symbols (int) – Number of preamble symbols within a single communication frame.
num_data_symbols (int) – Number of data symbols within a single communication frame.
num_postamble_symbols (int, optional) – Number of postamble symbols within a single communication frame.
guard_interval (float, optional) – Guard interval between communication frames in seconds. Zero by default.
oversampling_factor (int, optional) – The oversampling factor of the waform.
pilot_rate (int, optional) – Pilot symbol rate. Zero by default, i.e. no pilot symbols.
pilot_symbol_sequence (Optional[PilotSymbolSequence], optional) – The configured pilot symbol sequence. Uniform by default.
repeat_pilot_symbol_sequence (bool, optional) – Allow the repetition of pilot symbol sequences. Enabled by default.
kwargs (Any) – Waveform generator base class initialization parameters.
- property bandwidth: float¶
Bandwidth of the frame generated by this generator.
Used to estimate the minimal sampling frequency required to adequately simulate the scenario.
- Returns:
Bandwidth in Hz.
- Return type:
- property relative_bandwidth: float¶
Bandwidth relative to the configured symbol rate.
- Raises:
ValueError – On values smaller or equal to zero.
- yaml_tag: Optional[str] = 'SC-Rectangular'¶
YAML serialization tag