多径衰落信道仿真:瑞利、莱斯、TDL与无人机信道建模详解
2026/9/24 0:17:22 网站建设 项目流程

简介:在无线通信系统设计中,多径衰落是影响信号可靠性的关键因素,而这套Matlab代码包正围绕瑞利、莱斯、对数正态和韦布尔四种常见多径衰落信道展开,并额外加入无人机信道建模,适合通信工程、电子信息及数学等专业学生用于课程设计、期末大作业或毕业设计中的信道仿真。压缩包内共1个m脚本,体积仅2KB,以参数化方式编程,支持Matlab 2014、2019a、2024a等多个版本,附赠可直接运行的案例数据,下载后无需复杂配置即可上手。针对不同应用场景,瑞利衰落用于非视线多径环境,莱斯衰落关注直射路径影响,对数正态衰落反映建筑物遮挡下的缓慢变化,韦布尔衰落则适合描述更一般化的信道特性;代码注释详细、结构清晰,方便修改参数去复现各类信道条件,进而理解不同衰落对系统性能的影响。目前已有68人学习,是一份轻量实用、便于快速验证的仿真资源。

1. 多径衰落信道仿真:先搞清楚这 4 种模型各自在模拟什么

无线通信物理层仿真里,信道是最容易变成黑匣子的环节——算法写得再漂亮,信道模型搭错,误码率曲线照样给你一记闷棍。标题里这 4 种多径衰落信道,也就是瑞利衰落、莱斯衰落、频率选择性 TDL 信道和无人机空对地信道,基本覆盖了物理层链路验证里大多数测试场景。它们解决的是同一个问题:在没有真实射频环境时,用一组统计上可信的复数信道系数,模拟信号经历的多径叠加、时延扩散和频率偏移。正在做 OFDM、波束赋形、无人机通信链路仿真的工程师和学生,都跑不脱这套东西。下面我不依赖某个现成压缩包,把四类模型的最小 MATLAB 实现、参数选择逻辑和常见翻车点全部拆开讲。

2. 4 种常见信道的建模原理:瑞利、莱斯、TDL 与无人机信道各管什么场景

2.1 瑞利衰落:没有直达径时,接收信号为什么是复高斯

瑞利衰落描述的是接收端没有视距路径的场景。电磁波打到城市楼宇、地面、墙壁上,产生大量幅度相近、相位随机的反射副本,这些副本在接收天线处叠加。按照中心极限定理,当散射路径数量足够多时,同相分量和正交分量都趋于高斯分布,合成的复信道系数 h 服从零均值循环对称复高斯分布,包络 |h| 则服从瑞利分布,概率密度写成 f(r) = 2r·e^{-r^2},r ≥ 0。

仿真时最容易忽略的是功率归一化。理论上要求 E[|h|^2] = 1,否则后面加噪声时 SNR 全是错的。很多入门教程直接写h = (randn(1,N) + 1j*randn(1,N)) / sqrt(2),这能给出正确的幅度分布,但样本之间完全独立,没有任何时间相关性。真实信道里,只要收发端有相对运动,信道系数就会随时间连续变化,相邻几个毫秒内的衰落是强相关的。所以工程上生成瑞利信道很少直接抽高斯白样本,而是用 Jakes 求和法或者成形滤波器法,让输出信号的自相关函数贴合理论值。

瑞利信道适用的场景很具体:密集城区里被楼宇完全遮挡的移动终端、室内没有直射路径的角落、地下车库,以及无人机低空飞行时被建筑物挡住视距的情况。判断一个仿真该不该用瑞利,就看接收端能不能看到发射端。只要存在一条明显的主径,瑞利就不够用了。

2.2 莱斯衰落:有一条主径时的 K 因子模型

莱斯衰落解决的是瑞利覆盖不了的另一半场景:接收端除了大量散射分量之外,还存在一条幅度明显强于其它分量的主径。这条主径可以是直视路径,也可以是某个大平面反射形成的强反射路径。信道模型写成两部分叠加:

h = sqrt(K/(K+1)) * h_LoS + sqrt(1/(K+1)) * h_NLoS

其中 h_NLoS 是散射分量,就是前面说的复高斯;h_LoS 是主径分量,幅度固定、相位随时间线性旋转。K 是莱斯因子,定义为主径功率与散射功率之比。K=0 时模型退化成纯瑞利,K 趋向无穷大时退化成无衰落的加性高斯白噪声信道。包络服从莱斯分布,K 越大,深衰落的概率越低,信道越“温和”。

K 因子是莱斯信道里最关键的参数,但也是最容易被用错的参数。工程上经常用 dB 表示 K,比如 K_dB = 10,换算成线性值是 K_lin = 10,代入公式时主径幅度要乘 sqrt(10)。很多人在这里直接把 10 当线性值用,或者把 dB 值开根号,出来的信道统计特性完全不对。后面避坑章节我还会专门讲。

莱斯信道适合的场景包括:郊区开阔地带的移动通信、微蜂窝场景里用户能看到基站天线、无人机高空飞行时视距占主导的链路,以及大多数室内场景里离路由器不远的位置。

2.3 频率选择性衰落:时延扩展大于符号周期时的 TDL 表示

前面两种模型都假设所有多径分量在时间上不可区分,合并成一个抽头,这就是平坦衰落。但如果多径分量之间的时延差和符号周期在同一量级,接收端会看到多个时间上错开的信号副本,信道在频域不再是平的,这时候要引入抽头延迟线模型(TDL,Tapped Delay Line)。

TDL 模型的数学表达是h(τ,t) = Σ_i g_i(t) · δ(τ - τ_i),每个抽头有自己的时延 τ_i 和时变复系数 g_i(t)。g_i(t) 可以按瑞利或莱斯建模,抽头之间由功率时延谱(PDP)决定相对功率。判断系统是否需要频率选择性信道,用符号周期 Ts 和均方根时延扩展对比:如果 RMS 时延扩展超过 Ts 的十分之一,频谱上就会出现明显凹陷,必须用 TDL。

实际工程里不会自己从头算抽头参数,而是直接查标准表。ITU-R M.1225 给出了步行和车载场景的典型 6 抽头参数,3GPP 38.901 里也有 TDL-A/B/C/D/E 一套频段无关的模型。做 Wi-Fi、LTE、NR 物理层验证时,这些表就是信道建模的基准。TDL 实现起来不复杂,本质就是把发射信号分别延迟、乘以对应抽头系数再叠加,但抽头时延从秒换成采样点时的量化误差,是新手最容易踩的坑。

2.4 无人机信道:在传统多径上叠加几何动态

无人机空对地信道并不是一套全新的物理机制,它是在传统多径衰落之上叠加了三维几何和动态特性。最核心的差异有四点。

第一,视距概率随仰角变化。地面节点看无人机的仰角越高,中间被楼宇遮挡的概率越低,视距(LoS)概率越大。所以无人机信道不能用固定的瑞利或莱斯一刀切,而要用 LoS 概率模型在视距和非视距状态之间切换。第二,多普勒频移大且时变。无人机巡航速度普遍在 20 到 50 米每秒,在 2.4GHz 载频下最大多普勒频移可以达到 240 到 580Hz,比步行场景高一到两个数量级。第三,信道非平稳。无人机位置连续变化,多径抽头的时延和功率都在变,不能把整段信道当成平稳随机过程处理。第四,姿态变化引入额外的阴影衰落和相位扰动。

实际建模时,常见的做法是:先按几何位置算仰角和距离,再用经验公式给出 LoS 概率,判断当前处于视距还是非视距状态;视距状态用莱斯信道描述,非视距状态用瑞利信道描述;同时根据径向速度实时更新多普勒相位。第 5 章我会专门说无人机信道的参数标定和状态连续性。

3. 用 MATLAB 把 4 种信道跑起来:最小可运行代码与参数含义

这一章给出的是可以直接复制到 MATLAB 里的最小实现,不依赖 Communications Toolbox,任何版本都能跑。代码注释我尽量用中文,但要注意:MATLAB R2023 之前的版本对中文注释支持不好,某些系统下保存成 UTF-8 会显示乱码,甚至有报错,建议要么用英文注释,要么统一把脚本另存为 GBK 编码。这四段代码合在一起,就是一个不带任何工具箱依赖的信道仿真骨架。

3.1 瑞利衰落:Jakes 求和法生成有时间相关性的复信道系数

function h = rayleigh_jakes(fd, fs, N, M) % 基于 Jakes 求和法的瑞利衰落信道系数生成 % fd : 最大多普勒频移, 单位 Hz % fs : 采样率, 单位 Hz % N : 输出样本点数 % M : 叠加正弦波数量, 建议取值 16 if nargin < 4 M = 16; end t = (0:N-1) / fs; % 时间轴, 单位秒 h = zeros(1, N); % 预分配复信道系数 for k = 1:M % 每个正弦波对应一个到达角方向, 初始相位加随机扰动 phi_k = (2*pi*k - pi + pi/(2*M)) / (4*M) + 0.1*rand(); f_k = fd * cos(2*pi*k/M); % 各正弦波的多普勒频率 h = h + exp(1j * (2*pi*f_k .* t + phi_k)); end h = h / sqrt(M); % 功率归一化到 1 end

这段代码的物理含义是:把 360 度方向上的散射分量近似成 M 个离散到达角,每个到达角对应一个多普勒频移 f_k,把所有分量复叠加就得到时变的复信道系数。除以 sqrt(M) 是为了让平均功率为 1,因为 M 个幅度为 1 的正弦波叠加后平均功率是 M,开方归一化后 E[|h|^2] = 1。

参数上,fd 由相对速度和载频决定,关系是 fd = v·fc/c,它直接控制信道的衰落速度;fs 是采样率,决定时间轴分辨率;M 是正弦波数量,至少取 8,我习惯取 16,太少会出现频谱离散、自相关函数畸变的问题。生成之后可以用plot(20*log10(abs(h)))看一眼衰落包络,幅度波动应该在 -40dB 到 0dB 之间。

3.2 莱斯衰落:在散射分量的基础上叠一条主径

function h = ricean_jakes(fd, fs, N, K, fd_los) % 莱斯衰落信道, 在瑞利散射分量上叠加一条强主径 % K : 莱斯因子, 线性功率比, K = 主径功率 / 散射功率 % fd_los: 主径对应的多普勒频移, 由主径入射方向与运动方向夹角决定 if nargin < 5 fd_los = 0.3 * fd; % 默认主径方向与运动方向有约 72 度夹角 end t = (0:N-1) / fs; h_scat = rayleigh_jakes(fd, fs, N, 16); % 散射分量, 平均功率 1 h_los = sqrt(K) * exp(1j * 2*pi*fd_los .* t); % 主径, 功率 K h = (h_los + h_scat) / sqrt(K + 1); % 总功率归一化到 1 end

主径分量的相位是确定性旋转,旋转速率由 fd_los 决定;散射分量继续用 Jakes 法生成。两者叠加后总功率是 K + 1,所以除以 sqrt(K+1) 保持输出功率为 1。调用时如果只知道最大多普勒频移而不知道主径具体入射角,可以给 fd_los 一个小于 fd 的默认值,因为主径通常不是严格径向。

K 因子要传线性值,比如 K_dB = 10 时,调用应写成ricean_jakes(fd, fs, N, 10^(10/10), fd_los)。想验证 K 的作用,可以分别用 K=0、K=1、K=100 生成三段信道画包络,能看到深衰落出现的频率明显下降。

3.3 频率选择性衰落:TDL 抽头延迟线的数据通路

function y = apply_tdl(x, h_taps, delay_sec, fs) % 将时变复抽头系数作用到发射信号上, 得到多径叠加后的接收信号 % x : 发射基带信号, 1 x L 向量 % h_taps : Ntap x L 矩阵, 每行是一个抽头的时变信道系数 % delay_sec: Ntap 维行向量, 每个抽头的时延, 单位秒 % fs : 采样率, 单位 Hz [Ntap, L] = size(h_taps); y = zeros(1, L); for k = 1:Ntap d = round(delay_sec(k) * fs); % 秒转采样点数 if d >= L continue; % 时延超出数据长度则丢弃 end hk = h_taps(k, :); y = y + hk .* [zeros(1, d), x(1:end-d)]; % 延时叠加 end end

这个函数把信号按每个抽头的时延进行延迟,再乘以对应时变系数后叠加。使用时,每个抽头的 hk 可以单独用 rayleigh_jakes 生成,注意每个抽头要乘上功率时延谱给出的幅度系数。例如标准 PDP 里抽头相对功率是 -10dB,幅度就是 10^(-10/20) = 0.3162,生成的信道系数要乘上这个幅度。

% 3 抽头示例: 时延 0ns, 110ns, 190ns; 功率 0dB, -9.7dB, -19.2dB fs = 30.72e6; x = sign(randn(1, 20000)); % 双极性随机训练序列 h1 = 1.0000 * rayleigh_jakes(20, fs, 20000, 16); h2 = 0.3275 * rayleigh_jakes(20, fs, 20000, 16); h3 = 0.1096 * rayleigh_jakes(20, fs, 20000, 16); y = apply_tdl(x, [h1; h2; h3], [0, 110e-9, 190e-9], fs);

这段示例里 0.3275 是 10^(-9.7/20),0.1096 是 10^(-19.2/20)。抽头功率归一化要在这一步完成,后面加噪声时才能保证 SNR 计算正确。实际仿真中抽头数量通常取标准表里的值,6 抽头或 14 抽头都行,不必追求更多。

3.4 无人机信道:几何 LoS 概率加时变多普勒的骨架

function [h, is_los] = uav_channel_state(fc, v, angle_deg, fs, N, prev_los) % 无人机空对地信道: 根据几何位置判断 LoS/NLoS 并生成信道系数 % fc : 载频, 单位 Hz % v : 无人机与地面节点的径向速度, 单位 m/s % angle_deg: 地面节点看无人机的仰角, 单位度 % prev_los: 上一时刻是否为视距, 用于状态连续性 c = 3e8; fd = fc * v / c; % 最大多普勒频移 % LoS 概率模型, a/b 为环境标定参数, 这里给城市低空示例值 a = 9.6; b = 0.28; p_los = 1 / (1 + a * exp(-b * (angle_deg - a))); is_los = (rand() < p_los); if is_los % 视距状态: 主径占优, 用高 K 值莱斯信道 K = 15; h = ricean_jakes(fd, fs, N, K, fd*0.8); else % 非视距状态: 退化为瑞利, 散射更强时多普勒扩展略大 h = rayleigh_jakes(fd * 1.3, fs, N, 16); end end

这段代码把无人机信道拆成了两个层次:大尺度上由几何位置决定 LoS 概率,小尺度上由视距状态决定用莱斯还是瑞利。这样拆的好处是便于后续扩展——加入路径损耗、阴影衰落、时延抽头时,只需在大尺度部分增加相应参数。

细节上要提醒两点。第一,fd 用的是径向速度,如果无人机速度方向和传播方向有夹角 θ,径向速度是 v·cos(θ),实际计算时要按几何投影来。第二,is_los 不要每帧都独立抽一次,真实环境里 LoS 状态有连续性,我习惯把上一帧的 is_los 传进来做概率转移,而不是重新掷骰子,这个问题在第 5 章避坑里详细说。

4. 参数怎么定才不翻车:多普勒、采样率、抽头数与帧长配置

4.1 多普勒频移和采样率的关系:先算 fd,再定 fs 和信道刷新周期

所有参数里,fd 是源头,其它参数都围着它转。fd = v·fc/c,给出几个典型场景的数值就能直观感受量级:

场景载频相对速度最大多普勒频移 fd
步行2.4GHz1.4 m/s11.2 Hz
车载2.4GHz30 m/s240 Hz
无人机巡航2.4GHz25 m/s200 Hz
无人机巡航5.8GHz30 m/s580 Hz
高铁2.4GHz80 m/s640 Hz

相干时间用 Tc = 0.423 / fd 估算,它表示信道保持强相关的时间窗口。fd=200Hz 时 Tc≈2.1ms,意味着信道每隔约 2 毫秒就会明显变化一次。做数据帧仿真时,帧长必须远小于 Tc,我一般要求单帧时长不超过 Tc 的十分之一,这样帧内信道可以近似看作不变。

fs 的选择要看用途。如果只是生成信道系数做统计验证,fs 取 fd 的 20 倍以上就够,比如 fd=200Hz 时 fs 至少 4kHz。但如果有 TDL 时延需要量化,fs 要按系统带宽来,比如 LTE 20MHz 对应 30.72MHz 采样率。这时 100ns 的时延折算成 3.07 个采样点,四舍五入误差还能接受;如果 fs 只有 1MHz,100ns 变成 0.1 个点,round 之后直接变 0,时延特征全丢。低采样率下要保时延精度,就得用分数时延滤波器,别指望 round。

4.2 TDL 标准抽头参数:用现成表格而不是自己瞎编

工程上不要自己编 PDP,直接查标准表。ITU-R M.1225 的两张表最常用,覆盖步行和车载两类典型场景:

抽头Pedestrian A 时延(ns)相对功率(dB)Vehicular A 时延(ns)相对功率(dB)
100.000.0
2110-9.7310-1.0
3190-19.2710-9.0
4410-22.81090-10.0
5710-25.21730-15.0
61090-28.92510-20.0

使用时先把相对功率 dB 转成线性:P_lin = 10^(P_dB/10),幅度系数就是 sqrt(P_lin)。然后按总功率归一化,常见做法是让所有抽头功率之和等于 1。表里这些功率相加不为 1 也没关系,归一化之后乘以同一个系数即可。

3GPP 38.901 里的 TDL 模型是频段无关的替代方案,TDL-A/B/C 对应不同时延扩展,TDL-D/E 带直视路径。TDL 模型的参数以表格形式给出,使用时同样按「时延 × fs 取整、功率归一化、逐抽头乘复系数」的流程。区别在于 38.901 的抽头数更多,仿真精度更高,代价是计算量上去了,小规模链路仿真用 ITU 表足够。

4.3 无人机信道的参数重点:仰角、LoS 概率和位置更新率

无人机信道里,仰角是比距离更关键的变量。LoS 概率模型写成:

P_LoS = 1 / (1 + a·exp(-b·(θ - a)))

其中 θ 是地面节点看无人机的仰角(度),a 和 b 是环境参数。a 越大,低仰角时非视距概率越高;b 越大,概率随仰角上升得越陡。城市环境的典型值在 a≈9~12、b≈0.1~0.3 范围,郊区则 a 更小。这个公式没有普适参数,必须根据仿真场景标定,别直接抄一个值就用。

位置更新率要匹配运动速度。无人机位置变化会导致仰角、距离、LoS 状态全部改变,更新间隔不能超过相干时间。简单算一笔账:v=25m/s、fc=2.4GHz 时 fd≈200Hz、Tc≈2.1ms,位置更新率至少 1kHz,也就是每毫秒重算一次几何参数。更高的 5.8GHz 频段下 fd 更大,更新率还要往上提。如果嫌计算量大,可以拆成两层:几何参数按位置更新率刷新,多普勒相位按符号率连续积分,这样既保住相干性又不至于每符号都重算一遍几何。

5. 避坑:多径衰落仿真里 5 个反复翻车的点

5.1 现象:Jakes 法生成的信道,自相关函数尾部对不上理论值

做时间相关性验证时,把生成信道系数的自相关曲线和理论值 J0(2π·fd·τ) 叠在一起画,发现前几百个点还行,往后就开始明显偏离,甚至出现周期性起伏。

原因是叠加的正弦波数量 M 太小。Jakes 法是用有限个离散角度近似连续到达角分布,M 太小导致多普勒频谱不连续,低频分量缺损,自相关函数的尾部自然塌掉。解决方法是把 M 从 4 提到 16 甚至 32,并且给每个正弦波的初始相位加随机扰动,避免多个信道实现之间产生固定相位关系。M=16 时自相关在 τ 小于 10 倍相干时间范围内都能贴合理论曲线,超过这个范围偏离属于正常,不要强求。

5.2 现象:SNR 设了 20dB,BER 曲线却整体偏移好几个 dB

接收端加噪声时按照 SNR = 20dB 算的噪声功率,但跑出来的误码率曲线像是 SNR 打了七折,整体右移。这种问题十有八九是信道系数没有做功率归一化。

具体原因是生成信道时忘了除以归一化因子。rayleigh_jakes里除以了 sqrt(M),但如果你自己改成 M 个幅度为 A 的正弦波叠加,又没有除以 sqrt(M)·A,信道平均功率就不是 1。多抽头场景更隐蔽,每个抽头乘了 PDP 幅度系数后,总功率往往不等于 1。解决方法是每次生成完信道后加一句快速检查:assert(abs(mean(abs(h).^2) - 1) < 0.1, '信道功率未归一化')。多抽头场景检查 sum(抽头功率) 是否等于 1。这步检查花不了多少算力,能省掉后面所有 SNR 相关的排查时间。

5.3 现象:TDL 应用后时延全是 0,或者信号后半段莫名错位

代码看起来没问题,抽头时延也给了,但接收信号跟发射信号几乎对齐,或者中间有一段波形鬼畜。问题出在时延单位转换上。

常见的错误写法是直接把 ns 数值当采样点用,比如 110e-9 没乘 fs 就塞进索引;另一种是在round(delay_sec * fs)之后出现 0,原因是 fs 太低,时延折算不足半个采样点。解决方法是统一用秒做单位,转换时写成d = max(round(delay_sec * fs), 0),并且检查 fs 是否满足时延分辨率要求。按经验,最小可分辨时延是 1/fs,目标时延至少要是这个值的 5 倍以上,否则就考虑提高采样率或者上分数时延滤波器。

5.4 现象:莱斯信道 K=10 和 K=0 画出来差不多

把 K_dB=10、20、30 三组信道包络画在一起,发现深衰落出现的频率几乎没差别,或者 K 值越大信道反而越接近瑞利。这是 K 因子单位混乱导致的。

原因有两种:一种是把 dB 值直接当线性值代入,K=10dB 被当成 K_lin=10 用,其实应该是 10;另一种是把 K_lin 当成功率,却在主径幅度上忘了乘 sqrt(K_lin),主径功率变成 K²,结果 K 越大散射分量被压得越狠。解决方法是统一用线性功率,明确主径幅度系数是 sqrt(K_lin),并且记住总功率归一化要除以 sqrt(K_lin + 1)。写个示例验证:K=100 时包络的浅衰落占比应该明显高于 K=0,肉眼能看出区别才算对。

5.5 现象:无人机高速场景下,误码率比论文仿真高一截

同样的发射机、同样的 SNR,把信道从地面车载模型换成无人机模型后,误码率曲线整体变差 2 到 3 个 dB,甚至出现无故的误码平台。

最常见的原因是信道状态更新策略错误。无人机高速移动时,如果每帧独立重新生成一次信道系数,LoS/NLoS 状态也是独立抽签,信道的时间连续性就被破坏了。真实链路里当前时刻的信道和上一时刻是强相关的,人为打散这种相关性等于额外注入噪声。解决办法是把信道当成状态机:LoS/NLoS 状态按概率转移而不是独立抽签,信道系数在符号级做相位连续性更新,也就是把多普勒频移累积成相位再作用到系数上。简单实现是h = h .* exp(1j*2*pi*fd/fs),每符号都转一下相位。位置更新时才重算几何参数和 LoS 概率,并把信道幅度过渡到新状态,这样仿真结果才可信。

6. 让信道代码可信:自相关验证、内置对象比对与接口封装

信道模型是仿真链路里的地基,地基塌没塌,不能等整条链路跑完才发现。我有几个固定的验证习惯,每次改完参数先过这几关,再往下跑调制解调和误码率。

第一关是自相关验证。把生成的信道系数做自相关,和理论值零阶贝塞尔函数对比,代码很短:

h = rayleigh_jakes(100, 1e6, 50000, 16); [R, lags] = xcorr(h, 'normalized'); idx = lags >= 0; Rr = real(R(idx)); tau = lags(idx) / 1e6; R_theory = besselj(0, 2*pi*100*tau); plot(tau, Rr, tau, R_theory); grid on; legend('仿真自相关', '理论 J0(2πfdτ)');

xcorr 归一化后零滞后处为 1,理论 J0 在零处也是 1,两条曲线的起点对齐。观察前半段贴合程度就行,尾部偏离是有限 M 值带来的固有误差,不影响使用。

第二关是和 MATLAB 内置对象交叉验证。老教程里的 rayleighchan 在新版本里已经移除了,现在统一用 comm.RayleighChannel 或 comm.TDLChannel。可以用内置对象生成海量样本,用 kstest 或直接画 CDF 曲线,跟自己的 Jakes 实现做统计对比。写代码前先确认当前 MATLAB 版本支持哪些对象,配合代码诊断插件提前扫一遍未定义变量和维度不匹配,能省掉很多低级报错。

第三关是接口封装。别把信道代码散埋在仿真脚本里,我习惯用一个结构体保存信道状态,封装成channel_step这样的单步函数,每次调用返回当前信道系数并推进内部状态。这样换信道模型时不用动主链路代码,后期改参数也只需要改初始化部分。

验证过的信道模型才敢放心进 BER 仿真链路。我这些年被「信道玄学」坑过不少次,现在不管换环境还是换参数,第一件事就是跑一遍自相关曲线再动别的。这个习惯帮我省下了大量排查时间。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询