高阶OAM调制与5G NR误码率仿真:从原理到MATLAB实现
简介面向5G及未来通信方向的研究人员与学生这份资源聚焦高阶OAM轨道角动量调制在5G移动通信中的应用可用于理解OAM模式复用、QPSK调制及AWGN信道下的误码率分析。压缩包体积仅2KB内含1个Matlab脚本m文件结构精简可直接运行并查看仿真曲线。已有66人学习该资源便于快速定位核心代码。脚本实现了多模式并行传输、基于螺旋相位分布的OAM信道矩阵构建、伪逆检测模式分离等完整环节并给出高信噪比区域接近理论QPSK曲线的对比结果验证了OAM在提升频谱效率方面的潜力。通过修改调制阶数或信道参数可进一步探索高阶OAM在复杂环境下的误码率表现为5G空间复用技术研究提供可复现的分析工具。1. 高阶OAM调制在5G移动通信里到底能解决什么问题提到“高阶OAM调制”很多人第一反应是光学里的涡旋光束觉得跟5G通信沾不上边。实际上轨道角动量Orbital Angular Momentum已经在无线通信里被反复验证它的波前呈螺旋状每种拓扑荷l对应一个独立的角向相位分布理论上一根天线可以同时承载多路独立数据流。把这个维度叠加到5G现有的OFDM帧结构上等于在频率、时间、空间之外再挖出一层复用能力。高阶的意思则是l取值到2、3、4以上这直接关系到信道容量和误码率的实测表现。这篇笔记围绕“OAM调制建模、5G链路对接、误码率分析”给出一个能完整复现的仿真方案包含全部代码逻辑、必调参数和四类典型排障记录。适合正在做物理层算法验证的通信工程师以及需要快速搭建OAM仿真平台的在校同学。2. OAM的物理模型与5G NR系统怎么对接选型依据先立住2.1 OAM的复振幅模型与模式正交性OAM无线信号在接收平面上可以用复振幅表示E(r, θ) A(r) · exp(jlθ)其中θ是方位角l称为拓扑荷或模态阶数。当l0时exp(j0θ)1对应普通平面波当l≠0时等相位面沿传播方向旋转形成螺旋波前。在完整孔径接收的条件下不同l的模式满足角向正交性∫ exp(jl₁θ) · exp(−jl₂θ) dθ 0, l₁ ≠ l₂这个正交性是整个OAM复用方案的理论基石。正因为不同模式在数学上可以完全分开我们才敢把多路比特流同时调制在同一频率上发射。实际毫米波和小于6GHz的射频系统中接收天线阵的物理尺寸有限导致模式间不可能完全正交串扰随之出现。所以做误码率仿真时不能只把信道当AWGN模式串扰必须作为独立损伤项建模否则结果会比实测乐观不少。2.2 与5G NR帧结构的映射方式5G NR不改变OFDM的底层架构但子载波间隔可配置为15kHz、30kHz、60kHz等波形是CP-OFDM和DFT-s-OFDM。做OAM叠加时常见做法是保留原有NR帧结构和导频设计在每根“虚拟天线端口”上挂不同的OAM模式。也就是说OAM复用不替换OFDM而是把OAM模式看作一层额外的空间复用维度和传统的MIMO层做级联。发射端结构可以这样理解每一路比特流先做QPSK或16QAM映射再经过OFDM调制得到时域采样序列。接着把同一时刻不同OAM模式的OFDM符号乘以各自的exp(jlθ)相位掩膜然后叠加发射。接收端先做OAM模式分解再进行OFDM解调。这样做的好处是时频资源网格完全兼容5G NR导频、同步、信道估计都可以沿用现有算法只是额外多了一步模式分离。选型上我建议直接按3GPP NR物理层参数搭链路子载波间隔取30kHz一个符号长度加CP后约35.7微秒每个资源块12个子载波。仿真规模不需要整个带宽跑几个资源块就足够看出误码率趋势。2.3 仿真工具选型MATLAB够用Python也有路子做OAM误码率分析MATLAB是最省事的选项。它的通信工具箱直接提供QAM调制解调、卷积编码、OFDM相关函数配合数值计算可以快速验证正交性和串扰。Python也能做用NumPy配合自定义FFT同样能跑通但5G NR的信道编码和资源映射函数不如MATLAB工具箱齐全。对比项MATLABPython NumPyOFDM调制内置lteOFDMModulate等函数需手动实现IFFT和加CP误码率统计berawgn/biterr直接可用需手写比较逻辑调试效率变量可视化方便需要依赖matplotlib部署成本商业授权开源免费如果你手头有通信工具箱建议直接按MATLAB方案复现。如果是学生或者对Python生态更熟悉代码核心也只有几十行手动实现不复杂。下面章节给出的代码是纯MATLAB基础函数写法不依赖工具箱理论上也能移植到Python。3. 从零搭一条OAM5G误码率分析链路可直接运行的MATLAB代码3.1 第一步生成高阶OAM模式的相位掩膜先明确一个细节仿真中我们不用真的生成3D光场只需要在接收平面上构造二维复振幅矩阵也就是相位掩膜。发射端的每个模式对应一个掩膜接收端用对应的共轭掩膜做匹配滤波。代码如下% 参数定义 Nsc 128; % 子载波数 delta_f 30e3; % 5G NR子载波间隔 30kHz num_symbols 1000; % 每个OAM模式发送的OFDM符号数 mod_order 16; % 16QAM l_modes [0 1 2 3]; % OAM模态阶数0为普通平面波 num_modes length(l_modes); snr_dB 0:2:20; % 仿真信噪比范围 % 生成极坐标网格模拟接收平面离散采样 N_grid 128; % 网格分辨率 x linspace(-2, 2, N_grid); y linspace(-2, 2, N_grid); [X, Y] meshgrid(x, y); [Theta, R] cart2pol(X, Y); % 直角坐标转极坐标 aperture_mask double(R 1.8); % 圆形接收孔径半径1.8 % 生成各OAM模式相位掩膜 phase_masks zeros(N_grid, N_grid, num_modes); for idx 1:num_modes l l_modes(idx); % 角向相位 exp(jlθ)乘以孔径掩膜限制接收范围 tmp exp(1j * l * Theta) .* aperture_mask; phase_masks(:, :, idx) tmp; end % 归一化功率保证每个模式发射能量一致 for idx 1:num_modes phase_masks(:, :, idx) phase_masks(:, :, idx) / norm(phase_masks(:, :, idx), fro); endpattern的关键逻辑是“用exp(jlθ)把每个模式的相位信息写在二维平面上”。网格分辨率N_grid直接影响串扰仿真精度分辨率太低会让相邻模式的相位混叠。这里取128配合半径1.8的孔径对l0到3的模式足够。归一化这步容易漏漏掉的话不同模式的发射功率不一致BER曲线会无规律偏移。3.2 第二步发射端做OAM叠加并送入信道发射端先对每个模式的比特流做16QAM调制再统一做IFFT生成OFDM符号最后每个模式乘上自己的相位掩膜并叠加。% 发射端OAM模式叠加 % 数据生成每个模式独立随机比特 data_bits randi([0 1], mod_order * Nsc * num_symbols, num_modes); % 16QAM符号映射reshape成子载波数×符号数 sym_qam qammod(data_bits, mod_order, gray, InputType, bit); % 注意qammod输入按bit排列时列数必须等于每符号比特数×子载波数×符号数 sym_qam reshape(sym_qam, Nsc, num_symbols, num_modes); % OFDM调制对每个模式的每列做IFFT这里没有加CP简化链路 tx_ofdm ifft(sym_qam, Nsc, 1); % 发送多帧叠加信号对每个时刻把所有模式的ofdm符号乘相位掩膜后叠加 signal_tx zeros(N_grid, N_grid, num_symbols); for s 1:num_symbols frame zeros(N_grid, N_grid); for m 1:num_modes % 把一列频域符号展开到全网格每个子载波独立乘OAM掩膜 % 这里用“模式符号幅度×掩膜”的标量近似完整做法见4.3 frame frame tx_ofdm(1, s, m) * phase_masks(:, :, m); end signal_tx(:, :, s) frame; end这段代码是教学简化版把每个OAM模式打包成一个“空间波束”每个时刻承载一个该模式的复数符号。实际工程链路里应该把128个子载波全部映射进二维平面每个子载波都乘一份掩膜仿真量会急剧上升。上面代码保留了最核心的叠加逻辑先跑通再展开。3.3 第三步接收端模式分离与误码率统计接收端拿到叠加后的信号先用每个模式的共轭掩膜做匹配滤波再对分离后的符号做QAM解调最后统计误码率。% 接收端共轭匹配分离 误码率统计 for snr_idx 1:length(snr_dB) snr snr_dB(snr_idx); % 高斯白噪声叠加按符号功率和SNR计算噪声方差 noise_var 10^(-snr/10); ber_per_mode zeros(1, num_modes); for s 1:num_symbols % 提取第s个符号的场分布 rx_frame signal_tx(:, :, s); % 加高斯噪声 rx_frame_noisy rx_frame sqrt(noise_var/2) * (randn(N_grid, N_grid) 1j*randn(N_grid, N_grid)); % 模式分离内积rx, conj(mask) 等效共轭匹配 rx_symbols zeros(1, num_modes); for m 1:num_modes rx_symbols(m) sum(sum(rx_frame_noisy .* conj(phase_masks(:, :, m)))); end % 记录所有符号的分离结果 rx_collect(:, s, snr_idx) rx_symbols; end % 解调并统计误码 for m 1:num_modes rx_serial squeeze(rx_collect(m, :, snr_idx)).; % 最小二乘幅度恢复用已知发射符号做训练估计幅度缩放因子 ref_sym squeeze(sym_qam(1, :, m)); % 发射符号 scale sum(rx_serial .* conj(ref_sym)) / sum(abs(ref_sym).^2); rx_eq rx_serial / scale; rx_bits qamdemod(rx_eq, mod_order, gray, OutputType, bit); tx_bits data_bits(1:mod_order*num_symbols, m); ber_per_mode(m) biterr(tx_bits, rx_bits) / length(tx_bits); end ber_all(snr_idx, :) ber_per_mode; end接收端与发射端用的是同一个相位掩膜集合利用正交性做内积复杂度是O(模式数×网格点数)。scale这一步很关键由于发射端做过归一化接收幅度会缩水直接用发射符号作参考来估计scale是可行的但这种训练序列方式不能代表真实系统。真实系统会用导频做信道估计效果等价。建议跑通上述代码后再替换成导频信道估计版。4. OAM仿真的典型翻车现场模式串扰、采样不足、帧对齐、噪声单位4.1 现象一信噪比越高高阶模式误码率反而反弹现象l2和l3模式的BER曲线在SNR大于12dB后开始向上翘甚至高于低SNR段。原因这种“反弹”基本不是数学错误而是模式间串扰超过了噪声成为主要误码来源。串扰来自两个地方一是发射端把多个模式符号直接幅度叠加基站端功率放大器的非线性会造成互调分量仿真里如果省了功放但信噪比定义又按总功率算就会出现高SNR下的残留错误平台二是离散网格采样下l3的角向相位随θ变化太快N_grid128采样不足以完全分离l2与l3串扰系数可以达到-15dB。解决把发射端功率归一化改成分模式归一化使每个模式独立保持单位功率网格分辨率提高到256以上最重要的接收端不要只看共轭匹配结果加一个串扰抑制矩阵。常见做法是先计算所有模式对之间的耦合矩阵C然后对分离符号做C的逆矩阵相乘ZF或MMSE均衡。4.2 现象二高阶模式解调出来的星座图全是“毛刺”现象16QAM星座点在正确位置附近散成一团完全看不出标准星座形状BER接近50%。原因这是OFDM符号帧没对齐引起的。第3章代码里没有加循环前缀也没有做时间同步实际情况是如果子载波之间的相位没有对齐IFFT解调会引入符号间干扰。OAM模式分离要求接收平面的空间原点与发射掩膜中心严格对准网格中心偏移哪怕半个像素对高阶l来说都会造成严重的相位旋转。解决先在网格设计时把原点放在正中心——不要用linspace(-2,2,128)因为这样网格间距对称但零点位置可能偏离采样点改用N_grid奇数个点例如129让中心点刚好落在索引66上。其次在OFDM链路里加上循环前缀CP长度至少要大于最大时延扩展30kHz子载波间隔下CP约2.35微秒。4.3 现象三BER计算结果比理论QAM曲线差好几个dB现象l0模式的BER曲线和理论AWGN下的16QAM曲线对比在BER1e-3处差了3-5dB。原因三个高频错误源。其一信噪比定义不统一理论BER曲线的横轴是每比特能量Eb/N0仿真里用的是符号信噪比Es/N016QAM下二者差log2(16)6dB。其二噪声功率计算不完整加了复高斯噪声后如果signal是功率单位那么复噪声方差应该是σ²N0/2在每个实部虚部分量上如果你直接把σ²10^(-SNR/10)当作实部随机数方差噪声功率就翻倍了。其三模式分离后每个符号能量不再是发射时的单位能量归一化因子估计不准确。解决把所有SNR统一换算成Eb/N0再画图。换算关系是Eb/N0 Es/N0 − 10log10(log2(M)) − 10log10(码率)。如果仿真里没有信道编码码率这一项去掉。噪声方差严格按复噪声建模实部和虚部各用σ²/2的高斯分布。归一化因子用最小二乘估计后会存在估计偏差样本数少时明显把符号数从1000提到5000即可消除。4.4 现象四仿真内存爆炸运行到一半卡死现象把Nsc128扩展到全带宽Nsc2048再叠加4个OAM模式代码瞬间占用几GB内存电脑直接卡死。原因全带宽OFDM每个子载波都要做完整的二维平面相位掩膜乘法时域上每个符号是一个2048×2048复数矩阵再加信道响应矩阵内存按O(N²)增长。高阶OAM的物理孔径要求决定了我们经常需要使用二维网格表示场这是仿真内存最容易失控的地方。解决不要一次性为所有子载波分配二维矩阵。每时刻只处理一个子载波的场分布循环处理完就释放或者把二维场展开成一维向量把所有模式对应的掩膜组成一个模式矩阵用矩阵乘法完成叠加省一个维度。我一般习惯用“循环子载波、向量化模式维度”的混合策略内存占用比全矩阵版本降低约一个数量级。5. 三个必调参数模态阶数、子载波间隔、接收孔径5.1 模态阶数l高阶高容量越高越贵拓扑荷l每增加1波前螺旋的角向变化速度增加一倍对接收孔径和采样率的要求同步提高。l0平面波等效传统通信l1和l2在中小孔径下还能较好分离l3以上串扰快速上升。从容量角度看M个模式复用时理论上频谱效率提升M倍但这是以发射端多路功耗和接收端孔径增大为代价的。具体到BER表现l0和l1在相同SNR下差距不大l2和l3在高SNR处会出现误码平坦区需要串扰抑制算法拉回来。l0平面波对应传统链路BER曲线与理论AWGN一致 l1串扰低适合主信道 l2~3需要均衡但容量收益明显 l≥4仿真阶段先确认孔径采样是否足够5.2 子载波间隔选30kHz最稳5G NR支持15、30、60kHz三种主流间隔。OAM链路对相位噪声更敏感因为模式分离依赖信号在空间上的相干性而相位噪声会随机扰动每个子载波的初始相位破坏模式的正交性。子载波间隔越小符号周期越长相位噪声影响越大。15kHz间隔下如果要达到BER1e-4相位噪声方差需要比30kHz低约6dB。60kHz虽然相位噪声容忍度更好但CP开销和频谱利用率下降且OAM模式的频率选择性更明显。综合来看30kHz是OAM叠加到NR链路时最稳妥的选择。延迟扩展大的场景下CP长度要和子载波间隔匹配30kHz对应CP约2.35微秒能覆盖典型城区微蜂窝环境。连续大范围的延迟扩展超过CP时要先加时域均衡再做模式分离。5.3 接收孔径与网格采样率这是高阶可行性的分水岭OAM模式分离必须完整接收螺旋波前截断会造成模式扩散。仿真里孔径半径取多少直接决定串扰水平。理论上有两个约束采样点数要满足奈奎斯特条件角向相位exp(jlθ)沿圆周变化l圈每个圈至少2个采样点所以周向采样数要大于2l孔径半径要覆盖到模式能量最集中的区域l增大时主瓣半径会外扩。实际对应关系可以用一个经验值网格分辨率N_grid与最大拓扑荷l_max之间满足N_grid ≥ 8·l_max时仿真结果才接近物理收敛。第3章的N_grid128支持l_max16实际上受限于孔径边缘振铃更稳妥的建议是给高阶模式预留更多裕量。如果要仿真l4的系统网格至少256否则分离矩阵的条件数会超过100均衡后噪声被放大严重。6. 进阶用星座图和理论曲线双重验证你的OAM链路验证仿真结果可靠性有两个独立手段。第一个是画出l0模式的星座图和BER曲线与理论16QAM AWGN曲线对比。l0不涉及OAM空间分离等于一个标准OFDM链路如果这条曲线与理论差距超过0.5dB说明你的噪声功率定义、FFT归一化或均衡流程有问题不能急着看高阶模式的结果。我习惯先跑l0单模式确认基线正常后再加入l1、l2逐级递增。第二个验证是看模式串扰矩阵的特征值分布。具体做法是把分离矩阵的所有特征值打印出来如果大特征值和小特征值之比条件数超过100倍说明模式分离很不稳定任何微小相位误差都会被放大成误码。此时不要只靠加大SNR解决需要重新审视孔径尺寸和网格分辨率。高阶OAM仿真最怕的不是计算量大而是链路看着在跑、数据全是噪声。另一个实用技巧是跑一次符号错误率SER而不是只跑BER。SER对相位误差更敏感更容易暴露模式分离的微小异常。当SER曲线和BER曲线之间差距不符合理论关系SER≈BER×log2(M)时表明星座点判到了邻近点多半是串扰抑制不够。仿真链路做完后把发射符号和接收符号的误差向量幅度EVM也统计一下EVM超过30%时BER会迅速恶化这个指标做硬件实验时也方便对照。这套“先验证基线、再逐阶加模式、最后看SER与EVM”的习惯帮我排掉了不少看似玄学实际是功率归一化失误的坑。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Cursor 报错 This model provider doesn‘t serve your region:把 Base URL 改到 TaoToken 的排查清单

Cursor 报错 This model provider doesn‘t serve your region:把 Base URL 改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 11:43:46 阅读更多 →
股权设计最大的坑:权责不对等,如何用机制让责任匹配权力

股权设计最大的坑:权责不对等,如何用机制让责任匹配权力

前阵子有个做智能硬件的创始人和我聊股权方案,背景挺典型:合伙人出资60万占30%,他出技术加全职管理占70%,公司已经跑了一年,产品出了三版,账面刚回正。我问他三个问题:发不出工资的那两个月是谁…

2026/10/9 11:43:46 阅读更多 →
从Nginx日志分析到前端性能调优:缓存命中率与TTFB排查实战

从Nginx日志分析到前端性能调优:缓存命中率与TTFB排查实战

那是一个普通的周二下午,线上C端首页监控突然一片红,LCP从1.8秒直接飙到6.2秒。我打开DevTools,发现最大的那个JS chunk的TTFB(Time To First Byte)是4.7秒。第一反应是后端接口慢了,可后端同事调出Nginx a…

2026/10/9 11:43:46 阅读更多 →

最新新闻

整套相机退坑出手怎么选回收平台?金典拍拍一站式解决方案

整套相机退坑出手怎么选回收平台?金典拍拍一站式解决方案

不同的闲置相机处理需求,适配的渠道并不一样。退坑出清整套器材、置换升级新机、处理高价值专业设备,对应的核心诉求差异很大。 针对摄影玩家常见的三类场景,我们结合金典拍拍的服务模式,讲讲对应的解决方案。 一、场景一&#xf…

2026/10/9 12:15:25 阅读更多 →
Qt构建缓存导致AI优化不生效?拆解qmake/moc/清理机制与终极重建方案

Qt构建缓存导致AI优化不生效?拆解qmake/moc/清理机制与终极重建方案

有没有遇到过这种情况:AI 给你改好了一版 Qt 代码,逻辑清清楚楚,注释写得比人还细,你满怀信心地点了“构建运行”,结果程序行为跟改之前一模一样——没有报错,也没有崩溃,就是“像没改过一样”。…

2026/10/9 12:15:25 阅读更多 →
TIA Portal软件单元实战:编译隔离与多人协作优化指南

TIA Portal软件单元实战:编译隔离与多人协作优化指南

1. 软件单元到底是个什么东西如果你在 TIA Portal 里做过稍微大一点的项目,大概率遇到过这种场景:一个项目里塞了十几个功能块、七八个工艺对象、一堆 HMI 画面,编译一次要等好几分钟,几个人同时改还容易互相覆盖。更头疼的是&…

2026/10/9 12:15:25 阅读更多 →
t3code 深度拆解:代码生成与静态分析工具的设计与实现

t3code 深度拆解:代码生成与静态分析工具的设计与实现

1. 从“t3code”这个标题说起:它到底是什么第一次看到“t3code”这个词,我脑子里蹦出来的第一反应是——这大概率是一个技术项目代号,而且带着明显的版本或序列意味。“t3”这种命名方式在开发圈子里太常见了,要么是某个框架的第三…

2026/10/9 12:15:24 阅读更多 →
电池健康状态估计(二)

电池健康状态估计(二)

如果第一篇解决的是“为什么要估SOH、哪些参数代表SOH、滤波器能不能估参数”,详细的介绍在 电池健康状态估计(一)-CSDN博客 上个博客介绍。那么本篇集中解决一个更具体的问题:怎样在线估计电芯总容量Q。因为容量估计看似只是一…

2026/10/9 12:15:24 阅读更多 →
pstack诊断Python进程阻塞在SSL读取的实战方法

pstack诊断Python进程阻塞在SSL读取的实战方法

1. “pstack-claude”不是工具名&#xff0c;而是开发者现场诊断的隐喻切口你搜“pstack-claude”&#xff0c;大概率是在终端里敲下pstack <pid>后&#xff0c;发现某个进程正疯狂调用 Python 解释器、反复加载anthropic模块&#xff0c;或在codex相关路径上卡死——而这…

2026/10/9 12:14:23 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题&#xff0c;隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题&#xff0c;排查到最后发现是ZonedDateTime序列化后时区丢了&#xff0c;用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问&#xff1a;办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好&#xff0c;问题是工作场景经常要在几处环境之间来回切换&#xff0c;每次都先登录跳板机再层层代理&#xff0c;实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及&#xff0c;但真正动手搭过一套能跑起来的 Agent 系统的人都知道&#xff0c;从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地&#xff0c;从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →