Configuration of the OFDM modem (OFDMEncoder, OFDMDecoder): the data is transmitted in parallel on carriers subcarriers with differential QPSK (2 bits per carrier and symbol). Each symbol has a cyclic prefix (guard interval) against echoes.
More...
#include <OFDM.h>
|
| | OFDMConfig () |
| bool | setMode (const char *mode) |
| | Selects "ofdm16", "ofdm32" or "ofdm64": returns false if invalid.
|
| int | fftSize () const |
| | length of the useful part of a symbol (DFT size) in samples
|
| int | prefixSize () const |
| | length of the cyclic prefix in samples
|
| int | firstBin () const |
| | DFT bin of the first carrier: even, for the sync symbol.
|
| float | carrierFrequency (int idx) const |
| | frequency of the carrier with the indicated index
|
| float | symbolRate () const |
| | OFDM symbols per second.
|
| float | bitRate () const |
| | data bits per second
|
| bool | isValid () const |
| | Checks the configuration: returns false (and logs the reason) if invalid.
|
|
| static bool | isMode (const char *mode) |
| | true if the mode is an OFDM mode
|
| static int | headerSymbols (int carriers) |
| | Number of symbols of the header (32 bits, one bit per carrier).
|
| static int | knownPhase (int symbol, int carrier) |
|
| int | carriers = 32 |
| | number of carriers (4 - 128)
|
| float | carrier_spacing = 62.5f |
| | distance of the carriers in Hz
|
| float | first_freq = 1000.0f |
| | frequency of the first carrier in Hz
|
| float | guard = 0.25f |
| | length of the cyclic prefix relative to the symbol (0.0 - 0.5)
|
| float | volume = 1.0f |
| | transmit amplitude (0.0 - 1.0)
|
| int | max_frame = 512 |
| | transmitter: max number of bytes per frame
|
| float | sync_threshold = 0.5f |
| | receiver: minimum normalized correlation of the sync symbol
|
| bool | rx_one = false |
| | receiver: stop after the first frame
|
| uint8_t | channel = 0 |
| | receiver: input channel which is used for the decoding
|
| float | rx_noise = 0.0f |
| | receiver: (testing only) amplitude of added uniform noise
|
Configuration of the OFDM modem (OFDMEncoder, OFDMDecoder): the data is transmitted in parallel on carriers subcarriers with differential QPSK (2 bits per carrier and symbol). Each symbol has a cyclic prefix (guard interval) against echoes.
setMode() selects "ofdm16", "ofdm32" or "ofdm64": all use the band from 1000 Hz to about 3000 Hz and transmit 3200 bit/s. More carriers result in longer symbols with a longer guard interval.
- Copyright
- GPLv3
◆ OFDMConfig()
| tinymodem::OFDMConfig::OFDMConfig |
( |
| ) |
|
|
inline |
◆ bitRate()
| float tinymodem::OFDMConfig::bitRate |
( |
| ) |
const |
|
inline |
◆ carrierFrequency()
| float tinymodem::OFDMConfig::carrierFrequency |
( |
int | idx | ) |
const |
|
inline |
frequency of the carrier with the indicated index
◆ fftSize()
| int tinymodem::OFDMConfig::fftSize |
( |
| ) |
const |
|
inline |
length of the useful part of a symbol (DFT size) in samples
◆ firstBin()
| int tinymodem::OFDMConfig::firstBin |
( |
| ) |
const |
|
inline |
DFT bin of the first carrier: even, for the sync symbol.
◆ headerSymbols()
| int tinymodem::OFDMConfig::headerSymbols |
( |
int | carriers | ) |
|
|
inlinestatic |
Number of symbols of the header (32 bits, one bit per carrier).
◆ isMode()
| bool tinymodem::OFDMConfig::isMode |
( |
const char * | mode | ) |
|
|
inlinestatic |
true if the mode is an OFDM mode
◆ isValid()
| bool tinymodem::OFDMConfig::isValid |
( |
| ) |
const |
|
inline |
Checks the configuration: returns false (and logs the reason) if invalid.
◆ knownPhase()
| int tinymodem::OFDMConfig::knownPhase |
( |
int | symbol, |
|
|
int | carrier ) |
|
inlinestatic |
Known phase (0 - 3, in steps of 90 degrees) of a carrier in the sync (symbol = 0) and reference (symbol = 1) symbols
◆ modeCarriers()
| int tinymodem::OFDMConfig::modeCarriers |
( |
const char * | mode | ) |
|
|
inlinestaticprotected |
◆ prefixSize()
| int tinymodem::OFDMConfig::prefixSize |
( |
| ) |
const |
|
inline |
length of the cyclic prefix in samples
◆ setMode()
| bool tinymodem::OFDMConfig::setMode |
( |
const char * | mode | ) |
|
|
inline |
Selects "ofdm16", "ofdm32" or "ofdm64": returns false if invalid.
◆ symbolRate()
| float tinymodem::OFDMConfig::symbolRate |
( |
| ) |
const |
|
inline |
◆ carrier_spacing
| float tinymodem::OFDMConfig::carrier_spacing = 62.5f |
distance of the carriers in Hz
◆ carriers
| int tinymodem::OFDMConfig::carriers = 32 |
number of carriers (4 - 128)
◆ channel
| uint8_t tinymodem::OFDMConfig::channel = 0 |
receiver: input channel which is used for the decoding
◆ first_freq
| float tinymodem::OFDMConfig::first_freq = 1000.0f |
frequency of the first carrier in Hz
◆ guard
| float tinymodem::OFDMConfig::guard = 0.25f |
length of the cyclic prefix relative to the symbol (0.0 - 0.5)
◆ max_frame
| int tinymodem::OFDMConfig::max_frame = 512 |
transmitter: max number of bytes per frame
◆ rx_noise
| float tinymodem::OFDMConfig::rx_noise = 0.0f |
receiver: (testing only) amplitude of added uniform noise
◆ rx_one
| bool tinymodem::OFDMConfig::rx_one = false |
receiver: stop after the first frame
◆ sync_threshold
| float tinymodem::OFDMConfig::sync_threshold = 0.5f |
receiver: minimum normalized correlation of the sync symbol
◆ volume
| float tinymodem::OFDMConfig::volume = 1.0f |
transmit amplitude (0.0 - 1.0)
The documentation for this struct was generated from the following file: