基于MatlabSimulink - 的QDPSK调制解调仿真设计与研究学位论文

参考文献

[1]赵静,张瑾.基于Matlab的通信系统仿真[M].北京:北京航空航天大学出版社,2007.9 [2]王幕坤,刘文责.通信原理[M].石家庄:哈尔滨工业大学出版社,1995. [3]樊昌信,曹丽娜.通信原理(第6版)[M].北京:国防工业出版社,2008.3. [4]王兴亮.通信系统原理教程[M].西安:西安电子科技大学出版社,2007:90.105. [5]张志勇,徐彦琴.Matlab教程—基于6.x版本[M].北京:清华大学出版社,2008.

[6]施阳.Matlab语言精要及动态仿真工具Simulink.[M].西安:西北工业大学出版社, 1997. [7]邵玉斌.Matlab/Simulink通信系统建模与仿真实例分析[M].北京:清华大学出版社,2008.

37

附 录

Matlab程序:

T=0.001; % 基带信号宽度,也就是频率 fc=12/T; % 载波频率

ml=2; % 调制信号类型的一个标志位 nb=100; % 传输的比特数 delta_T=T/200; % 采样间隔 fs=1/delta_T; % 采样频率 SNR=0; % 信噪比

t=0:delta_T:nb*T-delta_T; % 限定t的取值范围 N=length(t); % 采样数 %------------------------- 调制部分 % 基带信号的产生 data=randn(1,nb)>0.5; datanrz=data.*2-1; data1=zeros(1,nb/delta_T); for q=1:nb

data1((q-1)/delta_T+1:q/delta_T)=datanrz(q); end

% 串并转换,将奇偶位数据分开 idata=datanrz(1:ml:(nb-1)); qdata=datanrz(2:ml:nb); % QDPSK信号的调制 ich=zeros(1,nb/delta_T/2); for i=1:nb/2

ich((i-1)/delta_T+1:i/delta_T)=idata(i); end

38

for ii=1:N/2

a(ii)=sqrt(2/T)*cos(2*pi*fc*t(ii)); end

idata1=ich.*a; qch=zeros(1,nb/2/delta_T); for j1=1:nb/2

qch((j1-1)/delta_T+1:j1/delta_T)=qdata(j1); end for jj=1:N/2

b(jj)=sqrt(2/T)*sin(2*pi*fc*t(jj)); end

qdata1=qch.*b;

s=idata1+qdata1; ss=abs(fft(s));

%---------------------------- 瑞利衰落信道和高斯信道 % 瑞利衰落信道

ray_ich=raylrnd(0.8,1,nb/2/delta_T); ray_qch=raylrnd(0.8,1,nb/2/delta_T); Ray_idata=idata1.*ray_ich; Ray_qdata=qdata1.*ray_qch; Ray_s=Ray_idata+Ray_qdata;

% 高斯信道

s1=awgn(s,SNR); s11=abs(fft(s1)); s111=s1+s;

Awgn_s=awgn(Ray_s,SNR); % 通过高斯信道再通过瑞利衰落信道 %----------------------------- QDPSK 解调部分 % 解调部分(高斯信道)

39

idata2=s1.*a; qdata2=s1.*b; idata3=zeros(1,nb/2); qdata3=zeros(1,nb/2);

% 抽样判决的过程,与0作比较,data>=0,则置1,否则置0 for n=1:nb/2

if sum(idata2((n-1)/delta_T+1:n/delta_T))>=0 idata3(n)=1; else idata3(n)=0; end

if sum(qdata2((n-1)/delta_T+1:n/delta_T))>=0 qdata3(n)=1; else qdata3(n)=0; end end

% 为了显示星座图,将信号进行处理 idata4=zeros(1,nb/2); qdata4=zeros(1,nb/2); for n=1:nb/2

Awgn_ichsum(n)=sum(idata2((n-1)/delta_T+1:n/delta_T))*delta_T; if Awgn_ichsum(n)>=0 idata4(n)=1; else idata4(n)=0; end

Awgn_qchsum(n)=sum(qdata2((n-1)/delta_T+1:n/delta_T))*delta_T; if Awgn_qchsum(n)>=0 qdata4(n)=1; else qdata4(n)=0; end

40

联系客服:779662525#qq.com(#替换为@)