毫米波Saleh-Valenzuela信道模型的array response详细推导

毫米波Saleh-Valenzuela信道模型的array response详细推导

在解决毫米波物理层相关问题的时候,总是不可避免地会碰到信道建模,而比较常见的毫米波信道模型就是S-V模型,在介绍信道模型之前,我们先确定天线的类型和空间位置,文献中比较常见的是线阵ULA和面阵UPA,本文侧重与UPA,天线总数是M,M=M_{\mathrm{V}} M_{\mathrm{H}},天线的空间坐标系如下图所示:

 

需要注意的有两点,第一,此处UPA位于yz平面,这样推导出来的array response与在其他平面的array response是不一样的,但是推导过程类似。第二,方位角\varphi和仰角\theta是如何确定的,不同的文献中可能会有不同的确定方式,在公式推导和代码过程中都是需要我们注意的。

首先,给出LOS信道的基本形式:

  • 12
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
以下是一个简单的 Python 代码实现 Saleh-Valenzuela 信道模型: ```python import numpy as np def sv_channel_model(fc, d, ht, hr, num_samples): """ Saleh-Valenzuela channel model implementation in Python. Parameters: fc (float): carrier frequency in Hz d (float): distance between transmitter and receiver in meters ht (float): height of transmitter in meters hr (float): height of receiver in meters num_samples (int): number of samples to generate Returns: h (1D numpy array): channel impulse response t (1D numpy array): time vector for the channel impulse response """ # Constants c = 299792458 # speed of light in m/s lam = c / fc # wavelength in m d_bp = 4 * ht * hr * fc / c # break point distance in m # Calculate path loss path_loss = 20 * np.log10(4 * np.pi * d / lam) # Calculate small-scale fading if d <= d_bp: sigma_l = 3.2 * np.sqrt((ht - hr) / d) sigma_n = 8.7 * np.sqrt((ht - hr) / d) sigma_s = 10 * np.sqrt((ht - hr) / d) alpha_l = np.random.normal(0, sigma_l, num_samples) alpha_n = np.random.normal(0, sigma_n, num_samples) alpha_s = np.random.normal(0, sigma_s, num_samples) h = np.exp(1j * 2 * np.pi * np.random.rand(num_samples)) * \ np.exp(-alpha_l / 20) * \ (1 - np.exp(-alpha_n / 20)) ** 0.5 + \ np.exp(-alpha_s / 20) else: sigma_l = 3.2 * np.sqrt(ht * hr / d ** 2) sigma_n = 8.7 * np.sqrt(ht * hr / d ** 2) sigma_s = 10 * np.sqrt(ht * hr / d ** 2) alpha_l = np.random.normal(0, sigma_l, num_samples) alpha_n = np.random.normal(0, sigma_n, num_samples) alpha_s = np.random.normal(0, sigma_s, num_samples) h = np.exp(1j * 2 * np.pi * np.random.rand(num_samples)) * \ np.exp(-alpha_l / 20) * \ (1 - np.exp(-alpha_n / 20)) ** 0.5 + \ np.exp(-alpha_s / 20) # Calculate time vector dt = 1 / (fc * 1000) # time step in ms t = np.arange(0, num_samples * dt, dt) return h, t ``` 此代码实现了 Saleh-Valenzuela 信道模型中的大尺度衰落和小尺度衰落。大尺度衰落通过计算路径损耗来实现,而小尺度衰落则根据距离是否小于或大于突破点距离来计算不同的参数。 请注意,此代码仅供参考,并不考虑更复杂的情况和参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值