尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
基于MATLAB的ASK/FSK/PSK数字调制解调系统仿真与误码率分析
通信工程的同学应该都逃不过这个题目基于MATLAB的基本数字调制解调系统。你说它难吧原理课上全都讲过你说它简单吧真要把ASK、FSK、PSK三种调制从比特流一路做到误码率曲线中间能翻车的细节比想象中多得多。尤其是把理论公式写成可运行的MATLAB代码时会遇到滤波器延迟、抽样时刻、信噪比换算这一堆课本上不会明说的事。这篇文章就把我实际做过一遍的完整思路和代码拆开讲清楚包括参数为什么这么定、解调为什么这么做、误码率曲线怎么对得上理论值给正在做课程设计或者想入门通信仿真的人一个能直接参考的版本。1. 数字调制解调在通信链路中的位置为什么这个题目值得认真做1.1 从通信系统模型看调制的必要性任何通信系统都可以抽象成信源、信道、信宿三个环节。信源产生的原始信息大多是基带信号频率集中在低频段直接传输会遇到两个问题一是天线尺寸与波长强相关低频信号波长太长实际天线难以辐射二是很多信道比如无线信道是带通信道基带信号放进去什么都传不出去。调制的作用就是把基带信号“搬运”到适合信道传输的高频载波上接收端再做解调把信号搬回来。数字调制和模拟调制的本质区别在于数字调制发送的不是连续波形而是携带离散符号的状态。二进制数字调制只有两种状态分别对应比特0和比特1。ASK用载波幅度区分状态FSK用载波频率区分状态PSK用载波相位区分状态。理解了“用哪个参数携带信息”这一点整个调制系统就有了抓手。1.2 这个题目真正在考察什么表面上看这是一个仿真题但它的实际考察点是一条完整链路随机二进制序列生成、基带波形形成、载波调制、信道加噪、接收端相干/非相干解调、抽样判决、误码率统计与理论对比。很多课程设计报告只贴了调制代码和解调代码却没有回答“系统做对了没有”“误码率性能是否符合理论”这在答辩时往往会被追问到卡壳。所以这个项目的核心价值不是“会用awgn和plot”而是建立一种系统思维每个模块在链路中承担什么功能、参数变化会怎样影响后续模块、最终性能用什么指标来衡量。这也是为什么它常做常新——不管用MATLAB还是Python不管是2ASK还是16QAM底层逻辑是一样的。2. ASK、FSK、PSK三种调制方式怎么选原理与代价对比2.1 2ASK用幅度表示比特结构简单但抗噪声最差2ASK又叫OOK通断键控比特1发送载波比特0不发送载波表达成公式就是[ s_{ASK}(t) a_n A \cos(2\pi f_c t), \quad a_n \in {0, 1} ]它的优点是调制和解调结构最简单可以直接用包络检波完成非相干解调接收端不需要恢复相干载波。缺点是抗噪声性能差——因为0时没有能量判决门限要设在最大幅度的一半附近噪声一旦把0电平抬高或把1电平压低就容易判错。在MATLAB仿真中2ASK的调制就是“基带单极性NRZ波形乘以载波”。单极性波形只有0和1两种取值所以调制后的波形在时间轴上呈现“有载波”和“无载波”的交替状态。观察这个通断过程是验证调制正确的最直观方法。2.2 2FSK用频率表示比特非相干接收的经典选择2FSK用两个不同的载波频率 (f_1) 和 (f_2) 分别代表比特1和比特0[ s_{FSK}(t) \begin{cases} A \cos(2\pi f_1 t), \text{比特1} \ A \cos(2\pi f_2 t), \text{比特0} \end{cases} ]2FSK的抗噪声性能介于ASK和PSK之间但它有一个独特优势两个状态都是“有能量”的接收端不需要设置幅度门限可以直接比较两路判决输出的大小。所以2FSK特别适合做非相干解调在信道条件较差的场合依然能可靠工作。代价是带宽大。2FSK信号的实际带宽大约是 (|f_1 - f_2| 2R_b)频率间隔越大带宽越宽。在仿真中f1和f2的选择要满足正交条件最简单的方法是让频率差等于码元速率的整数倍。比如码元速率1000 bps取f18kHz、f212kHz差4kHz4Rb既满足正交性又能在频谱图上清晰看到两个峰。2.3 2PSK/2DPSK用相位表示比特性能最好但存在相位模糊2PSK用载波相位0和π分别表示比特1和0表达式是[ s_{PSK}(t) A \cos(2\pi f_c t \varphi), \quad \varphi \in {0, \pi} ]它的抗噪声性能是三种方式中最好的因为两个状态之间欧氏距离最大。调制实现也不复杂把双极性NRZ基带波形1和-1乘以载波就能得到。解调用相干解调本地载波与接收信号相乘、低通滤波后与0比较即可。但2PSK在实际系统中有个著名的“相位模糊”问题相干解调需要恢复载波而载波恢复电路无法区分0相位和π相位可能导致恢复出的载波反相结果就是所有判决结果都颠倒。解决办法是使用2DPSK差分相移键控把信息编码在相邻码元的相位差中接收端不需要绝对相位参考。很多课程设计只做2PSK不做2DPSK这在原理上讲得过去但在工程上是不完整的。2.4 三种方式的关键参数对比调制方式携带信息参数常见解调方式理论带宽同信噪比下误码性能2ASK幅度包络检波 / 相干解调(2R_b)较差比PSK大约差3dB2FSK频率非相干比较 / 相干解调(|f_1-f_2| 2R_b)中等比PSK差约3dB2PSK相位相干解调(2R_b)最优2DPSK相位差差分相干解调(2R_b)略差于2PSK但无相位模糊这个表格在做课程设计报告时可以直接用。它回答了一个老师在答辩时很喜欢问的问题既然PSK性能最好为什么还要学ASK和FSK因为实际系统要在性能、复杂度、带宽和同步难度之间做权衡没有哪一种调制方式是所有场景都最优的。3. 仿真参数与系统链路设计先把数字算明白再动手3.1 核心参数表与选择理由动手写代码前先把参数定下来。我用的参数如下参数符号数值设计理由码元速率Rb1000 bps便于计算且与载波频率有10倍关系载波频率fc10000 Hz远大于码元速率体现带通传输特性采样率fs80000 Hz满足采样定理≥2fc且每码元80个采样点波形平滑每码元采样点数spb80fs/Rb决定时域分辨率码元个数Nsym30演示波形演示足够看清几十个码元切换过程FSK载波1f18000 Hz与f2差值4Rb满足正交条件FSK载波2f212000 Hz与f1差4kHz频谱可清晰区分这里最关键的约束是采样定理。fc10kHz时采样率至少20kHz我取80kHz是它的4倍这带来一个好处每码元80个采样点画波形时相位翻转过程看得非常清楚低通滤波器的频率响应也不会因为采样率太低而出现设计困难。载波频率与码元速率的关系也很重要。fc取10倍Rb是为了在频谱图上把载波主瓣和基带信号明显分开。如果fc太小比如fc2kHz、Rb1kHz上下边带会互相靠近甚至产生频谱混叠解调时难以用低通滤波器把基带信号干净地滤出来。3.2 发射端与接收端链路设计整个系统的链路在发射端和接收端分别如下发射端随机二进制比特 → 极性映射 → NRZ基带波形 → 载波相乘 → 带通调制信号接收端以PSK相干解调为例带通接收信号 → 乘以本地相干载波 → 低通滤波 → 码元中间抽样 → 与0比较判决 → 恢复比特链路中的关键是“极性映射”这一步。PSK需要双极性波形1/-1ASK需要单极性波形0/1FSK则需要根据比特值选择不同载波片段。很多初学朋友在生成基带波形时用了一个统一的函数后面调制时出现“为什么PSK波形没有相位翻转”这种问题根源往往就在映射这一步。接收端的本地载波直接用发送端载波的理想副本。这在仿真中是合理的但报告里一定要注明这是“理想相干解调”假设实际系统中需要从接收信号中提取载波那就是另一个层面的设计了。3.3 为什么仿真中敢用filtfilt和理想低通实际接收机不能使用零相位滤波因为因果系统无法“预知”未来信号。但仿真不同——所有数据都是一次性生成的MATLAB的filtfilt函数可以先正向滤波再反向滤波抵消群延迟得到零相位输出。这对于课程设计演示波形非常友好因为滤波前后的信号在时间上不会错位抽样判决位置不用额外补偿。低通滤波器我用巴特沃斯滤波器阶数5截止频率取码元速率量级1000Hz。巴特沃斯的优点是通带平坦不易造成波形失真。截止频率如果取得太低比如200Hz会把信号的高频分量滤掉波形变圆、判决余量变小取得太高比如10kHz噪声滤不干净。经验做法是取Rb附近也就是0.5Rb到1.5Rb之间。4. 可运行代码拆解调制、加噪、相干解调与判决4.1 参数初始化与基带波形生成%% 参数设置 clear; clc; close all; rng(0); % 固定随机种子结果可复现 Rb 1000; % 码元速率 1000 bps fc 10000; % 载波频率 10 kHz fs 80000; % 采样率 80 kHz spb fs / Rb; % 每码元采样点数 80 Nsym 30; % 演示用比特数 N Nsym * spb; % 总采样点数 t (0:N-1). / fs; % 时间列向量 %% 发射端生成二进制数据与基带波形 data randi([0 1], Nsym, 1); % 随机二进制序列 % PSK用双极性NRZ波形1 - 10 - -1 d_psk 2 * data - 1; baseband_psk reshape(repmat(d_psk., spb, 1), [], 1); % ASK用单极性NRZ波形1 - 10 - 0 baseband_ask reshape(repmat(data., spb, 1), [], 1);这里用repmat加reshape生成NRZ波形是效率最高的写法。先把每个符号重复spb次再展开成一列就得到了每个码元持续80个采样点的基带波形。如果Nsym很大的话这种写法比for循环快得多。rng(0)这行一定要有。没有它每次运行得到不同的随机序列和噪声波形演示时可能碰巧很好也可能碰巧很差老师对“结果不可复现”的印象分会打折扣。4.2 三种调制信号的生成%% 载波与调制 carrier_cos cos(2 * pi * fc * t); % 2PSK调制双极性基带 × 载波 psk_signal baseband_psk .* carrier_cos; % 2ASK调制单极性基带 × 载波比特1发送载波比特0不发送 ask_signal baseband_ask .* carrier_cos; % 2FSK调制两个载波频率 f18k比特1、f212k比特0 f1 8000; f2 12000; carrier_f1 cos(2 * pi * f1 * t); carrier_f2 cos(2 * pi * f2 * t); fsk_signal zeros(N, 1); for k 1:Nsym idx (k-1)*spb 1 : k*spb; if data(k) 1 fsk_signal(idx) carrier_f1(idx); else fsk_signal(idx) carrier_f2(idx); end endPSK和ASK的调制就是点乘逻辑非常直接。FSK稍麻烦一点需要逐码元选择载波片段。要注意不能写成fsk_signal data .* carrier_f1 (1-data) .* carrier_f2这种形式因为data是码元级序列而carrier是采样点级序列维度不一致。必须先做基带NRZ扩展再运算或者用循环按码元区间填充。4.3 AWGN信道加噪的细节%% 信道加噪以10dB为例 SNR_dB 10; rx_psk awgn(psk_signal, SNR_dB, measured); rx_ask awgn(ask_signal, SNR_dB, measured); rx_fsk awgn(fsk_signal, SNR_dB, measured);awgn函数的第三个参数写measured意思是先测量输入信号的实际功率再按目标SNR反推噪声功率。这是最稳妥的用法不需要手动算信号功率。但要注意awgn里的SNR_dB是信号功率与噪声功率的比值不是误码率理论公式里的Eb/N0。这两个量之间有换算关系但换算依赖信号带宽和采样率很多报告直接把SNR_dB当成Eb/N0画横轴理论曲线就对不上。在实际做课程设计时建议把SNR_dB设为变量跑一个循环统计不同信噪比下的误码率。波形演示时固定一个10dB或15dB既能看清波形又不会错误太多。4.4 接收端解调与判决完整代码%% 接收端低通滤波器设计 Wn Rb / (fs / 2); % 归一化截止频率1000 / 40000 0.025 [b_lp, a_lp] butter(5, Wn); %% 2PSK相干解调 y_psk rx_psk .* carrier_cos; % 乘以本地载波产生基带分量和2fc分量 y_psk_lp filtfilt(b_lp, a_lp, y_psk); % 低通滤除高频分量 samp_psk y_psk_lp(round(spb/2) : spb : end); % 每码元中间抽样 dec_psk double(samp_psk 0); % 与0比较判决 %% 2ASK相干解调 y_ask rx_ask .* carrier_cos; y_ask_lp filtfilt(b_lp, a_lp, y_ask); samp_ask y_ask_lp(round(spb/2) : spb : end); th_ask (max(samp_ask) min(samp_ask)) / 2; % 自适应门限 dec_ask double(samp_ask th_ask); %% 2FSK相干解调两路相关后比较大小 y_f1 rx_fsk .* carrier_f1; y_f2 rx_fsk .* carrier_f2; f1_lp filtfilt(b_lp, a_lp, y_f1); f2_lp filtfilt(b_lp, a_lp, y_f2); samp_f1 f1_lp(round(spb/2) : spb : end); samp_f2 f2_lp(round(spb/2) : spb : end); dec_fsk double(samp_f1 samp_f2); %% 误码统计 err_psk sum(dec_psk ~ data); err_ask sum(dec_ask ~ data); err_fsk sum(dec_fsk ~ data); fprintf(PSK误码数: %d/%d\n, err_psk, Nsym); fprintf(ASK误码数: %d/%d\n, err_ask, Nsym); fprintf(FSK误码数: %d/%d\n, err_fsk, Nsym);几个容易被问到的设计决策第一抽样时刻取round(spb/2)而不是码元起始位置。码元起始位置是基带波形从上一个符号切换到当前符号的过渡点信号还没稳定中间位置波形最稳定对抗符号间干扰的能力最强。这里spb80所以第一个抽样点在40也就是第一个码元的中心。第二ASK判决门限用自适应门限而不是固定0.5。相干解调后发送1时的抽样值会受到滤波器和噪声影响固定门限在低信噪比时容易误判。自适应门限取接收信号抽样值的最大最小值中点虽然不是理论最优但对课程设计来说非常稳妥也避免了“门限怎么取”的纠结。第三FSK解调用两路相关器比较大小天然不需要门限。这是FSK比ASK更容易做判决的原因也回答了“为什么电力线载波、老旧低速无线通信曾大量使用FSK”这类问题。4.5 误码率蒙特卡洛仿真代码基带等效检查完整带通链路是否正确的下一步是统计误码率并与理论曲线对比。如果直接在带通模型里跑几万比特每个比特80个采样点计算量虽然也能接受但噪声带宽的换算非常容易出错。我实际做的时候采用基带等效模型忽略载波直接在符号层面加噪声、判决。这样仿真速度快而且和理论公式一一对应。%% 误码率仿真基带等效模型 EbN0_dB 0:1:10; EbN0_lin 10.^(EbN0_dB / 10); numBits 1e6; % 每个信噪比下的仿真比特数 ber_psk zeros(size(EbN0_dB)); ber_ask zeros(size(EbN0_dB)); ber_fsk zeros(size(EbN0_dB)); for i 1:length(EbN0_dB) % 高斯白噪声方差对±1符号Es1sigma^2 1/(2*EbN0) sigma sqrt(1 / (2 * EbN0_lin(i))); % PSK符号 ±1 tx_psk 2 * randi([0 1], numBits, 1) - 1; rx_psk_b tx_psk sigma * randn(numBits, 1); ber_psk(i) sum((rx_psk_b 0) ~ (tx_psk 0)) / numBits; % ASK平均比特能量归一化为1所以符号取 sqrt(2) 和 0 tx_ask sqrt(2) * randi([0 1], numBits, 1); rx_ask_b tx_ask sigma * randn(numBits, 1); ber_ask(i) sum((rx_ask_b sqrt(2)/2) ~ (tx_ask 0)) / numBits; % FSK正交符号在两个基方向上选择比较两路判决变量 tx_fsk randi([0 1], numBits, 1); r1 (tx_fsk 1) sigma * randn(numBits, 1); % 发1时第一路有能量 r2 (tx_fsk 0) sigma * randn(numBits, 1); % 发0时第二路有能量 ber_fsk(i) sum((r1 r2) ~ (tx_fsk 1)) / numBits; end % 理论曲线 pe_psk_theory 0.5 * erfc(sqrt(EbN0_lin)); pe_ask_theory 0.5 * erfc(sqrt(EbN0_lin / 2)); pe_fsk_theory 0.5 * erfc(sqrt(EbN0_lin / 2)); figure; semilogy(EbN0_dB, ber_psk, o-, EbN0_dB, ber_ask, s-, EbN0_dB, ber_fsk, ^-); hold on; semilogy(EbN0_dB, pe_psk_theory, --, EbN0_dB, pe_ask_theory, --, EbN0_dB, pe_fsk_theory, --); xlabel(Eb/N0 (dB)); ylabel(误码率); legend(PSK仿真, ASK仿真, FSK仿真, PSK理论, ASK理论, FSK理论); grid on;这段代码里最关键的是噪声方差与Eb/N0的关系。PSK发送±1符号符号能量Es1每比特能量Eb1所以噪声方差为 ( \sigma^2 1/(2E_b/N_0) )。ASK平均每比特能量为1但发送1时幅度是√2、发送0时幅度是0噪声方差公式不变。FSK两个正交方向同样满足这个关系。理论曲线里PSK是 ( 0.5 \text{erfc}(\sqrt{E_b/N_0}) )ASK和FSK相干解调是 ( 0.5 \text{erfc}(\sqrt{E_b/(2N_0)}) )仿真点应该精确落在这些曲线上。5. 结果验证波形、频谱、误码率三条线互相印证5.1 时域波形检查看得见的相位翻转与包络变化系统做完了不能只贴代码还要证明它真的对。最直接的方法是看时域波形。在固定SNR15dB下分别画出基带波形和调制波形。2PSK的调制波形应该看到明显的相位翻转当比特从1变为0时载波相位突变180°波形在翻转点出现过零跳变。2ASK的波形则是载波片段和零电平交替出现包络形状和单极性基带波形一致。2FSK波形在两个频率之间切换仔细看时每个码元内的振荡密度不同——8kHz的一段比12kHz的一段稀疏。画图时用subplot分开展示原始比特流、基带波形、调制信号和接收判决结果。时间轴标注为毫秒横轴只画前10个码元就足够看清切换过程。如果相位翻转、包络通断、频率切换这三点都能在图上直观看到调制模块基本没有问题。5.2 频谱检查主瓣宽度与载波频率位置时域波形只能判断调制是否完成频谱能进一步验证带宽是否和理论一致。用periodogram或者简单fft画出三种调制信号的归一化功率谱观察下面几个点2PSK的频谱是中心在10kHz的双边带谱主瓣宽度约2kHz±1kHz对应理论带宽2Rb。2ASK的频谱结构和2PSK类似主瓣也是中心在10kHz、宽约2kHz但因为单极性波形含有直流分量频谱中心处会有离散载波分量而2PSK是抑制载波调制10kHz处看不到明显离散线谱——这个差异在频谱图上非常直观也常被用来区分ASK和PSK。2FSK的频谱则在8kHz和12kHz两个频率附近各有一个主瓣两个主瓣之间有明显间隔。如果频谱主瓣位置、宽度与理论不符优先检查采样率是否满足采样定理再检查载波频率是否因混叠被折叠到了错误位置。这类问题在fs设置不合理时非常隐蔽因为时域波形看起来可能一切正常。5.3 误码率验证仿真曲线与理论曲线的关系波形和频谱验证过关后误码率曲线是最后一锤定音的证据。运行基带等效仿真代码后三条仿真曲线应该分别贴合三条理论曲线。最理想的情况是仿真点几乎落在理论线上即使有小偏差也只在Eb/N0很高比如10dB以上时出现原因是当误码率降到1e-6量级时固定1e6比特中错误事件太少统计起伏明显。如果仿真曲线整体比理论曲线高出一个固定量级通常不是噪声方差算错就是判决门限/判决规则没有对准。我在调试时遇到过仿真PSK曲线比理论差约3dB的情况最后发现是噪声方差多乘了2——把带通噪声的等效带宽搞错了。这个坑在4.5节用基带等效模型后就不存在了因为方差和Eb/N0的对应关系已经被显式写进代码里。6. 调试过程中那些“看起来没问题却全错”的时刻6.1 滤波器群延迟让判决全错第一次用filter而不是filtfilt做低通滤波时我遇到的怪问题是20个比特里错了一半而且错的比特位置全部集中在前半段。看起来不像是噪声引起的随机错误更像是系统性错位。后来画出解调波形和基带波形对比发现滤波输出整体向右平移了一段。滤波器阶数越高群延迟越大抽样时刻就成了问题。解决方法是换成filtfilt做零相位滤波。但filtfilt不是万能的——它属于非因果处理只能用于离线仿真实时接收机里不可能用。课程设计里用filtfilt没问题但报告里最好说明这一点免得答辩被问倒。6.2 抽样时刻不对导致错误率下不去如果把抽样时刻改成码元起始位置即1:spb:end会看到误码率明显上升即使把SNR调到20dB也依然出错。原因在于码元边界处的波形正处于两个符号的过渡带前一个符号的尾部和后一个符号的头部叠加在一起幅度很可能落在判决门限的错误一侧。这就是最经典的“符号间干扰”现象只不过它来自人为抽样位置不当。调试经验是用round(spb/2)作为偏移量并且在判决前把抽样时刻画在解调波形上肉眼确认抽样点确实落在码元稳定区域。不要只看误码率数字时域图会让你更快发现问题。6.3 信噪比定义混乱引起的“理论对不上”这是我在和同学交流时见过最多的一个坑。很多人直接用awgn里的SNR_dB作为横轴然后把理论误码率公式里同样是横轴的Eb/N0也填成这组数字结果两条曲线错开一大截。原因在于awgn测的是带通信号总功率和噪声总功率的比而Eb/N0是比特能量和噪声功率谱密度的比。二者要换算中间隔着一个接收带宽。多花几十行代码在蒙特卡洛仿真里把Eb/N0作为自变量、直接构造对应方差的高斯噪声是最省心的做法。这段代码在4.5节已经给出换到其他调制方式时只需要改动符号映射和判决规则。6.4 随机种子与结果可复现调试阶段没有固定随机种子的后果是每跑一次代码误码数变一次波形也变一次。如果刚好得到一组看起来不错的图关掉MATLAB再打开复现不出来了写报告时会非常被动。在代码开头写rng(0)是一个好习惯。类似的还有rng(default)效果是让随机数生成器恢复到默认状态。课程设计中所有展示图、误码率表都是基于固定随机种子说明结果的可靠性会更有说服力。6.5 常见错误速查表现象可能原因排查/解决办法解调波形整体向右偏移判决全错filter的群延迟没有补偿改用filtfilt或用grpdelay计算延迟后调整抽样指针抽样点在码元边界误码率无法下降抽样偏移量取错偏移量改为round(spb/2)先画图确认抽样点位置仿真误码率比理论差3dB噪声方差与Eb/N0换算多乘/少乘了2用基带等效模型重新定义噪声避免带宽换算频谱上没有看到预期的主瓣采样率不足或载波频率混叠检查fc是否小于fs/2必要时重设fs偶尔一次运行结果很好但结果不可复现缺少随机种子代码开头加rng(0)最后分享一个我在实际项目中的体会做数字调制解调系统最大的风险往往不是那些看起来复杂的部分而是抽样时刻、滤波器延迟、信噪比定义这些“常识性细节”。其中任何一个问题都会导致整个系统性能不正常而这类错误最难察觉因为代码完全能运行、波形也“看起来正常”只有拿误码率和理论曲线一比才发现完全对不上。所以做这个项目时我给自己定的流程是先验证一个比特的完整波形变化再验证一段序列的判决结果最后才跑蒙特卡洛误码率。三个层次都通过了才算真正完成。如果你在当前任务中被某个“小问题”卡住建议按这个顺序排查大概率能找到问题所在。
RELATED

相关推荐

一年实测国产芯片替代:边缘协议网关迁移RK3568全记录

一年实测国产芯片替代:边缘协议网关迁移RK3568全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/5 8:28:56
layui数据表格自动换行全攻略:从CSS覆盖到性能避坑

layui数据表格自动换行全攻略:从CSS覆盖到性能避坑

做后台管理系统这些年,被layui数据表格整得最无语的一次,是业务部门跑过来说"退款原因列的字全被省略号截断了,每次核对订单都得点开详情看原因,效率太低了"。当时第一反应是加宽列,结果调宽之后旁边几列被挤…

📅 2026/10/5 8:23:55
神经网络MOSFET模型泛化能力提升:数据准备与物理约束实战

神经网络MOSFET模型泛化能力提升:数据准备与物理约束实战

简介:面向半导体器件建模与机器学习交叉领域,论文提出一种具备良好泛化能力的神经网络MOSFET模型。该模型对超阈值与亚阈值区域分段建模,并采用自适应遗传算法优化泛化能力,使模型对训练样本集边界外的数据仍有较高精度&#xff0…

📅 2026/10/5 8:23:55
MORE NEWS

更多资讯

📰

STM32H743驱动FM25CL64铁电存储器:SPI总线实战避坑指南

这板子是拿来做一台带屏工业设备的,主控用的STM32H743,屏幕逻辑、JPEG解码、LVGL界面都压在它身上。原来的方案里存参数用的是24C64 EEPROM,跑了一段时间发现两个问题:一个是写参数时要先擦后写,掉电瞬间如果正在写&am…

📰

SmarTest 8 Binning机制详解:从测试项到Bin映射的完整链路

芯片测试圈里聊到量产测试程序,SmarTest 8 和 Binning 这两个词基本绕不开。尤其是用 Advantest V93000 系列的团队,每天跟测试程序打交道,最核心的诉求就一个:把每一颗芯片准确分到它该去的Bin里,让良率报表、失效分析…

📰

锂电池包膜机PLC控制系统:三菱Q系列与普洛菲斯触摸屏应用解析

近年锂电池产线扩张很快,包膜机作为电芯后段工艺里很重要的一台设备,需求一直很稳。我最近刚好完成了一个包膜机项目,控制系统用的是三菱Q系列PLC,人机界面配的普洛菲斯触摸屏,整条设备从单机调试到联机跑产&#xff0…

📰

锂电池包膜机项目复盘:三菱Q系列PLC搭配Pro-face触摸屏实战总结

锂电池包膜机项目复盘:三菱Q系列PLC搭配Pro-face触摸屏的实战总结前阵子刚交付了一台锂电池包膜机,整套控制系统用的是三菱Q系列PLC加普洛菲斯(Pro-face)触摸屏。这个组合在中小型非标自动化设备里非常常见,但真要把它…

📰

滑模控制从原理到实战:数学模型、参数整定与抖振抑制

做控制这么多年,如果让我选一个“最需要理解、又最容易踩坑”的理论,滑模控制理论(Sliding Mode Control,SMC)一定排在前三。早在学校第一次用Matlab仿真倒立摆的时候,我就被它那种“不管模型误差多大&…

📰

Python打包后fsspec丢失?排查方法与解决方案完整梳理

打包完Python程序双击却弹出"找不到fsspec",十有八九是这条依赖链断在暗处了。这个问题我在多个项目里都踩过,尤其是用过pandas、xarray这类重依赖库之后,fsspec就像一个"隐身房客",开发时一切正常&#xff0…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬