TDD
/ˌtiː diː ˈdiː/
n. "Single-frequency duplexing alternating uplink/downlink time slots unlike FDD paired spectrum."
TDD, short for Time Division Duplexing, transmits uplink and downlink over identical frequency channel by partitioning time into alternating transmit/receive slots (e.g., Bluetooth 625μs master/slave slots), enabling bidirectional communication without separate bands. Contrasts FHSS constant hopping by fixed-channel TDD within each hop, with guard times preventing TX-to-RX bleed—powers asymmetric traffic like LTE TDD (3:1 DL:UL) and WiFi 6 OFDMA resource units.
Key characteristics of TDD include: Single Frequency shared UL/DL band halves spectrum needs vs FDD; Dynamic Slot Allocation adjusts UL:DL ratio (WiMAX 3:1→1:3); Guard Periods prevent TX/RX switching transients; Frame Synchronization master dictates slot timing; Asymmetric Efficiency suits web browsing (80% DL) unlike voice FDD.
Conceptual example of TDD usage:
/* Bluetooth Classic TDD master/slave slot timing */
#define SLOT_DURATION_US 625
#define GUARD_TIME_US 150 // TX→RX ramp
volatile uint32_t system_clock;
uint8_t is_master = 1;
void tdd_frame() {
// Master TX slot
if (is_master) {
rf_transmit_gfsk(tx_packet, packet_len);
delay_us(SLOT_DURATION_US - GUARD_TIME_US);
rf_switch_to_rx(); // T/R switch
delay_us(GUARD_TIME_US);
// Slave RX→TX response
if (rf_receive(rx_packet, &rx_len, 400)) {
process_rx_packet();
}
} else {
// Slave RX slot
rf_switch_to_rx();
if (rf_receive(rx_packet, &rx_len, 400)) {
rf_transmit_gfsk(tx_packet, rx_len);
}
}
system_clock += SLOT_DURATION_US;
}Conceptually, TDD slices time axis into master TX/slave RX alternation on fixed carrier—Bluetooth piconets synchronize via master's clock while LTE eNodeB broadcasts SFN (System Frame Number) dictating dynamic UL:DL via RRC signaling. Guard periods absorb PA ramp/LO settling unlike FDD duplexers; WiFi 6 TDD OFDMA assigns RUs per slot serving IoT asymmetry where PAN sensors upload sparingly versus streaming DL.