============= 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.modem.TransmittingModem` and a :doc:`modem.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:`TransmittingModem._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:`ReceivingModem._receive()` .. literalinclude:: ../scripts/examples/modem_DuplexModem.py :language: python :linenos: :lines: 19-34 For a detailed description of the transmit and receive routines, refer to the :doc:`modem.modem.TransmittingModem` and a :doc:`modem.modem.ReceivingModem` of the base classes. The barebone configuration can be extend by additional components such as :class:`Custom Bit Sources`, :class:`Synchronization`, :class:`Stream Precoding`, :class:`Channel Estimation`, :class:`Symbol Precoding`, :class:`Channel Equalization` and :class:`Bit Encoders`: .. literalinclude:: ../scripts/examples/modem_DuplexModem.py :language: python :linenos: :lines: 26-57 .. autoclass:: hermespy.modem.modem.DuplexModem .. footbibliography::