Files
maths-cs-ai-compendium-zh/images/beamforming.svg
T
flykhan 2536c937e3 feat: 完整中文翻译 maths-cs-ai-compendium(数学·计算机科学·AI 知识大全)
翻译自英文原版 maths-cs-ai-compendium,共 20 章全部完成。

第01章 向量 | 第02章 矩阵 | 第03章 微积分
第04章 统计学 | 第05章 概率论 | 第06章 机器学习
第07章 计算语言学 | 第08章 计算机视觉 | 第09章 音频与语音
第10章 多模态学习 | 第11章 自主系统 | 第12章 图神经网络
第13章 计算与操作系统 | 第14章 数据结构与算法
第15章 生产级软件工程 | 第16章 SIMD与GPU编程
第17章 AI推理 | 第18章 ML系统设计
第19章 应用人工智能 | 第20章 前沿人工智能

翻译说明:
- 所有数学公式 $...$ / $$...$$、代码块、图片引用完整保留
- mkdocs.yml 配置中文导航 + language: zh
- README.md 已翻译为中文(兼 docs/index.md)
- docs/ 目录包含指向各章文件的 symlink
- 约 29,000 行中文内容,排除 .cache/ 构建缓存
2026-05-03 10:23:20 +08:00

106 lines
6.9 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" width="700" height="290" font-family="Arial, Helvetica, sans-serif">
<defs>
<marker id="arrow-bf" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto">
<polygon points="0,0 8,3 0,6" fill="#333"/>
</marker>
<marker id="arrow-blue-bf" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto">
<polygon points="0,0 8,3 0,6" fill="#3498db"/>
</marker>
</defs>
<!-- Title -->
<text x="350" y="22" text-anchor="middle" font-size="14" font-weight="bold" fill="#333">Beamforming with Microphone Array</text>
<!-- Sound source -->
<circle cx="80" cy="50" r="14" fill="rgba(231,76,60,0.15)" stroke="#e74c3c" stroke-width="1.5"/>
<text x="80" y="53" text-anchor="middle" font-size="8" font-weight="bold" fill="#e74c3c">S</text>
<text x="80" y="78" text-anchor="middle" font-size="8" fill="#e74c3c">Sound</text>
<text x="80" y="88" text-anchor="middle" font-size="8" fill="#e74c3c">Source</text>
<!-- Sound waves (arcs) -->
<path d="M100,50 Q120,30 130,60" fill="none" stroke="#e74c3c" stroke-width="0.7" opacity="0.4"/>
<path d="M108,50 Q132,25 145,65" fill="none" stroke="#e74c3c" stroke-width="0.7" opacity="0.3"/>
<path d="M116,50 Q145,20 160,70" fill="none" stroke="#e74c3c" stroke-width="0.7" opacity="0.2"/>
<!-- Wavefront lines (angled) hitting mics -->
<line x1="120" y1="40" x2="240" y2="105" stroke="#e74c3c" stroke-width="0.8" stroke-dasharray="4,3" opacity="0.5"/>
<line x1="128" y1="48" x2="240" y2="130" stroke="#e74c3c" stroke-width="0.8" stroke-dasharray="4,3" opacity="0.5"/>
<line x1="136" y1="56" x2="240" y2="155" stroke="#e74c3c" stroke-width="0.8" stroke-dasharray="4,3" opacity="0.5"/>
<line x1="144" y1="64" x2="240" y2="180" stroke="#e74c3c" stroke-width="0.8" stroke-dasharray="4,3" opacity="0.5"/>
<!-- Angle theta -->
<line x1="210" y1="100" x2="210" y2="190" stroke="#666" stroke-width="0.6" stroke-dasharray="2,2"/>
<path d="M210,130 Q195,115 185,105" fill="none" stroke="#f39c12" stroke-width="1"/>
<text x="190" y="125" font-size="9" font-weight="bold" fill="#f39c12">theta</text>
<!-- Microphones (vertical array) -->
<rect x="230" y="95" width="24" height="18" rx="4" fill="rgba(52,152,219,0.15)" stroke="#3498db" stroke-width="1.5"/>
<text x="242" y="108" text-anchor="middle" font-size="7" fill="#3498db">M1</text>
<rect x="230" y="120" width="24" height="18" rx="4" fill="rgba(52,152,219,0.15)" stroke="#3498db" stroke-width="1.5"/>
<text x="242" y="133" text-anchor="middle" font-size="7" fill="#3498db">M2</text>
<rect x="230" y="145" width="24" height="18" rx="4" fill="rgba(52,152,219,0.15)" stroke="#3498db" stroke-width="1.5"/>
<text x="242" y="158" text-anchor="middle" font-size="7" fill="#3498db">M3</text>
<rect x="230" y="170" width="24" height="18" rx="4" fill="rgba(52,152,219,0.15)" stroke="#3498db" stroke-width="1.5"/>
<text x="242" y="183" text-anchor="middle" font-size="7" fill="#3498db">M4</text>
<!-- Array spacing label -->
<line x1="222" y1="113" x2="222" y2="120" stroke="#666" stroke-width="0.6"/>
<text x="216" y="120" text-anchor="end" font-size="6" fill="#666">d</text>
<!-- Delay lines -->
<line x1="254" y1="104" x2="310" y2="104" stroke="#333" stroke-width="1.2" marker-end="url(#arrow-bf)"/>
<line x1="254" y1="129" x2="310" y2="129" stroke="#333" stroke-width="1.2" marker-end="url(#arrow-bf)"/>
<line x1="254" y1="154" x2="310" y2="154" stroke="#333" stroke-width="1.2" marker-end="url(#arrow-bf)"/>
<line x1="254" y1="179" x2="310" y2="179" stroke="#333" stroke-width="1.2" marker-end="url(#arrow-bf)"/>
<!-- Delay blocks -->
<rect x="313" y="92" width="65" height="24" rx="4" fill="rgba(243,156,18,0.12)" stroke="#f39c12" stroke-width="1.2"/>
<text x="345" y="108" text-anchor="middle" font-size="7" fill="#333">Delay tau_1</text>
<rect x="313" y="117" width="65" height="24" rx="4" fill="rgba(243,156,18,0.12)" stroke="#f39c12" stroke-width="1.2"/>
<text x="345" y="133" text-anchor="middle" font-size="7" fill="#333">Delay tau_2</text>
<rect x="313" y="142" width="65" height="24" rx="4" fill="rgba(243,156,18,0.12)" stroke="#f39c12" stroke-width="1.2"/>
<text x="345" y="158" text-anchor="middle" font-size="7" fill="#333">Delay tau_3</text>
<rect x="313" y="167" width="65" height="24" rx="4" fill="rgba(243,156,18,0.12)" stroke="#f39c12" stroke-width="1.2"/>
<text x="345" y="183" text-anchor="middle" font-size="7" fill="#333">Delay tau_4</text>
<!-- Delay formula -->
<text x="345" y="202" text-anchor="middle" font-size="7" fill="#666">tau_i = i*d*sin(theta)/c</text>
<!-- Arrows from delays to sum -->
<line x1="378" y1="104" x2="430" y2="135" stroke="#333" stroke-width="1" marker-end="url(#arrow-bf)"/>
<line x1="378" y1="129" x2="430" y2="137" stroke="#333" stroke-width="1" marker-end="url(#arrow-bf)"/>
<line x1="378" y1="154" x2="430" y2="143" stroke="#333" stroke-width="1" marker-end="url(#arrow-bf)"/>
<line x1="378" y1="179" x2="430" y2="148" stroke="#333" stroke-width="1" marker-end="url(#arrow-bf)"/>
<!-- Sum block -->
<circle cx="445" cy="142" r="18" fill="rgba(39,174,96,0.12)" stroke="#27ae60" stroke-width="1.8"/>
<text x="445" y="147" text-anchor="middle" font-size="16" font-weight="bold" fill="#27ae60">+</text>
<text x="445" y="170" text-anchor="middle" font-size="7" fill="#27ae60">Sum</text>
<!-- Arrow to output -->
<line x1="463" y1="142" x2="498" y2="142" stroke="#333" stroke-width="1.2" marker-end="url(#arrow-bf)"/>
<!-- 1/N scaling -->
<rect x="500" y="130" width="35" height="24" rx="4" fill="rgba(39,174,96,0.08)" stroke="#27ae60" stroke-width="1"/>
<text x="517" y="146" text-anchor="middle" font-size="9" fill="#333">1/N</text>
<line x1="535" y1="142" x2="558" y2="142" stroke="#333" stroke-width="1.2" marker-end="url(#arrow-bf)"/>
<!-- Enhanced signal -->
<rect x="561" y="122" width="110" height="40" rx="6" fill="rgba(27,174,96,0.1)" stroke="#27ae60" stroke-width="1.5"/>
<polyline points="571,142 576,132 581,148 586,128 591,150 596,134 601,146 606,136 611,142 616,134 621,148 626,130 631,146 636,138 641,142 646,136 651,144 656,138 661,142" fill="none" stroke="#27ae60" stroke-width="1.2"/>
<text x="616" y="170" text-anchor="middle" font-size="8" font-weight="bold" fill="#27ae60">Enhanced Signal</text>
<!-- Note box -->
<rect x="30" y="215" width="640" height="55" rx="6" fill="#f5f5f5" stroke="#333" stroke-width="1"/>
<text x="50" y="235" font-size="10" font-weight="bold" fill="#333">Delay-and-sum beamforming:</text>
<text x="260" y="235" font-size="10" fill="#666">align signals by compensating for propagation delay, then sum.</text>
<text x="50" y="252" font-size="9" fill="#666">Signals from the target direction add constructively; off-axis noise partially cancels. The delay for</text>
<text x="50" y="264" font-size="9" fill="#666">each mic depends on the angle of arrival and mic spacing. Neural beamformers learn the combining weights.</text>
</svg>