FPGA雷达脉冲压缩实战:Artix-7上可运行的完整Verilog信号处理链路
简介本资源为FPGA脉压处理方向的完整工程实践包面向数字电路设计初学者、嵌入式信号处理学习者及雷达/通信领域工程技术人员聚焦于在FPGA平台上实现脉冲压缩脉压算法的硬件化落地。压缩包共739个文件176.42MB涵盖44个VHDL/36个V文件核心逻辑与IP核集成、40个COE/MIF存储配置文件滤波器系数与查找表、56个ModelSim仿真脚本.do、81个说明类TXT文档及大量编译/仿真/下载批处理脚本.bat/.sh完整复现从算法建模、RTL实现、时序约束.xdc、综合实现.dcp/.xci到板级验证的全流程。已有2097人学习下载用户可直接获取可运行的全工程代码、配套测试激励含tb_fir_compiler_0.c等C语言测试向量、详细硬件接口说明及工程配置指南有效弥补此前同类资源缺失完整工程的短板显著降低FPGA脉压系统学习与复现门槛。1. FPGA脉压工程实战一个能直接烧录进Xilinx Artix-7、跑通实测回波数据的完整信号处理链路你手头有一组雷达中频采样数据.bin 或 .dat 格式想验证脉冲压缩效果但Matlab仿真完不知道怎么落地到硬件或者你刚拿到一块带ADC前端的FPGA开发板对着Vivado工程发懵——顶层模块连不上ADC时钟域FFT点数改了就综合失败脉压系数加载后输出全是零这个lunwen_jiangwenbo2.zip就是为这类场景准备的它不是论文附录里的伪代码而是一套从ADC采集→数字下变频→匹配滤波→CFAR检测全链路可运行的FPGA工程核心模块全部用Verilog HDL实现已通过Xilinx Artix-7 XC7A35T-2CSG324I 实测验证。项目作者把毕业设计里最硬的几块“骨头”——跨时钟域握手、定点FFT缩放控制、脉压核流水线调度——全拆开揉碎写进了RTL连ILA抓取的时序波形截图都打包在doc/目录里。适合正在做雷达信号处理课程设计、毕业设计或初入军工电子类岗位的开发者拿来就能改参数、换数据、看波形。2. 工程结构与技术栈Verilog为主干MATLAB生成系数Vivado 2019.2全流程闭环这个工程不是玩具Demo它具备工业级FPGA项目的典型分层结构硬件抽象层ADC驱动时钟管理、信号处理层DDCFFTIFFT脉压核、控制层AXI-Lite配置寄存器状态机。所有模块均采用同步复位、无锁存器、全组合逻辑路径约束明确的设计风格避免综合出黑匣子。技术选型非常务实不碰HLS这种玄学工具也不上PYNQ搞软硬协同就是纯Verilog MATLAB脚本 Vivado IP Catalog。关键点在于——所有滤波器系数、FFT旋转因子、CFAR阈值全部由MATLAB预计算生成导出为coe文件供Block RAM初始化彻底规避FPGA里做浮点运算的翻车风险。2.1 目录结构解析从顶层到子模块的物理映射关系解压后你会看到清晰的五层目录lunwen_jiangwenbo2/ ├── doc/ # 波形截图、模块接口说明PDF、关键时序约束注释 ├── fpga/ # 核心RTL源码Verilog │ ├── top/ # 顶层模块top_pulse_compression.v含ADC接口AXI-Lite总线 │ ├── ddc/ # 数字下变频mixer CIC HB滤波器3级半带 │ ├── fft/ # 定点FFT/IFFT1024点基-2DIT流水线结构支持8/16/32位输入 │ ├── pulse_compress/ # 脉压核心匹配滤波器IP核Xilinx FFT 复数乘法器 IFFT │ └── cfar/ # 恒虚警检测Cell-Averaging CFAR含背景窗配置寄存器 ├── matlab/ # 系数生成脚本.m及测试数据.mat/.bin │ ├── gen_coeff.m # 生成CIC补偿滤波器、FFT twiddle、脉压模板 │ ├── simulate_pulse.m # MATLAB端脉压仿真用于比对FPGA结果 │ └── test_data/ # 示例中频数据chirp_10us_1MHz.bin10μs线性调频带宽1MHz ├── sdk/ # SDK工程仅含空壳未启用ARM核纯PL逻辑 └── vivado/ # Vivado 2019.2工程文件.xpr、约束文件.xdc、比特流.bit提示fpga/pulse_compress/下的match_filter_core.v是整个工程的“心脏”它把FFT结果与预存的匹配滤波器系数做逐点复数乘再送入IFFT——这里没有用Xilinx的FIR Compiler IP而是手写流水线乘加单元确保每个时钟周期吞吐1个复数点避免资源爆炸。2.2 关键技术选型依据为什么不用HLS为什么坚持定点很多新手一上来就想用Vitis HLS写C算法结果综合出几千个DSP48E1时序根本收敛不了。这个工程的血泪经验是雷达脉压对时延敏感度远高于算法灵活性。比如CIC滤波器的积分器必须用大位宽32bit防止溢出但后续HB滤波器用16bit足够FFT中间结果需动态缩放每级FFT后右移1位否则高位全零。这些细节HLS很难精准控制。作者在matlab/gen_coeff.m里做了三件事计算CIC补偿滤波器系数时强制量化到16bit有符号整数并验证通带纹波0.1dB生成FFT twiddle因子时用quantizer(fixed,round,s16,15)保证相位精度脉压模板直接用fftshift(fft(chirp_signal))取共轭导出为s32,31格式coe文件。最终资源占用实测Artix-7 XC7A35T模块LUTFFDSP48E1BRAM18KDDC含CICHB2148189204FFT/IFFT1024点482152103212脉压核含复数乘31052987242CFAR检测89276500注意DSP48E1只用在FFT和复数乘没在滤波器里滥用——这是能跑通的关键。如果你强行把CIC改成FIRDSP用量会翻3倍时序必崩。2.3 MATLAB与FPGA协同工作流数据怎么进结果怎么出整个链路的数据流向是单向确定的数据输入ADC采样率50MHz14bit并行输出 → 经过ddc/mixer.v下变频至基带 →ddc/cic_hb.v降速至5MHz脉压处理5MHz数据流按1024点缓存 → 触发FFT → 与BRAM中预存的匹配滤波器系数相乘 → IFFT → 输出脉压后数据结果输出脉压结果经cfar/cfar_detector.v判决后通过AXI-Lite总线写入status_reg[31:0]同时将峰值位置存入peak_addr_reg[15:0]。MATLAB端提供两个脚本支撑闭环验证simulate_pulse.m读取test_data/chirp_10us_1MHz.bin用fft/ifft复现FPGA流程输出sim_result.matcompare_result.m将FPGA实测ILA抓取的pulse_out.dat二进制16bit有符号与MATLAB仿真结果比对计算SNR误差实测0.3dB。提示vivado/constraints.xdc里第47行明确约束了ADC数据有效沿“set_input_delay -clock [get_clocks sys_clk] 2.5 [get_ports {adc_data[*]}]”这是保证建立/保持时间的关键别手抖删了。3. 核心模块代码逐行拆解从DDC混频器到脉压核的流水线调度现在我们聚焦最易出问题的三个模块DDC混频器、FFT缩放控制、脉压核复数乘。代码全部来自fpga/目录我按实际调试顺序带你过一遍关键段落。注意所有代码块均标注语言、行号范围并说明该段解决什么问题、参数如何调整。3.1 DDC混频器为什么用正交本振如何避免频谱镜像fpga/ddc/mixer.v第23–42行实现正交混频这是数字下变频的第一步// mixer.v: 正交混频器23-42行 always (posedge clk) begin if (rst_n 1b0) begin i_out 16d0; q_out 16d0; end else begin // 本振信号10MHz正交由DDS生成此处简化为查表 i_lo lo_table[i_phase]; // cos(2π*10e6*t) q_lo lo_table[q_phase]; // sin(2π*10e6*t) // ADC输入为14bit扩展至16bit防溢出 adc_ext {adc_data[13], adc_data}; // 符号位扩展 // 复数乘(IjQ) * (cosj*sin) (I*cos - Q*sin) j(I*sin Q*cos) i_out $signed(adc_ext) * $signed(i_lo) - $signed(adc_q) * $signed(q_lo); q_out $signed(adc_ext) * $signed(q_lo) $signed(adc_q) * $signed(i_lo); end end这段代码解决的是频谱搬移的确定性问题。如果只用实数本振如cos混频后会产生上下边带叠加无法分离目标信号。正交本振cosj·sin配合复数乘能把上边带直接搬移到基带负频率、下边带搬移到正频率再经低通滤波即可分离。lo_table是MATLAB生成的256点正余弦表gen_coeff.m第89行量化为s16,15格式确保相位噪声-90dBc/Hz。参数说明adc_q是ADC的Q路此处为单路输入Q路置0i_phase/q_phase由独立计数器驱动确保本振频率精度达0.1Hz。若要改为15MHz本振只需改gen_coeff.m中fs50e6; f_lo15e6;并重生成lo_table.coe。3.2 FFT缩放控制为什么每级FFT后必须右移不移会怎样fpga/fft/fft_stage.v第65–78行实现基-2DIT的蝶形运算缩放// fft_stage.v: 单级蝶形缩放65-78行 always (posedge clk) begin if (rst_n 1b0) begin out_real 16d0; out_imag 16d0; end else begin // 蝶形运算X[k] X[k] W*X[kN/2] temp_real in_real twid_real * in2_real - twid_imag * in2_imag; temp_imag in_imag twid_real * in2_imag twid_imag * in2_real; // 关键缩放每级FFT后右移1位防止溢出 // 因为N1024理论最大增益2^10故10级需右移10位分摊到每级 out_real temp_real[16:1]; // 右移1位截断低位 out_imag temp_imag[16:1]; end end这是FPGA脉压最常翻车的点。FFT理论增益为N1024若不做缩放16bit输入经过10级蝶形后数据位宽需26bit才能不溢出但BRAM深度不够。作者采用级间缩放Block Floating Point每级蝶形后右移1位等效于整体右移10位完美匹配1024点。实测若删除[16:1]截断out_real高位全1脉压输出一片噪点。行为验证在doc/waveform_fft_stage.png中你能看到temp_real在第3级达到22bit宽度而out_real稳定在16bit证明缩放生效。3.3 脉压核复数乘如何用最少DSP实现高吞吐fpga/pulse_compress/match_filter_core.v第112–135行是复数乘核心它决定脉压速度// match_filter_core.v: 复数乘流水线112-135行 always (posedge clk) begin if (rst_n 1b0) begin prod_real 32d0; prod_imag 32d0; end else begin // 输入FFT结果s16,15 × 匹配滤波器系数s16,15 // 输出32bit有符号保留足够精度 prod_real $signed(fft_real) * $signed(coeff_real) - $signed(fft_imag) * $signed(coeff_imag); prod_imag $signed(fft_real) * $signed(coeff_imag) $signed(fft_imag) * $signed(coeff_real); // 流水线打拍确保DSP48E1时序收敛 // Xilinx DSP48E1原生支持s18×s18→s36此处用s16×s16→s32 prod_real_d1 prod_real; prod_imag_d1 prod_imag; end end这里用的是资源换时序策略不追求单周期完成而是插入一级寄存器prod_real_d1让DSP48E1有足够时间布线。coeff_real/coeff_imag来自bram_coeff.v地址由FFT索引fft_idx[9:0]直接驱动实现零等待读取。实测吞吐率达5MHz与DDC输出速率一致满足实时处理。关键技巧$signed()强制类型转换必不可少若漏写Verilog会当无符号乘导致负系数全变正脉压主瓣直接消失。4. 编译与实测全流程从Vivado综合到ILA抓波形的6个关键步骤别被Vivado界面吓住——这个工程已把90%的坑填平。你只需严格按这6步走20分钟内必见脉压波形。每步都标出常见失败现象及定位命令拒绝玄学调试。4.1 步骤1环境准备与工程打开Vivado 2019.2下载安装Vivado 2019.2 WebPACK免费支持Artix-7解压lunwen_jiangwenbo2.zip双击vivado/pulse_compression.xpr避坑1工程路径含中文或空格→ 现象Vivado报错“cant open file”→ 原因Tcl脚本路径解析失败→ 解决将工程移到纯英文路径如D:/fpga/pulse_compression/。4.2 步骤2约束文件检查重中之重打开vivado/constraints.xdc确认以下三行存在且参数匹配你的硬件# 约束ADC时钟第12行 create_clock -period 20.000 -name adc_clk [get_ports adc_clk] # 约束系统时钟第25行 create_clock -period 10.000 -name sys_clk [get_ports sys_clk] # 约束ADC数据输入延迟第47行 set_input_delay -clock [get_clocks sys_clk] 2.5 [get_ports {adc_data[*]}]注意adc_clk周期20ns对应50MHz若你用其他ADC需同步修改。set_input_delay 2.5是根据PCB走线长度估算的实测值在2.3~2.7ns之间若波形毛刺多可微调±0.2。4.3 步骤3综合与实现重点看Utilization Report点击Run Synthesis→Run Implementation。完成后查看报告Report Utilization确认DSP48E1使用率80%当前24/120若超限说明系数位宽设太高Report Timing Summary检查WNSWorst Negative Slack≥0若为负优先降低pulse_compress模块的MAX_FANOUT在vivado/constraints.xdc第88行。4.4 步骤4生成比特流与烧录点击Generate Bitstream等待完成约8分钟连接JTAG下载器选择Open Hardware Manager→Open Target→Program Device选择vivado/pulse_compression.runs/impl_1/top_pulse_compression.bit避坑2烧录后LED不亮或无输出→ 现象ILA无信号status_reg始终为0→ 原因top_pulse_compression.v第312行rst_n未正确连接硬件复位按钮→ 解决将rst_n改接到开发板的btn[0]在vivado/constraints.xdc第15行已定义。4.5 步骤5ILA抓取脉压波形验证是否真跑通在Vivado中打开hw_ila_1位于vivado/pulse_compression.srcs/sources_1/ip/ila_0/ila_0.xci添加探针pulse_out_real[15:0],pulse_out_imag[15:0],cfar_flag点击Run Trigger设置触发条件cfar_flag 1避坑3ILA抓不到有效波形→ 现象波形全零或随机跳变→ 原因pulse_compress/match_filter_core.v第97行valid_in未与DDC输出同步→ 解决在top_pulse_compression.v中将ddc_valid经两级寄存器同步后再送入脉压核已写在fpga/top/sync_ddc_valid.v。4.6 步骤6MATLAB比对验证确认算法正确性将ILA导出的pulse_out.dat16bit有符号二进制复制到matlab/test_data/运行compare_result.m输出FPGA SNR: 32.15 dB MATLAB SNR: 32.41 dB Error: 0.26 dB 0.3 dB ✅若误差0.5dB检查matlab/gen_coeff.m中quantize_coeff函数是否启用第102行q quantizer(...)。提示doc/ILA_pulse_output.png是作者实测波形主瓣宽度≈1.2μs旁瓣抑制35dB可直接对标。5. 避坑指南5个真实踩过的坑与血泪解决方案这些不是教科书理论而是我在某高校实验室陪学生调通这个工程时记在笔记本上的真实翻车记录。每一条都对应一个git commit和一次凌晨三点的咖啡。5.1 现象综合后资源爆表DSP48E1使用率120%原因fft/fft_stage.v第72行temp_real未截位导致综合器推断出26bit加法器自动例化额外DSP解决强制添加截位语句temp_real[25:0]并在vivado/constraints.xdc第95行添加set_max_fanout 8 [get_cells -hier -filter {REF_NAME DSP48E1}]限制扇出。5.2 现象脉压输出恒为0ILA显示valid_out一直为0原因pulse_compress/match_filter_core.v第142行状态机卡在IDLE态因fft_done信号未同步进脉压时钟域解决在top_pulse_compression.v中插入异步FIFOfpga/ip/async_fifo_v1_0/将fft_done从sys_clk域跨到pulse_clk域已封装为sync_pulse_clk.v。5.3 现象CFAR检测到多个虚假峰值信噪比下降10dB原因cfar/cfar_detector.v第66行背景窗大小设为32但实测数据中杂波相关距离单元达50解决将BG_WIN_SIZE参数从10d32改为10d64并重生成cfar_coef.coematlab/gen_coeff.m第203行。5.4 现象更换不同带宽的chirp信号后脉压主瓣展宽原因匹配滤波器系数未随带宽重生成仍用1MHz模板处理5MHz信号解决修改matlab/gen_coeff.m第35行bw 5e6;重新运行生成coeff_5MHz.coe替换fpga/pulse_compress/bram_coeff.coe。5.5 现象Vivado报错“[Synth 8-5821] design has unconnected port clk”原因fpga/fft/fft_top.v第89行input clk未在实例化时连接因作者误删了顶层例化语句解决在fpga/top/top_pulse_compression.v第412行补全.clk(sys_clk),该bug已在vivado/patch_notes.txt中标记V2.1版已修复。注意所有修复均已提交到工程根目录的patch_notes.txt按日期排序可直接grep关键词定位。6. 二次开发实战如何快速适配你的雷达参数与硬件平台现在你已经跑通了标准chirp信号下一步是把它变成你自己的工具。我以某次实际项目为例客户要求将原10μs/1MHz chirp改为20μs/5MHzADC采样率从50MHz升到100MHz目标芯片换成Kintex-7 XC7K160T。整个改造过程只用了3小时核心就三步改参数、换IP、验时序。6.1 参数迁移表从旧配置到新配置的映射关系参数项原工程值新需求值修改位置验证方法chirp时宽10μs20μsmatlab/gen_coeff.m第32行tau20e-6仿真主瓣宽度应≈2×原值chirp带宽1MHz5MHzmatlab/gen_coeff.m第35行bw5e6旁瓣抑制需-30dB用plot_cfar.mADC采样率50MHz100MHzvivado/constraints.xdc第12行-period 10.000综合后WNS≥0FFT点数10242048fpga/fft/fft_top.v第25行N11d2048Report Utilization中BRAM增加≤20%目标芯片Artix-7Kintex-7Vivado菜单Tools→Settings→Project Settings→General→Part重新生成bit后ILA波形不变形提示matlab/目录下所有.m脚本都加了%% CONFIGURATION区块参数集中管理改一处全局生效。6.2 IP核升级实操用Vivado IP Catalog替换手写模块原工程的CIC滤波器是手写的ddc/cic_integrator.v但Kintex-7支持更高性能的CIC Compiler v5.0。改造步骤删除fpga/ddc/cic_integrator.v及关联模块在Vivado中IP Catalog → CIC Compiler → CustomizeNumber of Stages: 4提升阻带衰减Differential Delay: 1Input Width: 16Output Width: 32防溢出生成IP后在top_pulse_compression.v中例化将cic_out接入原hb_filter输入关键验证运行vivado/scripts/run_cic_test.tcl自动比对CIC频响与手写版误差0.01dB。6.3 时序收敛技巧当WNS为负时的3个救命操作Kintex-7布线更复杂WNS常为负。我总结出三个立竿见影的操作按优先级排序降低关键路径扇出在vivado/constraints.xdc中添加set_max_fanout 4 [get_cells -hier -filter {REF_NAME FDRE NAME ~ *pulse_out*}]限制脉压输出寄存器扇出减少布线延迟插入寄存器平衡在pulse_compress/match_filter_core.v第128行prod_real后加一级寄存器命名为prod_real_reg并用(* keep *)属性锁定启用物理综合在Implementation Settings → Strategy中选Congestion_Spread比默认Flow_PerfOptimized_high快2倍且WNS更优。最后说个习惯从那以后我每次改完参数都强制走一遍matlab/simulate_pulse.m → compare_result.m → vivado/implementation/run_impl.tcl三件套确保MATLAB仿真、FPGA实现、实测结果三者SNR误差0.3dB。这步看似慢实则省下80%的ILA抓波形时间。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

React Native三区列表布局:跨端一致性实践

React Native三区列表布局:跨端一致性实践

做跨平台应用做久了,因为目标平台里多了鸿蒙,列表布局的选择就自然往“一套代码,三端保持观感一致”的方向收敛。最近做合同模块重构,我把合同记录列表改成了最稳的经典三区结构:左边放合同封面缩略图,中间…

2026/10/19 13:15:47 阅读更多 →
PostgreSQL恢复监控实战:SQL洞察WAL回放与主备延迟

PostgreSQL恢复监控实战:SQL洞察WAL回放与主备延迟

如果你管过 PostgreSQL 的主从架构,大概率经历过这种时刻:备库恢复突然变慢、主备延迟飙高、或者备库干脆卡住不动,而日志里只剩下一条孤零零的 restartpoint complete 。真正让人头疼的是——你没法从日志里看清"现在到底恢复到哪里了…

2026/10/19 13:15:47 阅读更多 →
代码评审流于形式?open-code-review实践:从流程设计到自动化质量门禁落地

代码评审流于形式?open-code-review实践:从流程设计到自动化质量门禁落地

代码评审这件事,说的人多,做到位的人少。我见过太多团队把Review当成发布流程里的一道签字手续,PR挂了两天没人看,临上线前被催着点个Approve,真正的问题全留给测试和用户去发现。做这套open-code-review实践&#xff…

2026/10/19 13:15:47 阅读更多 →

最新新闻

进口阀门选型与采购实务:极端工况应用与避坑指南

进口阀门选型与采购实务:极端工况应用与避坑指南

进口阀门这些年一直是工业项目里绕不开的话题。做设备采购的、搞工艺设计的、管工厂运维的,几乎都跟它打过交道。很多人一听到“进口阀门”就想到贵、货期长、售后麻烦,但实际上它能在国内重工业场景里占据一席之地,靠的是极端工况下那份稳定…

2026/10/19 13:50:38 阅读更多 →
Flink CDC 3.0:MySQL到Doris实时同步的Binlog机制与避坑指南

Flink CDC 3.0:MySQL到Doris实时同步的Binlog机制与避坑指南

简介:由尚硅谷研究院撰写的Flink CDC 3.0学习文档,面向具备一定Flink基础的大数据处理研发人员,系统讲解如何基于变更数据捕获技术实现MySQL到Doris的实时数据同步。内容首先界定CDC概念,比较基于查询和基于Binlog两种方式的执行模…

2026/10/19 13:50:38 阅读更多 →
CLI驱动的Git原生代码审查:LLM嵌入开发流程实践

CLI驱动的Git原生代码审查:LLM嵌入开发流程实践

1. 项目概述:这不是又一个“AI写代码”玩具,而是一套嵌入开发流程的轻量级代码审查协作者“open-code-review”这个名字乍一听像某个开源项目仓库名,但拆开来看——open(开放)、code(代码)、rev…

2026/10/19 13:50:38 阅读更多 →
CP2102驱动安装与串口调试全攻略:从识别到回环测试

CP2102驱动安装与串口调试全攻略:从识别到回环测试

简介:CP2102驱动是Silicon Labs推出的USB转UART桥接器配套软件组件,面向使用开发板、模块或自定义硬件的嵌入式开发者与电子爱好者,用于让Windows系统正确识别并稳定通信CP2102芯片设备。资源包共15个文件,约3.41MB,以…

2026/10/19 13:50:38 阅读更多 →
开源CLI代码审查工作流:基于Git+LLM的本地化自动化Code Review

开源CLI代码审查工作流:基于Git+LLM的本地化自动化Code Review

1. 项目概述:这不是一个“工具”,而是一套可落地的开源代码审查工作流 “open-code-review”这个标题乍看像某个具体软件的名字,但结合它在热搜词中与 CLI、LLM、git、code review 的强关联,再叠加上近期开发者社区里反复出现的…

2026/10/19 13:50:38 阅读更多 →
MATLAB SVD实战:从矩阵分解到图像压缩与降维的完整实现

MATLAB SVD实战:从矩阵分解到图像压缩与降维的完整实现

简介:这份MATLAB SVD资源包面向学习线性代数、信号处理与图像处理的初学者及工程人员,围绕奇异值分解这一核心矩阵分解方法,提供可直接运行的代码示例与实验素材,帮助理解SVD的数学原理及其在信道估计、图像压缩去噪等场景中的落地…

2026/10/19 13:49:32 阅读更多 →

日新闻

频率跟踪型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 阅读更多 →