m无线通信信道matlab仿真,包括自由空间损耗模型,Okumura-Hata模型,COST231 Hata模型,SUI信道模型

219 阅读4分钟

1.算法概述

        无线信道是移动通信的传输媒体,所有的信息都在这个信道中传输。信道性能的好坏直接决定着人们通信的质量,因此要想在有限的频谱资源上尽可能地高质量、大容量传输有用的信息就要求我们必须十分清楚地了解信道的特性。然后根据信道地特性采取一系列的抗干扰和抗衰落措施,来保证传输质量和传输容量方面的要求。对几种常用的信道模型进行了详细的理论分析,主要包括自由空间损耗模型,Okumura-Hata模型,COST231 Hata模型,最后对802.16规范中建议使用的SUI信道模型进行了详细的理论分析。针对每种信道的特点,我们采用MATLAB对所介绍的信道进行仿真。

 

     Okumura-Hata模型,当频率范围在150Mhz至1500Mhz的范围内的时候,其表达式:

 

1.png  

COST231 Hata模型应用频率在1 500MHz到2 000MHz之间,适用于小区半径大于1km的宏蜂窝系统,发射有效天线高度在30m到200m之间,接收有效天线高度在1m到10m之间。路径损耗计算的经验公式为:

 

2.png

 

 

 SUI模型,为了仿真一个无线接收机接受信号强度的变化,我们需要知道:接收机所处的地理环境, 接收机到发射机的各个路径信号所受的影响,多普勒频偏等,即信道模型。对于频域单载波(SC-FDE) 技术,IEEE802.16主要规定其应用于11GHz以下的非视距(NLOS)固定无线接入( FWA),其典型的信道特征如下:

 

·蜂窝半径<1 0 k m,具有多样化的地形和植被密度;

 

·基站发送天线高1 5-4 0 m;

 

·接收天线高2~10 m,位于屋檐、窗口以下,或者是房顶高度的定向天线;

 

·高的蜂窝覆盖率(80%~90%)。

 

SUI模型基于AT&T的Wireless和Erceg等人的工作,Erceg将地形分成三种类型:

 

A类:最大路径衰落,适用于山地地形以及很大的植被密度,对应于信道模型SUI-5、SUI-6;

 

B类:中等路径衰落,适用于A、C描述之间的地形,对应于信道模型SUI-3、SUI-4;

 

C类:最小路径衰落,适用于平原地形以及极小的植被密度,对应于信道模型SUI-1、SUI- 2;

 

SUI模型对于各类衰落规定了具体的衰落公式,提出6种SUI模型的适用环境如下:

 

·蜂窝半径7 k m;

 

·基站发送天线高30m,接收天线高6m;

 

·基站发送天线波束宽度120度,接收天线波束宽度:全向(360)和(3 0);

 

·天线垂直极化;

 

·90%的蜂窝覆盖率,覆盖范围内99.9%的可信度。

 

2.仿真效果预览

matlab2022a仿真

 

3.png

4.png

5.png

6.png

7.png

 

 

 

 

3.MATLAB部分代码预览 `function sui1();

 

 

N=10000;%独立随机数实现的数目

OR=20;%观察频率(Hz)

M=256;%多普勒滤波器的阶数

Dop_res=0.1;%SUI参数中的多普勒判决(Hz)(在重复采样进程中)

res_accu=20;%重复采样进程的精确度

%%%%%SUI信道参数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 

tau=[0.0 0.4 0.9];%每个抽头的时延

Dop=[0.4 0.3 0.5];%最大多普勒频移参数

K=[4 0 0];%K因子

P=[0 -15 -20];%每一阶的功率衰减

 

 

ant_corr=0.4;%天线相关性

Fnorm=-1.5113;%增益归一化因子

%%%%%%%%%%%计算m的值%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

P = 10.^(P/10);%计算线性功率

s2 = P./(K+1); % 计算方差

m2 = P.*(K./(K+1)); % 计算常数功率

m = sqrt(m2); % 计算常数部分

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

rmsdel = sqrt( sum(P.*(tau.^2))/sum(P) - (sum(P.*tau)/sum(P))^2 );

fprintf('rms delay spread %6.3f μs\n', rmsdel);

%%%%%%%%%在特定功率下计算伦琴信道系数%%%%%%%%%%%%%%%%

L = length(P); % 阶数

paths_r = sqrt(1/2)(randn(L,N) + jrandn(L,N)).((sqrt(s2))' * ones(1,N)); %LN矩阵每阶的数据噪声

paths_c = m' * ones(1,N);%常数部分

 

for p = 1:L

    D = Dop(p) / max(Dop) / 2; % 归一化最大多普勒频移

    f0 = [0:MD]/(MD); % 频率因子

 

 

    PSD = 0.785f0.^4 - 1.72f0.^2 + 1.0; % PSD估计

    filt = [ PSD(1:end-1) zeros(1,M-floor(2MD)) PSD(end:-1:2) ]; % S(f)

    filt = sqrt(filt); %从S(f)到|H(f)|

    filt = ifftshift(ifft(filt)); % 获得脉冲响应

    filt = real(filt); % 寻找实数滤波器

    filt = filt / sqrt(sum(filt.^2)); %归一化滤波器

    path = fftfilt(filt, [ paths_r(p,:) zeros(1,M) ]);

    paths_r(p,:) = path(1+M/2:end-M/2);

end;

paths = paths_r + paths_c;%路径输出数据

Pest = mean(abs(paths).^2, 2);

fprintf('tap mean power level: %0.2f dB\n', 10*log10(Pest));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

SR = max(Dop)*2; % 精确采样率

m = lcm(SR/Dop_res, OR/Dop_res); %求最小公倍数

P = m/SR*Dop_res; % 分子

Q = m/OR*Dop_res; % 分母

paths_OR = zeros(L,ceil(N*P/Q)); % 创造新矩阵

for p=1:L

    paths_OR(p,:) = resample(paths(p,:), P, Q, res_accu);

end;

Pest = mean(abs(paths_OR).^2, 2);

fprintf('tap mean power level: %0.2f dB\n', 10*log10(Pest));

paths_OR1=10*log10(paths_OR);

NN=length(paths_OR(1,:));

y1=abs(paths_OR).^2;

y2=10*log10(y1);%转换为dB

t=60;%时间长度

x=1:NN;

y=x/OR;

01-22m`