Orthogonal designs for multi-antenna wireless transmission achieving full diversity. Alamouti 2x1 code generalizes to N transmit antennas. Used in 3G/4G/WiFi (IEEE 802.11n/ac). Achieves maximum diversity gain without channel state information at transmitter. Linear decoding complexity with maximum likelihood performance.
| Property | Value |
|---|---|
| Category | Error Correction |
| Sub-category | MIMO Code |
| Security status | π Educational Only |
| Complexity | Advanced |
| Inventor | Vahid Tarokh, Hamid Jafarkhani, A. Robert Calderbank |
| Year | 1998 |
| Origin | πΊπΈ United States |
| Source | algorithms/ecc/space-time-block-code.js |
Status: π Educational Only
| Issue | Description | Mitigation |
|---|---|---|
| Rate-Diversity Tradeoff | Full-rate STBCs only exist for 2 transmit antennas (Alamouti). Higher antenna counts require rate < 1, reducing throughput for diversity gain. | β |
| Complex Symbol Handling | Orthogonal designs using complex conjugation require complex-valued symbols. Real-valued approximations reduce performance. Educational implementation uses real symbols. | β |
| Channel Estimation Dependency | Performance critically depends on accurate channel state information at receiver. Channel estimation errors degrade diversity benefits and can cause incorrect decoding. | β |
| Frequency-Selective Channels | Assumes flat fading per transmission block. Frequency-selective channels require OFDM or other techniques to create parallel flat-fading channels. | β |
8 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 β 2x2 Alamouti STBC: [1, 2] -> Orthogonal matrix
| Field | Value |
|---|---|
config |
{"numTxAntennas":2} |
input |
00010002 |
expected |
00010002fffe0001 |
Vector 2 β 2x2 Alamouti STBC: [3, -1] -> Orthogonal matrix
| Field | Value |
|---|---|
config |
{"numTxAntennas":2} |
input |
0003ffff |
expected |
0003ffff00010003 |
Vector 3 β 2x2 Alamouti STBC: [0, 0] -> Zero matrix
| Field | Value |
|---|---|
config |
{"numTxAntennas":2} |
input |
00000000 |
expected |
0000000000000000 |
Vector 4 β IEEE 802.11n STBC pattern: [5, 7]
| Field | Value |
|---|---|
config |
{"numTxAntennas":2} |
input |
00050007 |
expected |
00050007fff90005 |
Vector 5 β 3GPP LTE STTD pattern: [-3, 4]
| Field | Value |
|---|---|
config |
{"numTxAntennas":2} |
input |
fffd0004 |
expected |
fffd0004fffcfffd |
Vector 6 β Large symbols: [127, -128]
| Field | Value |
|---|---|
config |
{"numTxAntennas":2} |
input |
007fff80 |
expected |
007fff800080007f |
Vector 7 β Multiple symbol blocks: [1, 2, 3, 4]
| Field | Value |
|---|---|
config |
{"numTxAntennas":2} |
input |
0001000200030004 |
expected |
00010002fffe000100030004fffc0003 |
Vector 8 β Orthogonality test: [1, 1]
| Field | Value |
|---|---|
config |
{"numTxAntennas":2} |
input |
00010001 |
expected |
00010001ffff0001 |