基于matlab设计的数字基带传输系统

  • 格式:docx
  • 大小:29.95 KB
  • 文档页数:3

代码能仿真出基础的数字基带信号传输过程,采用双极性不归零编码,其中奈奎斯特滤波器是通过加载由fda工具生成的mat文件。

在仿真过程中,加入的高斯白噪声越大,误码率越高。

滤波器的滚降系数越小,误码率越高。

clc;
clear all;
N=100;%生成的比特个数
n=16; %每个比特的抽样点数
signal=rand(1,N)>0.5; %生成低密度的个数为N的01比特流
Rb=16;
Ts=1/(Rb*n);%抽样间隔
%画原信号
t1=0:1/Rb:(N-1)/Rb;
figure(1)
subplot(6,1,1)
plot(t1,signal,'b.')
axis([0,20/Rb,-1.2,1.2])
grid on
title('原始信号')
%双极性编码
code_signal=ones(1,1600);
for j=1:100
if signal(j)==0
for i=0:15
code_signal(16*j-i)=-1;
end
end
end%扩展了原信号的抽样点数,并生成双极性编码
%画双极性编码信号
t2=0:Ts:(N*n-1)*Ts;%T=N*Rb为生成的信号的长度
subplot(6,1,2)
plot(t2,code_signal,'b.')
axis([0,20/Rb,-1.2,1.2])
grid on
title('双极性编码')
transmissionsignal=awgn(code_signal,10); %加入高斯白噪声
%画出高斯白噪声后的信号
subplot(6,1,3)
plot(t2,transmissionsignal)
axis([0,20/Rb,-1.2,1.2])
grid on
title('加入高斯白噪声后的信号')
%奈奎斯特滤波器
myNyquist=load ('myNyquist0.5.mat');%Rolloff=0.5,fs=256,Band=8 den=1;
filtersignal=filter(myNyquist.Num,den,transmissionsignal);
%经升余弦滚降系统之后信号
subplot(6,1,4)
plot(t2,filtersignal)
axis([0,20/Rb,-2,2])
grid on
title('经升余弦滚降系统之后信号')
%抽样判决
samplesignal=[];
for i=n/2:n:length(filtersignal)
if filtersignal(i)>0
for j=1:n
samplesignal=[samplesignal,1];
end
else
for j=1:n
samplesignal=[samplesignal,-1];
end
end
end
%画抽样判决之后的信号
subplot(6,1,5)
plot(t2,samplesignal,'b.')
grid on
axis([0,20/Rb,-1.2,1.2])
title('抽样判决之后的信号')
%反向恢复原编码
ssignal=[];
for i=n/2:n:length(samplesignal)
if samplesignal(i)>0
ssignal=[ssignal,1];
else
ssignal=[ssignal,0];
end
end
%恢复信号
subplot(6,1,6)
plot(t1,ssignal,'b.')
grid on
axis([0,20/Rb,-1.2,1.2])
title('恢复信号')
%误码率的计算
syms cnt
cnt=0;
for c=1:100
if signal(c)==ssignal(c)
cnt=cnt+0;
else
cnt=cnt+1;
end
end
error=cnt/n
仿真图:
原始信号
双极性编码
加入高斯白噪声后的信号
经升余弦滚降系统之后信号
抽样判决之后的信号
恢复信号。