数字调制误码率仿真:ASK/FSK/PSK/QAM源码级拆解与避坑指南
简介这份源码资源面向通信工程、信号处理方向的学习者与工程师聚焦数字通信中ASK、FSK、PSK、QAM四种基本调制解调技术的误码率仿真帮助理解不同调制方式在不同信噪比下的性能差异。压缩包共2个文件包含1个m脚本文件与1张jpg测试结果图整体约82KB脚本可直接运行复现仿真流程图片则直观展示误码率曲线与解调效果。资源围绕二进制与多进制调制展开涵盖BPSK、QPSK、16-QAM、64-QAM等典型方案通过BER指标评估噪声、失真对解调准确性的影响便于对比调制阶数与抗干扰能力。目前已有294人学习下载适合作为无线通信、数据传输课程实验或通信系统设计的实践参考读者可据此快速搭建仿真环境、验证理论曲线并优化码率与调制参数。1. 数字调制的误码率仿真为什么理论曲线和实测总差那么一点很多人第一次跑 ASK、FSK、PSK、QAM 的误码率仿真都会遇到一个反直觉的现象代码明明照着公式写画出来的 BER 曲线却总比教科书上的理论值高出一截信噪比越高差距越明显。这不是玄学而是仿真链路里藏着一堆被忽略的细节——采样率、判决门限、噪声带宽、符号同步任何一个没对齐曲线就会整体平移。这份源码把四种基本数字调制ASK、FSK、PSK、QAM的调制、解调、加噪、误码统计串成了一条完整链路能让你亲手复现从「理论公式」到「蒙特卡洛仿真」之间的每一处偏差。搞懂它你就搞懂了通信系统仿真里最核心的一件事误码率不是算出来的是在噪声里一次次判决出来的。2. 误码率仿真的底层机制从蒙特卡洛到判决门限2.1 为什么 BER 必须靠仿真而不是公式理论误码率公式比如 BPSK 的 $P_b Q(\sqrt{2E_b/N_0})$是在理想条件下推导出来的无限长序列、理想同步、匹配滤波、高斯白噪声。但真实系统里这些条件一个都不满足。仿真做的事就是用有限长度的随机比特流经过调制、信道加噪、解调、判决统计错误比特数用错误数除以总比特数逼近真实误码率。这里的关键是蒙特卡洛方法的收敛速度。误码率越低需要的比特数越多。比如你要测 $10^{-5}$ 的误码率至少得传 $10^6$ 个比特才能看到几十个错误否则统计涨落会让曲线抖得没法看。源码里通常会用一个循环在每个信噪比点上生成足够长的随机序列累加错误数最后算比值。这个「足够长」不是拍脑袋而是根据目标误码率反推错误数至少要到 100 量级曲线才平滑。常见的实现思路是外层循环扫信噪比内层循环跑蒙特卡洛。内层每轮生成比特、调制、加噪、解调、比对错误数累加。信噪比用 dB 表示转成线性值参与噪声功率计算。这里有个容易翻车的地方$E_b/N_0$ 和 $SNR$ 不是一回事前者是每比特能量与噪声功率谱密度之比后者是信号总功率与噪声功率之比。对于多进制调制两者差一个 $\log_2 M$ 的因子。源码里如果混用曲线就会整体偏移。2.2 四种调制的信号空间与判决边界ASK、FSK、PSK、QAM 的本质区别在于它们把比特映射到信号空间里的不同维度。ASK 只用幅度一维FSK 用频率正交的两维PSK 用相位圆周QAM 同时用幅度和相位。判决就是在接收端把带噪信号点划归到最近的星座点。以 2ASK 为例比特 1 对应幅度 $A$比特 0 对应幅度 0。接收端收到 $r s n$判决门限通常设在 $A/2$。如果 $r A/2$ 判 1否则判 0。这个门限在等概信源下是最优的但如果信源不等概门限要往概率大的一侧偏移。源码里一般默认等概所以门限取中点。2FSK 的判决更微妙。两个频率 $f_1$ 和 $f_2$ 正交接收端可以用两个匹配滤波器分别测能量哪个能量大判哪个。理论上 2FSK 的误码率和 2ASK 一样但实际仿真里如果频率间隔没取到正交条件即频率间隔是符号速率的整数倍两个频率会互相干扰误码率就上去了。BPSK 的星座点在最简单的两个相位 0 和 $\pi$判决就是看实部正负。QPSK 是四个相位每个符号带 2 比特判决时看接收点落在哪个象限。这里有个坑QPSK 的误码率和 BPSK 在相同 $E_b/N_0$ 下是一样的但如果在相同 $SNR$ 下比QPSK 因为每符号能量分摊到 2 比特反而显得差。源码里如果没区分 $E_b/N_0$ 和 $SNR$对比就会失真。QAM 的判决边界是网格状的。16-QAM 有 16 个星座点每个点带 4 比特。接收端要判断接收点离哪个星座点最近。在高信噪比下判决基本不会错但在低信噪比下相邻星座点容易混淆误码率急剧上升。QAM 的误码率公式比 PSK 复杂因为不同星座点的错误概率不一样边角和中心的点邻居数不同。仿真时如果只统计总错误数会掩盖这种不均匀性。2.3 加噪、滤波与采样仿真链路的三个隐形杀手加噪看起来简单生成高斯白噪声加上去就行。但噪声功率怎么定直接决定信噪比准不准。常见做法是先算信号平均功率再根据目标 $E_b/N_0$ 反推噪声方差。对于复基带信号噪声是复高斯实部虚部各一半功率。如果只加实噪声等效信噪比就变了。滤波是第二个杀手。理论公式假设匹配滤波但仿真里如果直接用矩形积分或者简单低通噪声带宽和信号带宽不匹配输出信噪比就达不到理论值。源码里如果用了滤波器得确认滤波器的带宽和滚降系数否则曲线在高信噪比段会出现「地板效应」——误码率降到某个值就下不去了。采样是第三个。仿真时采样率通常是符号率的整数倍比如 8 倍或 16 倍。采样点要落在符号的最佳判决时刻否则码间干扰会让误码率恶化。如果源码里没有符号同步模块而是直接取每个符号周期的中点那在无码间干扰的理想信道下没问题但一旦加了脉冲成型中点就不一定是最佳采样点了。3. 源码级拆解ASK/FSK/PSK/QAM 的调制解调怎么落地3.1 ASK 调制解调包络检测与门限判决ASK 的调制最简单比特 1 乘上载波比特 0 乘零。但解调有两种路子相干解调和非相干解调。相干解调需要本地载波同步乘上同频同相的载波再低通滤波非相干解调用包络检测整流加低通再判决。源码里如果用的是非相干误码率会比相干差 3 dB 左右。import numpy as np def ask_modulate(bits, fc, fs, bit_rate): # bits: 比特序列, fc: 载波频率, fs: 采样率, bit_rate: 比特率 t np.arange(0, len(bits) / bit_rate, 1 / fs) carrier np.cos(2 * np.pi * fc * t) # 每个比特重复 samples_per_bit 次形成基带脉冲 samples_per_bit int(fs / bit_rate) baseband np.repeat(bits, samples_per_bit) # 截断到相同长度 baseband baseband[:len(carrier)] return baseband * carrier def ask_demodulate(signal, fc, fs, bit_rate): t np.arange(len(signal)) / fs # 相干解调乘同频同相载波 demod signal * np.cos(2 * np.pi * fc * t) # 低通滤波简单滑动平均 samples_per_bit int(fs / bit_rate) demod np.convolve(demod, np.ones(samples_per_bit) / samples_per_bit, modesame) # 每个比特周期取中点采样 bits [] for i in range(0, len(demod), samples_per_bit): sample demod[i samples_per_bit // 2] bits.append(1 if sample 0.25 else 0) # 门限取 0.25对应 A/2 的一半 return np.array(bits)这段代码里调制端用np.repeat把每个比特扩展成矩形脉冲再乘载波。解调端乘同频载波后做滑动平均低通然后每个符号周期取中点判决。门限 0.25 是经验值实际应该根据信号幅度动态设定。如果门限设错比如设成 0.5那比特 1 的幅度如果只有 0.6噪声一加就判成 0 了。参数fc要满足奈奎斯特采样定理fs至少是fc的两倍否则载波混叠解调直接崩。3.2 FSK 调制解调频率切换与能量检测FSK 的调制是频率切换比特 1 发 $f_1$比特 0 发 $f_2$。解调可以用两个带通滤波器分别测能量或者用非相干鉴频。源码里常见的是正交支路能量比较。def fsk_modulate(bits, f1, f2, fs, bit_rate): samples_per_bit int(fs / bit_rate) signal [] for bit in bits: freq f1 if bit 1 else f2 t np.arange(samples_per_bit) / fs signal.extend(np.cos(2 * np.pi * freq * t)) return np.array(signal) def fsk_demodulate(signal, f1, f2, fs, bit_rate): samples_per_bit int(fs / bit_rate) bits [] for i in range(0, len(signal), samples_per_bit): segment signal[i:i samples_per_bit] t np.arange(len(segment)) / fs # 分别与两个频率的载波做相关 corr1 np.sum(segment * np.cos(2 * np.pi * f1 * t)) corr2 np.sum(segment * np.cos(2 * np.pi * f2 * t)) bits.append(1 if abs(corr1) abs(corr2) else 0) return np.array(bits)这里的关键是f1和f2的间隔。如果间隔太小两个相关器的输出会互相泄漏判决就不可靠。通常要求频率间隔是比特率的整数倍保证正交性。另外相关器的积分时间是一个比特周期如果采样率不是比特率的整数倍积分区间会错位误码率就上去了。3.3 PSK 调制解调相位映射与相干检测PSK 的调制是把比特映射到相位。BPSK 是 0 和 $\pi$QPSK 是 $\pi/4$、$3\pi/4$、$5\pi/4$、$7\pi/4$。解调时乘本地载波低通后看相位。def psk_modulate(bits, M, fc, fs, bit_rate): # M: 调制阶数BPSK 为 2QPSK 为 4 bits_per_symbol int(np.log2(M)) samples_per_symbol int(fs / (bit_rate / bits_per_symbol)) signal [] for i in range(0, len(bits), bits_per_symbol): symbol_bits bits[i:i bits_per_symbol] # 比特转十进制再映射到相位 index int(.join(map(str, symbol_bits)), 2) phase 2 * np.pi * index / M t np.arange(samples_per_symbol) / fs signal.extend(np.cos(2 * np.pi * fc * t phase)) return np.array(signal) def psk_demodulate(signal, M, fc, fs, bit_rate): bits_per_symbol int(np.log2(M)) samples_per_symbol int(fs / (bit_rate / bits_per_symbol)) bits [] for i in range(0, len(signal), samples_per_symbol): segment signal[i:i samples_per_symbol] t np.arange(len(segment)) / fs # 相干解调乘载波后低通 I np.sum(segment * np.cos(2 * np.pi * fc * t)) Q np.sum(segment * np.sin(2 * np.pi * fc * t)) phase np.arctan2(Q, I) # 相位量化到最近的星座点 index int(round((phase % (2 * np.pi)) / (2 * np.pi) * M)) % M bits.extend([int(b) for b in format(index, f0{bits_per_symbol}b)]) return np.array(bits)BPSK 的误码率在相同 $E_b/N_0$ 下是最优的因为星座点距离最远。QPSK 每个符号带 2 比特符号能量是 BPSK 的两倍但每比特能量一样所以误码率曲线重合。这里有个细节arctan2返回的相位在 $[-\pi, \pi]$量化时要先取模再映射否则负相位会映射错。3.4 QAM 调制解调星座图与最近邻判决QAM 是幅度和相位的联合调制。16-QAM 的星座图是 4×4 网格每个点带 4 比特。调制时把比特分成 I 路和 Q 路分别映射到幅度电平再乘载波。def qam_modulate(bits, M, fc, fs, bit_rate): bits_per_symbol int(np.log2(M)) samples_per_symbol int(fs / (bit_rate / bits_per_symbol)) sqrt_M int(np.sqrt(M)) signal [] for i in range(0, len(bits), bits_per_symbol): symbol_bits bits[i:i bits_per_symbol] # 前一半比特给 I 路后一半给 Q 路 I_bits symbol_bits[:bits_per_symbol // 2] Q_bits symbol_bits[bits_per_symbol // 2:] I_index int(.join(map(str, I_bits)), 2) Q_index int(.join(map(str, Q_bits)), 2) # 映射到电平-3, -1, 1, 316-QAM I_level 2 * I_index - sqrt_M 1 Q_level 2 * Q_index - sqrt_M 1 t np.arange(samples_per_symbol) / fs signal.extend(I_level * np.cos(2 * np.pi * fc * t) - Q_level * np.sin(2 * np.pi * fc * t)) return np.array(signal) def qam_demodulate(signal, M, fc, fs, bit_rate): bits_per_symbol int(np.log2(M)) samples_per_symbol int(fs / (bit_rate / bits_per_symbol)) sqrt_M int(np.sqrt(M)) bits [] for i in range(0, len(signal), samples_per_symbol): segment signal[i:i samples_per_symbol] t np.arange(len(segment)) / fs I np.sum(segment * np.cos(2 * np.pi * fc * t)) Q -np.sum(segment * np.sin(2 * np.pi * fc * t)) # 最近邻判决量化到最近的奇数电平 I_index int(round((I sqrt_M - 1) / 2)) Q_index int(round((Q sqrt_M - 1) / 2)) I_index np.clip(I_index, 0, sqrt_M - 1) Q_index np.clip(Q_index, 0, sqrt_M - 1) bits.extend([int(b) for b in format(I_index, f0{bits_per_symbol // 2}b)]) bits.extend([int(b) for b in format(Q_index, f0{bits_per_symbol // 2}b)]) return np.array(bits)QAM 的判决是最近邻但代码里用round量化到奇数电平这要求接收信号的幅度已经归一化到标准星座点。如果信道有衰减I 和 Q 的幅度会缩小量化就偏了。所以实际系统里要有自动增益控制AGC仿真里如果没加就得手动归一化。另外QAM 对相位噪声特别敏感因为星座点密集相位一偏就跑到隔壁去了。4. 避坑与排查误码率仿真里最容易翻车的五个地方4.1 信噪比定义混用曲线整体平移现象仿真曲线和理论曲线平行但差了几个 dB。原因把 $E_b/N_0$ 当成 $SNR$ 用了。对于多进制调制$SNR E_b/N_0 10\log_{10}(\log_2 M)$。解决在加噪前统一换算确认噪声方差是按 $E_b/N_0$ 还是 $SNR$ 算的。源码里如果没写清楚自己加一行注释验证。4.2 采样率不够载波混叠现象解调出来的星座图乱成一团误码率居高不下。原因采样率低于载波频率的两倍或者低于信号带宽的两倍。解决检查fs是否满足奈奎斯特条件通常取fs 4 * fc比较稳。如果载波是 10 kHz采样率至少 40 kHz。4.3 判决门限固定低信噪比下失效现象低信噪比时误码率比理论值高很多高信噪比时又正常。原因门限设成了固定值但信号幅度随信噪比变化。解决用自适应门限或者先估计信号功率再定门限。ASK 的门限应该取信号幅度的中点而不是固定常数。4.4 蒙特卡洛比特数不够曲线抖动现象误码率曲线在高信噪比段上下跳看不出趋势。原因错误数太少统计涨落大。解决每个信噪比点至少跑 100 个错误或者总比特数至少 $10^6$。如果误码率目标 $10^{-5}$比特数要 $10^7$ 量级。4.5 滤波器带宽不匹配出现地板效应现象误码率降到某个值就下不去了继续加信噪比也没用。原因接收滤波器带宽大于信号带宽噪声进来太多或者小于信号带宽信号被滤掉一部分。解决匹配滤波器带宽取符号速率的一半滚降系数 0.3 到 0.5 之间。仿真里如果用了简单滑动平均确认窗口长度和符号周期对齐。5. 从仿真到设计取舍为什么 QAM 不是阶数越高越好跑完这四种调制的误码率曲线你会发现一个清晰的权衡QAM 的频谱效率最高16-QAM 每符号带 4 比特64-QAM 带 6 比特但误码率曲线也最陡——信噪比稍微降一点误码率就崩了。PSK 的频谱效率居中BPSK 最稳但最慢。ASK 和 FSK 在低阶时性能接近但 FSK 的抗干扰能力更强代价是带宽。这个取舍在源码里体现得很直接QAM 的判决代码里多了clip和round因为星座点密集量化误差容限小PSK 的相位量化用arctan2对相位噪声敏感FSK 的能量检测对频率间隔敏感。每一种调制都在用不同的方式对抗噪声没有免费的午餐。我一般会这么理解仿真不是为了证明理论公式对而是为了看清理论公式在哪些条件下会失效。比如 QAM 在理想高斯信道下16-QAM 和 64-QAM 的曲线是平行的差距就是 $\log_2 M$ 带来的信噪比惩罚。但一旦加了相位噪声或者非线性失真64-QAM 的曲线会急剧恶化因为星座点太密一点点相位旋转就跨过了判决边界。这时候你就得回头改系统参数降阶、加均衡、或者换调制方式。验证仿真对不对有个笨办法但很管用先跑 BPSK看曲线和理论 $Q(\sqrt{2E_b/N_0})$ 是否重合。如果重合说明链路基本正确如果不重合先查信噪比定义和采样率。BPSK 对了再跑 QPSK理论上应该和 BPSK 在 $E_b/N_0$ 下重合。如果 QPSK 差了 3 dB那就是 $E_b/N_0$ 和 $SNR$ 混了。最后跑 QAM看高信噪比段有没有地板效应有的话查滤波器。从那以后我每次跑误码率仿真都强制走一遍「BPSK 对齐理论 → QPSK 验证换算 → QAM 检查地板」的流程省得在错误的方向上调参数。这份源码把四种调制放在一起正好能让你把这条验证链走通。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

AirLLM分层加载推理:24GB显存也能跑70B大模型,消费级显卡本地部署新思路

AirLLM分层加载推理:24GB显存也能跑70B大模型,消费级显卡本地部署新思路

先从一个让人“破防”的场景说起:手里只有一张 24GB 显存显卡,却想跑一个 70B 参数的开源大模型。按最朴素的算法估算,仅模型权重就要占掉 140GB 显存,这个数字直接把大多数人挡在本地部署门外。后来我接触到 AirLLM 这个推理方案…

2026/10/19 12:47:32 阅读更多 →
企业级RAG系统全流程实战:从数据治理到检索调优的落地指南

企业级RAG系统全流程实战:从数据治理到检索调优的落地指南

刚做完整套企业级RAG系统,趁着热乎劲儿把全流程拆开揉碎了讲一遍。这篇文章不是给那种跑个向量数据库demo就觉得自己懂RAG的人看的,而是要奔着生产环境去的那种实战级别。从数据清洗到检索调优,从提示词工程到监控评估,每一环都对…

2026/10/19 12:47:32 阅读更多 →
Token 节省实战:从 API 成本失控到系统化优化指南

Token 节省实战:从 API 成本失控到系统化优化指南

做完一整年的 Token 节省实战之后,我可以很负责任地说:大部分 AI 应用的 API 成本问题,根本不是模型单价太贵,而是 Token 消耗失控造成的。我见过一个调用次数只涨了不到两倍、账单却翻了五倍的典型项目,拉出 usage 明…

2026/10/19 12:47:32 阅读更多 →

最新新闻

智能问卷设计全流程:从逻辑配置到数据清洗的落地实践

智能问卷设计全流程:从逻辑配置到数据清洗的落地实践

问卷调研这事,看着简单,翻车的人排着队。发出去一千份问卷,回来五百份,清洗完能用的可能不到两百。这些问题我在项目里碰过太多次,后来把整套方法沉淀下来,落地成代号就叫“百考通智能问卷设计”的工作链路…

2026/10/19 15:05:00 阅读更多 →
6G空口时延优化:从帧结构到AI的微秒级预算攻略

6G空口时延优化:从帧结构到AI的微秒级预算攻略

6G 空口时延优化,说白了就是把无线接入网这一段的时间账单一张张撕开来看,看谁在偷走微秒级的预算。5G时代我们谈URLLC,宣传口径是1ms空口时延,到了6G喊的是亚毫秒、0.1ms甚至更低——追求的是从“尽力达成的低时延”变成“确定性…

2026/10/19 15:05:00 阅读更多 →
aiopsterm:本地AI终端实现SSH增强与远程主机排障自动化

aiopsterm:本地AI终端实现SSH增强与远程主机排障自动化

1. 项目概述:当终端遇上本地AI,排障逻辑彻底重构“不用 SSH 手敲命令排障了”——这句话不是营销噱头,而是我连续两周在三类生产环境(某高校边缘计算节点、某IoT设备管理平台后台、某中小型企业内网监控系统)实测后的真…

2026/10/19 15:05:00 阅读更多 →
深度学习异常检测全解析:从自编码器到Transformer的实战指南

深度学习异常检测全解析:从自编码器到Transformer的实战指南

1. 异常检测与深度学习的技术联姻异常检测这个方向,我接触了差不多有六七年,从早期用孤立森林、One-Class SVM这些传统方法,到后来全面转向深度学习,中间踩过的坑和尝到的甜头都不少。这篇综述性质的分享,我想把异常检…

2026/10/19 15:05:00 阅读更多 →
Bootstrap手机商城源码实战:从静态页面到可维护项目

Bootstrap手机商城源码实战:从静态页面到可维护项目

简介:这是一套基于Bootstrap框架搭建的手机商城前端模板,面向具备一定HTML、CSS与JavaScript基础、希望快速构建移动端购物平台的开发者。项目采用响应式布局与12列栅格系统,整合导航栏、轮播图、模态框等预定义组件,并预留后端接…

2026/10/19 15:05:00 阅读更多 →
开源Code Review解决方案:从规范到工具的全流程实践

开源Code Review解决方案:从规范到工具的全流程实践

1. 为什么我会专门做一个开源的 Code Review 项目先交代一下背景。我所在的团队大概三十来人,前后端、算法、质量都混在一起,日常迭代节奏很快。Code Review 这件事一直都有,但长期处于一种"有等于没有"的状态:PR 挂着两…

2026/10/19 15:03:58 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54:50 阅读更多 →
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/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →