sum=1000000;
data= randsrc(sum,2,[0 1]);
产生信源
1 移动无线信道的定义及分类
各类信号从发射端发送出去以后, 在到达接收端之前经历的所有路径统称为信道。如果其中传输的是无线电信号, 电磁波所经历的路径称之为无线信道。与其他通信信道相比, 无线信道是最为复杂的一种。无线传播环境是影响无线通信系统的基本因素。发射机与接受机之间的无线传播路径, 因从经历简单的视距传播, 到遭遇各种复杂的地物(如建筑物、山脉和树林等) 所引起的反射、绕射和散射传播等而显得非常复杂。另外, 移动台相对于发射台移动的方向和速度, 甚至收发双方附近的移动物体也对接受信号有很大的影响。因此, 这使得无线信道具有极度的随机性。
移动通信信号在空间传播中所经历的衰落大体可以分为2类, 即大尺度衰落和小尺度衰落, 如图1所示。大尺度衰落是因为发射机与接收机之间的距离和两者之间障碍物(如山丘、森林、建筑物等) 的遮蔽影响而造成的信号强度的衰减, 它反映了移动信号在较大区域中的平均能量的减少或称为路径损失。而小尺度衰落是指当移动台在一个较小的范围运动时, 引起接收信号的幅度、相位和到达角等的快速变化。
图1 移动无线信道的分类
信号在传播的过程中, 受各种环境的影响会产生反射、衍射和散射, 这样就使得到达接收机的信号是许多路径信号的叠加, 因而这些多径信号的叠加在没有视距传播情况下的包络服从瑞利分布。当多径信号中包含一条视距传播路径时, 多径信号就服从莱斯分布。
根据信号多径附加时延的大小, 小尺度衰落又可以分为平坦衰落和频率选择性衰落。另外, 由于移动台的移动性而导致接收到的信号产生多普勒频移(频率色散), 根据多普勒扩展的大小, 信道又可以分为快衰落信道和慢衰落信道。
2 瑞利分布和莱斯分布的特性
在实际情况中对数字通信系统来说, 调制符号的周期比由多径传播引起的时延扩展要大, 因此在一个符号周期内的所有频率分量都会经历相同的衰减和相移。信道对于所有频率分量来说是平坦的, 因而定义这类信道为平坦衰落信道。理论分析和实测试验结果表明:平坦衰落的幅度在大多数情况下, 符合瑞利分布(ray-leigh-distribution)或莱斯分布(rice-distribution)。由于移动通信信道的复杂性, 其仿真一般是以平坦衰落信道建模为基础的, 然后在此基础上, 再对频率选择性信道等进行建模和仿真。
用Matlab 中能生成伪随机序列的randn 语句就可以得到期望的莱斯衰落序列。瑞利衰落序列可以由K=0得到。
图2是一个当K=7dB时典型的莱斯衰落信号包络, 衰落幅度用分贝表示。
图2 当K =7dB时莱斯衰落信号的包络
3 MATLAB仿真
接下来, 利用Matlab 对莱斯分布的累积分布函数(CDF)进行近似估计。莱斯分布的累积分布函数是通过迭代法得到的, 在每一步的迭代中利用Matlab 中的find 和length 函数来得到符合要求的衰落序列, 并使用上面产生莱斯分布的M 文件rice_fading.m得到K=7dB时的莱斯分布的累积分布函数(CDF)的近似估计, 如图3所示。然后通过Matlab 中的hist 函数得到的瑞利分布PDF 的估计值与式子分析求得的PDF 进行比较, 结果如图4所示, 所得的估计值与式子分析求得的PDF 非常的接近。
程序如下:
function r = rice_fading(Kdb, N,Mi)
K = 10^(Kdb/10);
const = 1/(2*(K+1));
x = randn(1,N);
y = randn(1,N);
r = sqrt(const*((x + sqrt(2*K)).^2 + y.^2));
rt = zeros(1,Mi*length(r));
ki = 1;
for i=1:length(r)
rt(ki:i*Mi) = r(i);
ki = ki+Mi;
end
r = rt;
Kdb=7;
N=100000;
Mi=1;
r=rice_fading(Kdb,N,Mi);
RdB = 20*log10(r);
Rt = [min(RdB):max(RdB)];
for m = 1:length(Rt)
fade = find(RdB
Nm = length(fade);
AF(m) = Nm/N; end
semilogy(Rt,AF,'k-o');
set(gcf,'paperunits','centimeters');
set(gcf,'papersize',[5 5]);
grid;
运行结果为:
图3 K=7dB时莱斯分布的CDF
程序如下:
N = 100000;
x = randn(1, N);
y = randn(1, N); 设置图像大小为5cm*5cm
r = sqrt(0.5*(x.^2 + y.^2));
step = 0.1;
range = 0:step:3;
h = hist(r, range);
fr_approx = h/(step*sum(h));
fr = (range/0.5).*exp(-range.^2);
plot(range, fr_approx,'ko', range, fr,'k');
set(gcf,'paperunits','centimeters');
set(gcf,'papersize',[5 5]); 设置图像大小为5cm*5cm
grid;
图4瑞利分布的PDF
QPSK 信号传输过程的框图如图5所示。
图5 QPSK 信号在莱斯衰落信道中传输过程的框图
在仿真过程中主要用到了Matlab 工具箱中这样一些函数:产生同分布随机变量矩阵的randint 函数, 基带数字调制器dmodce 函数, 基带数字解调器ddcmodce 函数, 以及计算误比特数和误比特率的biterr 函数。
最后得到当K=5dB与K=-inf时的误比特率(BER)的仿真曲线, 如图6所示。对于莱斯衰落信道, 由于多径信号中含有视距传播分量, 从图6可以看出随着K 值的增大, 接收信号中直视波的能量增大, 使得误码率的性能大为改善。分析可知当K 值逐渐增大时, 所得误码率的曲线会越来越接近理想曲线。
程序如下:
function r = ray_doppler(fm, M, dt, N) T = N*dt-dt; t = 0:dt:T;
c = sqrt(2/M); w = 2*pi*fm; x = 0; y = 0; for n = 1:M
alpha = (2*pi*n-pi+(2*pi*rand-pi))/(4*M); ph1 = 2*pi*rand - pi; ph2 = 2*pi*rand - pi;
x = x + c*cos(w*t*cos(alpha) + ph1); y = y + c*cos(w*t*sin(alpha) + ph2); end
r = sqrt(x.^2 + y.^2)/sqrt(2);
function BER = psk_rice(logEbNo,M,Kdb)
k = log2(M); EbNolin = 10.^(logEbNo/10) Fd = 1; Fs = 1; Nit = 100000; Ns = 1000; Tstop = 100;
forit_snr = 1:length(EbNolin)
nstd = sqrt(1/(2*k*EbNolin(it_snr))); bit_err = 0; for it = 1:Nit
a = randint(Ns,1,M);
s = dmodce(a,Fd,Fs,'psk',M);
r = rice_fading(Kdb,Ns,1); v_r = s.*r'; v = v_r + nstd*(randn(Ns,1) + ... j*randn(Ns,1));
z = ddemodce(v, Fd, Fs,'psk',M); errors = biterr(a,z);
bit_err = bit_err + errors; ifbit_err>= Tstop break end end
BER(it_snr) = bit_err/(it*Ns*k); End
semilogy(logEbNo, BER,'k');
xlabel('Eb/No(dB)');ylabel('BER'); set(gcf,'paperunits','centimeters'); set(gcf,'papersize',[5 5]);设置图像大小为5cm*5cm
grid;
4 结论
对移动无线通信系统而言, 因为传播环境的复杂性和多样性, 无线信道的特性在接收机的设计中扮演着至关重要的角色。介绍利用Matlab 对移动无线信道进行仿真的方法, 得到了传输信号在小尺度衰落信道(主要是瑞利衰落信道和莱斯衰落信道) 的传输特性的估计以及QPSK 调制信号在莱斯衰落信道中传播的性能估计。所得的这些结果, 能够较为准确地模拟实际无线信道的主要特性, 并且具有复杂度低和易于实现等优点, 在通信理论研究中有较高的应用价值。