北邮大三通信系统仿真与实现信道编码作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多径信道模型及其对调制信号的影响
信息与通信工程学院2013211108班2013210218号姓名 曹明辉
1. 目的
a) 掌握多径衰落信道模型
b)
通过信道估计的数值仿真实验,验证信道对系统的影响
2. 内容
a) 3GPP 中典型应用场景的多径信道模型的时延功率谱;
b) 多径信道模型的实现,采用MATLAB 中自带的Rayleighchan/Ricianchan 函数产生; c) 分析信号经过信道前后的功率谱(不同信噪比下)
d)
通过数值仿真方法获得调制信号经过多径衰落信道后的解调性能曲线
3. 多径衰落信道模型说明
根据ITU-R M.2135信道模型标准,本次实验我采用的是Rural Macro (RMa)信道。
从上图表中可见,其有两种典型信道模型的参数设置。一种为带有直射路径的莱斯分布信道参数,一种为不带有主信号功率的瑞利分布信道参数的设置。下面,分别对两者进行介绍 。
4. 调制信号经过多径衰落信道的实现说明
我们已经知道,多径信道具有频率选择性,在调制信号经过N 条路径的情况下,信道的输出为()
t
y =
()()[]t t x t a n n
n τ-∑=N
1
,式中,()()t t a n n τ和表示与第N 条多径分量相关的衰减和传播延迟,延
迟和谁见都表现为时间的函数。
前面已经说过,由于大量散射分量导致接收机输入信号的复包络是一个复高斯过程,在该过程均值为零的情况下,幅度满足瑞利分布,如果存在直射路径,幅度则变为莱斯分布。
在调制信号通过多径信道时,由于存在多径扩展和多普勒频移,所以,会在输出端产生多个输出,正如前面公式中所提到的,从而导致接收端的信号之间存在干扰,在此,我们假设,京御景之间是不相关的,每一径的多普勒形状相同,但功率不同。
利用上述参数公式,结合所查阅资料,得到如下的信道两个仿真图表。
调制信号经多径衰落信道前后的功率谱说明
5. 解调性能说明(注意是SNR-BER的曲线,仿真的数据量要满足出现
100个错误的要求)
由于每个三次多项式需要四个条件才能确定曲线形状,所以对于组成 S的 n个三次多项式来说,这就意味着需要4n 个条件才能确定这些多项式。但是,插值特性只给出了n+1个条件,内部数据点给出 n+1−2 = n-1个条件,总计是4n−2个条件。我们还需要另外两个条件,根据不同的因素我们可以使用不同的条件。
附图各种插值算法的比较
6. 算法实现流程图
7. Matlab源代码
%%*********************************************************************************** %% channel model simulation
%%***********************************************************************************
clear;
% clc;
tic;
%%---------------------------------------------------------------------
%%System Parameters
%%---------------------------------------------------------------------
Frame_Len=100;%每100bit为一组
Mod_order = 1;%指m
Mod_level = 2^Mod_order;%指M
SNR = 0:3:30(信噪比变化量值)
NumOfFrame=800*(SNR+10);%每个snr下跑的帧数
%%*************************************************************
%% Channel Initialization
%%*************************************************************
sampleTime = 1.0e-7; % Sample time (s)
maxDopplerShift = 5; % Maximum Doppler shift of diffuse components (Hz)
%% Rural Macro channel model
delayVector = 1.0e-7 * [-1.4 1.6 -2.6 -2.7 -5.8 -7.5]; % Discrete delays of channel
gainVector = [0 5 10 15 20 25 ]; % Average path gains (dB)
rayChanObj=rayleighchan(sampleTime,maxDopplerShift,delayVector,gainVect or) ;
rayChanObj.NormalizePathGains=1; % the fadings are normalized such that the expected value of the path gains' total power is 1.
Path_Delay = length(delayVector); % Multipath number
delayLoc=delayVector/sampleTime+1;
%% Modulation & demodulation
phaseOff = pi/4;
modObj = modem.pskmod('M', Mod_level,'PhaseOff', phaseOff, 'InputType', 'Bit');
demodObj = modem.pskdemod('M', Mod_level, 'PhaseOff', phaseOff, 'OutputType', 'Bit');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Simulation Start!!!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% NumOfSNR = length(SNR);
%BER=zeros(1,NumOfSNR);
BER=zeros(2,NumOfSNR);
BER_Ideal=zeros(1,NumOfSNR);
for loop_SNR=1:NumOfSNR%对每个snr进行循环
%%---------------------------------------------------------------------
%% Parameters control for AWGN Channel
%%---------------------------------------------------------------------
for fram_counter = 1:NumOfFrame(loop_SNR)%对应SNR下,每帧的循环bits = Frame_Len * Mod_order;
data = randi([0 1],bits,1);