MATLAB信号与系统实验代码跑通指南:卷积、频谱与滤波器调参避坑
简介针对郑君里《信号与系统》课程配套的MATLAB综合实验代码包由谷源涛整理面向电子、通信、自动化等专业学生贴合教材章节设计解决理论抽象、缺乏仿真实践的问题。压缩包共114个文件以103个m脚本为主辅以8个mdl模型文件、2个fig图形界面及1个tif图片整体仅160KB轻量便携。内容覆盖基础信号生成、线性时不变系统分析、卷积运算、拉普拉斯与Z变换应用、系统频率响应、数字滤波器设计等典型实验涵盖傅里叶变换、系统函数与零极点分析等核心知识点通过运行脚本可直观观察时域和频域特性。已有125人学习下载适合初学者巩固理论并提升MATLAB工程实践能力。这份代码将抽象信号与系统概念转化为可视化仿真并附有可交互的界面文件是衔接课堂与科研实训的实用工具。1. 拿到《信号与系统》的MATLAB实验代码包先别急着跑一个很常见的场景你在某门课程的资料里翻到一个名为“MATLAB综合实验代码”的压缩包下载、解压、双击脚本然后满屏报错或者波形图出来和你书上的对不上。我最初拿到这套《信号与系统》配套代码时也是这样——目录里一堆.m文件命名还带章节编号看起来挺规整但直接跑根本跑不通。折腾了几天我才意识到问题不在代码本身而在运行环境、参数取值和实验顺序上。这套代码覆盖了信号的时域分析、傅里叶变换、抽样定理、线性时不变系统响应、滤波器设计等核心实验是配合教材做验证的常用资源。这篇文章不评价代码写得漂不漂亮只讲一套我验证过的跑通路径、必调参数和容易踩的坑让新手少走弯路让已经跑过的人知道问题出在哪。2. 代码包结构与运行环境把目录读透再动手2.1 代码包的文件结构与教材章节的映射关系解压之后先别急着运行花五分钟把目录结构看清楚。我见到的这类代码包通常按“章节编号 实验名”组织文件比如ch2_convolution.m、ch3_fourier_series.m、ch4_sampling.m、ch5_filter_design.m。有些还会带一个data/子目录放预生成的信号数据一个utils/子目录放公共函数比如my_plot_spectrum.m这种绘图工具。文件命名里藏着规律前两位数字是教材章节号后面是实验关键词。这套命名规则直接对应到课程进度你要验证哪一章的结论就去找对应编号的脚本。用表格梳理一下典型模块和实验目标会更直观文件命名前缀对应章节主题核心实验内容典型输出ch2_*连续时间信号的时域分析卷积计算、系统冲激响应卷积波形图ch3_*傅里叶级数与傅里叶变换周期信号频谱、非周期信号频谱幅度谱、相位谱ch4_*抽样定理与信号重建不同抽样率下的频谱混叠、内插重建混叠对比图ch5_*线性时不变系统零状态响应、零输入响应、系统函数响应对比图ch6_*滤波器设计低通/高通滤波器设计、频率响应幅频特性曲线拿到手先做一件事把utils或公共函数目录添加到 MATLAB 路径。addpath需要在每个脚本运行前手动执行一次我经常遇到的问题是脚本里调用utils下的公共绘图函数但当前工作目录不在那个文件夹下直接报“未定义函数或变量”。最省事的做法是在脚本里加两行路径设置或者把utils拷贝到当前工作目录。% 将公共函数目录加入路径避免重复手动添加 addpath(fullfile(pwd, utils)); % 验证是否添加成功 which my_plot_spectrumwhich命令在排查“函数未定义”问题时是救命的它能告诉你当前调用的是哪个目录下的函数。如果搜索结果显示“未找到”说明路径没加对如果显示的不是预期路径说明存在同名函数遮蔽问题后面第 5 章会详细讲。2.2 版本兼容性检查与最小复现流程代码包编译的时间跨度通常很大有些脚本用了旧版画图语法比如plot(x, y, --)这种设定线型的写法还行但早期脚本里常见的wavread、freqz默认参数都和新版有差异。新版 MATLAB 用audioread替代了wavread旧写法直接报错。我的经验是先检查 MATLAB 版本R2016a 之前的版本踩坑概率比新版小如果你用的是 R2020a 及以后遇到旧语法就手动改或者直接安装兼容性工具。% 检查当前 MATLAB 版本 v ver(MATLAB); disp(v.Release); % 检查是否存在旧版函数并尝试替代 % 如果你的脚本里有 wavread新版中应改为 audioread % audioread 返回音频数据和采样率用法更现代 % [data, fs] audioread(signal.wav);最小复现流程指的是不贪多一次只跑通一个实验。我建议按ch2→ch3→ch4的顺序来因为后面的实验往往复用了前面的结论。某个实验脚本跑出来不符合预期先检查输入信号的定义是否和教材一致比如抽样实验里信号频率设了多少、抽样率取了哪个值。这类代码包最大的共性问题是参数散落在脚本里没有集中配置我习惯把关键参数抽出来单独看为后续调参做准备。运行顺序对了波形图基本就能对上后面再讨论调参和排错才不盲目。3. 核心实验的最小复现命令从卷积到频谱分析3.1 连续时间卷积与系统响应的最小命令卷积是《信号与系统》的开篇实验代码包里对应的脚本通常用conv函数做数值卷积但很多人没注意到conv算的是离散序列卷积要让它模拟连续时间卷积必须乘以时间步长dt。这个细节是第一个翻车高发区——直接调用conv不乘dt波形形状对得上但纵轴幅度全部放大教材里的理论值和你的结果差一个倍数。% 定义时间轴和两个信号 dt 0.01; % 时间步长越小精度越高但计算量增大 t -1:dt:3; f1 exp(-2 * t) .* (t 0); % 因果信号从 t0 开始衰减 f2 rectpuls(t - 0.5, 1); % 矩形脉冲宽度为1 % 数值卷积乘以 dt 才是连续卷积近似 y_conv conv(f1, f2) * dt; t_conv (0:length(y_conv)-1) * dt t(1) * 2; plot(t_conv, y_conv);逻辑说明conv输出的长度是length(f1) length(f2) - 1所以时间轴不能直接用原来的t需要重新构造。公式是t_conv (0:length(y_conv)-1)*dt t(1)*2这段代码里t(1)*2是因为两个信号都是从-1开始的卷积结果的起点是两者起点之和。参数说明dt是精度核心我跑这个实验一般取0.01如果要验证卷积的缩放性质可以试着把dt改为0.001波形变细腻但运行时间会拉长。如果你只想看形状dt0.05也够用图形会有一点点折角的锯齿感。3.2 傅里叶变换与频谱分析的实测参数傅里叶变换实验的做法是用freqs或fft来算。对于连续时间信号代码包一般先定义符号表达式再调用fourier或者用数值方法对时域信号做 FFT。实操里最容易出问题的是 FFT 的横轴频率映射。直接plot(abs(fft(x)))画出来的横轴是点数索引不是频率多少赫兹需要除以采样周期再乘以一个换算系数才能得到物理频率。% 构造一个由两个正弦叠加的信号 fs 1000; % 采样率 1000 Hz t 0:1/fs:1-1/fs; x sin(2*pi*50*t) 0.5*cos(2*pi*120*t); % 做 FFT 并取单边谱 X fft(x); N length(x); f (0:N-1) * fs / N; % 频率轴单位 Hz % 画单边幅度谱 mag abs(X) / N; mag_single mag(1:N/21); mag_single(2:end-1) 2 * mag_single(2:end-1); f_single f(1:N/21); plot(f_single, mag_single);逻辑说明FFT 的结果是对称的双边谱里负频率也有能量画单边谱要把负频率部分叠加到正频率上所以有2 * mag_single(2:end-1)。幅度归一化用除以N来补偿 FFT 本身的累加效应。参数说明fs的选择要满足抽样定理你的信号最高频率是 120 Hz那fs至少要取 240 Hz实际取 1000 Hz 是为了让频谱图像更平滑。如果出现频谱峰值偏离 50 Hz 和 120 Hz 的情况原因通常是信号时长不是采样周期的整数倍产生频谱泄漏。3.3 抽样定理验证从混叠到重建的完整脚本抽样定理是这门课最经典的实验代码包里通常会让输入不同抽样率画出不同抽样率下的频谱对比。操作流程是把连续信号按某个抽样率抽取然后做 FFT观察频谱是否混叠再用插值函数恢复信号。% 模拟抽样与混叠现象 fs_original 1000; t_orig 0:1/fs_original:0.1; x_orig sin(2*pi*30*t_orig) sin(2*pi*80*t_orig); % 最高频率 80 Hz % 用较低的采样率重新抽样 fs_low 100; % 抽样率 100 Hz低于奈奎斯特要求 t_low 0:1/fs_low:0.1; x_low sin(2*pi*30*t_low) sin(2*pi*80*t_low); % 做频谱对比 N length(x_low); f_low (0:N-1) * fs_low / N; plot(f_low, abs(fft(x_low)));逻辑说明当fs_low取 100 时80 Hz 的信号已经超过折叠频率50 Hz它会被折叠到 20 Hz 的频率位置频谱图上看到的峰值不是 80 Hz而是 20 Hz 和 30 Hz 的两个峰。这就是教科书上说的混叠。参数说明把fs_low改为 200 Hz 以上时混叠现象消失频谱图上重新出现 80 Hz 的峰值。重建部分常用interp函数或sinc内插我一般用interp(x_low, 10)把抽样率升回 1000 Hz再和原信号对比误差。注意抽样率不能刚好等于两倍最高频率取 2.2 倍以上更安全边界值在工程里几乎没有稳定工作的。4. 参数怎么改抽样率、滤波器与 FFT 点数的调参逻辑4.1 抽样率与观察时长两个必须同步调整的参数抽样率fs和观察时长T决定了你得到什么样的频谱分辨率。很多人只调抽样率忽略时长这就导致频谱分辨率不变但范围变了图像看起来总是差点意思。频谱分辨率df 1/T也就是频率轴上相邻两点的间隔。你要区分两个频率相距很近的信号就得让df足够小。参数作用调大调小注意采样率 fs决定频谱分析范围可观察更高频率但数据量增大频谱范围变窄低于两倍最高频率会混叠必须满足 fs ≥ 2×最高频率观察时长 T决定频谱分辨率分辨率更高能区分频率相近的分量频率分辨率变差峰值会变胖T 越长DFT 泄漏越少FFT 点数 N决定频率采样密度频谱更平滑但不能提高物理分辨率频谱粗糙峰值定位不准N 最好取 2 的整数次幂参数说明在代码包的ch4_sampling.m里最常见的是一个fs变量和一个T变量。想验证“频率分辨率”这个概念就把两个正弦信号改成 50 Hz 和 50.5 Hzfs保持 1000T从 1 秒改为 0.5 秒你会看到两个峰变成一个胖峰。把T改回 2 秒两个峰又分开了。这个实验做完抽样定理的高频范围印象和分辨率限制就同时理解了。4.2 滤波器截止频率与阶数的匹配逻辑滤波器设计实验一般出现在ch6_filter_design.m用butter或ellip设计低通滤波器。必调参数是截止频率Wn和阶数n。截止频率取多少取决于你要保留哪部分信号、滤掉哪部分噪声。有一个容易踩的坑butter的Wn在低通设计里是归一化截止频率范围是 0 到 11 对应奈奎斯特频率也就是fs/2。如果你想滤掉 200 Hz 以上的成分采样率是 1000 Hz那Wn 200 / (1000/2) 0.4。fs 1000; t 0:1/fs:1-1/fs; x sin(2*pi*50*t) sin(2*pi*300*t); % 50 Hz 是有效信号300 Hz 是噪声 Wn 200 / (fs/2); % 归一化截止频率 n 4; % 滤波器阶数 [b, a] butter(n, Wn, low); % 设计巴特沃斯低通滤波器 y filter(b, a, x); % 滤波逻辑说明butter设计出的滤波器阶数越高过渡带越窄但相位失真越严重。工程上一般取 4 到 6 阶过低则滤波不干净过高则信号本身也变形。如果你看到滤波后波形有起振或明显的振铃现象那就是阶数偏高换用一个 2 阶的butter再对比波形就明白了。参数调整效果Wn改到 250 时300 Hz 的噪声被部分保留波形上出现细小的锯齿Wn改到 100 时50 Hz 信号的幅度也被削减输出波形变矮。这个实验的意义是让你直观理解截止频率不能贴着信号频率设置要留出过渡带余量。4.3 FFT 点数、补零与频谱泄漏的关系FFT 点数N和数据长度是两个不同概念。代码包里有的脚本直接fft(x)有的写成fft(x, N)。后者是补零操作——原始数据长度不够N就在末尾补零让频谱曲线更光滑。补零不能提高频率分辨率只能让频谱图更细腻。真正的分辨率由数据长度决定补零是插值不增加信息量。fs 200; t 0:1/fs:0.5-1/fs; x sin(2*pi*20*t); % 不补零直接 FFT X1 fft(x); % 补零到 1024 点 N 1024; X2 fft(x, N); % 对比两者的频谱 f1 (0:length(X1)-1) * fs / length(x); f2 (0:N-1) * fs / N;参数说明length(x)是 100直接 FFT 的频率间隔是 2 Hz频谱峰值附近只有几个点能落在 20 Hz 附近画出的峰比较尖但轮廓粗糙。补零到 1024 后频率间隔约 0.2 Hz曲线光滑但峰值宽度没有变窄——因为真实分辨率仍由 0.5 秒数据长度决定。实操中遇到“频谱图锯齿感明显”的情况补零是最快的视觉改善手段。但要注意补零对区分两个频率相近的信号没有帮助那需要加长测量时间而不是补零。5. 避坑指南运行这套代码最常见的 5 个翻车现场我自己第一次跑这套代码时连续踩了五个坑每个都花了几个小时排查。按出现频率从高到低列出来供后来者对照。现象 1脚本运行报错“未定义函数或变量”但代码看起来没问题。原因脚本里调用了utils目录下的公共函数而公共路径未被添加到 MATLAB 搜索路径。新版 MATLAB 对未添加路径的函数直接报错。解决在脚本开头加addpath并把工作目录切换到代码包根目录。也可以用pathtool打开图形界面手动添加但每次都重新配太烦我习惯在startup.m里写addpath(genpath(代码包所在目录))一劳永逸。现象 2卷积结果幅度比教科书理论值大很多。原因未乘时间步长dt。离散卷积公式是求和连续卷积是积分数值算连续卷积必须乘以dt。代码包作者可能在某个版本里引入了*dt但后续更新时丢了。解决找到conv调用处确认输出要乘以dt。改完后用单位冲激信号做测试f1 [1, zeros(1, 99)]即单个脉冲卷积结果应当是f2本身乘以dt。现象 3FFT 频谱图横轴显示点数索引不是物理频率单位。原因脚本直接用了plot(abs(fft(x)))没有生成频率轴变量。这种代码在早期教材配套代码里很普遍画图方便但无法读出真实频率。解决手动构造频率轴f (0:N-1)*fs/N替换掉横轴数据。如果要做单边谱注意频谱对称性和幅度加倍。现象 4滤波后信号出现明显振铃滤波结果不像书上那么干净。原因滤波器阶数取太高或者截止频率取太靠近信号有效频率。阶数高在频域表现为过渡带窄但时域冲击响应拖尾振荡大。解决butter阶数从 2 到 4 开始试观察输出波形。截止频率至少留出 20% 的过渡带余量。如果振铃依旧改用filtfilt做零相位滤波波形失真明显更小代价是不能实时处理。现象 5跑ch4_sampling.m时频谱混叠现象看不到或者波形和他的理论描述不一致。原因输入信号的最高频率设置不合理或者抽样率取值没有跨越折叠频率。比如信号只有 30 Hz 一个成分抽样率不管取多少都不会出现混叠因为 30 Hz 本身低于任何合理的抽样率的一半。解决在输出信号的表达式里加一个高频分量比如 80 Hz 或 120 Hz再把抽样率降低就会看到高频分量被折叠到低频处的现象。也可以用两个不同抽样率做对比图一个高于奈奎斯特率、一个低于效果一目了然。6. 把实验代码改造成自己的信号处理工具箱当每个实验都能稳定跑通下一步值得做的事是把零散脚本整合成可复用函数。我之前用这套代码做某个教学演示项目时最痛苦的找曲线参数的过程留在单个脚本里还能忍受换个输入信号就要重新改参数。后来我把每个实验的核心计算提成独立函数只留输入参数和输出结果再写一个驱动脚本做批量实验。具体做法是把卷积实验封装成sysResponse(f, h, dt)函数把傅里叶分析封装成plotSpectrum(x, fs)函数把抽样验证封装成samplingDemo(f1, f2, fs_low)函数。这样每次调参不再打开原始脚本改数值而是按函数签名传参出错位置也更明确。一个更进阶的用法是把滤波器设计做成参数扫描。脚本里写一个循环从 2 阶到 8 阶依次滤波同时记录输出信号的前后波形差值自动判断阶数对失真程度的影响。这类自动化是快速理解课程结论的好办法不用每次都人工观察波形去猜。我通常会再做一步——把输出图批量保存成图片文件命名规则是“参数名_取值.png”方便对比不同取值下的频谱差异。这套改造投入半天时间之后每次做实验、改参数、写报告都能直接复用不用再翻原始脚本找改动点。我的习惯是每个函数开头写清楚输入输出和默认参数避免隔一段时间后自己都忘了函数怎么调。如果你现在手里这套代码还没跑通先把第 2 章的目录映射和第 5 章的避坑检查做完再按第 3 章的顺序逐次复现每个实验整个过程两三天能完成。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

期权定价中的蒙特卡洛模拟:原理、方差缩减与实操落地

期权定价中的蒙特卡洛模拟:原理、方差缩减与实操落地

1. 项目概述:为什么期权定价需要蒙特卡洛模拟?“期权定价的蒙特卡洛模拟方法”——这九个字背后,藏着金融工程里最硬核也最接地气的一类实操技术。它不是教科书里一笔带过的数学推导,而是某高校金融实验室、某量化团队后台、甚至某…

2026/10/13 17:22:27 阅读更多 →
手写线性回归:从最小二乘到残差诊断的全流程实践

手写线性回归:从最小二乘到残差诊断的全流程实践

1. 这不是“抄代码交作业”,而是一次对线性回归本质的重新触摸我带过不少刚接触机器学习的开发者,也看过太多人把“用sklearn.LinearRegression拟合出R0.87”当成任务完成。但某天在调试一个预测用户停留时长的模型时,发现训练集上R高达0.92&…

2026/10/13 17:21:27 阅读更多 →
YOLO数据预处理:XML标注转TXT格式的完整指南

YOLO数据预处理:XML标注转TXT格式的完整指南

1. 为什么非得从XML里“抠”数据?YOLO训练前的必过门槛你刚下载完一个公开的标注数据集,解压后发现里面全是.xml文件,不是JSON、不是CSV、更不是YOLO原生支持的.txt格式——第一反应可能是:“这谁设计的?怎么不直接给我…

2026/10/13 17:21:27 阅读更多 →

最新新闻

Mac平台Qt SQL驱动加载失败:原理诊断与修复方案

Mac平台Qt SQL驱动加载失败:原理诊断与修复方案

Mac 平台上 Qt 的sql load drivers问题,基本可以算是 Qt 开发者绕不过去的一道坎。报错代码就一句话——QSqlDatabase: QMYSQL driver not loaded或者QPSQL driver not loaded——但为摆平这一行,我前前后后走过官方安装包、包管理器、源码编译、部署打包…

2026/10/13 18:05:50 阅读更多 →
商家联盟会员消费管理系统:老技术栈的架构与部署实战

商家联盟会员消费管理系统:老技术栈的架构与部署实战

这套系统,我刚接手的时候第一反应是“老”:ASP.NET 2.0 的 WebForms、SQL Server 2005、IIS 6/7 的部署方式,每一项拎出来都像是上一代的东西。但真正把它跑起来、用起来之后我才发现,老技术栈恰恰是把业务讲得最透的一套方案。商…

2026/10/13 18:05:50 阅读更多 →
AnyPS5:面向PS5零售机的合规轻量级开发协同方案

AnyPS5:面向PS5零售机的合规轻量级开发协同方案

项目标题:“AnyPS5”这个名称本身带有强烈的指向性与模糊性并存的特点——它既像一个技术代号,又像一句口号;既暗示兼容性、泛用性(“Any”),又锚定在特定硬件生态(“PS5”)。但问题…

2026/10/13 18:05:50 阅读更多 →
LiteLLM:统一OpenAI接口调用多模型的协议适配网关

LiteLLM:统一OpenAI接口调用多模型的协议适配网关

1. 为什么“litellm”突然在开发者圈里刷屏?它真不是另一个LLM包装壳最近两周,好几个不同技术栈的同行在 Slack 和内部技术群反复提到一个词:litellm。不是“Lite LLM”,也不是“Light LLM”,就是小写的、连在一起的li…

2026/10/13 18:05:50 阅读更多 →
LiteLLM:统一API网关实现多模型无缝切换的工程实践

LiteLLM:统一API网关实现多模型无缝切换的工程实践

1. 项目概述:LiteLLM 是什么,它解决的到底是什么问题?LiteLLM 这个名字乍一听像某个轻量级模型,但其实它压根不训练模型、不推理文本、也不生成代码——它是个“协议翻译器”,更准确地说,是一个统一的 API …

2026/10/13 18:05:49 阅读更多 →
Python操作ZooKeeper实战:kazoo库核心用法与避坑指南

Python操作ZooKeeper实战:kazoo库核心用法与避坑指南

1. 为什么分布式系统里总绕不开 ZooKeeper1.1 从一个真实场景说起假设你手头有一套分布式的任务调度系统,三台机器同时跑着调度进程,但同一时刻只允许一台机器真正去派发任务,其他两台必须待命。一旦正在工作的那台挂了,剩下两台要…

2026/10/13 18:04:45 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →