WLANWLAN室内无线信道模型分析及matlab仿真

Posted fpga&matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WLANWLAN室内无线信道模型分析及matlab仿真相关的知识,希望对你有一定的参考价值。

1.软件版本

matlab2013b

2.本算法理论知识

(1) 调研收集无线局域网WLAN的标准及其相关资料,熟悉WLAN的主要协议和仿真工具MATLAB。

(2) 分析无线局域网WLAN中无线信道的大尺度衰落模型、小尺度衰落模型及其建模仿真方法,确定适用于室内环境的大尺度和小尺度衰落模型,设计仿真实验方法。

(3) 确定无线局域网WLAN的室内无线信道大尺度和小尺度模型,利用MATLAB编程实现WLAN的室内无线信道的大尺度和小尺度模型的仿真。

(4) 对不同码率的系统性能进行仿真比较,完成WLAN的IEEE802.11a、802.11b、802.11g和802.11n的仿真比较研究。

       其中无线局域网室内信道的大尺度衰落主要包括自由空间衰落和阴影衰落。在本文中采用适合于建筑物内信道的马特内-马恩纳模型

    n为路径损耗指数,为第一米路径损耗,为墙壁衰减因子,为该种类型墙壁数量,为楼层衰减因子,为该种楼层数量,x为距离,单位m。

        两个用于描述平坦衰落信道的基本模型为Clarke信道模型和Suzuki信道模型。Clarke信道模型用瑞利衰落信道来描述平坦小尺度衰落的统计模型,它的信号接收场强的统计特性是基于散射的,适合于市区无直射通路的环境。Suzuki信道模型将小尺度衰落模型和大尺度传播模型相结合,得到的一个混合模型,即在瑞利信道的基础上考虑了阴影效应。用它来仿真平坦衰落信道,意义更为重要。

      先对平坦衰落信道进行建模然后对多个平坦衰落信道做延时叠加,得到频率选择性信道。所有的信道模型仿真都基于多个不相关的有色高斯随机过程。产生有色高斯随机过程的方法有两类:正弦波叠加法(SOS:Sum-Of-Sinusoid)和成形滤波器法。正弦波叠加法是基于无穷个加权谐波的叠加,即:

 当,这样使频率成为连续分布的。若用有限个谐波来代替无限个谐波,则随机过程表示为

 

 3.部分源码

clc;
clear;
close all;
warning off;
addpath 'func\\'

%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Radius             = 100; 
Nh                 = 20;  
Nv                 = 20;  
%天线间距
Scale1             = round(100*(rand(Nh,1)/2+0.5))/100; 
Scale2             = round(100*(rand(Nv,1)/2+0.5))/100; 

%是否加入多径,多径信道H1
%速度
v                  = 200;
%载波频率
fc                 = 83.5e6;
%光速
c                  = 3e8;
fd                 = v*fc/c;
%采样间隔为1us
timeval            = 1e-5;
%多径时延
delay_multi        = [0,1,3,6]*timeval;
%多径增益
Pow_avg            = [0,-20,-40,-60];
%多径个数
Nmultipath         = length(Pow_avg);
%多径平均延迟
delay_avg          = 100e-6; 
%多普勒频偏
Fre_offset         = 0.0001; 
%发送功率
sendpower          = 800;%mW
%传输距离m
d_                 = 10;     
%穿过的墙壁损耗列向量db
w_                 = [0]  ;           
%穿过的地板损耗列向量db
f_                 = [0] ;                     
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Nc                 = 8;
Sub                = Nc;
Len                = 1024;
%信号带宽
BW                 = 83.5e3;
T                  = 1/BW;
TG                 = T/4;
%间隔
BWs                = 3.75e3;
%信号采样率
Fd                 = 8;
SNR_dB             = [0:8];
%仿真指标保持变量
Err_Rate           = zeros(1,length(SNR_dB));
%PILOT设置
pilot_type         = 1;
%仿真循环次数,循环次数越大,仿真效果越好
nloop              = [40,40,40,40,40,60,60,100,100];   
%turbo编码参数
N                  = 512;
M                  = 167;
%FFT
fftlen             = 512;
%每个SNR点上仿真若干次
for i=1:length(SNR_dB) 
    i
    Error   = 0;  
    err_all = 0;
    for iii=1:nloop(i)
        iii
        rng(iii);
       %%
        %以单天线方式产生测试信号
        msg                            = rand(Len*Nc/4,1)>=0.5;
        %turbo编码
        seridata1                      = func_turbo_code(msg,N,M);
        seridata                       = [seridata1,zeros(1,Len*Nc-length(seridata1))]';
        %QPSK映射
        [Qpsk0,Dqpsk_pilot,symbol_bit] = func_piQPSK_mod(seridata);
        %变换为矩阵   
        Qpsk_matrix                    = reshape(Qpsk0,fftlen,Nc);
        [Pilot_in,pilot_num,Pilot_seq,pilot_space] = func_insert_pilot(Dqpsk_pilot,Qpsk_matrix,pilot_type,T,TG);
        Pilot_in                       = fft(Pilot_in);
        %sub carrier mapping
        Pilot_in                       = func_subcarrierMap(Pilot_in); 
        %IFFT transform,产生OFDM信号
        ifft_out                       = ifft(Pilot_in);
        %插入包含间隔     
        Guard_int                      = ceil(BWs/fftlen);  
        Guard_int_ofdm                 = func_guard_interval_insert(ifft_out,fftlen,Guard_int);
        %将矩阵数据转换为串行进行输出
        Guard_int_ofdm_out             = reshape(Guard_int_ofdm,1,(fftlen+Guard_int)*(Nc+pilot_num));
        
       %%
        [Hm,Hmmatrix]            = func_mychannels(Radius,Scale1,Scale2,Nh,Nv);       
        %Step2:多径参数
        [passchan_ofdm_symbol]   = func_conv_channels(Hmmatrix,Guard_int_ofdm_out,Nmultipath,Pow_avg,delay_multi,Fre_offset,timeval,iii);
        %Step3:噪声信道 
        %大尺度衰落
        receivepower             = func_largefade(sendpower,d_,w_,f_);
        snr                      = 10^(SNR_dB(i)/10);
        sgma                     = sqrt(receivepower*timeval/(2*snr)/2);
        Rec_ofdm_symbol          = awgn(passchan_ofdm_symbol,SNR_dB(i),'measured');
        Rec_ofdm_symbol          = Rec_ofdm_symbol + normrnd(0,sgma,size(Rec_ofdm_symbol));
       %%
        %开始接收
        Guard_int_remove = func_guard_interval_remove(Rec_ofdm_symbol,(fftlen+Guard_int),Guard_int,(Nc+pilot_num));
        %FFT
        fft_out          = fft(Guard_int_remove);
        %sub carrier demapping
        fft_out          = func_desubcarrierMap(fft_out);
        fft_out          = ifft(fft_out);
        %信道估计
        %ls
        [Sig_Lrmmse,Hs]  = func_ls_estimation(fft_out,pilot_space,Pilot_seq,pilot_num);
        %解调
        Dqpsk            = func_pideMapping(Sig_Lrmmse,fftlen*Nc);
        %turbo解码
        Dqpsk_decode     = [func_turbo_decode(2*Dqpsk(1:end-(Len*Nc-length(seridata1)))-1,N,M)]';
        %计算误码率
        err_num          = Len*Nc/4-length(find(msg==Dqpsk_decode(1:Len*Nc/4)));
        Error            = Error + err_num;
    end
    %计算误码率
    err_all       = err_all+Len*Nc/4;
    Err_Rate(i)   = Error/err_all/nloop(i);
end

%误码率
figure
semilogy(SNR_dB,Err_Rate,'b-o');
grid on
xlabel('SNR');
ylabel('BER');
axis([-0.0001,8,1e-5,1]);

save R802_11b.mat SNR_dB Err_Rate

4.仿真分析

5.参考文献

1. 佟学俭,罗涛.OFDM移动通信技术原理与应用.人民邮电出版社,2003

2. (美) John Ross著 王海涛, 汤平杨译. Wi-Fi:安装、配置和使用802.11b无线网络, 北京:清华大学出版社,2004.03

3.拉帕波特著,周文安译.无线通信原理与应用(第二版).电子工业出版社,2006.7

4. 刘乃安著.无线局域网(WLAN)——原理、技术与应用.西安电子科技大学出版社,2004

5. 刘树棠译 .现代通信系统使用MATLAB, 电子工业出版社,2001

6. 陈怀琛等.MATLAB及在电子信息课程中的应用. 电子工业出版社,2002

7.  Angela Doufexi, Simon Armour.An Evaluation of the Performance of IEEE 802.11a and 802.11g Wireless Local Area Networks in a Corporate Office Environment.2003A12-40

以上是关于WLANWLAN室内无线信道模型分析及matlab仿真的主要内容,如果未能解决你的问题,请参考以下文章

无线信道特性分析及建模仿真

基于MATLAB的SUI信道模型的理论分析与仿真

matlab代码复现:室内定位无线传感器网路定位估计优化滤波等探讨及技术支持

matlab代码复现:室内定位无线传感器网路定位估计优化滤波等探讨及技术支持

matlab代码复现:室内定位无线传感器网路定位估计优化滤波等探讨及技术支持

matlab代码复现:室内外定位导航无线传感器网路定位估计优化滤波等探讨及技术支持