《无线通信系统物理层的传输方案设计(共18页).doc》由会员分享,可在线阅读,更多相关《无线通信系统物理层的传输方案设计(共18页).doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上(无线局域网场景)一、PBL问题二:试设计一个完整的无线通信系统物理层的传输方案,要求满足以下指标:1. Data rate :54Mbps, Pe=10-5 with Eb/N0 less than 25dB2. 20 MHz bandwidth at 5 GHz frequency band3. Channel model :设系统工作在室内环境,有4条径,无多普勒频移,各径的相对时延为:0 2 4 6,单位为100ns ,多径系数服从瑞利衰落,其功率随时延变化呈指数衰减:0 -8 -16 -24。请给出以下结果:A. 收发机结构框图,主要参数设定B. 误比特率仿
2、真曲线(可假定理想同步与信道估计)二、系统选择及设计设计1、系统要求20MHz带宽实现5GHz频带上的无线通信系统;速率要求: R=54Mbps;误码率要求: Pe =10 (-5)。2、方案选取根据参数的要求,选择802.11a作为方案的基准,并在此基础上进行一些改进,使实际的系统达到设计要求。802.11a中对于数据速率、调制方式、编码码率及OFDM子载波数目的确定如表 1 所示。Data rate(Mbits/s)ModulationCoding rate(R)Code bits per subcarrier(NBPSC)Coded bits per OFDM symbolData bi
3、ts per OFDM symbol(NDPSC)6BPSK1/2148249BPSK3/41483612QPSK1/22964818QPSK3/4296722416-QAM1/24192963616-QAM3/441921444864-QAM2/362881925464-QAM3/46288216表1 802.11a定义的数据速率、调制方式、编码码率及OFDM子载波数目的与时延扩展、保护间隔、循环前缀及OFDM符号的持续时间相关的参数如表 2 所示。ParameterValueNSD:Number of data subcarries48NSP:Number of pilot subcarr
4、ies4NST:Number of subcarries,total52(NSD+NSP)F:Subcarrier frenquency spacing0.3125MZ(=20MHz/64)TFFT:IFFT/FFT period3.2s(1/F)TPREAMBLE:PLCP preamble duration16s(TSHORT+TLONG)TSIGNAL:Duration of the SIGNAL BPSK-OFDM symbol4.0s(TG1+TFFT)TG1:G1 duration0.8s(TFFT/4)TG2:G2 duration1.6s(TFFT/2)TSYM:Symbol
5、interval4s(TG1+TFFT)TSHORT:Short training sequence duration8s(10*TFFT/4)TLONG:Long training sequence duration8s(TG2+2*TFFT)表2 1802.11a定义的与时延扩展、保护间隔、循环前缀及OFDM符号的持续时间相关的参数参考标准选择OFDM系统来实现,具体参数的选择如下述。3、OFDM简介OFDM的基本原理是将高速信息数据编码后分配到并行的N个相互正交的子载波上,每个载波上的调制速率很低(1/N),调制符号的持续间隔远大于信道的时间扩散,从而能够在具有较大失真和突发性脉冲干扰环
6、境下对传输的数字信号提供有效的保护。OFDM系统对多径时延扩散不敏感,若信号占用带宽大于信道相干带宽,则产生频率选择性衰落。OFDM的频域编码和交织在分散并行的数据之间建立了联系,这样,由部分衰落或干扰而遭到破坏的数据,可以通过频率分量增强的部分的接收数据得以恢复,即实现频率分集。OFDM克服了FDMA和TDMA的大多数问题。OFDM把可用信道分成了许多个窄带信号。每个子信道的载波都保持正交,由于他们的频谱有1/2重叠,既不需要像FDMA那样多余的开销,也不存在TDMA 那样的多用户之间的切换开销。过去的多载波系统,整个带宽被分成N个子信道,子信道之间没有交叠,为了降低子信道之间的干扰,频带与
7、频带之间采用了保护间隔,因而使得频谱利用率降低,为了克服这种频带浪费,OFDM采用了N个交叠的子信道,每个子信道的波特率是1/T,子信道的间隔也是1/T,这时各个子载波之间是正交的,因而在收端无需将频谱分离即可接收。由于OFDM允许子载波频谱混叠,其频谱效率大大提高,因而是一种高效的调制方式。OFDM的频谱如图1所示。图1 OFDM信号的频谱示意图可以证明这种正交的子载波调制可以用IFFT来实现。需要指出的是OFDM既是一种调制技术,也是一种复用技术。图2给出了OFDM的系统框图,在系统中调制解调是使用FFT和IFFT来实现的。图2 OFDM系统框图3、参数确定在OFDM系统设计中,需要折中考
8、虑各种系统要求,这些需求常常是矛盾的。通常有3个主要的系统要求需要重点考虑:系统带宽W、业务数据速率R及多径时延扩展,包括时延扩展的均方根和最大值。按照这3个系统参数,设计步骤可分为3步。首先,确定保护时间。多径时延扩展直接决定了保护时间的大小。作为重要的设计准则,保护时间至少是多径时延扩展的均方根的2-4倍,即(2-4) 。保护时间的取值依赖于系统的信道编码与调制类型。高阶调制(如64QAM)比低阶调制(如QPSK)对于ICI和ISI的干扰更加敏感。,而编码的纠错能力过目越强,越能降低这种对干扰的敏感特性。一旦保护时间确定,则OFDM的符号周期也就确定就可以确定,其中T表示IFFT的积分时间
9、,其倒数就是相邻载波的间隔,即。为了尽可能地减小由于保护时间造成的信噪比的损失,一般要求符号周期远大于保护时间。但是,符号持续时间并不是越长越好,因这符号持续时间越长,则意味着需要的子载波数目越多,相邻子载波机的间隔就会越小,增加了收发信机的实现复杂度,并且系统对于相位噪声和频率偏移更加敏感,还增大了系统的峰值-平均功率(PAPR)。在实际系统设计中,OFDM符号周期至少是保护时间的5倍,这就意味着,由于引入了冗余时间,信噪比会损失1dB左右。确定了保护时间和符号周期后,就需要在3dB的带宽内,决定子载波的数目。一种方法是直接计算,即。另一种方法是,载波数目可以根据总数据比特速率除以每个子载波
10、承载的比特速率得到。子载波的比特速率与调制类型、编码码率和符号速率都在关系。本系统采用第二种方法确定子载波的数目具体的参数如下所示:参数设计说明symbol_num = 10000发送的符号数(number of symbols to be transmitted )fp = 5e9中心频率(central frequency )fc = 20e6抽样频率(sampling frequency)Ts= 50e-9抽样时间(sampling time)T0= 2.4e-6data length (=48*50e-9)TP= 0.8e-6cyclic prefix (=16*50e-9)TG =
11、0.8e-6total guard time (=16*50e-9T=T0+TP+TGOFDM符号周期4000ns:(满足TP/T=20%)A = 1amplitude of the rectangular impulse responseN = 64number of carriers of the OFDM system1) 首先计算信息量。由R达到54Mbps可以得到每个OFDM块需要承载的信息量为:54*106*4*10(-9) = 216bit2) 选择调制方式。采用64QAM调制,一个子载波6bit则需要216/6 = 36个子载波。3) 编码。采用3/4码率的卷积码编码,所需子载
12、波数目为36/(3/4)=48个。4) 计算传输速率:R=(48*6bit*3/4)/(4000*10(-9)=54Mbps以上设计满足系统的要求。三、系统实现1、收发机框图根据上述系统设计,收发机框图设计如下图所示:图3 收发机框图2、系统模块接口数据产生: data_transmit=randint(1,num*symbol_num);卷积码编码: trel=poly2trellis(3 3 3,7 7 0 4;3 2 7 4;0 2 3 7); data_conv,fstate = convenc(data_transmit,trel);64QAM调制:data_mod=modulate
13、(data_conv);64QAM解调:data_demod=demodulate(data_fft_ps);卷积码译码: tblen = 3*1000; % Traceback length data_receive = vitdec(data_vitdec_in,trel,tblen,trunc,soft,1)。3、程序流程图根据系统设计和收发机框图,编码实现该系统。程序流程如下图所示:图4 程序流程图4、程序清单(见附录)四、系统仿真结果及分析1、64QAM的星座图:图5 16QAM星座图图6 64QAM仿真图2、经过多径信道的信号波形:图7 经过多径信道后的输出波形3、在多径信道中叠加
14、AGWN后的波形:图7 叠加AGWN后的输出波形4、均衡前:图8 均衡前的波形5、均衡后:图9 均衡后的波形均衡后各点的幅度变化范围在-7,+7之间,这与星座点取值(-7-7j,+7+7j)有关。6、误比特率曲线:图10 误比特率误比特率,利用转换公式,得到。五、总结1、系统设计总结根据Matlab程序运行后的仿真结果,可以得到验证,即:我们所设计的OFDM系统可以满足系统设计要求:20MHz带宽实现5GHz频带上的无线通信系统;速率要求: R=54Mbps;误码率要求: Pe =10 (-5)。2、设计中遇到的问题和解决1)时域均衡时间的选择由数字信号处理的理论可知,只有时域的循环卷积,才等
15、效为频域的线性相乘。所以,均衡的位置应该在去CP之后,而不能在一开始就进行频域均衡,因为一开始不是循环卷积,不能等效为频域的线性乘法。因此,频域均衡位置应该在去CP之后,FFT正好是去CP之后,所以可以在FFT之后进行频域均衡。2)噪声能量的计算原理文献所给的Eb/N0是指接收端的信噪比,加噪声要根据Eb的值算出对应的噪声。可以在经历框图的每一模块时,看其能量是否发生了变化,并将其归一化,保证系统是无源的系统,不会因此而影响输出结果。注意的是FFT和IFFT可以对输入它的信号能量进行改变,要进行一些处理。如信号进行IFFT之后的能量会减小为原来的1/N,要对其进行能量的计算,而FFT之后,信号
16、的能量会增大为原来的N倍,也要进行能量计算,保证信号通过的都是无源的模块。OFDM能否克服样值间干扰,样值干扰与ICI OFDM消除干扰是在频域中进行的,因为循环卷积就等于频域的线性相乘,没有收入干扰。所提这里的样值干扰是指时域上的干扰,在时域看来是有干扰的,并不能消除它;在频域看来,各个子载波是独立的,没有相互间的干扰,即没有ICI。OFDM消除干扰是在频域中进行的,因为循环卷积就等于频域的线性相乘,没有收入干扰。所提这里的样值干扰是指时域上的干扰,在时域看来是有干扰的,并不能消除它;在频域看来,各个子载波是独立的,没有相互间的干扰,即没有ICI。因此,OFDM系统在时域上是有样值干扰的,但
17、是在频域上没有ICI的。附录1、 主程序:文件名:run.m%-无线通信系统实现-% *% 一、系统要求:% *% 实现20MHz带宽5GHz频带上的无线通信系统% 满足速率要求: R=54Mbps;% 误码率要求: 在 25dB信噪比条件下,Pe =10 (-5);%*% 二、参数确定:% *% symbol_num = 10000; % 发送的符号数% fp = 5e9; %中心频率% fc = 20e6; % 抽样频率% Ts = 50e-9 %抽样时间% T0 = 2.4e-6; % 数据长度 (=48*50e-9)% TP = 0.8e-6; % cyclic prefix (=16
18、*50e-9)% TG = 0.8e-6; % total guard time (=16*50e-9)% T=T0+TP+TG; % OFDM符号周期4000ns:(满足TP/T=20%)% A = 1; % amplitude of the rectangular impulse response% N = 64; % number of carriers of the OFDM system% -% 由R达到54Mbps可以得到每个OFDM块需要承载的信息量为:% 54*106*4*10(-9)=216bit,采用64QAM星座映射,% 一个载波承载6bit,仅需36个子载波,采用3/4
19、 码率,% 所需的子载波数为48.此时可达到的传输速率为% R=(48*6bit*3/4)/(4000*10(-9)=54Mbps, 符合系统要求。% R=3/4; %编码效率% *clear all;close all;clc;data_carrier_num=48;carrier_num=64;R=3/4; %卷积码的编码效率i1=0; % 中间变量err_ratio=zeros(1,31);for EbN0dB=0:1:30 sum_xu=0; for loop=1:100 symbol_num=10000; % 符号个数 cp_len=16; % 循环前缀长度 % 数据产生 num=6
20、4*6*3/4; data_transmit=randint(1,num*symbol_num); % 卷积码编码 trel=poly2trellis(3 3 3,7 7 0 4;3 2 7 4;0 2 3 7); data_conv,fstate = convenc(data_transmit,trel); % 采用64QAM调制 data_mod=modulation(data_conv); % 数据经过IFFT变换 data_ifft_in=reshape(data_mod,64,length(data_mod)/64); data_ifft_out=ifft(data_ifft_in)
21、; % 加CP data_cp=data_ifft_out(size(data_ifft_out,1)-cp_len+1:end),:);data_ifft_out; data_ps=reshape(data_cp,1,size(data_cp,1)*size(data_cp,2); % 输出符号能量的归一化 data_ps=data_ps.*8; Es=1; Eb=Es*1/R*80/64*1/6; N0=Eb./10(EbN0dB/10); sigma=sqrt(N0/2); % % - 数据经过信道(down)-% symbol_input=data_ps; % 每径时延功率【0 -8
22、-16 -24】dB 转化成功率值 atten_power = 1 0.1585 0.0251 0.0040; % 50ns样点间隔 每径时延【0 200 400 600】ns 转化成样点数表示 path_delay = 0 4 8 12; % 求信号幅度衰减,并归一化总功率 atten = sqrt( atten_power ); atten = atten./sqrt(sum(atten.*conj(atten); % 输出样值序列 output = zeros(1,length(symbol_input)+ max(path_delay); h = zeros(1,max(path_de
23、lay)+1); for k = 1:length(path_delay) signal=symbol_input.*atten(k); output=output+zeros(1,path_delay(k),signal,zeros(1,max(path_delay)-path_delay(k); h=h+zeros(1,path_delay(k),atten(k),zeros(1,max(path_delay)-path_delay(k); end symbol_output=output; % %- 数据经过信道(up)-% %-add noise (down)-% output=sym
24、bol_output+sigma.*randn(1,length(symbol_output)+i*sigma.*randn(1,length(symbol_output); output=output(1:length(symbol_input); %-add noise (up)-% % 去CP temp=reshape(output,cp_len+carrier_num,length(output)./(cp_len+carrier_num); data_fft_in=temp(cp_len+1:end,:); % FFT变换 data_fft_out=fft(data_fft_in);
25、 %-频域均衡(down)-% h_t=h,zeros(1,carrier_num-length(h); H=fft(h_t); data_balance=zeros(size(data_fft_out); for m1=1:size(data_fft_out,2) data_balance(:,m1)=data_fft_out(:,m1)./H; end %-频域均衡(up)-% % 64QAM解调 data_fft_ps=reshape(data_balance,1,size(data_balance,1)*size(data_balance,2); data_fft_ps=data_ff
26、t_ps./8; data_demod=demodulation(data_fft_ps); data_vitdec_in=data_demod; % 卷积码译码 tblen = 3*100; % Traceback length data_receive = vitdec(data_vitdec_in,trel,tblen,trunc,soft,1); %soft decision sum_xu=sum_xu+sum(abs(data_receive-data_transmit); end i1=i1+1; err_ratio(i1)=sum_xu./(num*symbol_num*loop
27、);endsemilogy(0:1:30,err_ratio);hold on;semilogy(0:1:30,err_ratio,*);grid on;2、函数模块: 64QAM调制函数:文件名:modulation.mfunction mod_out=modulation(mod_in)if rem(length(mod_in),6)=0 %如果输入二进制序列数不是6的倍数则进行补零操作 mod_in=zeros(1,6-rem(length(mod_in),6),mod_in;endmod_out=zeros(1,length(mod_in)/6);R=reshape(mod_in,6,
28、length(mod_in)/6); %将输入序列变换为行数为6的矩阵形式B2D=bi2de(R,left-msb)+1; %将二进制数转换为十进制数Temp=-7-7*j -7-5*j -7-j -7-3*j -7+7*j -7+5*j -7+j -7+3*j. -5-7*j -5-5*j -5-j -5-3*j -5+7*j -5+5*j -5+j -5+3*j. -1-7*j -1-5*j -1-j -1-3*j -1+7*j -1+5*j -1+j -1+3*j. -3-7*j -3-5*j -3-j -3-3*j -3+7*j -3+5*j -3+j -3+3*j. 7-7*j 7-
29、5*j 7-j 7-3*j 7+7*j 7+5*j 7+j 7+3*j. 5-7*j 5-5*j 5-j 5-3*j 5+7*j 5+5*j 5+j 5+3*j. 1-7*j 1-5*j 1-j 1-3*j 1+7*j 1+5*j 1+j 1+3*j. 3-7*j 3-5*j 3-j 3-3*j 3+7*j 3+5*j 3+j 3+3*j ./sqrt(42); %星座映射矩阵for i=1:length(mod_in)/6 mod_out(i)=Temp(B2D(i);endscatterplot(mod_out); %显示星座映射图 64QAM解调函数:文件名:demodulation.m
30、function demod_out = demodulation(demod_in)d=zeros(64,length(demod_in);D=zeros(64,length(demod_in);m=zeros(1,length(demod_in);temp=-7-7*j -7-5*j -7-j -7-3*j -7+7*j -7+5*j -7+j -7+3*j. -5-7*j -5-5*j -5-j -5-3*j -5+7*j -5+5*j -5+j -5+3*j. -1-7*j -1-5*j -1-j -1-3*j -1+7*j -1+5*j -1+j -1+3*j. -3-7*j -3-
31、5*j -3-j -3-3*j -3+7*j -3+5*j -3+j -3+3*j. 7-7*j 7-5*j 7-j 7-3*j 7+7*j 7+5*j 7+j 7+3*j. 5-7*j 5-5*j 5-j 5-3*j 5+7*j 5+5*j 5+j 5+3*j. 1-7*j 1-5*j 1-j 1-3*j 1+7*j 1+5*j 1+j 1+3*j. 3-7*j 3-5*j 3-j 3-3*j 3+7*j 3+5*j 3+j 3+3*j ./sqrt(42);for i=1:length(demod_in) for n=1:64 d(n,i)=(abs(demod_in(i)-temp(n)
32、.2; end min_distance,constellation_point = min(d(:,i) ; %D(:,i)=sort(d(:,i);%排序 (sort the distance in ascending order.) m(i) = constellation_point;endA=de2bi(0:63,left-msb); %将十进制数转换为二进制数for i=1:length(demod_in) DEMOD_OUT(i,:)=A(m(i),:);enddemod_out=reshape(DEMOD_OUT,1,length(demod_in)*6); %将解调出的序列按行输出专心-专注-专业