Root Raised Cosine#

Inheritance diagram of hermespy.modem.waveform_single_carrier.RootRaisedCosineWaveform

The root raised cosine waveform is a single-carrier modulation scheme filtering the communication symbols with a root-raised cosine pulse shape:

Pulse Properties#

(Source code, png, hires.png, pdf)


(Source code, png, hires.png, pdf)


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 = RootRaisedCosineWaveform(
3    oversampling_factor=4,
4    symbol_rate=1e6,
5    num_preamble_symbols=16,
6    num_data_symbols=32,
7    modulation_order=64,
8    roll_off=.9,

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()
 4# Configure the waveform's channel estimation routine
 5waveform.channel_estimation = SingleCarrierLeastSquaresChannelEstimation()
 7# Configure the waveform's channel equalization routine
 8waveform.channel_equalization = SingleCarrierZeroForcingChannelEqualization()
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]))

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 RootRaisedCosineWaveform(*args, **kwargs)[source]#

Bases: RolledOffSingleCarrierWaveform, Serializable

Root-Raised-Cosine filtered single carrier modulation.

  • relative_bandwidth (float, optional) – Bandwidth relative to the configured symbol rate. One by default, meaning the pulse bandwidth is equal to the symbol rate in Hz, assuming zero roll_off.

  • roll_off (float, optional) – Filter pulse shape roll off factor between zero and one. Zero by default, meaning no inter-symbol interference at the sampling instances.

  • filter_length (float, optional) – Filter length in modulation symbols. 16 by default.

yaml_tag: Optional[str] = 'SC-RootRaisedCosine'#

YAML serialization tag