============= Duplex Modem ============= .. inheritance-diagram:: hermespy.modem.modem.DuplexModem :parts: 1 :top-classes: hermespy.core.device.Receiver, hermespy.core.device.Transmitter, hermespy.modem.modem.BaseModem Duplex modems represent the signal processing chain of a communication device simulatenously transmitting and receiving information, implementing the digital signal processing before digital-to-analog conversion and after analog-to-digital conversion, respectively. They are a combination of a :doc:`modem.TransmittingModem` and a :doc:`modem.ReceivingModem`. After a :class:`DuplexModem` is added as a type of :class:`Transmitter` to a :class:`Device`, a call to :meth:`Device.transmit` will be delegated to :meth:`TransmittingModemBase._transmit()`. Similarly, after a :class:`DuplexModem` is added as a type of :class:`Receiver` to a :class:`Device`, a call to :meth:`Device.receive` will be delegated to :meth:`ReceivingModemBase._receive()` .. literalinclude:: ../../scripts/examples/modem_DuplexModem.py :language: python :linenos: :lines: 19-35 For a detailed description of the transmit and receive routines, refer to the :doc:`modem.TransmittingModem` and a :doc:`modem.ReceivingModem` of the base classes. The barebone configuration can be extend by additional components such as :class:`Custom Bit Sources`, :class:`Synchronization`, :class:`TransmitSignalCoding`, :class:`ReceiveSignalCoding`, :class:`Channel Estimation`, :class:`TransmitSymbolCoding`, :class:`ReceiveSymbolCoding`, :class:`Channel Equalization` and :class:`Bit Encoders`: .. literalinclude:: ../../scripts/examples/modem_DuplexModem.py :language: python :linenos: :lines: 37-59 .. autoclass:: hermespy.modem.modem.DuplexModem .. footbibliography::