资源描述
实验四 QPSK调制信号经瑞利衰落信道性能
一、实验目的
学会用MATLAB实现QPSK调制信号在瑞利衰落信道下系统性能仿真分析。
二、实验原理
在陆地移动通信中,移动台往往受到各种障碍物和其他移动体的影响,以致到达移动台的信号是来自不同传播路径的信号之和。而描述这样一种信道的常用信道模型便是瑞利衰落信道。
瑞利衰落信道(Rayleigh fading channel)是一种无线电信号传播环境的统计模型。这种模型假设信号通过无线信道之后,其信号幅度是随机的,表现为“衰落”特性,并且多径衰落的信号包络服从瑞利分布。由此,这种多径衰落也称为瑞利衰落。 这一信道模型能够描述由电离层和对流层反射的短波信道,以及建筑物密集的城市环境。瑞利衰落只适用于从发射机到接收机不存在直射信号的情况,否则应使用莱斯衰落信道作为信道模型。
假设经反射(或散射)到达接收天线的信号为N个幅值和相位均随机的且统计独立的信号之和。信号振幅为r,相位为,则其包络概率密度函数为
(r0)
相位概率密度函数为:
,()
三、上机实验内容
1.验证实验原理中所述的相关程序,CLARK(ex2.m), Jakes(Rayleigh.m) 信道模型。
2.验证QPSK调制信号经根升余弦滚降成形滤波之后在瑞利衰落信道下系统误比特和误符号性能,实现参考程序ex11main.m,ex11.mdl。
四、方案设计及步骤
1、验证CLARK(ex2.m)信道模型
2、验证Jakes(Rayleigh.m) 信道模型
3、QPSK调制信号经矩形脉冲成形滤波之后在瑞利衰落信道下系统误比特和误符号性能的验证。
4、QPSK调制信号经根升余弦滚降脉冲成形滤波之后在瑞利衰落信道下系统误比特和误符号性能的验证。
步骤与3基本相同,需要修改的程序如下:
1、把msg_tx=rectpulse(msg_tx,nSamp);
改成msg_tx=rcosflt(msg_tx,fd,fs,'sqrt',0.5,nSamp/2);%换成了根升余弦
2、在QPSK解调msg_gr_demod = pskdemod(msg_rx_down,M); 前加上
msg_rx_down=msg_rx_down(nSamp+1:1:length(msg_rx_down)); %去掉延时保持同步
msg_rx_down1=msg_rx_down1(nSamp+1:1:length(msg_rx_down1));
其他不变
五、结果分析
1、CLARK模型的验证
(2)Jakes模型的验证
实验分析:以上程序产生的信道功率为1.
3、QPSK调制信号经矩形脉冲成形滤波之后在瑞利衰落信道下系统误比特和误符号性能的验证。
实验分析:从上图可以看出,随着SNR的增加,QPSK的BER和SER都降低,并且BER要小于相应的SER,这是与实际情况相符合的,说明仿真结果正确。
4、QPSK调制信号经根升余弦滚降脉冲成形滤波之后在瑞利衰落信道下系统误比特和误符号性能的验证。
四、程序
%ex2
%Fast fading with velocity
N=10; %number of scatterers
a=0.001*randn(N,1); %creat Gaussian amplitude coefficients
a=a/sum(a.^2);
th=rand(N,1)*2*pi; %create uniform phase angles
ph=rand(N,1)*2*pi; %create uniform phase angles
fd=149; %Doppler
% fd=370; %Doppler
tmax=10/fd;
omega=2*pi*fd; %Maximum time
t=[0:1000]*tmax/1000; %generate timeline
X=[zeros(1,length(t))];
Y=[zeros(1,length(t))];
for n=1:N %generate the sums for X and Y
X=X+a(n)*cos(omega*cos(th(n))*t+ph(n));
Y=Y+a(n)*sin(omega*cos(th(n))*t+ph(n));
end;
r=sqrt(X.^2+Y.^2); %calculate the Rayleigh envelop
rdb=20*log10(r); %Calculate the envelope in dB figure;
plot(t*1000,rdb,'k');xlabel('time /ms');ylabel('envelope'); %
axis([0 65 -30 10]);
function [h]=rayleigh(fd,t)
%该程序利用改进的jakes模型来产生单径的平坦型瑞利衰落信道
%Yahong R.Zheng and Chengshan Xiao "Improved Models for
%the Generation of Multiple Uncorrelated Rayleigh Fading Waveforms"
%IEEE Commu letters, Vol.6, NO.6, JUNE 2002
%输入变量说明:
% fd:信道的最大多普勒频移 单位Hz
% t :信号的抽样时间序列,抽样间隔单位s
% h为输出的瑞利信道函数,是一个时间函数复序列
%假设的入射波数目
N=40;
wm=2*pi*fd;
%每象限的入射波数目即振荡器数目
N0=N/4;
%信道函数的实部
Tc=zeros(1,length(t));
%信道函数的虚部
Ts=zeros(1,length(t));
%归一化功率系数
P_nor=sqrt(1/N0);
%区别个条路径的均匀分布随机相位
theta=2*pi*rand(1,1)-pi;
for ii=1:N0
%第i条入射波的入射角
alfa(ii)=(2*pi*ii-pi+theta)/N;
%对每个子载波而言在(-pi,pi)之间均匀分布的随机相位
fi_tc=2*pi*rand(1,1)-pi;
fi_ts=2*pi*rand(1,1)-pi;
%计算冲激响应函数
Tc=Tc+cos(cos(alfa(ii))*wm*t+fi_tc);
Ts=Ts+cos(sin(alfa(ii))*wm*t+fi_ts);
end;
%乘归一化功率系数得到传输函数
h=P_nor*(Tc+j*Ts );
clear all
snr=-3:3; %SNR的范围
SimulationTime=1; %仿真结束时间
ex7main; %运行示例4.7
ser1=ser;ber1=ber; %保存示例4.7的结果
for ii=1:length(snr)
SNR=snr(ii); %赋值给AWGN信道模块中的SNR
sim('ex11'); %运行仿真模型
ber(ii)=BER(1); %保存本次仿真得到的BER
ser(ii)=SER(1); %保存本次仿真得到的SER
end
semilogy(snr,ber,'-rs',snr,ser,'-r^',snr,ber1,'-ro',snr,ser1,'-r*')
legend('Rayleigh衰落+AWGN信道BER','Rayleigh衰落+AWGN信道SER','AWGN信道BER','AWGN信道SER')
title('QPSK在AWGN和多径Rayleigh衰落信道下的性能')
xlabel('信噪比(dB)')
ylabel('误符号率和误比特率')
(2)Jakes模型的验证
%ex4.9
clear all;clc;
fd=10; %多普勒频移为10
ts=1/1000; %信道抽样时间间隔
t=0:ts:1; %生成时间序列
h1=rayleigh(fd,t); %产生信道数据
[X1,f]=fftseq(h1,ts);
figure(1)
subplot(2,1,1)
plot(t,10*log10(abs(h1)));
title('fd =10Hz时的信道功率曲线')
xlabel('时间');ylabel('功率')
subplot(2,1,2)
plot(f,fftshift(abs(X1)));
title('Doppler Spectrum')
xlabel('频率');ylabel('功率')
fd=20; %多普勒频移为20
h2=rayleigh(fd,t); %产生信道数据
[X2,f]=fftseq(h2,ts);
figure(2)
subplot(2,1,1)
plot(t,10*log10(abs(h2)))
xlabel('时间');ylabel('功率')
title('fd=20Hz时的信道功率曲线')
subplot(2,1,2)
plot(f,fftshift(abs(X2)));
title('Doppler Spectrum')
xlabel('频率');ylabel('功率')
3、QPSK调制信号经根生余弦滚降成形滤波之后在瑞利衰落信道下系统误比特和误符号性能的验证。
clear all
nSamp = 8; %矩形脉冲的取样点数
numSymb = 10000; %每种SNR下的传输的符号数
ts=1/(numSymb*nSamp);
t=(0:numSymb*nSamp-1)*ts;
M=4; %QPSK的符号类型数
SNR=-3:3; %SNR的范围
grayencod=[0 1 3 2]; %Gray编码格式
for ii=1:length(SNR)
msg=randsrc(1,numSymb,[0:3]); %产生发送符号
msg_gr=grayencod(msg+1); %进行Gray编码影射
msg_tx=pskmod(msg_gr,M); %QPSK调制
msg_tx=rectpulse(msg_tx,nSamp); %矩形脉冲成形
h=rayleigh(10,t); %生成瑞利衰落
msg_tx1=h.*msg_tx; %信号通过瑞利衰落信道
msg_rx=awgn(msg_tx,SNR(ii)); %通过AWGN信道
msg_rx1=awgn(msg_tx1,SNR(ii));
msg_rx_down = intdump(msg_rx,nSamp); %匹配滤波相干解调
msg_rx_down1 = intdump(msg_rx1,nSamp);
msg_gr_demod = pskdemod(msg_rx_down,M); %QPSK解调
msg_gr_demod1 = pskdemod(msg_rx_down1,M);
[dummy graydecod] = sort(grayencod); graydecod = graydecod - 1;
msg_demod = graydecod(msg_gr_demod+1); %Gray编码逆映射
msg_demod1 = graydecod(msg_gr_demod1+1);
[errorBit BER(ii)] = biterr(msg, msg_demod, log2(M)); %计算AWGN信道BER
[errorBit1 BER1(ii)] =biterr(msg,msg_demod1,log2(M)); %计算瑞利衰落+AWGN信道BER
[errorSym SER(ii)] = symerr(msg, msg_demod); %计算AWGN信道SER
[errorSym SER1(ii)] = symerr(msg, msg_demod1); %计算瑞利衰落+AWGN信道SER
end
figure
semilogy(SNR,BER,'-ro',SNR,SER,'-r*',SNR,BER1,'-r.',SNR,SER1,'-r^') %画出BER和SER随SNR变化的曲线
legend('AWGN信道BER','AWGN信道SER','Rayleigh衰落+AWGN信道BER','Rayleigh衰落+AWGN信道SER')
title('QPSK在AWGN和Rayleigh衰落信道下的性能')
xlabel('信噪比(dB)')
ylabel('误符号率和误比特率')
展开阅读全文