endmodule
2. 调制系统顶层模块的 VerilogHDL 代码及注释。 module BPSK( clk, reset_n, clk_DA, blank_DA_n, sync_DA_n, dataout
);
input clk ; input reset_n ; output clk_DA ; output blank_DA_n; output sync_DA_n ; output [ 7 : 0 ] dataout ; wire [ 4 : 0 ] address ; Controller CONTROLLER ( .clk ( clk ), .reset_n ( reset_n ),
.dataCF ( dataCF ), .address ( address ), .clk_DA ( clk_DA ), .blank_DA_n( blank_DA_n ), .sync_DA_n ( sync_DA_n ) );
LookUpTable LOOKUPTABLE ( .clk ( clk ), .reset_n ( reset_n ), .address ( address ),
.dataout ( dataout ) );
Chafen CHAFEN(
.dataPN ( dataPN ), .clk1 ( clk1 ), .reset_n ( reset_n ), .dataCF ( dataCF ) );
PN_Seq PN_SEQ(
.clk1 ( clk1 ), .reset_n ( reset_n ), .dataPN ( dataPN )
);
div DIV(
.clk ( clk ), .reset_n ( reset_n ), .clk1 ( clk1 )
); Endmodule
3.功能仿真和时序仿真结果的波形,至少要同时显示出伪随机序列、差分编码结果和 BDPSK 调制信号。
功能仿真:
时序仿真:
实验二CDMA调制与解调
一、 实验目的:
1、 了解 CDMA 的原理和调制解调过程。
2、 用 MATLAB 进行 CDMA 的调制解调过程的仿真。
二、实验原理:
扩频通信用伪随机编码把基带信号的频谱进行扩展,形成相当宽带的低功率谱密度的信号发射,接收端使用相关处理方式,也要把接受的宽带扩频信号恢复成基带信号。图 1 为典型扩频通信的基本原理图。
图 1 典型扩频通信的基本原理图
三、报告要求
1. 所有程序完整的源代码(.m文件)以及注释。
2. 仿真结果。对于所有的图形结果(包括波形与仿真曲线等),将图形保存成.tif 或者.emf的格式并插入word 文档。
四、实验结果
1.
shiyan2.m clear all; close all;
C2=1;C1=0;C0=1; %m序列初值 N=10^4;
MN=7*N; %重复MN遍的7位单极性m序列 EbNo=-20:5; %信噪比 L(MN)=0; M(MN)=0;
reds_sample(1:MN)=0; reds_judge(1:N)=0; err(length(EbNo))=0; message_ds(1:MN)=0; ds(1:MN)=0; for i=1:MN
TC0=C0; TC1=C1; TC2=C2; C0=C1; C1=C2; C2=xor(TC0,TC1); L(i)=TC0; end
for i=1:MN
M(i)=1-2*L(i); %将单极性m序列变为双极性m序列 end
M_ds=rectpulse(M,1000); %双极性m序列的扩频序列 message=rand(1,N)>0.5; %产生二进制随机数
for i=1:N k=7*i-6;
message_ds(k)=message(i);k=k+1; message_ds(k)=message(i);k=k+1; message_ds(k)=message(i);k=k+1; message_ds(k)=message(i);k=k+1; message_ds(k)=message(i);k=k+1; message_ds(k)=message(i);k=k+1; message_ds(k)=message(i); end
for i=1:MN
ds(i)=xor(L(i),message_ds(i)); end
fs=2000;
ts=0:0.00001:MN/100-0.00001; %为了使信号看起来更光滑,作图时采样频率为100kHz ds_b=rectpulse(ds,1000); %将冲激信号补成矩形信号? ds_bpsk=(1-2.*ds_b).*cos(2*pi*fs*ts); [b,a]=tf(lpf);%得到传递函数,b=Num;a=1; for k=1:length(EbNo)
ds_bpsk_awgn = awgn(ds_bpsk,EbNo(k),'measured'); ds_re=ds_bpsk_awgn.*cos(2*pi*fs*ts); ds_lpf=filter(b,a,ds_re);
%解扩
reds=M_ds.*ds_lpf(1:1000*MN);
%抽样 for i=1:MN
j=1000*i-500;
reds_sample(i)=reds(j); end
%判决 for i=1:MN
if (reds_sample(i)>0.2) reds_sample(i)=1;
elseif (reds_sample(i)<-0.2) reds_sample(i)=-1; else reds_sample(i)=0; end end
for i=1:N j=7*i-6;
if (reds_sample(j)==0)
reds_sample(j)=reds_sample(j+4); end end
for i=1:MN-2
if (reds_sample(i)==0)
reds_sample(i)=reds_sample(i+2); end end
for i=1:N
reds_judge(i)=reds_sample(i*7-3); if (reds_judge(i)==0)
reds_judge(i)=reds_judge(i)+1; end
reds_judge(i)=(1-reds_judge(i))/2; end
err(k)=length(find((reds_judge-message)~=0)); %计算误码个数 end
err=err./N; figure(1)
plot(EbNo,err);xlabel('EbNo/dB');ylabel('误码率');title('BPSK调制的CDMA误码率')
lpf.m
function Hd = lpf
%LPF Returns a discrete-time filter object.
% MATLAB Code
% Generated by MATLAB(R) 9.0 and the DSP System Toolbox 9.2. % Generated on: 26-Oct-2016 22:33:44
% FIR Window Lowpass filter designed using the FIR1 function.
% All frequency values are in Hz.