电子科大移动通信原理课程设计报告

更新时间:2024-03-17 18:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

移动通信原理课程设计报告

一、题目描述

仿真一:M=1,选定BPSK调制,AWGN和瑞利信道下的误符号率性能曲线(横坐标为符号信噪比Es/N0),并与相应的理论曲线比较。

仿真二:对2发1收的STBC-MIMO系统(Alamouti空时码),分析2发射天线分别受到独立瑞利信道下的误码率性能曲线,并与相同条件下单天线曲线进行对比分析。

二、系统设置

系统设置如下表所示: 仿真一 仿真二 系统一 系统二 系统三 调制方式 BPSK 收发天线信道条件 数 一发一收 高斯信道 一发一收 瑞利信道 编码方式 无 无 Alamouti空二发一收 瑞利信道 时码

三、仿真代码

3.1算法说明

1、信号产生:利用Matlab中的随机整数随机数产生函数randi.

2、调制方法的实现:不同的调制方式对应唯一的一个星座图;通过输入序列找出星座图上的对应位置,即可输出调制结果。 3、信道模拟实现方法:AWGN信道用MATLAB自带函数randn实现,对应平均噪声功率为零;瑞利信道用randn+j*randn,对应平均噪声功率为零。

4、误码率性能曲线:发射信号序列长度设定130比特,仿真4000次,使信噪比在[0,30]每隔2取值,求平均误比特率。

5、收发系统的实现方法:对于单发单收的模型,只需将发送信号加噪声信号即为接收信号;对于二发一收的模型,因为发射天线是相互独立的,所以每根发射天线的接收信号与单发单收模型的接收信号计算方法相同,最后采用最大比合并得到接收信号。 6、调制方式:BPSK

7、编码和译码方法:二发一收空时编码,最大似然译码。 8、误码率的计算:错误比特数/传输的总比特数。

3.2仿真代码

代码一:调制函数

function[mod_symbols,sym_table,M]=modulator(bitseq,b) N_bits=length(bitseq); if b==1 %BPSK调制

sym_table=exp(1i*[0,-pi]); sym_table=sym_table([1 0]+1); inp=bitseq;

mod_symbols=sym_table(inp+1); M=2;

elseif b==2 %QPSK调制

sym_table=exp(1i*pi/4*[-3 3 1 -1]);

sym_table=sym_table([0 1 3 2]+1); inp=reshape(bitseq,b,N_bits/b); mod_symbols=sym_table([2 1]*inp+1); M=4;

elseif b==3 %8PSK调制

sym_table=exp(1i*pi/4*[0:7]);

sym_table=sym_table([0 1 3 2 6 7 5 4]+1); inp=reshape(bitseq,b,N_bits/b);

mod_symbols=sym_table([4 2 1]*inp+1); M=8;

elseif b==4 QAM调制 m=0;

sq10=sqrt(10); for k=-3:2:3 for l=-3:2:2 m=m+1;

sym_table(m)=(k+1i*l)/sq10; end end

sym_table=sym_table(...

[0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10]+1); inp=reshape(bitseq,b,N_bits/b);

mod_symbols=sym_table([8 4 2 1]*inp+1); M=16; else

error('unimplemented modulation'); end

代码二:单发单收系统在高斯信道和瑞利信道下的仿真

clear all

L_frame=130; N_packet=4000;

b=1; % Set to 1/2/3/4 for BPSK/QPSK/8PSK/16QAM SNRdBs=[0:2:30]; sq2=sqrt(2); NT=1;

NR=1;% SISO

for i_SNR=1:length(SNRdBs) SNRdB=SNRdBs(i_SNR);

sigma=sqrt(0.5/(10^(SNRdB/10))); for i_packet=1:N_packet

symbol_data=randi([0 1],L_frame*b,NT);

[temp,sym_tab,P]=modulator(symbol_data.',b);

X=temp.‘; % frlg=length(X), X为调制后的信号序列

Hr = (randn(L_frame,1)+1i*randn(L_frame,1))/sq2 ;%Rayleigh Channel,见原理说明6.1

Ha=randn(L_frame,1); %AWGN channel Z1=0;

R1=Hr.*X+ sigma*(randn(L_frame,1)+1i*randn(L_frame,1)); Z1=Z1+R1.*conj(Hr); R2=X+sigma*Ha; for m=1:P

d1(:,m)=abs(Z1-sym_tab(m)).^2; %最大似然译码 d2(:,m)=abs(R2-sym_tab(m)).^2; end

[y1,i1] = min(d1,[],2); Xd=sym_tab(i1).';

[y2,i2]=min(d2,[],2); Xa=sym_tab(i2).';

temp1 = X>0; temp2 = Xd>0; temp3=Xa>0;

noeb_p1(i_packet)=sum(sum(temp1~=temp2)); noeb_p2(i_packet)=sum(sum(temp1~=temp3)); end

BER1(i_SNR)=sum(noeb_p1)/(N_packet*L_frame*b);

BER2(i_SNR)=sum(noeb_p2)/(N_packet*L_frame*b); SNRw=10^(SNRdB/10);

BER3(i_SNR)=1/2*erfc(sqrt(SNRw));%theoretical BER in AWGN channel BER4(i_SNR)=1/2*(1-sqrt(SNRw/(1+SNRw))); end

semilogy(SNRdBs,BER1,'-rx'), hold on, axis([SNRdBs([1 end]) 1e-6 1e0]) semilogy(SNRdBs,BER2,'-ro'), hold on, axis([SNRdBs([1 end]) 1e-6 1e0]) semilogy(SNRdBs,BER3,'-^'), hold on, axis([SNRdBs([1 end]) 1e-6 1e0]) semilogy(SNRdBs,BER4,'-g*'), hold on, axis([SNRdBs([1 end]) 1e-6 1e0]) title(‘BER perfoemancde of AWGN and Rayleigh channel'), xlabel('SNR[dB]'), ylabel('BER')

grid on, set(gca,'fontsize',9)

legend('Rayleigh practice','AWGN practice','AWGN theoretical','Rayleigh theoretical')

代码三:二发一收系统空时编码仿真 算法流程图:

%Alamounti_scheme.m clear;

N_frame=130; N_packets=4000; NT=2;

NR=1; %two transmitter and one reciever diversity b=2;

SNRdbs=[0:2:30]; sq_NT=sqrt(NT);

sq2=sqrt(2);

for i_SNR=1:length(SNRdbs) SNRdb=SNRdbs(i_SNR);

sigma=sqrt(0.5/(10^(SNRdb/10))); for i_packet=1:N_packets

msg_symbol=randi([0 1],N_frame*b,NT); tx_bits=msg_symbol.'; tmp=[]; tmp1=[]; for i=1:NT

[tmp1,sym_tab,P]=modulator(tx_bits(i,:),b); tmp=[tmp;tmp1]; end

X=tmp.';%pay attention to the matrix dimension %space-time coding X1=X;

X2=[-conj(X(:,2)) conj(X(:,1))]; %channel known by receiver for n=1:NT

Hr(n,:,:)=(randn(N_frame,NT)+1i*randn(N_frame,NT))/sq2; end

H=reshape(Hr(n,:,:),N_frame,NT); %receive signal

R1=sum(H.*X1,2)/sq_NT+sigma*(randn(N_frame,1)+1i*randn(N_frame,1));

R2=sum(H.*X2,2)/sq_NT+sigma*(randn(N_frame,1)+1i*randn(N_frame,1));

%MLD decoder,见原理6.2说明

Z1=R1.*conj(H(:,1))+conj(R2).*H(:,2); Z2=R1.*conj(H(:,2))-conj(R2).*H(:,1); for m=1:P

d1(:,m)=abs(sum(Z1,2)-sym_tab(m)).^2; d2(:,m)=abs(sum(Z2,2)-sym_tab(m)).^2; end

[y1,i1]=min(d1,[],2); S1d=sym_tab(i1).'; clear d1

[y2,i2]=min(d2,[],2); S2d=sym_tab(i2).'; clear d2

Xd=[S1d S2d]; tmp1=X>0; tmp2=Xd>0;

noeb_p(i_packet)=sum(sum(tmp1~=tmp2)); end

BER(i_SNR)=sum(noeb_p)/(N_packets*N_frame*b);

end

semilogy(SNRdbs,BER,'-^');

axis([SNRdbs([1 end]) 1e-6 1e0]) grid on, hold on

xlabel('SNR[db]'),ylabel('BER');

四、仿真图

图(1)

图(2)

五、仿真分析

5.1题目一:

由图(1)AWGN和瑞利信道下的误符号率性能曲线与相应的理论曲线基本重合,且AWGN性能强于瑞利信道。理论上,BPSK在AWGN中的误比特率公式:

2EsP?Q()

N0BPSK在瑞利信道中的误比特率公式:

本文来源:https://www.bwwdw.com/article/exd8.html

Top