当前位置: 首页 > news >正文

MATLAB中基于 S-V模型进行毫米波信道建模与仿真

MATLAB中基于Saleh-Valenzuela(S-V)模型进行毫米波信道建模与仿真

S-V模型能较好地描述毫米波信道中的多径成分以簇(cluster)形式到达的特性。毫米波频段(30-300 GHz)的信号传播具有显著的路径损耗大气衰减(例如氧气和水蒸气吸收,尤其在60GHz、119GHz等频段衰减严重),以及有限的散射环境导致的空间稀疏性

S-V模型关键参数

在开始MATLAB实现前,你需要理解S-V模型的几个核心参数及其含义:

参数符号参数含义典型值或特点
Λ (Lam)簇到达率 (Cluster Arrival Rate)单位时间内簇到达的平均数,较低 (例如 ~0.0233 /ns)
λ (lam)射线到达率 (Ray Arrival Rate)簇内单位时间内射线到达的平均数,较高 (例如 ~2.5 /ns)
Γ (Gam)簇衰减因子 (Cluster Decay Factor)簇功率随延迟的指数衰减常数 (例如 ~7.4 ns)
γ (gam)射线衰减因子 (Ray Decay Factor)簇内射线功率随延迟的指数衰减常数 (例如 ~4.3 ns)
b002第一簇第一条射线的功率用于计算其他射线的功率
sdi对数阴影衰落的标准差 (dB)整个冲激响应的对数正态阴影衰落
nlos非视距传播标志0表示LOS (视距),1表示NLOS (非视距)

这些参数的选择需要根据具体的仿真场景(如室内办公室、室外广场、UE移动速度等)进行调整。


S-V信道冲激响应

S-V模型的信道冲激响应可表示为:

h(t)=∑n=1N∑l=1Lnαn,lejϕn,lδ(t−Tn−τn,l) h(t) = \sum_{n=1}^{N} \sum_{l=1}^{L_n} \alpha_{n, l} e^{j \phi_{n, l}} \delta(t - T_n - \tau_{n, l}) h(t)=n=1Nl=1Lnαn,lejϕn,lδ(tTnτn,l)

其中:

  • NNN 是簇的总数。
  • LnL_nLn 是第 nnn 个簇内的射线数。
  • αn,l\alpha_{n, l}αn,l 是第 nnn 个簇中第 lll 条射线的幅度,通常假设服从瑞利分布(Rayleigh Fading)。
  • ϕn,l\phi_{n, l}ϕn,l 是第 nnn 个簇中第 lll 条射线的相位,通常在 [0,2π][0, 2\pi][0,2π] 内均匀分布。
  • TnT_nTn 是第 nnn簇的到达时间
  • τn,l\tau_{n, l}τn,l 是第 nnn 个簇中第 lll 条射线相对于簇到达时间 TnT_nTn 的延迟

lll 个簇中的第 kkk 条射线的平均功率(能量)满足双指数衰减
E[αn,l2]=b002exp⁡(−Tn/Γ)exp⁡(−τn,l/γ) E[\alpha_{n,l}^2] = b_{002} \exp(-T_n / \Gamma) \exp(-\tau_{n,l} / \gamma) E[αn,l2]=b002exp(Tn)exp(τn,l/γ)
其中 b002b_{002}b002 是第一个簇中第一条射线的功率。


步骤与代码

在MATLAB中仿真基于S-V模型的毫米波信道,通常包含以下步骤:

  1. 设置仿真参数:包括S-V模型参数、载波频率、带宽、天线阵列配置等。
  2. 生成簇和射线
    • 根据泊松过程生成簇的到达时间 TnT_nTn
    • 对于每个簇,根据另一个泊松过程生成簇内射线的相对延迟 τn,l\tau_{n,l}τn,l
  3. 计算复增益
    • 根据双指数衰减模型计算每条射线的平均功率。
    • 从复高斯分布中随机抽取 αn,lejϕn,l\alpha_{n,l} e^{j \phi_{n,l}}αn,lejϕn,l(幅度瑞利分布,相位均匀分布)。
  4. 构建信道冲激响应:将所有射线的贡献叠加起来。
  5. (可选) 引入天线阵列响应:如果考虑MIMO,需结合天线阵列的响应向量。
  6. 分析信道特性:如功率延迟分布(PDP)、信道容量等。

以下是一个基于中SV_channel函数的核心代码思路:

function [h, t, t0, np] = SV_channel(Lam, lam, Gam, gam, num_ch, b002, sdi, nlos)
% SV_channel 生成S-V信道模型的冲激响应
% 输入参数:
%   Lam:    簇到达率 (GHz)
%   lam:    射线到达率 (GHz)
%   Gam:    簇衰减因子 (ns)
%   gam:    射线衰减因子 (ns)
%   num_ch: 要生成的信道实现次数
%   b002:   第一个簇中第一条射线的功率
%   sdi:    对数阴影衰落的标准差 (dB)
%   nlos:   NLOS标志位 (0-LOS, 1-NLOS)
% 输出参数:
%   h:      冲激响应复数幅度矩阵 (每列是一个信道实现)
%   t:      对应的时间延迟矩阵 (ns)
%   t0:     每个信道实现中第一个簇的到达时间
%   np:     每个信道实现中的路径数if nargin < 8, nlos = 0;  end % 默认为LOS环境if nargin < 7, sdi = 0; end % 默认0dBif nargin < 6, b002 = 1; end % 默认功率为1h_len = 1000; % 预分配路径长度h = zeros(h_len, num_ch);t = zeros(h_len, num_ch);t0 = zeros(1, num_ch);np = zeros(1, num_ch);for k = 1:num_ch % 循环生成num_ch个信道实现tmp_h = zeros(h_len, 1);tmp_t = zeros(h_len, 1);% 生成第一个簇的到达时间if nlosTc = exprnd(1/Lam); % NLOS下,第一个簇随机到达elseTc = 0; % LOS下,第一个簇在时间0到达endt0(k) = Tc;path_ix = 0; % 路径索引初始化% 生成簇和簇内射线while (Tc < 10*Gam)  % 簇循环,直到时间足够大Tr = 0; % 每个簇内,第一条射线在相对时间0到达while (Tr < 10*gam) % 射线循环,直到时间足够大% 计算当前射线的平均功率 (公式2.20)brm2 = b002 * exp(-Tc/Gam) * exp(-Tr/gam);% 生成瑞利衰落的幅度 (标准差为sqrt(brm2/2))r = sqrt(randn^2 + randn^2) * sqrt(brm2/2);% 生成均匀分布的相位和复增益h_val = exp(1j * 2*pi*rand) * r;path_ix = path_ix + 1;tmp_h(path_ix) = h_val;tmp_t(path_ix) = Tc + Tr; % 绝对到达时间% 生成下一个射线的到达间隔 (指数分布)Tr = Tr + exprnd(1/lam);end% 生成下一个簇的到达间隔 (指数分布)Tc = Tc + exprnd(1/Lam);endnp(k) = path_ix; % 记录当前信道实现的路径数% 对路径按到达时间排序[sort_tmp_t, sort_ix] = sort(tmp_t(1:np(k)));t(1:np(k), k) = sort_tmp_t;h(1:np(k), k) = tmp_h(sort_ix(1:np(k)));% 应用对数正态阴影衰落fac = 10^(sdi*randn/20) / sqrt(h(1:np(k), k)' * h(1:np(k), k));h(1:np(k), k) = h(1:np(k), k) * fac;end
end

调用示例

% 设置S-V模型参数
Lam = 0.0233;    % 簇到达率 [1/ns]
lam = 2.5;       % 射线到达率 [1/ns]
Gam = 7.4;       % 簇衰减因子 [ns]
gam = 4.3;       % 射线衰减因子 [ns]
num_ch = 1000;   % 信道实现次数
b002 = 1;        % 第一个簇第一条射线的功率
sdi = 3;         % 阴影衰落标准差 [dB]
nlos = 1;        % NLOS环境% 生成信道冲激响应
[h, t, t0, np] = SV_channel(Lam, lam, Gam, gam, num_ch, b002, sdi, nlos);% 绘制第一个信道实现的冲激响应
figure;
stem(t(1:np(1), 1), abs(h(1:np(1), 1)), 'bo');
title('S-V信道模型冲激响应示例');
xlabel('延迟 (ns)');
ylabel('幅度');
grid on;

仿真结果分析

生成信道冲激响应后,通常需要分析以下内容来评估信道特性:

  1. 功率延迟分布(PDP)

    % 计算并平均多个信道实现的PDP
    max_delay = max(t(:));
    delay_bins = 0:1:ceil(max_delay); % 1ns的延迟间隔
    pdp = zeros(size(delay_bins));
    for k = 1:num_chpower = abs(h(1:np(k), k)).^2;delays = t(1:np(k), k);for d = 1:length(delays)[~, idx] = min(abs(delay_bins - delays(d)));pdp(idx) = pdp(idx) + power(d);end
    end
    pdp = pdp / num_ch; % 平均
    figure;
    plot(delay_bins, 10*log10(pdp), 'LineWidth', 1.5);
    xlabel('延迟 (ns)');
    ylabel('功率 (dB)');
    title('平均功率延迟分布 (PDP)');
    grid on;
    

    PDP图能直观展示信号功率随延迟的双指数衰减特性。

  2. 信道容量分析(假设已知带宽和SNR):

    % 假设系统带宽B,平均信噪比SNR_avg
    B = 100e6; % 100 MHz带宽
    SNR_avg = 20; % 平均SNR (dB)% 将时域响应转换到频域
    N_fft = 1024;
    H_freq = fft(h(:, 1), N_fft); % 取第一个信道实现% 计算每个子载波上的信噪比和容量
    SNR_per_subcarrier = 10^(SNR_avg/10) * (abs(H_freq).^2 / mean(abs(H_freq).^2));
    capacity_per_subcarrier = B/N_fft * log2(1 + SNR_per_subcarrier);
    total_capacity = sum(capacity_per_subcarrier);fprintf('估算信道容量: %.2f Mbps\n', total_capacity/1e6);
    

参考代码 基于SV的毫米波信道模型 www.youwenfan.com/contentcsh/54839.html

扩展与注意事项

  1. 空间特性与MIMO扩展

    • 基本的S-V模型生成的是标量冲激响应。若要用于MIMO仿真,需为每对收发天线生成独立的冲激响应,或考虑一定的空间相关性。
    • 可以结合均匀线性阵列(ULA)均匀平面阵列(UPA) 的导向矢量,将每条射线映射到特定的出发角(AoD)和到达角(AoA)。这需要为每个簇和射线分配角度参数(通常假设服从拉普拉斯或高斯分布)。
    % 简单示例:为一条射线分配AoA和AoD
    aoa = randn * (pi/6); % 假设均值为0,标准差为30度
    aod = randn * (pi/6);
    % 计算ULA的阵列响应矢量
    Nt = 8; % 发射天线数
    Nr = 8; % 接收天线数
    d = 0.5; % 天线间距(波长倍数)
    % 发射端阵列响应矢量
    at = exp(1j * 2*pi * d * (0:Nt-1)' * sin(aod)) / sqrt(Nt);
    % 接收端阵列响应矢量
    ar = exp(1j * 2*pi * d * (0:Nr-1)' * sin(aoa)) / sqrt(Nr);
    % MIMO信道矩阵(对于该射线)
    H_mimo_ray = ar * at' * h_val; % h_val是该射线的复增益
    
    • 完整的MIMO信道矩阵是所有射线贡献的叠加
  2. 毫米波信道特点

    • 稀疏性:毫米波信道在时延-角度域上通常只有少数几个较强的簇,这与S-V模型的假设相符。
    • 方向性:需使用波束成形(Beamforming)来补偿高路径损耗。
    • 大气衰减:在特定频段(如60GHz)衰减严重,仿真时可能需要额外考虑。
  3. 模型验证

    • 通过绘制簇到达时间间隔和射线到达时间间隔的分布,并与理论的指数分布对比,来验证模型实现的正确性。
    % 验证簇到达时间间隔分布
    figure;
    histfit(diff(cluster_arrival_times), 50, 'exponential');
    title('簇到达时间间隔分布(应近似指数分布)');
    

总结

在MATLAB中实现基于S-V模型的毫米波信道仿真,核心是正确生成服从双泊松过程的簇和射线到达时间,并按照双指数衰减模型计算每条射线的复增益

  1. 关键点:理解S-V模型的参数意义Λ, λ, Γ, γ)和双指数衰减特性
  2. 核心步骤:生成簇和射线的到达时间 → 计算射线功率和复增益 → 构建冲激响应 → (可选)扩展至MIMO。
  3. 分析验证:通过功率延迟分布(PDP)信道容量等分析信道特性,并验证到达时间间隔的分布
  4. 毫米波特性:务必考虑信道的稀疏性方向性,以及可能的大气衰减。

文章转载自:

http://QP79GRtV.qhmgq.cn
http://iLHuDydn.qhmgq.cn
http://sEliRyRQ.qhmgq.cn
http://EmiehdGb.qhmgq.cn
http://svNLCx1t.qhmgq.cn
http://JjOZ7kmP.qhmgq.cn
http://gG8zxA7Q.qhmgq.cn
http://RikHM4rI.qhmgq.cn
http://Tmq5yMZJ.qhmgq.cn
http://uvqe5aom.qhmgq.cn
http://INWYMeME.qhmgq.cn
http://sKHPNLa2.qhmgq.cn
http://sw9vk00Q.qhmgq.cn
http://qdHk7Ao7.qhmgq.cn
http://D8gejXm1.qhmgq.cn
http://trRDcxjr.qhmgq.cn
http://vzHQpQMj.qhmgq.cn
http://0Hfq2Ib4.qhmgq.cn
http://Iu8AkEby.qhmgq.cn
http://EyNbcz9m.qhmgq.cn
http://pqxvvmDv.qhmgq.cn
http://oTuIWy8T.qhmgq.cn
http://cqGxuGMc.qhmgq.cn
http://yZeomeF0.qhmgq.cn
http://0AVUjm4h.qhmgq.cn
http://t4ilyLB7.qhmgq.cn
http://qX4K1RIM.qhmgq.cn
http://VbqFHJjo.qhmgq.cn
http://zRNpR7rb.qhmgq.cn
http://ej4oGX7h.qhmgq.cn
http://www.dtcms.com/a/386328.html

相关文章:

  • 深入分析LangSmith使用及自动化评估
  • fastapi 中间件的使用
  • 2025最新超详细FreeRTOS入门教程:第十九章 FreeRTOS与中间件集成(TCPIP、MQTT、文件系统)
  • Vue2实战场景:图表组件 + Grid 布局
  • Linux:基于阻塞队列的生产者消费模型
  • springboot+vue (ruoyi-vue前后端分离)集成钉钉登录
  • 从单一辅助到深度协作!GPT-5-Codex 改写软件开发工作流
  • JavaScript——document对象
  • 图观 流渲染场景编辑器
  • 探索大语言模型(LLM):Windows系统与Linux系统下的Ollama高级配置(修改模型地址、Service服务以及多卡均衡调用)
  • PowerBI实战-制作带有同比及趋势线的双柱状图
  • Spring 介绍
  • 使用爱思助手(版本8.16)将ipa安装到ios
  • 大模型应用开发2-SpringAI实战
  • 【面板数据】上市公司校企合作论文发表数据集(2002-2025年)
  • MySQL的底层数据结构:B+树
  • 【Linux】LRU缓存(C++模拟实现)
  • 冲击成本敏感度曲线驱动的拆单频率参数动态调优机制
  • Typera+Gitee+PicGo 配置markdown专用图床
  • 正则化:机器学习泛化能力的守护神
  • GCKontrol对嵌入式设备FPGA设计流程的高效优化
  • vue2+vue3-自定义指令
  • Vue基础知识点(接上篇案例)
  • 动物排队+分手厨房?合作模拟《Pao Pao》登录steam
  • 易境通货代系统:如何实现全流程自动化报关管理?
  • OpenCV:答题卡识别
  • leetcode HOT100 个人理解及解析
  • 深入落地“人工智能+”,如何构建安全、高效的算力基础设施?
  • 无人出租车(Robotaxi)还有哪些技术瓶颈?
  • 安全开发生命周期管理