Radar (Radio Detection And Ranging) uses transmitted electromagnetic waves and their echoes to detect, locate, and characterize targets. Modern automotive and military radar systems are among the most demanding signal-processing applications, requiring real-time processing of 3D point clouds at millimeter precision.
FMCW (Frequency Modulated Continuous Wave) is the dominant waveform for short-to-medium range radar. A linear chirp sweeps bandwidth B over time T; mixing the echo with the transmitted signal produces a beat frequency fb proportional to range (R = c·fb·T/2B). A 2D FFT over fast-time (range) and slow-time (Doppler) dimensions produces the Range-Doppler map showing both position and velocity of targets simultaneously.
Phased arrays steer beams electronically by applying differential phase shifts across antenna elements, achieving millisecond beam switching versus mechanical seconds. MIMO radar multiplies virtual aperture: Tx_count × Rx_count virtual elements dramatically improve angular resolution without additional hardware.
CFAR (Constant False Alarm Rate) detection adaptively thresholds the range-Doppler map by estimating local noise from surrounding cells. CA-CFAR averages reference cells; OS-CFAR (ordered statistic) is more robust to clutter edges. The goal is constant false alarm probability regardless of varying noise floor.
Key waveform parameters: Range resolution ΔR = c/2B (finer with wider bandwidth); velocity resolution Δv = λ/2NT; maximum unambiguous range Rmax = c·T/2; maximum unambiguous velocity vmax = λ/4T. These create fundamental trade-offs: wider bandwidth → better range resolution but more ADC bandwidth; longer coherent integration → better velocity resolution but slower update rate.
AI/ML context: Deep learning is transforming radar signal processing at every layer. CNNs classify targets from micro-Doppler signatures (pedestrian gait, hand gestures). PointNet architectures process sparse radar point clouds. Transformer-based sensor fusion combines radar, LiDAR, and camera for L4 autonomous driving. Radar SoCs (TI AWR, NXP S32R) now integrate ARM cores with hardware accelerators for on-chip neural network inference.
<svg viewBox="0 0 760 470" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Radar — range-Doppler processing, FMCW waveform, phased array architecture, AI radar context">
<defs>
<style>text{font-family:ui-monospace,'Cascadia Code',SFMono-Regular,Consolas,monospace;fill:#c9d1d9}.dim{fill:#8b949e}.hdr{font-size:12px;font-weight:700;fill:#e6edf3}.lrg{font-size:11px;fill:#e6edf3;font-weight:700}.med{font-size:10px}.sm{font-size:9px}</style>
<marker id="rdr_arr" markerWidth="7" markerHeight="7" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6" fill="#8b949e"/></marker>
<marker id="rdr_garr" markerWidth="7" markerHeight="7" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6" fill="#3fb950"/></marker>
<marker id="rdr_barr" markerWidth="7" markerHeight="7" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6" fill="#388bfd"/></marker>
<marker id="rdr_yarr" markerWidth="7" markerHeight="7" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6" fill="#d29922"/></marker>
</defs>
<rect width="760" height="470" fill="#0d1117"/>
<!-- PANEL 1: FMCW Waveform + Range Processing (x=8,y=8,w=234,h=290) -->
<rect x="8" y="8" width="234" height="290" rx="6" fill="#161b22"/>
<text x="125" y="27" text-anchor="middle" class="hdr">FMCW Waveform + Range</text>
<!-- FMCW chirp diagram -->
<text x="18" y="44" class="sm" fill="#e6edf3" font-weight="700">TX Chirp (Frequency vs Time):</text>
<!-- Axes -->
<line x1="28" y1="100" x2="28" y2="52" stroke="#30363d" stroke-width="1" marker-end="url(#rdr_arr)"/>
<line x1="28" y1="100" x2="220" y2="100" stroke="#30363d" stroke-width="1" marker-end="url(#rdr_arr)"/>
<text x="221" y="103" class="sm dim">t</text>
<text x="20" y="50" class="sm dim">f</text>
<!-- TX chirp ramp (green) -->
<line x1="30" y1="98" x2="120" y2="55" stroke="#3fb950" stroke-width="2"/>
<line x1="120" y1="55" x2="120" y2="98" stroke="#3fb950" stroke-width="1" stroke-dasharray="3,2"/>
<line x1="120" y1="98" x2="210" y2="55" stroke="#3fb950" stroke-width="2"/>
<text x="60" y="92" class="sm" fill="#3fb950">TX</text>
<!-- RX chirp (delayed, blue) -->
<line x1="44" y1="98" x2="134" y2="55" stroke="#388bfd" stroke-width="2" stroke-dasharray="4,2"/>
<text x="160" y="92" class="sm" fill="#388bfd">RX (delayed τ)</text>
<!-- Beat frequency annotation -->
<line x1="80" y1="80" x2="80" y2="72" stroke="#d29922" stroke-width="1"/>
<line x1="90" y1="80" x2="90" y2="80" stroke="#d29922" stroke-width="1"/>
<line x1="80" y1="76" x2="90" y2="76" stroke="#d29922" stroke-width="1.5"/>
<text x="94" y="78" class="sm" fill="#d29922">fb</text>
<!-- Labels -->
<text x="28" y="112" class="sm dim">T = chirp period</text>
<text x="28" y="124" class="sm" fill="#388bfd">τ = 2R/c (round-trip delay)</text>
<text x="28" y="136" class="sm" fill="#d29922">fb = (B/T)·τ (beat freq)</text>
<text x="28" y="148" class="sm" fill="#3fb950">R = (c·fb·T)/(2B)</text>
<text x="28" y="160" class="sm dim">B = bandwidth; c = 3×10⁸ m/s</text>
<!-- Range resolution -->
<rect x="18" y="168" width="214" height="60" rx="3" fill="#0d1117" stroke="#30363d"/>
<text x="125" y="183" text-anchor="middle" class="sm" fill="#e6edf3" font-weight="700">Range Resolution</text>
<text x="125" y="197" text-anchor="middle" class="sm" fill="#3fb950">ΔR = c / (2B)</text>
<text x="28" y="211" class="sm dim">77 GHz, B=4 GHz → ΔR = 3.75 cm</text>
<text x="28" y="223" class="sm dim">24 GHz, B=250 MHz → ΔR = 60 cm</text>
<!-- Processing chain -->
<text x="18" y="242" class="sm" fill="#e6edf3" font-weight="700">FMCW Signal Chain:</text>
<rect x="18" y="248" width="38" height="16" rx="2" fill="#0d2d0d" stroke="#3fb950" stroke-width="1"/>
<text x="37" y="259" text-anchor="middle" class="sm" fill="#3fb950">TX</text>
<line x1="56" y1="256" x2="64" y2="256" stroke="#8b949e" stroke-width="1" marker-end="url(#rdr_arr)"/>
<rect x="64" y="248" width="38" height="16" rx="2" fill="#1c2d0d" stroke="#d29922" stroke-width="1"/>
<text x="83" y="259" text-anchor="middle" class="sm" fill="#d29922">Mix</text>
<line x1="102" y1="256" x2="110" y2="256" stroke="#8b949e" stroke-width="1" marker-end="url(#rdr_arr)"/>
<rect x="110" y="248" width="38" height="16" rx="2" fill="#0d1930" stroke="#388bfd" stroke-width="1"/>
<text x="129" y="259" text-anchor="middle" class="sm" fill="#388bfd">ADC</text>
<line x1="148" y1="256" x2="156" y2="256" stroke="#8b949e" stroke-width="1" marker-end="url(#rdr_arr)"/>
<rect x="156" y="248" width="54" height="16" rx="2" fill="#1f1a0d" stroke="#d29922" stroke-width="1"/>
<text x="183" y="259" text-anchor="middle" class="sm" fill="#d29922">FFT→CFAR</text>
<!-- RX label below mix -->
<text x="83" y="278" text-anchor="middle" class="sm dim">↑ RX</text>
<line x1="83" y1="272" x2="83" y2="265" stroke="#8b949e" stroke-width="1"/>
<text x="18" y="294" class="sm dim">Range-FFT → Doppler-FFT → CFAR detect</text>
<!-- PANEL 2: Range-Doppler Map (x=250,y=8,w=244,h=290) -->
<rect x="250" y="8" width="244" height="290" rx="6" fill="#161b22"/>
<text x="372" y="27" text-anchor="middle" class="hdr">Range-Doppler Map</text>
<!-- 2D heatmap grid for Range-Doppler -->
<text x="262" y="44" class="sm dim">Doppler (velocity) →</text>
<text x="262" y="56" class="sm dim" transform="rotate(-90,262,150)">Range →</text>
<!-- Grid background -->
<rect x="278" y="60" width="200" height="210" fill="#0d1117" stroke="#30363d" stroke-width="1"/>
<!-- Heatmap cells (simulated targets) -->
<!-- Background noise floor (dim cells) -->
<rect x="278" y="60" width="200" height="210" fill="url(#rdr_noise)" opacity="0.3"/>
<!-- Simulated target 1: stationary car, mid-range -->
<rect x="338" y="140" width="20" height="14" rx="1" fill="#ff7b72" opacity="0.95"/>
<rect x="328" y="136" width="40" height="22" rx="2" fill="#ff7b72" opacity="0.35"/>
<!-- Simulated target 2: oncoming vehicle -->
<rect x="418" y="108" width="16" height="14" rx="1" fill="#d29922" opacity="0.95"/>
<rect x="410" y="104" width="32" height="22" rx="2" fill="#d29922" opacity="0.3"/>
<!-- Simulated target 3: pedestrian, near -->
<rect x="310" y="230" width="10" height="10" rx="1" fill="#3fb950" opacity="0.9"/>
<rect x="305" y="226" width="20" height="18" rx="2" fill="#3fb950" opacity="0.25"/>
<!-- Simulated clutter (ground) -->
<rect x="278" y="256" width="200" height="14" rx="1" fill="#388bfd" opacity="0.2"/>
<text x="378" y="267" text-anchor="middle" class="sm" fill="#388bfd" opacity="0.8">ground clutter</text>
<!-- Zero-Doppler line -->
<line x1="372" y1="60" x2="372" y2="270" stroke="#8b949e" stroke-width="1" stroke-dasharray="4,3"/>
<text x="374" y="73" class="sm dim">v=0</text>
<!-- Axes labels -->
<text x="278" y="58" class="sm dim">-vmax</text>
<text x="448" y="58" class="sm dim">+vmax</text>
<text x="262" y="78" class="sm dim">R_max</text>
<text x="262" y="268" class="sm dim">R_min</text>
<!-- Target annotations -->
<text x="362" y="135" class="sm" fill="#ff7b72">Car (0m/s)</text>
<text x="436" y="103" class="sm" fill="#d29922">Oncoming</text>
<text x="299" y="222" class="sm" fill="#3fb950">Ped.</text>
<!-- Doppler equations -->
<text x="262" y="284" class="sm" fill="#d29922">fd = 2·v·fc/c (Doppler shift)</text>
<text x="262" y="296" class="sm" fill="#3fb950">Δv = λ/(2·N·T) (velocity res.)</text>
<!-- PANEL 3: Phased Array Architecture (x=502,y=8,w=250,h=290) -->
<rect x="502" y="8" width="250" height="290" rx="6" fill="#161b22"/>
<text x="627" y="27" text-anchor="middle" class="hdr">Phased Array + MIMO</text>
<!-- Phased array elements -->
<text x="514" y="44" class="sm" fill="#e6edf3" font-weight="700">TX Phased Array (4-element):</text>
<!-- 4 antenna elements with phase shifters -->
<rect x="514" y="52" width="28" height="14" rx="2" fill="#0d2d0d" stroke="#3fb950" stroke-width="1"/>
<text x="528" y="62" text-anchor="middle" class="sm" fill="#3fb950">PA</text>
<rect x="514" y="70" width="28" height="12" rx="2" fill="#1c2d0d" stroke="#d29922" stroke-width="1"/>
<text x="528" y="79" text-anchor="middle" class="sm" fill="#d29922">φ1</text>
<line x1="528" y1="82" x2="528" y2="90" stroke="#8b949e" stroke-width="1" marker-end="url(#rdr_arr)"/>
<text x="530" y="100" class="sm dim">ant</text>
<rect x="554" y="52" width="28" height="14" rx="2" fill="#0d2d0d" stroke="#3fb950" stroke-width="1"/>
<text x="568" y="62" text-anchor="middle" class="sm" fill="#3fb950">PA</text>
<rect x="554" y="70" width="28" height="12" rx="2" fill="#1c2d0d" stroke="#d29922" stroke-width="1"/>
<text x="568" y="79" text-anchor="middle" class="sm" fill="#d29922">φ2</text>
<line x1="568" y1="82" x2="568" y2="90" stroke="#8b949e" stroke-width="1" marker-end="url(#rdr_arr)"/>
<text x="570" y="100" class="sm dim">ant</text>
<rect x="594" y="52" width="28" height="14" rx="2" fill="#0d2d0d" stroke="#3fb950" stroke-width="1"/>
<text x="608" y="62" text-anchor="middle" class="sm" fill="#3fb950">PA</text>
<rect x="594" y="70" width="28" height="12" rx="2" fill="#1c2d0d" stroke="#d29922" stroke-width="1"/>
<text x="608" y="79" text-anchor="middle" class="sm" fill="#d29922">φ3</text>
<line x1="608" y1="82" x2="608" y2="90" stroke="#8b949e" stroke-width="1" marker-end="url(#rdr_arr)"/>
<text x="610" y="100" class="sm dim">ant</text>
<rect x="634" y="52" width="28" height="14" rx="2" fill="#0d2d0d" stroke="#3fb950" stroke-width="1"/>
<text x="648" y="62" text-anchor="middle" class="sm" fill="#3fb950">PA</text>
<rect x="634" y="70" width="28" height="12" rx="2" fill="#1c2d0d" stroke="#d29922" stroke-width="1"/>
<text x="648" y="79" text-anchor="middle" class="sm" fill="#d29922">φ4</text>
<line x1="648" y1="82" x2="648" y2="90" stroke="#8b949e" stroke-width="1" marker-end="url(#rdr_arr)"/>
<text x="650" y="100" class="sm dim">ant</text>
<!-- Beam steering arrows -->
<text x="514" y="112" class="sm dim">Phase taper → steers beam angle θ</text>
<text x="514" y="124" class="sm" fill="#d29922">θ = arcsin(Δφ·λ/(2π·d))</text>
<!-- MIMO concept -->
<line x1="514" y1="134" x2="742" y2="134" stroke="#30363d" stroke-width="1"/>
<text x="514" y="148" class="sm" fill="#388bfd" font-weight="700">MIMO Virtual Aperture:</text>
<text x="514" y="160" class="sm dim">Tx antennas × Rx antennas</text>
<text x="514" y="172" class="sm dim">= virtual elements (angle res. ↑)</text>
<text x="514" y="184" class="sm" fill="#388bfd">4Tx × 4Rx = 16 virtual elements</text>
<text x="514" y="196" class="sm dim">Angular res. θ_res = λ/(N_virtual·d)</text>
<!-- Frequency bands table -->
<line x1="514" y1="204" x2="742" y2="204" stroke="#30363d" stroke-width="1"/>
<text x="514" y="218" class="sm" fill="#e6edf3" font-weight="700">Radar Frequency Bands:</text>
<text x="514" y="232" class="sm dim">24 GHz ISM:</text>
<text x="596" y="232" class="sm">parking sensors, SRR</text>
<text x="514" y="246" class="sm dim">77 GHz auto:</text>
<text x="596" y="246" class="sm" fill="#3fb950">ACC, AEB, L3/L4 ADAS</text>
<text x="514" y="260" class="sm dim">94 GHz W-band:</text>
<text x="596" y="260" class="sm">high-res imaging</text>
<text x="514" y="274" class="sm dim">300 GHz D-band:</text>
<text x="596" y="274" class="sm">sub-mm research</text>
<text x="514" y="288" class="sm dim">AESA defense:</text>
<text x="596" y="288" class="sm">L/S/X/Ku bands</text>
<!-- CARD 1: CFAR Detection -->
<rect x="8" y="305" width="234" height="158" rx="6" fill="#161b22"/>
<text x="125" y="322" text-anchor="middle" class="hdr">CFAR Detection</text>
<text x="18" y="338" class="sm" fill="#3fb950" font-weight="700">CA-CFAR (Cell-Averaging):</text>
<text x="18" y="352" class="sm dim">Estimate noise from guard + reference cells</text>
<text x="18" y="364" class="sm dim">Threshold = α × mean(reference cells)</text>
<text x="18" y="376" class="sm dim">Detect if CUT > threshold (const. FA rate)</text>
<text x="18" y="388" class="sm" fill="#d29922" font-weight="700">OS-CFAR (Ordered Statistic):</text>
<text x="18" y="400" class="sm dim">Sort cells, take k-th order stat as threshold</text>
<text x="18" y="412" class="sm dim">Robust to clutter edges + interferers</text>
<text x="18" y="424" class="sm" fill="#388bfd" font-weight="700">AI-CFAR (Deep learning):</text>
<text x="18" y="436" class="sm dim">CNN replaces hand-crafted threshold rule</text>
<text x="18" y="448" class="sm dim">Learns clutter statistics from training data</text>
<text x="18" y="460" class="sm dim">3dB lower detection threshold at same PFA</text>
<!-- CARD 2: Radar Equation -->
<rect x="250" y="305" width="244" height="158" rx="6" fill="#161b22"/>
<text x="372" y="322" text-anchor="middle" class="hdr">Radar Equation + Parameters</text>
<text x="260" y="338" class="sm" fill="#3fb950" font-weight="700">Radar Range Equation:</text>
<text x="260" y="352" class="sm" fill="#3fb950">Pr = Pt·Gt·Gr·λ²·σ / (4π)³·R⁴·L</text>
<text x="260" y="368" class="sm dim">Pt: transmit power (dBm)</text>
<text x="260" y="380" class="sm dim">G: antenna gain (dBi)</text>
<text x="260" y="392" class="sm dim">σ: target RCS (m²)</text>
<text x="260" y="404" class="sm dim">R: range (m) — note R⁴ dependence!</text>
<text x="260" y="416" class="sm dim">L: system losses (dB)</text>
<text x="260" y="428" class="sm" fill="#d29922" font-weight="700">Key metrics:</text>
<text x="260" y="440" class="sm dim">SNR = Pr / (kTBF) — sets Pd/PFA</text>
<text x="260" y="452" class="sm dim">RCS of car: ~10 m², pedestrian: ~0.1 m²</text>
<text x="260" y="464" class="sm dim">ROC curve: Pd vs PFA tradeoff</text>
<!-- CARD 3: AI Radar -->
<rect x="502" y="305" width="250" height="158" rx="6" fill="#161b22"/>
<text x="627" y="322" text-anchor="middle" class="hdr">AI-Augmented Radar</text>
<text x="514" y="338" class="sm" fill="#3fb950" font-weight="700">Object classification:</text>
<text x="514" y="352" class="sm dim">PointNet on radar point cloud: car/ped/cyclist</text>
<text x="514" y="364" class="sm dim">Micro-Doppler CNN: breathing, gait, gesture</text>
<text x="514" y="376" class="sm" fill="#388bfd" font-weight="700">Sensor fusion (ADAS):</text>
<text x="514" y="388" class="sm dim">Radar + LiDAR + Camera → transformer fusion</text>
<text x="514" y="400" class="sm dim">Radar works in rain/fog where camera fails</text>
<text x="514" y="412" class="sm" fill="#d29922" font-weight="700">Radar SoC (AI chip):</text>
<text x="514" y="424" class="sm dim">TI AWR2944: ARM R5 + DSP + HWA on 28nm</text>
<text x="514" y="436" class="sm dim">NXP S32R41: 16nm FinFET, CNN accelerator</text>
<text x="514" y="448" class="sm dim">Hailo + radar: edge inference at 26 TOPS</text>
<text x="514" y="460" class="sm dim">Imec 140GHz CMOS: 4D radar on single chip</text>
</svg>
Explore 500+ Semiconductor & AI Topics
From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.