QPSK调制解调MATLAB仿真:成型滤波、匹配滤波与误码率对齐指南
简介QPSK调制解调仿真MATLAB代码包面向通信与信号处理方向的学习者覆盖从二进制随机序列产生、双极性变换、串并转换、上采样、成型滤波、载波调制、加噪、相干解调、低通/匹配滤波、抽样判决到并串转换的完整链路适合课程设计、毕业设计或自学仿真使用。包内共5个文件其中4个m脚本包含主程序qpsk.m及低通滤波、升余弦滚降滤波、频谱图绘制三个辅助函数另附1个txt说明文档整体仅6KB结构精简。代码每一步均有详细中文注释已在MATLAB 2018与2023版本验证运行通过将ebn0设为单个数值即可展示各环节的时域波形、功率谱、频谱图、星座图与眼图同时给出理论与仿真误码率对比。目前已有3800人学习下载可作为理解成型滤波限带、匹配滤波消除码间干扰、上采样压缩频谱宽度等要点的直观参考。1. 做QPSK调制解调的MATLAB仿真卡住你的从来不是代码做QPSK调制解调的MATLAB仿真最气人的不是链路搭不出来而是星座图看着很正误码率曲线却永远压不到理论值。我帮人排查过不少这类仿真九成问题都出在成型滤波与匹配滤波引入的延迟和增益对齐上跟调制算法本身反而没什么关系。这份资源是一条端到端的基带仿真链路数据生成、格雷映射、成型滤波、AWGN信道、匹配滤波、定时采样、误码统计每段都能单独跑通并可视化。适合刚接触通信仿真、需要交课程设计的新手也适合要做基带验证平台、需要快速改参数的工程师。下面按我平时调链路时的顺序把原理、脚本和踩过的坑一次说完。2. 链路设计先定参数再写代码QPSK仿真没那么玄学2.1 为什么选QPSK频谱效率与实现复杂度的一次权衡BPSK、QPSK、8PSK里QPSK是折中得最舒服的一个。BPSK每个符号只带1比特频谱利用率太低8PSK虽然每符号带3比特但星座点之间的欧氏距离明显缩短对噪声和相位抖动更敏感仿真里还会放大定时误差的影响。QPSK每符号2比特拆成I、Q两路独立的BPSK只需要一个π/2的移项网络就能完成调制和解调实现成本几乎和BPSK持平频谱效率却直接翻倍。还有一个反直觉的结论在相同的比特信噪比Eb/N0下QPSK的理论误比特率曲线和BPSK完全重合。也就是说QPSK用加倍的频谱效率换来了和BPSK持久的误码性能这也是它成为教科书常客的根本原因。你要是只想画个星座图BPSK两行代码就够但想验证一条完整链路的BER、搞懂成型滤波对系统的影响QPSK是最合适的第一站。后续要扩到8PSK或16QAM也只是把映射表和判决函数换掉链路骨架完全不用动。2.2 仿真链路分块每一段都要能单独验证我把一条完整的QPSK基带仿真链路拆成下面几块顺序和信号实际流动方向一致。数据生成随机0/1比特序列长度可配符号映射每2比特映射为1个QPSK符号使用格雷码上采样与成型滤波按过采样倍数插值再用根升余弦滤波器限带AWGN信道按比特信噪比折算噪声功率后加噪匹配滤波与发射端同参数的根升余弦滤波器定时采样与判决在最佳采样点抽取符号映射回比特误码统计对比收发比特算出BER。为什么要拆得这么细因为仿真链路越长越容易“整体跑通但局部是错的”。我见过太多同学把整个系统写在一个脚本里出错后根本定位不到是映射反了还是滤波器没对齐。模块化以后每个模块输出一个中间变量发射符号、滤波后信号、接收采样点都可以在每段之间画图确认发射星座应是四个团加噪后应弥散匹配滤波后在最优采样时刻应重新聚拢。任何一段和预期不符就能立刻定位是哪一段出了问题。2.3 关键参数表先把这些值想清楚再动手动笔写代码前我习惯先把参数全部固定在脚本头部避免写到后面到处改字面量。下面这张表是这份代码的核心参数后面所有脚本都围绕它们展开。参数推荐值说明M4调制阶数QPSK对应4个星座点bitsPerSym2每符号比特数等于log2(M)sps4每符号采样点数即过采样倍数span10滤波器截断的符号数决定滤波器时长rolloff0.35滚降系数控制频带宽度和ISInumBits40000参与仿真的比特总数建议不低于20000EbN0dB6比特信噪比便于后续扫点这里有两个参数最容易用错。sps是“每个符号采多少个点”它决定成型滤波器能不能正常工作设太小会直接带来频谱混叠这一点在第4章专门展开。EbN0dB是每比特信噪比它和噪声方差直接挂钩换算不对会让误码率整体偏移好几个数量级第5章第一个坑就是它。至于载波我在这套代码里用的是基带等效模型也就是不生成实际正弦载波直接在复基带处理。原因有两层一是仿真速度快得多省掉整整一大段载波乘法运算二是BER计算只看基带判决结果加不加载波不影响最终误码率结论。你后续要验证载波同步和频偏估计再把上变频模块加回来就行成型滤波和匹配滤波完全不用动。2.4 先看眼图和频谱再跑BER在正式跑BER之前我习惯先做两个快速验证确保链路没有方向性问题。一个看星座散点一个看发射信号的功率谱。这两段代码都很短但比任何玄学都管用。% 看发射端星座滤波前的符号 scatterplot(symbols); title(QPSK发射星座映射); % 看接收端匹配滤波后的眼图 eyediagram(rxFiltered, sps, delay); % 参数说明sps是每个符号采样数delay是显示起点偏移 % 不同MATLAB版本对eyediagram的第三参数定义略有差异以帮助文档为准。 % 看成型滤波后的功率谱频率轴按符号率归一化 [psdEst, fAxis] periodogram(txSignal, [], [], sps, centered); plot(fAxis, 10*log10(psdEst)); xlabel(频率 (×符号速率)); ylabel(功率谱密度 (dB)); grid on;眼图的作用是检查码间干扰。如果眼图在最佳采样时刻张开得干净、眼高明显说明成型滤波和定时采样没问题要是眼睛基本闭着优先查滤波器延迟补偿。频谱图用来核对带宽QPSK基带信号理论主瓣宽度约为符号速率Rs的一半滚降后扩展到(1rolloff)×Rs/2。如果你看到主瓣宽度明显翻倍十有八九是上采样没做在滤波之前。这两张图配合星座图能覆盖绝大多数低级错误整个过程不超过两分钟。3. 发射与接收全链路实现可直接改参数的MATLAB脚本3.1 发射端数据生成、格雷映射与成型滤波先放发射端核心代码。这份脚本里我把参数全部放在最前面方便后续批量改值。% QPSK发射端 % 参数区 M 4; % 调制阶数 bitsPerSym log2(M); % 每符号比特数 sps 4; % 每符号采样数 span 10; % 滤波器截断符号数 rolloff 0.35; % 滚降系数 numBits 40000; % 总比特数 % 1. 生成随机比特 dataBits randi([0 1], numBits, 1); % 2. 格雷码映射表 % 00 - 11j, 01 - -11j, 11 - -1-1j, 10 - 1-1j symbols zeros(numBits / bitsPerSym, 1); mapTable [11j, -11j, -1-1j, 1-1j]; for k 1:2:numBits twoBits dataBits(k:k1); idx twoBits(1)*2 twoBits(2) 1; % 高位在前 symbols((k1)/2) mapTable(idx); end % 3. 上采样每个符号插入(sps-1)个零 upsampled zeros(length(symbols) * sps, 1); upsampled(1:sps:end) symbols; % 4. 成型滤波根升余弦 rrcFilter rcosdesign(rolloff, span, sps, sqrt); txSignal filter(rrcFilter, 1, upsampled);先说明两点映射表索引我用“高位在前”也就是dataBits里的第一个bit作为二进制的高位。这样做的好处是判决函数里不用额外调换顺序比用bi2de默认的低位在前少一层心智负担。格雷码的核心价值在于相邻星座点之间只有1比特差异判决出错时大概率只错1比特而不是错2比特BER性能在低信噪比下会明显好于自然码映射。上采样这步是关键中的关键。成型滤波器的输入必须是插值后的脉冲序列而不是直接送原始符号。upsampled(1:sps:end) symbols这行把每个符号放在sps个采样点的起始位置其余位置补零相当于把它变成一个冲击串交给rrcFilter做限带。如果漏掉这步直接filter(rrcFilter, 1, symbols)信号带宽会直接翻倍频谱混叠后面BER怎么也降不下来。3.2 AWGN信道按Eb/N0折算噪声别用默认awgn加噪部分是整条链路最容易出错的一段。我的做法是把EbN0换算成Es/N0再算出噪声方差最后用randn生成复噪声叠加不用自带awgn函数。% 发射信号平均功率 sigPow mean(abs(txSignal).^2); % 每符号能量 平均功率 × 每符号采样数 Es sigPow * sps; EbN0dB 6; EbN0 10^(EbN0dB/10); Eb Es / bitsPerSym; % 复AWGN实部虚部各带N0/2的方差 N0 Es / (EbN0 * bitsPerSym); noiseVar N0 / 2; noise sqrt(noiseVar) * (randn(size(txSignal)) 1j*randn(size(txSignal))); rxSignal txSignal noise; % 验证实测SNR是否和设置一致 estSNRdB 10*log10(sigPow / (2*noiseVar)); fprintf(设定EbN0 %.2f dB, 实测SNR %.2f dB\n, EbN0dB, estSNRdB);逻辑说明很多教程直接用awgn(txSignal, snr, measured)但awgn默认按SNR加噪而不是按EbN0而且它内部的功率测量不一定符合你对“符号能量”的定义低信噪比下还容易报SNR mismatch警告。这里我先算发射信号实测功率sigPow再乘以sps得到每个符号的能量Es这是关键一步——每个符号对应sps个采样点功率不能直接当能量用。噪声方差的公式有两个易错点。一是必须除以bitsPerSym因为EbN0是“每比特”信噪比而Es是“每符号”能量两者之间差log2(M)倍二是复噪声的实部和虚部各占N0/2的方差两路叠加后总功率恰好等于N0。我一般会打印实测SNR做二次校验如果和设定值偏差超过0.5 dB就说明噪声方差没算对必须修好再往下跑。3.3 接收端匹配滤波、定时采样与判决接收端代码和发射端对称但多了两个关键的工程细节延迟补偿和采样点对齐。% 匹配滤波使用与发射端完全相同的根升余弦滤波器 rxFiltered filter(rrcFilter, 1, rxSignal); % 滤波器群延迟 (span*sps)/2 delay span * sps / 2; % 从延迟点之后开始每隔sps个采样点取一个符号 sampled rxFiltered(delay 1 : sps : end); sampled sampled(1 : length(symbols)); % 截到与发射符号等长 % 判决按象限判决映射表与发射端保持一致 rxBits zeros(numBits, 1); for k 1:length(sampled) z sampled(k); if real(z) 0 imag(z) 0 bitPair [0 0]; % 第一象限 elseif real(z) 0 imag(z) 0 bitPair [0 1]; % 第二象限 elseif real(z) 0 imag(z) 0 bitPair [1 1]; % 第三象限 else bitPair [1 0]; % 第四象限 end rxBits((k-1)*21 : k*2) bitPair; end % 误码统计 ber sum(rxBits ~ dataBits) / numBits; fprintf(BER %.6f\n, ber);匹配滤波其实用的还是同一个rrcFilter这在通信原理里是一个重要结论发射端和接收端各用一个根升余弦滤波器级联起来才是升余弦才满足奈奎斯特第一准则。delay那行是全套代码里最容易被忽略的地方。FIR滤波器会引入固定群延迟等于滤波器长度的一半即(span×sps)/2个采样点。如果不做这个补偿你采样到的会是符号过渡沿星座图会呈现“带环”的状态误码率高出整整一个数量级但星座图看起来仍然有四个团迷惑性极强。判决部分我按象限写的粗算够用严格一点的工程做法是用最小欧氏距离判决把接收符号和四个参考点逐一求距离再取最小。那样写更通用以后改成16QAM时不用重写判决函数。这里要特别注意判决的象限顺序必须和发射端映射表完全一致否则会出现第5章那个0.75误码率的经典事故。3.4 单次仿真的输出与验证跑完单次仿真后除了打印BER我还会把仿真值和理论值放在一起看看量级对不对。QPSK每比特的理论误码率是qfunc(sqrt(2*EbN0))。theoryBer qfunc(sqrt(2*EbN0)); fprintf(仿真BER %.6f, 理论BER %.6f\n, ber, theoryBer);这个对比不需要精确到逐位相同。在40000比特、EbN06 dB的条件下仿真BER和理论值差在2倍以内都算正常毕竟随机比特有统计起伏。如果你发现差了一个数量级以上不要怀疑理论公式回去查延迟或噪声换算。这条链路跑通后再把它封装成函数方便第6章批量扫点。4. 成型滤波与匹配滤波的工程化设计参数细节与延迟补偿4.1 滚降系数与过采样倍数两个参数决定链路的底子成型滤波存在的理由一句话就能说清信道带宽有限脉冲不能无限窄地传输。根升余弦滤波器是实际数字通信系统中最常见的限带方案它的频响过渡带由滚降系数控制。rolloff0意味着过渡带为零频谱利用率最高但时域波形拖尾衰减慢对符号间干扰极其敏感rolloff越大频带越宽波形拖尾越短系统越稳。卫星和移动通信标准里常见0.22课程设计和仿真演示取0.35是个平衡点——频带不算太宽BER也不会因为ISI太难看。sps的选择本质上是在性能和计算量之间做权衡。基带等效模型下每个符号至少需要2倍采样实际取4到8都很正常。sps2时滤波器抽头太少时域波形欠采样频谱混叠会直接抬高系统底噪sps8虽然精细但滤波器计算量变大仿真时间成倍增加。取4是工程里最常见的折中滤波效果够、计算量小、而且延迟补偿可以整数对齐。如果你把sps改成6delay变成(span×sps)/230采样点仍然能整数对齐不需要重新推导。4.2 延迟补偿滤波器群延迟不补星座图永远带一圈环接收端为什么要从delay1开始采样这里再展开讲。rcosdesign生成的滤波器是线性相位FIR每个输入点经过它都会产生固定的群延迟数值等于滤波器长度的一半。span10、sps4时滤波器抽头数是span×sps141群延迟是20个采样点。如果不补偿就从第1点开始按sps间隔采样你采到的是每个符号的起始过渡段不是判决最佳点。一个能帮你确认延迟是否对齐的方法是看接收采样点的星座图。如果四个点团沿圆周方向明显拉开说明定时偏移还在不是噪声问题如果是径向离散则多半是噪声方差设大了或滤波器不匹配。更稳妥的做法是用互相关自动估计延迟拿发射端一段已知导频和接收滤波后的信号做互相关峰值位置就是最佳采样点。资源里附带了这样一个辅助函数尤其当你把sps改成非整数倍——比如3.5——手动数延迟会非常痛苦互相关方法几乎不受采样率限制。4.3 为什么发端和收端必须成对使用根升余弦一句话发射端根升余弦负责限带接收端根升余弦负责匹配两个级联起来才是升余弦满足奈奎斯特第一准则在最佳采样时刻不存在码间干扰。如果发射端用普通升余弦滤波接收端再用根升余弦整个系统就不再是匹配滤波结构噪声抑制能力下降BER会比理论曲线高。反过来发端根升余弦、收端普通升余弦也一样。你在看接收代码时要确认它用的是同一个rrcFilter变量不要手痒在接收端另建一个参数不同的滤波器——那等于发端和收端滤波器不匹配误码率永远降不下来。4.4 参数改动的常见组合与验证方法实际调参时我一般会在三个方向上做测试改动典型值观察重点减小rolloff0.22频谱变窄但ISI容限下降看眼图张开度增大rolloff0.5频谱变宽眼图更干净BER更贴近理论增大sps8波形更平滑仿真时间变长BER无明显变化跑对比实验时有个习惯很重要不同参数下加同一组噪声用固定随机种子保证公平。rolloffs [0.22, 0.35, 0.5]; for r 1:length(rolloffs) rrc rcosdesign(rolloffs(r), span, sps, sqrt); tx filter(rrc, 1, upsampled); rng(42); % 固定种子公平对比 % ... 加噪、匹配滤波、采样、BER统计 fprintf(rolloff%.2f, BER%.6f\n, rolloffs(r), ber); end固定随机种子这件事看着不起眼却是实验可复现的关键。我见过有人连续跑三组参数噪声完全不同最后得出“rolloff越大BER越高”的错误结论。从那以后凡是涉及参数对比我一定在加噪前重置随机种子。5. 误码率对不上的常见问题五个能让星座图骗人的坑5.1 BER稳定在0.5附近噪声方差根本没算对现象星座图四个团很圆分布均匀但BER在0.5附近横盘和信噪比无关。原因把信号功率直接当成了符号能量。Es算成了sigPow而不是sigPow*sps等于少乘了一个sps4倍噪声功率被算大了4倍相当于在高信噪比下硬塞了成倍的噪声。解决严格按第3章流程EssigPowspsEbEs/bitsPerSymN0Es/(EbN0bitsPerSym)。加完噪声后打印实测SNR校验确认偏差在0.5 dB以内再继续。5.2 BER比理论高一个数量级星座图外侧带环延迟没补偿现象星座图四个团沿圆周方向拖出明显的环形弥散BER比理论值高一个数量级且随信噪比升高改善很慢。原因滤波器群延迟没有补偿。采样的位置落在符号过渡沿而不是符号中心等效于给每个符号叠加了前后符号的干扰。解决在采样前补delayspan*sps/2个点。如果不想手动算用互相关估计延迟是最稳的方案。碰到sps改成非整数倍的情况直接上互相关别手动数。5.3 频谱比理论宽一倍上采样漏了现象发射端功率谱主瓣宽度是理论值的两倍甚至直接看到频谱混叠。原因把原始符号序列直接送进了rcosdesign跳过了上采样环节。滤波器以为输入的每个样本都是一个符号带宽自然翻倍。解决滤波前必须插值upsampled(1:sps:end) symbols;然后再filter(rrcFilter, 1, upsampled)。养成习惯画功率谱看了带宽再往下跑。5.4 BER稳定在0.75左右格雷码和解映射表错位了现象BER0.75不随EbN0变化星座图一切正常。原因发射端用了格雷映射接收端却按自然码判决或者象限顺序写反。两个比特对的映射关系错位后部分比特恒定为错误导致BER被抬到0.75而不是0.5。解决把映射表抽成统一常量调制和解调都引用同一份定义。mapTable [11j, -11j, -1-1j, 1-1j]; % 发射端查表 symbols mapTable(idx); % 接收端判据用同一张表做最小距离判决 [~, decIdx] min(abs(sampled(k) - mapTable), [], 2);5.5 awgn函数报SNR mismatch和自带函数置气不如自己加现象用awgn(txSignal, snr, measured)加噪时报警或者打印出的SNR和设定值对不上低信噪比区尤其严重。原因awgn内部按整段信号的实测功率做归一化而你需要的是按EbN0折算的符号能量。两者混用会导致高信噪比区勉强能用低信噪比区整体偏移。解决放弃awgn用第3章手动加噪方式。核心就是那三行noiseVarN0/2noisesqrt(noiseVar)(randn1jrandn)rxSignaltxSignalnoise。这套写法可读性好出了问题也好排查。6. 批量跑BER曲线并和理论值对齐验证方案的最终手段单点BER只能说明“这个信噪比下没炸”不能证明整条链路在所有信噪比下都是对的。我习惯的做法是把发射接收封装成函数然后扫EbN0画BER曲线叠上理论曲线对比。% 把第3章链路封装成函数 % function ber simulateQpsk(EbN0dB, numBits) % 内部包含数据生成-映射-上采样-成型滤波-加噪-匹配滤波-采样-判决-误码统计 EbN0dBList 0:2:10; berSim zeros(size(EbN0dBList)); for i 1:length(EbN0dBList) rng(100 i); % 每个点固定种子 berSim(i) simulateQpsk(EbN0dBList(i), numBits); end % 理论QPSK误比特率 theoryBER qfunc(sqrt(2 * 10.^(EbN0dBList/10))); semilogy(EbN0dBList, berSim, o-, ... EbN0dBList, theoryBER, x-); grid on; xlabel(Eb/N0 (dB)); ylabel(BER); legend(仿真BER, 理论BER, Location, southwest);每个EbN0点固定随机种子是我个人的强制习惯。这样曲线平滑、可控而且改动参数后重跑的结果可直接对比不会因为噪声随机性产生误判。如果本机装了并行计算工具箱把for换成parfor就能直接并行每个点独立仿真互不依赖。判断链路是否“毕业”的标准很简单仿真BER曲线和理论曲线的形状一致整条曲线没有系统性偏移低信噪比区允许一些颤动但不应偏离超过半个数量级高信噪比区如果比特数太少会出现几个0误码点在semilogy图上掉出图像这是正常的加大numBits即可。我以前调链路时总觉得画出星座图就是成功被延迟对齐坑过两次之后给自己立了一条规矩每次改参数或换场景强制走完三件套——打印实测SNR校验噪声、互相关确认定时时刻、BER曲线和理论值叠图。三条全过才收工从那以后仿真翻车的概率大幅下降。这套代码和排查思路希望也能帮你在QPSK仿真上少走几步弯路把时间省下来做后面真正要紧的事比如载波恢复、信道均衡或者把链路扩成16QAM。本文还有配套的精品资源点击获取

相关新闻

在 VS Code 里结对:ZCode 的结对编程工作流搭建

在 VS Code 里结对:ZCode 的结对编程工作流搭建

在 VS Code 里结对:ZCode 的结对编程工作流搭建 【免费下载链接】ZCode ZCode 是 AI 编程工作台,提供桌面应用、浏览器界面和终端 Agent。本仓库包含客户端、后端服务、共享 UI,以及 Agent CLI 与运行时源码。 项目地址: https://gitcode.c…

2026/10/11 19:56:48 阅读更多 →
MediaPipe+CNN手势识别控制鼠标:关键点提取到pyautogui实战

MediaPipe+CNN手势识别控制鼠标:关键点提取到pyautogui实战

简介:一套面向计算机视觉与深度学习初学者的手势识别控制鼠标完整项目,基于opencv完成图像采集与预处理,借助Mediapipe实现手部关键点检测与跟踪,再通过CNN模型对手势自动分类,进而映射为鼠标移动、左键点击、右键点击…

2026/10/11 19:56:48 阅读更多 →
YOLO-World 零样本检测实战:从开放词汇原理到微调部署

YOLO-World 零样本检测实战:从开放词汇原理到微调部署

简介:这是一份聚焦YOLO-World开放词汇目标检测技术的原理讲解型PDF,适合正在学习YOLO系列与多模态检测的算法工程师、科研人员及CV初学者。文档系统拆解了YOLO-World的实现方式:先是基于YOLOv8的图像编码器、CLIP预训练文本编码器与RepVL-PAN…

2026/10/11 19:56:48 阅读更多 →

最新新闻

CEC2013测试集input文件完全解读:偏移向量、旋转矩阵与优化算法复现

CEC2013测试集input文件完全解读:偏移向量、旋转矩阵与优化算法复现

简介:CEC2013是演化计算领域的经典基准测试集,面向智能优化算法研究者与工程师,用于标准化评估单目标、多目标及约束优化算法在复杂问题上的表现。测试集包含多模态、非线性、非凸、不可分及旋转偏移等类型的函数,模拟工程应用中常…

2026/10/11 20:52:39 阅读更多 →
数据库系统入门:数据、数据库、DBMS与DBS的四层关系解析

数据库系统入门:数据、数据库、DBMS与DBS的四层关系解析

简介:本资源是《数据库系统概论》课程第一章“绪论”的配套教学PPT课件,由江胜老师主讲,面向计算机专业本科生及数据库初学者,系统梳理数据库基础概念与知识框架。课件内容紧扣教材核心,涵盖数据库、数据库管理系统&am…

2026/10/11 20:52:39 阅读更多 →
医院门诊管理系统数据库设计:从ER图到关系模式规范化实战

医院门诊管理系统数据库设计:从ER图到关系模式规范化实战

简介:医院门诊管理系统数据库设计课程设计论文,面向软件工程、数据库原理相关课程的本科生及自学者,围绕医院门诊挂号、收费、诊断、取药、治疗等环节的数据库一体化管理展开。资源为doc格式文档,共1个文件,压缩包约1.…

2026/10/11 20:52:39 阅读更多 →
2026年AI图像生成工具全解析:DALL-E、Midjourney、Stable Diffusion 谁最强?TaoToken 统一 Key 实测对比

2026年AI图像生成工具全解析:DALL-E、Midjourney、Stable Diffusion 谁最强?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/11 20:52:39 阅读更多 →
小区物业管理系统毕业设计源码包:跑通、答辩与论文一网打尽

小区物业管理系统毕业设计源码包:跑通、答辩与论文一网打尽

简介:这是一套面向计算机相关专业学生与初学者的完整小区物业管理系统源码包,内含可运行的ASP动态网站项目与配套毕业论文,适用于毕业设计、课程设计或物业信息化开发练手。系统覆盖业主注册、房产信息管理、物业费/水电费/停车费收缴、维修报…

2026/10/11 20:52:39 阅读更多 →
labelme格式皮肤伤口分割数据集:从解压到YOLOv8-seg训练全流程指南

labelme格式皮肤伤口分割数据集:从解压到YOLOv8-seg训练全流程指南

简介:这份皮肤伤口分割数据集面向医学图像分析、深度学习语义分割/实例分割方向的开发者与研究者,提供经过人工标注的皮肤创伤样本,可用于模型训练、验证与算法调优。资源包含284张JPEG原始图像和284个对应的Labelme JSON标注文件&#xff0c…

2026/10/11 20:51:37 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →