Skip to content

Commit

Permalink
Update feature list
Browse files Browse the repository at this point in the history
  • Loading branch information
mhostetter committed Jul 30, 2023
1 parent 23810c4 commit c646940
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 34 deletions.
49 changes: 32 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,24 +34,39 @@ in `sdr`, please open an issue on GitHub.
## Features

- Filters: `sdr.FIR`, `sdr.IIR`
- Pulse shapes: `sdr.raised_cosine()`, `sdr.root_raised_cosine()`, `sdr.gaussian()`
- Arbitrary resamplers: `sdr.FarrowResampler`
- Modulation: `sdr.PSK`, `sdr.diff_encode()`, `sdr.diff_decode()`, `sdr.gray_code()`
- Phase-locked loops: `sdr.NCO`, `sdr.DDS`, `sdr.LoopFilter`, `sdr.ClosedLoopPLL`
- Impairments: `sdr.awgn()`, `sdr.iq_imbalance()`
- Measurement: `sdr.energy()`, `sdr.peak_power()`, `sdr.average_power()`, `sdr.peak_voltage()`,
`sdr.rms_voltage()`, `sdr.papr()`, `sdr.crest_factor()`
- Data manipulation: `sdr.pack()`, `sdr.unpack()`, `sdr.hexdump()`
- Channel models: `sdr.bsc()`, `sdr.bec()`, `sdr.dmc()`
- Link budgets: `sdr.awgn_capacity()`, `sdr.bsc_capacity()`, `sdr.bec_capacity()`,
`sdr.fspl()`, `sdr.parabolic_antenna()`
- Filtering: `sdr.FIR`, `sdr.FIRInterpolator`, `sdr.IIR`
- Resampling: `sdr.FarrowResampler`
- Modulation:
- Classes: `sdr.PSK`
- Pulse shapes: `sdr.raised_cosine()`, `sdr.root_raised_cosine()`, `sdr.gaussian()`
- Symbol mapping: `sdr.binary_code()`, `sdr.gray_code()`
- Symbol encoding: `sdr.diff_encode()`, `sdr.diff_decode()`
- Synchronization: `sdr.NCO`, `sdr.DDS`, `sdr.LoopFilter`, `sdr.ClosedLoopPLL`
- Measurement:
- Energy: `sdr.energy()`
- Power: `sdr.peak_power()`, `sdr.average_power()`, `sdr.papr()`
- Voltage: `sdr.peak_voltage()`, `sdr.rms_voltage()`, `sdr.crest_factor()`
- Errors: `sdr.ErrorRate`
- Conversions:
- From $E_b/N_0$: `sdr.ebn0_to_esn0()`, `sdr.ebn0_to_snr()`
- From $E_s/N_0$: `sdr.esn0_to_ebn0()`, `sdr.esn0_to_snr()`
- From $S/N$: `sdr.snr_to_ebn0()`, `sdr.snr_to_esn0()`
- Simulation:
- Channel models: `sdr.bec()`, `sdr.bsc()`, `sdr.dmc()`
- Signal impairments: `sdr.awgn()`, `sdr.frequency_offset()`, `sdr.sample_rate_offset()`, `sdr.iq_imbalance()`
- Link budgets:
- Channel capacity: `sdr.awgn_capacity()`, `sdr.bec_capacity()`, `sdr.bsc_capacity()`
- Path losses: `sdr.fspl()`
- Antennas: `sdr.parabolic_antenna()`
- Probability: `sdr.Q()`, `sdr.Qinv()`
- Plotting utilities: `sdr.plot.time_domain()`, `sdr.plot.periodogram()`, `sdr.plot.spectrogram()`,
`sdr.plot.filter()`, `sdr.plot.frequency_response()`, `sdr.plot.phase_response()`,
`sdr.plot.phase_delay()`, `sdr.plot.group_delay()`,
`sdr.plot.impulse_response()`, `sdr.plot.step_response()`,
`sdr.plot.zeros_poles()`
- Data manipulation: `sdr.pack()`, `sdr.unpack()`, `sdr.hexdump()`
- Plotting:
- Time-domain: `sdr.plot.time_domain()`
- Frequency domain: `sdr.plot.periodogram()`, `sdr.plot.spectrogram()`
- Modulation: `sdr.plot.ber()`, `sdr.plot.ser()`, `sdr.plot.constellation()`, `sdr.plot.symbol_map()`
- Filters: `sdr.plot.impulse_response()`, `sdr.plot.step_response()`, `sdr.plot.frequency_response()`,
`sdr.plot.phase_response()`, `sdr.plot.phase_delay()`, `sdr.plot.group_delay()`,
`sdr.plot.zeros_poles()`, `sdr.plot.filter()`

## Documentation

Expand Down
49 changes: 32 additions & 17 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,39 @@ in :obj:`sdr`, please open an issue on `GitHub`_.
Features
--------

- Filters: :class:`sdr.FIR`, :class:`sdr.IIR`
- Pulse shapes: :func:`sdr.raised_cosine()`, :func:`sdr.root_raised_cosine()`, :func:`sdr.gaussian()`
- Arbitrary resamplers: :class:`sdr.FarrowResampler`
- Modulation: :class:`sdr.PSK`, :func:`sdr.diff_encode()`, :func:`sdr.diff_decode()`, :func:`sdr.gray_code()`
- Phase-locked loops: :class:`sdr.NCO`, :class:`sdr.DDS`, :class:`sdr.LoopFilter`, :class:`sdr.ClosedLoopPLL`
- Impairments: :func:`sdr.awgn()`, :func:`sdr.iq_imbalance()`
- Measurement: :func:`sdr.energy()`, :func:`sdr.peak_power()`, :func:`sdr.average_power()`, :func:`sdr.peak_voltage()`,
:func:`sdr.rms_voltage()`, :func:`sdr.papr()`, :func:`sdr.crest_factor()`
- Data manipulation: :func:`sdr.pack()`, :func:`sdr.unpack()`, :func:`sdr.hexdump()`
- Channel models: :func:`sdr.bsc()`, :func:`sdr.bec()`, :func:`sdr.dmc()`
- Link budgets: :func:`sdr.awgn_capacity()`, :func:`sdr.bsc_capacity()`, :func:`sdr.bec_capacity()`,
:func:`sdr.fspl()`, :func:`sdr.parabolic_antenna()`
- Filtering: :class:`sdr.FIR`, :class:`sdr.FIRInterpolator`, :class:`sdr.IIR`
- Resampling: :class:`sdr.FarrowResampler`
- Modulation:
- Classes: :class:`sdr.PSK`
- Pulse shapes: :func:`sdr.raised_cosine()`, :func:`sdr.root_raised_cosine()`, :func:`sdr.gaussian()`
- Symbol mapping: :func:`sdr.binary_code()`, :func:`sdr.gray_code()`
- Symbol encoding: :func:`sdr.diff_encode()`, :func:`sdr.diff_decode()`
- Synchronization: :class:`sdr.NCO`, :class:`sdr.DDS`, :class:`sdr.LoopFilter`, :class:`sdr.ClosedLoopPLL`
- Measurement:
- Energy: :func:`sdr.energy()`
- Power: :func:`sdr.peak_power()`, :func:`sdr.average_power()`, :func:`sdr.papr()`
- Voltage: :func:`sdr.peak_voltage()`, :func:`sdr.rms_voltage()`, :func:`sdr.crest_factor()`
- Errors: :class:`sdr.ErrorRate`
- Conversions:
- From $E_b/N_0$: :func:`sdr.ebn0_to_esn0()`, :func:`sdr.ebn0_to_snr()`
- From $E_s/N_0$: :func:`sdr.esn0_to_ebn0()`, :func:`sdr.esn0_to_snr()`
- From $S/N$: :func:`sdr.snr_to_ebn0()`, :func:`sdr.snr_to_esn0()`
- Simulation:
- Channel models: :func:`sdr.bec()`, :func:`sdr.bsc()`, :func:`sdr.dmc()`
- Signal impairments: :func:`sdr.awgn()`, :func:`sdr.frequency_offset()`, :func:`sdr.sample_rate_offset()`, :func:`sdr.iq_imbalance()`
- Link budgets:
- Channel capacity: :func:`sdr.awgn_capacity()`, :func:`sdr.bec_capacity()`, :func:`sdr.bsc_capacity()`
- Path losses: :func:`sdr.fspl()`
- Antennas: :func:`sdr.parabolic_antenna()`
- Probability: :func:`sdr.Q()`, :func:`sdr.Qinv()`
- Plotting utilities: :func:`sdr.plot.time_domain()`, :func:`sdr.plot.periodogram()`, :func:`sdr.plot.spectrogram()`,
:func:`sdr.plot.filter()`, :func:`sdr.plot.frequency_response()`, :func:`sdr.plot.phase_response()`,
:func:`sdr.plot.phase_delay()`, :func:`sdr.plot.group_delay()`,
:func:`sdr.plot.impulse_response()`, :func:`sdr.plot.step_response()`,
:func:`sdr.plot.zeros_poles()`
- Data manipulation: :func:`sdr.pack()`, :func:`sdr.unpack()`, :func:`sdr.hexdump()`
- Plotting:
- Time-domain: :func:`sdr.plot.time_domain()`
- Frequency domain: :func:`sdr.plot.periodogram()`, :func:`sdr.plot.spectrogram()`
- Modulation: :func:`sdr.plot.ber()`, :func:`sdr.plot.ser()`, :func:`sdr.plot.constellation()`, :func:`sdr.plot.symbol_map()`
- Filters: :func:`sdr.plot.impulse_response()`, :func:`sdr.plot.step_response()`, :func:`sdr.plot.frequency_response()`,
:func:`sdr.plot.phase_response()`, :func:`sdr.plot.phase_delay()`, :func:`sdr.plot.group_delay()`,
:func:`sdr.plot.zeros_poles()`, :func:`sdr.plot.filter()`

.. toctree::
:caption: Examples
Expand Down

0 comments on commit c646940

Please sign in to comment.