新闻详情

新闻详情

首页 / 资讯中心 / 详情

OFDM仿真全解析:从子载波配置到误码率与PAPR验证

发布时间:2026/9/25 2:04:00来源:尧图网络
OFDM仿真全解析:从子载波配置到误码率与PAPR验证
简介这是一份完整的OFDM系统仿真程序适合通信工程专业学生、算法研究人员以及需要快速搭建OFDM链路验证调制方案的开发者。程序基于MATLAB实现覆盖从调制映射、循环前缀添加到加窗处理、频谱分析、PAPR计算和误码率统计的完整收发流程同时集成了BPSK、QPSK、16QAM、64QAM四种调制方式便于对比不同调制阶数下的系统性能。压缩包共包含5个m文件按主程序、调制模块、解调模块等划分整体大小仅7KB结构简洁可直接运行或二次开发。目前已有2537人浏览学习适合作为OFDM原理仿真、课程设计以及通信系统初学者的入门参考。通过阅读主程序与各模块代码可清晰理解OFDM信号生成、信道失真补偿和性能评估的具体实现步骤是快速掌握OFDM关键技术细节的实用工具。1. OFDM 仿真程序从能出图到能信服的一条完整链路这套 OFDM 仿真程序把一整条基带链路装进了一个压缩包主程序 ofdm.m 负责把比特流一路推到符号映射、IFFT、循环前缀、加窗再画频谱图、算 PAPR、统计误码率modla.m 处理 BPSK、QPSK、16QAM、64QAM 的通用符号映射pi4QPSK.m 实现带相位旋转的 QPSK 变体fil.m 管滤波加窗test1.m 是独立调试入口。对正在学 OFDM 但不想从零手搓链路的人来说这套程序能让你先看到全貌子载波间隔怎么和符号时长互为倒数、循环前缀加长了损耗什么、PAPR 算出来应该落在哪个量级跑一次主程序就全在图上。BPSK 到 64QAM 全覆盖也让自适应调制的仿真可以直接复用不用自己补映射表。这篇笔记按脚本分工、参数设置、调制切换、常见坑、结果验证的顺序拆。新手可以照步骤把主程序跑通并读懂每一段输出熟手可以直接跳到第 5 章和第 6 章看排查思路与交叉验证手法。2. 拆开压缩包ofdm.m 主干与四个辅助脚本的分工2.1 ofdm.m主程序把整条基准链路串起来压缩包里真正的主干是 ofdm.m其他文件都是给它打工的。它的典型结构是初始化参数、生成随机比特、调用调制映射把比特变成复符号、串并变换、IFFT 变到时域、加循环前缀、加窗、过信道模型接收端再去做 CP、FFT、解映射、统计误码率并画图。这里最容易绕晕的是域切换从调制映射到 IFFT 之前全是频域符号IFFT 之后到加窗结束全是时域抽样接收端 FFT 之后又回到频域。理解了这个切换再看每个函数的位置就不会乱。% ofdm.m 主循环骨架常见实现参数可改 N 64; % 子载波数也是 IFFT/FFT 点数 cp_len 16; % 循环前缀长度按 N/4 取 n_sym 500; % OFDM 符号数统计 BER 时越多越稳 M 4; % 调制阶数2BPSK, 4QPSK, 1616QAM, 6464QAM rng(42); % 固定随机种子结果可复现 bits randi([0, 1], n_sym * N * log2(M), 1); % 总比特数 符号数×子载波×每符号比特 sym modla(bits, M); % 频域符号矩阵每列一个 OFDM 符号 ifft_out ifft(reshape(sym, N, n_sym), N); % 时域波形每列一个符号周期 tx_cp [ifft_out(end-cp_len1:end, :); ifft_out]; % 加循环前缀 % 后续加窗、上采样、过信道、收端去 CP FFT 解调 误码统计第一行的 rng(42) 是关键中的关键。不固定随机种子每次跑出来的 BER 曲线都在抖你分不清是参数改好了还是运气好固定种子之后任何改动都能归因到代码本身。第三行总比特数算的是 n_sym × N × log2(M)每个 OFDM 符号承载 N 个子载波每个子载波在 QPSK 下带 2 bit16QAM 下带 4 bit64QAM 下带 6 bit。漏乘 log2(M) 是最常见的低级错误后面解调 reshape 维度对不上BER 直接废掉。第五行加 CP 用的是矩阵切片取每列最后 cp_len 个点拼到开头比用 for 循环逐个符号处理快一个量级也符合 MATLAB 的向量化习惯。cp_len 取 N/4 是经验值对应符号时长的四分之一具体为什么这样选在第 3 章展开。2.2 modla.m 与 pi4QPSK.m通用映射和带旋转的 QPSK 变体modla(bits, M) 这个名字大概率是 modulation 的缩写它按 M 的值分派到 BPSK、QPSK、16QAM、64QAM 各自的映射表。写这种通用映射函数时最常见的做法是维护一张 Gray 码索引表bit 序列每 log2(M) 个一组查表取复符号。Gray 映射的价值在于相邻星座点只差 1 bit判决出错时多数情况只错 1 bitBER 统计和实际传输性能都更接近真实系统。pi4QPSK.m 则是另一条分支每个符号周期把星座整体旋转 45°避免幅度包络过零信号过射频功放时峰均比表现更好。它常和差分编码配合使用思路和 DPSK 一脉相承解调端不依赖绝对相位参考。如果你在解调端没有做对应的反向旋转或差分解码星座图会整体转 45°误码率直接崩到 0.5 附近——这个问题在第 5 章有详细排查。四种调制的取舍一句话就能说清。调制方式每符号 bit频谱效率抗噪性典型场景BPSK1低最强低信噪比控制信道QPSK2中强移动通信主力16QAM4高中等较高信噪比链路64QAM6最高较弱固定或近距离大带宽选择依据一句话信道能扛住就用高阶调制换带宽扛不住就退回低阶。实际系统里常做自适应调制——信道好时上 64QAM信道差时退 QPSK这套仿真正好覆盖从低到高的全部映射做自适应策略仿真可以直接复用 modla 的接口。2.3 fil.m 与 test1.m加窗滤波和独立调试fil.m 负责发射端的滤波加窗常见实现是升余弦窗。OFDM 不加窗时每个符号的矩形截断会在频域产生较高旁瓣加窗让符号边缘平滑过渡带外辐射能压下去十几 dB代价是 CP 的一部分被窗过渡带吃掉需要预留额外长度。如果你看到频谱图旁瓣压不下去先确认升余弦窗的 roll-off 因子是否真的生效而不是怀疑 FFT 点数不够。test1.m 是调试入口一般用来单测某个模块——比如只测 modla 的映射对不对、只测 fil 的加窗函数频谱。我习惯的做法是先用 test1.m 把调制映射和滤波单独验一遍确认无误再去跑主程序否则主程序出问题时你根本不知道锅在映射还是信道。压缩包里 test1.m 和主程序并存本身就是作者留下的调试思路别把它当成无关文件忽略掉。3. 把参数设对再跑子载波间隔、循环前缀与加窗的三步落法3.1 子载波间隔与符号时长同一件事的两面OFDM 把宽带信道切成 N 个窄带子信道相邻子载波的间隔 Δf 和时域符号时长 T 互为倒数T 1/Δf。间隔选大了符号变短对抗多径需要更长的循环前缀整体开销上升间隔选小了符号变长对多普勒频移和相位噪声更敏感。这一组换算关系直接决定 IFFT 点数和频谱图的横轴刻度改参数之前先把这两个数算清楚。应用场景子载波间隔 ΔfFFT 点数符号时长 T备注LTE15 kHz204820 MHz 带宽66.7 μsCP 约 4.7 μsWi-Fi 20 MHz312.5 kHz643.2 μsCP 0.8 μs无人机图传几十到几百 kHz与带宽匹配微秒级需留多普勒余量像无人机图传这类有相对运动的场景子载波间隔必须留出多普勒余量否则运动带来的频偏会把子载波间的正交性破坏掉误码率上不去。LTE 用 15 kHz 是因为蜂窝场景多径严重但移动速度相对可控Wi-Fi 用 312.5 kHz 是室内场景带宽和成本的折中。仿真里改 N 和带宽之前先想清楚你要模拟哪个场景别随手填一个数然后对着奇怪的频谱图发呆。3.2 循环前缀长度怎么定覆盖住时延扩展就行循环前缀的本质是把每个 OFDM 符号的末尾复制一段到开头让多径时延落在 CP 内时各子载波保持正交。长度必须大于信道最大时延扩展否则前一个符号的尾部会侵入后一个符号产生符号间干扰和载波间干扰。仿真里常见取法是符号时长的四分之一或八分之一主程序里 cp_len N/4 就是四分之一。% 接收端去 CP每个符号丢弃前 cp_len 点 rx_mat reshape(rx_stream, N cp_len, n_sym); % 按符号长度重新排 rx_no_cp rx_mat(cp_len1:end, :); % 去 CP取每列后 N 点 rx_freq fft(rx_no_cp, N); % 回到频域这段代码必须和发送端严格对应发射端加 CP 时是「尾部 cp_len 点接整符号」接收端就删掉每个符号前 cp_len 点再做 FFT。删错位置比如删了 N 点留下 cp_len会直接导致 BER 恒等于 0.5 附近的随机值而且各 SNR 点结果全一样这是新手最容易犯的索引错误。排错时先把 N、cp_len 两个变量显示出来对比收发两端 reshape 后的维度一眼就能看出问题。CP 长度的权衡也要心里有数加长 CP 抗多径更强但每个符号的有效数据占比下降功率和频谱都浪费了。LTE 常规 CP 约 4.7 μs、扩展 CP 约 16.7 μs后者就是给大时延场景准备的。仿真里想验证 CP 效果把信道改成两径衰落模型把第二径时延调到超过 CPBER 曲线立刻崩你能直观看到边界在哪。3.3 频谱图和 PAPR主程序两张输出图怎么读频谱图看带外泄漏OFDM 符号的矩形截断会造成 sinc 形状旁瓣加窗后旁瓣应该明显下降。PAPR 看时域峰值IFFT 输出信号的峰值功率与平均功率之比单位 dB。两者一个在频域一个在时域主程序把这两张图放在一起就是让你同时检查频谱整形和峰值问题。% 频谱图 fs N * delta_f; % 采样率 子载波间隔 × 子载波数 spec fftshift(fft(tx_cp(:))); % 所有符号拼起来做 FFT spec_dB 20*log10(abs(spec) / length(spec) eps); f_axis linspace(-fs/2, fs/2, length(spec)) / 1e6; plot(f_axis, spec_dB); xlabel(频率 (MHz)); ylabel(幅度 (dB)); % PAPR 逐符号统计 papr_all 10*log10(max(abs(ifft_out).^2, [], 1) ./ mean(abs(ifft_out).^2, 1)); fprintf(平均 PAPR: %.2f dB, 峰值 PAPR: %.2f dB\n, ... mean(papr_all), max(papr_all));频谱图纵轴是相对于满刻度的 dB旁瓣和主瓣差距越大频谱越干净。注意分母里的 eps 是防止全零符号取 log 出现 inf 警告。PAPR 那两行用了按列操作max 沿第 1 维、也就是每个 OFDM 符号内部取峰值功率mean 同理取平均功率得到每个符号的 PAPR 序列后再统计平均和峰值。如果这个结果比理论值小很多基本可以判定没做 4 倍过采样详情在第 5 章。4. 换调制方式与统计误码率从 QPSK 切到 16QAM改动点和噪声设置4.1 映射与解映射的对称性一份代码吃四种调制modla.m 这类通用映射函数内部通常是按 M 分派到不同星座表。写映射代码最容易出问题的两件事Gray 编码顺序和能量归一化。Gray 编码保证相邻星座点只有 1 bit 不同判决错一位只引入 1 bit 误码能量归一化保证不管哪种调制星座平均功率都是 1这样信道噪声的方差设置才有统一基准。% QPSK Gray 映射2 bit 一组归一化功率 function sym qpsk_map(bits) b reshape(bits, 2, []).; I 1 - 2*b(:,1); % 第一位控制 I 支路极性 Q 1 - 2*b(:,2); % 第二位控制 Q 支路极性 sym (I 1j*Q) / sqrt(2); % 归一化平均功率为 1 end % 16QAM Gray 映射4 bit 一组 function sym qam16_map(bits) b reshape(bits, 4, []).; I_map [-3 -1 3 1]; Q_map [-3 -1 3 1]; % Gray 顺序不是单调递增 I I_map(bin2dec(b(:,1:2)) 1); Q Q_map(bin2dec(b(:,3:4)) 1); sym (I 1j*Q) / sqrt(10); % 16QAM 平均能量为 10取倒数归一化 endQPSK 映射把每 2 个 bit 分成一组第一位控制 I 支路极性第二位控制 Q 支路极性除以 sqrt(2) 是为了让平均功率变成 1。16QAM 每 4 bit 一组前两位查 I 维幅度表 {-3,-1,3,1}后两位查 Q 维幅度表——注意 Gray 顺序下幅度排序不是 {-3,-1,1,3}而是 {-3,-1,3,1}这样比特 00、01、11、10 相邻只差 1 bit。归一化系数 sqrt(10) 来自 16QAM 星座的平均能量I 维 E[I²]5两维合计 10。从 QPSK 切到 16QAM 只改一个入口参数M 从 4 改成 16。注意 M4 才是 QPSKM16 是 16QAMM64 是 64QAMM2 是 BPSK。这个参数名最容易绕晕人M 是星座点数而不是 bit 数每符号 bit 数是 log2(M)。前面总比特数那里漏乘的 log2(M)源头就在这。四种调制优缺点一句话对比BPSK 抗噪最强但频谱效率最低QPSK 每符号 2 bit效率和抗噪的平衡最好所以移动通信里用得最多16QAM 效率翻倍但同样信噪比下误码率比 QPSK 高两三个数量级64QAM 效率最高只适合信道非常好的场景。想直观感受差异可以把解调前同相支路的眼图画出来QPSK 的眼图是一个又大又平整的张开口16QAM 的眼图变成多个台阶叠加张开高度明显变矮——这就是高阶调制抗噪变差的直接体现。4.2 误码率统计Eb/N0 和 Es/N0 别搞混误码率统计环节最常见的问题是 SNR 扫描循环里噪声方差设置和调制阶数不匹配。Es/N0 是每符号能量对噪声功率谱密度的比Eb/N0 是每比特的比两者相差 log2(M) 倍。同样标称 10 dBQPSK 和 16QAM 的噪声方差完全不同不看符号就抄公式曲线会和理论值差出一个固定 dB 数而且不同调制差得不一样。% BER 统计AWGN 信道按 Eb/N0 设置噪声 EbN0_dB 0:2:16; ber zeros(size(EbN0_dB)); for k 1:length(EbN0_dB) EbN0 10^(EbN0_dB(k)/10); EsN0 EbN0 * log2(M); % 符号能量 比特能量 × 每符号 bit 数 noise_var EsN0^(-1); % 星座功率归一为 1 时复噪声总方差 noise sqrt(noise_var/2) * (randn(size(tx)) 1j*randn(size(tx))); rx tx noise; % 接收链路去 CP → FFT → 解映射 → 判决 ber(k) sum(rx_bits ~ tx_bits) / length(tx_bits); end semilogy(EbN0_dB, ber, o-);这里噪声方差的写法假设星座平均功率为 1复噪声总方差等于 Es/N0 的倒数实部虚部各分一半所以每个支路方差是 noise_var/2。EsN0 EbN0 * log2(M) 是切换调制时最容易漏改的一行。对照理论值验证Eb/N0 10 dB 时QPSK 理论误码率约 4×10⁻⁶16QAM 约 1.8×10⁻³差出两个数量级。曲线位置差这么多一眼就能判断噪声设置对不对。统计误码率时符号数要够。理想情况下误码数至少几十个要看到 1e-5 量级的 BER 就得跑上千万比特仿真时间会很长。这类脚本 n_sym 默认给 500 或 1000 是为了快速出曲线验证趋势可以追求绝对精度不够。固定 rng 种子之后每次结果一致调参对比才可信。5. OFDM 仿真避坑指南五个翻车现场与排查思路5.1 星座图整体旋转 45°QPSK BER 停在 0.5 附近现象把解调输出的散点画出来QPSK 四个团簇不在 (±1, ±1)/√2 的位置而是整体转了 45°BER 统计结果在 0.5 上下抖动和随机猜没区别。原因多半是映射和解映射不对称。pi4QPSK.m 里发送端做了每符号 45° 旋转接收端没有做对应的反向旋转或者 modla 里映射用了 I jQ 的组合解调端却按 I - jQ 拆支路相位基准反了。解决先在无噪声条件下把 rx_bits 和 tx_bits 逐段对齐检查定位是哪一段引入的旋转。pi4QPSK 场景在解调端补上每符号的相位累加还原通用 QPSK 场景统一映射和解调的虚部符号。另一个保险做法是用已知导频符号过一遍同一链路解出来后算固定相偏再补偿。5.2 加窗后误码率反而明显变差现象不开 fil.m 时 BER 曲线正常一加窗曲线整体抬升高信噪比段抬得尤其明显。原因加窗破坏了子载波正交性。升余弦窗只有在过渡段落在 CP 内部、且窗函数满足对称条件时才不破坏正交性如果窗把 CP 之外的有效数据区也乘了非恒定系数每个子载波在频域就展宽了收端 FFT 后出现载波间干扰。解决检查窗函数定义过渡段不能越过 CP 边界或者把窗设计成「CP 内部平滑衰减、数据区恒为 1」的平顶窗。仿真里快速定位的方法是把窗函数临时设成全 1 跑一遍BER 恢复正常就说明问题出在窗的过渡带。5.3 PAPR 数值比论文里的明显偏小现象主程序算出来平均 PAPR 只有 5~6 dB峰值才 8 dB 左右和论文里 QPSK 动辄 10 dB 以上的 CCDF 曲线对不上。原因PAPR 统计的是时域连续包络的峰值而 IFFT 直接输出的 N 点离散采样大概率没采到真正的峰值点。不做过采样时峰值被低估这是 OFDM 仿真里的经典问题——不是代码错是采样率不够。解决在 IFFT 之前把频域符号补零到 4N 长度再做 4N 点 IFFT等效时域过采样 4 倍PAPR 会更接近连续信号。CCDF 曲线对比时也要注明过采样倍数不同倍数之间没有可比性。具体做法见第 6 章代码。5.4 BER 曲线在低信噪比段正常高信噪比段出现平台现象BER 曲线在 Eb/N0 从 0 加到 6 dB 时下降正常再往上压在一个固定值附近不再动换调制方式平台位置还会变。原因大概率不是噪声问题是链路里存在固定误差源。最常见的是符号定时偏移——发射端加了 CP 但收端去 CP 的位置错了几个采样点等效引入固定相位旋转其次是 CP 长度小于信道时延扩展多径分量直接漏到下一个符号里。这类固定误差在低噪声时被淹没信噪比一高就露出平台。解决先在纯 AWGN 信道下验证平台消失说明问题在信道或同步环节再核对收发两端的 CP 索引是否严格对齐最后用相关同步法拿本地已知序列和接收信号做滑动相关找峰值确定符号起点不要假设第 1 个采样点就是符号起始点。5.5 16QAM 高信噪比误码率下不去QPSK 却正常现象16QAM 模式 BER 曲线和理论值差出固定 dB高信噪比段出现地板QPSK 却一切正常。原因能量归一化不一致。发射端映射时星座没除以 sqrt(10)接收端噪声方差却按平均功率 1 设置等于实际信噪比比名义值低一档或者总比特数里 log2(M) 写错解调后 bit 对齐错位高 SNR 时残留错误全是错位引入的。还有一种隐蔽情况rng 种子没固定符号数又少1e-5 量级的 BER 全是随机抖动。解决先检查星座实际平均功率是否为 1不一致就补归一化系数再核对 log2(M) 和 reshape 的维度最后把 n_sym 提到一万以上并固定种子重新跑。排查顺序建议无噪声 BER 应为 0星座图团簇位置正确各 SNR 曲线与理论逐点对照三步走完再改参数。6. 别只看 BER 曲线用星座图和 CCDF 把结果验证到位BER 曲线能跑通只说明链路没错得离谱要证明仿真的参数设置可信我一般还会补两步交叉验证。第一步画星座图把无噪声或低噪声条件下解调输出的复符号散点画出来QPSK 应该聚成四个团簇16QAM 十六个团簇位置必须落在参考星座点上。团簇中心偏移说明有相位旋转或载波泄漏团簇发散程度随 SNR 的变化趋势要和理论一致。% 星座图验证 figure; plot(real(rx_sym(:)), imag(rx_sym(:)), ., MarkerSize, 6); axis equal; grid on; xlabel(I); ylabel(Q); % PAPR CCDF 验证4 倍过采样 y_os ifft([sym; zeros(3*N, size(sym, 2))], 4*N); % 补零等效时域过采样 papr_os 10*log10(max(abs(y_os).^2, [], 1) ./ mean(abs(y_os).^2, 1)); [F, X] ecdf(papr_os); semilogy(X, 1-F); xlabel(PAPR (dB)); ylabel(Pr(PAPR 阈值));第二步是 PAPR 的 CCDF 曲线横轴是 PAPR 阈值纵轴是超过该阈值的概率对数坐标下看尾部。CCDF 能直观看到峰值出现的概率密度单点 PAPR 值没有统计意义。4 倍过采样那两行把频域符号矩阵补 3 倍零再做 4N 点 IFFT得到的时域波形多了 4 倍采样点峰值统计更接近连续信号。这套验证习惯还有个附加收益如果以后想做基于神经网络的自动调制信号识别直接从这套仿真里导出各调制方式的 I/Q 样本就能当训练集星座图和频谱图导出就是现成的可视化特征。从那以后我每次改参数都强制走一遍星座图加 CCDF 这组校验再回头信 BER 曲线——这个习惯帮我挡掉过至少三次把噪声方差设错、曲线看起来还挺“正常”的返工。希望帮到你。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

iOS音视频开发核心:AVFoundation底层原理与实战 2026/9/25 7:56:41

iOS音视频开发核心:AVFoundation底层原理与实战

1. 这不是“又一个视频播放教程”,而是 iOS 视频开发的底层通关地图AVFoundation 是 iOS/macOS 上处理音视频最核心、最底层的框架,它不像 UIKit 那样“开箱即用”,也不像第三方库那样封装友好。它更像是一套精密的工业级工具箱——螺丝刀、游…

阅读更多 →
Substrate区块链开发框架入门:从环境搭建到自定义Pallet实战 2026/9/25 7:56:34

Substrate区块链开发框架入门:从环境搭建到自定义Pallet实战

1. 从“substrate”这个词说起:它到底指什么第一次看到“substrate”这个词,很多人会愣一下。它在不同圈子里含义差别很大:生物学里是“底物”,材料科学里是“衬底”,区块链领域里则是一个知名的开源框架。因为输入里没…

阅读更多 →
百德福:深耕小分子肽,只为国民好体质 2026/9/25 7:56:34

百德福:深耕小分子肽,只为国民好体质

健康,是民族昌盛之基,是家国发展之本。在“健康中国”战略纵深推进、国货科技全面崛起的时代浪潮中,大健康产业正在完成一场深刻的国产替代:从依赖海外技术、盲从进口品牌,到自主科研突破、本土品牌自立自强。立足时代…

阅读更多 →
Substrate区块链开发框架:从核心架构到定制化链实战 2026/9/25 7:56:34

Substrate区块链开发框架:从核心架构到定制化链实战

1. 为什么Substrate值得关注做区块链底层开发的人,这两年几乎绕不开Substrate这个名字。它不是一条链,不是一个应用,而是一套能让你快速搭建出一条全新区块链的开发框架。用一句话说清楚:别人把链从零造出来可能要两年&#xff0c…

阅读更多 →
广氟 PTFE 全矩阵方案:解决半导体 / 算力 / 新能源高端工况痛点 2026/9/25 7:56:28

广氟 PTFE 全矩阵方案:解决半导体 / 算力 / 新能源高端工况痛点

高端制造卡脖子痛点:PTFE 膜细分品类的现实供需矛盾半导体、AI 算力、储能电池、高频通信快速扩张,下游不再只追求 “能用” 的 PTFE 材料。高速 PCB 需要极低介电损耗;半导体湿法制程过滤膜要兼顾耐强氧化剂与高精度截留;电池 PA…

阅读更多 →
浏览器自动化脚本开发指南:从篡改猴到用户脚本实战 2026/9/25 7:56:27

浏览器自动化脚本开发指南:从篡改猴到用户脚本实战

1. 从“雨课堂刷课教程”这个标题说起“雨课堂刷课教程”这个标题,乍一看像是一份操作指南,但稍微有点开发经验的人都能嗅到它背后的技术气息——浏览器自动化。热搜词里那一串“篡改猴”“Tampermonkey”“脚本”“谷歌浏览器”已经把答案摆在了桌面上&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉