实验五基带码型产生实验33.docx

上传人:b****4 文档编号:24790256 上传时间:2023-06-01 格式:DOCX 页数:15 大小:71.31KB
下载 相关 举报
实验五基带码型产生实验33.docx_第1页
第1页 / 共15页
实验五基带码型产生实验33.docx_第2页
第2页 / 共15页
实验五基带码型产生实验33.docx_第3页
第3页 / 共15页
实验五基带码型产生实验33.docx_第4页
第4页 / 共15页
实验五基带码型产生实验33.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

实验五基带码型产生实验33.docx

《实验五基带码型产生实验33.docx》由会员分享,可在线阅读,更多相关《实验五基带码型产生实验33.docx(15页珍藏版)》请在冰豆网上搜索。

实验五基带码型产生实验33.docx

实验五基带码型产生实验33

实验五基带码型产生实验

1、实验目的

1、掌握基带传输码型的特点;

2、掌握常用的基带传输码的产生方法;

3、能用matlab编写程序产生一些常用的码型,如RZ、NRZ、AMI、Miller、双相码等。

2、实验原理

1、数字基带信号

设消息代码由二进制符号0和1组成

(1)单极性码:

基带信号的0电位及正电位分别与二进制符号的0与1对应;

(2)双极性码:

二进制符号0、1分别与正、负电位相对应;

(3)单极性归零码:

有电脉冲比码元宽度窄,每个脉冲都回到零电位;

(4)双极性归零码:

相邻脉冲之间必定留有零电位的间隙。

(5)差分波形:

用相邻码元的电平的跳变和不变来表示消息代码,以电平跳变表示“1”,以电平不变表示“0”。

2、基带传输码的要求

(1)能从其相应的基带信号中获取定时信息;

(2)相应的基带信号无直流成分和只有很少的低频成分;

(3)不受信源统计特性的影响,即能适应于信源的变化;

(4)尽可能地提高传输码型的传输效率;

(5)具有内在的检错能力。

3、基带传输常用码型

(1)AMI码-传号交替反转码

编码规则:

“1”交替变成“+1”和“-1”;“0”仍保持为“0”。

消息码

1

1

0

0

1

0

1

AMI码

+1

-1

0

0

+1

0

-1

特点:

无直流成分,且只有很少的低频成分,编码简单,提取定时信号困难。

(2)HDB3码-三阶高密度双极性码

编码规则:

先检查消息代码中的连0情况,当没有4个或4个以上连0时,按AMI码的编码原则;当有时则将每4个连0小段的第4个0变换成与前一个非0符号同极性的符号。

但这可能会破“环极性交替反转”的规律。

这个符号被称为破环符号,用V表示(即+1记为+V,-1记为-V)。

为使附加V符号后原码仍为无直流分量,还必须保证相邻V符号也极性交替。

这一点,当相邻V符号之间有奇数个非0符号时,是能保证的;当有偶数个非0符号时,则不能保证,这时再将该小段的第1个0变换成+B或-B,B符号的极性与前一个非0符号极性相反,并让后面的非0符号从V符号开始在交替变化。

消息码

1

0

0

0

0

1

0

0

0

0

1

1

0

0

0

0

1

1

AMI码

-1

0

0

0

0

+1

0

0

0

0

-1

+1

0

0

0

0

-1

+1

HDB3码

-1

0

0

0

-V

+1

0

0

0

+V

-1

+1

-B

0

0

-V

+1

-1

-1

0

0

0

-1

+1

0

0

0

+1

-1

+1

-1

0

0

-1

+1

-1

译码

-1

0

0

0

0

+1

0

0

0

0

-1

+1

0

0

0

0

+1

-1

1

0

0

0

0

1

0

0

0

0

1

1

0

0

0

0

1

1

(3)、双相码-曼彻斯特码

编码规则为:

每个二进制代码分别用两个具有不同相位的二进制新码去取代的码。

0→01;1→10。

消息码

1

1

0

0

1

0

1

双相码

10

10

01

01

10

01

10

(4)Miller码-延迟调制码

编码规则:

“1”码用码元持续时间中心点出现跃变来表示,即用“10”或“01”表示。

“0”码分两种情况处理:

对于单个“0”时,在码元持续时间内不出现电平跃变,且与相邻码元的边界处也不跃变;对于连“0”时,在两个“0”码的边界处出现电平跃变,即“00”与“11”交替。

双相码的下降沿正好对应于密勒码的跃变沿。

(5)CMI码-传号反转码

编码规则:

“1”码交替用“11”和“00”表示;“0”码用“01”表示。

(6)条件双相码(差分曼彻斯特码):

编码方法:

不仅与当前的信息有关,而且与前一个信息也有关,也就是说同一个码元的电平有关,即用中央时刻的电平跳变来表示信息。

与绝对双相码的不同的是:

对于信息1,则前半时间的电平与前一码元的后半时间电平相同,后半时间与本码元前半时间值相反;对信息0,则前半时间的电平与前一

3、实验步骤

1.产生一组单极性码,并绘制出其时域波形(16个)和功率谱波形

M=10000;%产生码元数

L=20;%每码元复制32次

dt=0.001;%采样间隔

T=L*dt;%码元时间

TotalT=M*T;%总时间

t=0:

dt:

TotalT;%时间

F=1/dt;%仿真频宽

df=1/TotalT;%频率间隔

f=-F/2:

df:

F/2-df;%频率

N=M*L;%总长度

ShowM=16;%显示码元数

ShowN=ShowM*L;

ShowT=(ShowN-1)*dt;

Showt=0:

dt:

ShowT;%时间

dutyradio=0.5;%占空比

%单极性码

randwave=round(rand(1,M));%产生二进制随机码,M为码元个数

onessample=ones(1,L);%定义复制的次数L,L为每码元的采样点数

rerandwave=randwave(onessample,:

);%复制的第1行复制L次

unipolarwave=reshape(rerandwave,1,L*M);%重排成1*L*M数组

X=fft(unipolarwave);

X=X/N;

mPSD=abs(X).^2/(df^2);

PSD=fftshift(mPSD);

PSD=(1/TotalT).*PSD;

figure;subplot(2,1,1);plot(Showt,unipolarwave(1:

ShowN));

subplot(2,1,2);plot(f,10*log(PSD));

2.产生步骤1中极性码对应的双极性码、单极性归零码和双极性归零码的时域波形和功率谱波形;

%双极性码

bipolarwave=unipolarwave*2-1;%转换成双极性的

X1=fft(bipolarwave);

X1=X1/N;

mPSD1=abs(X1).^2/(df^2);

PSD1=fftshift(mPSD1);

PSD1=(1/TotalT).*PSD1;

figure;subplot(3,2,1);plot(Showt,bipolarwave(1:

ShowN));

subplot(3,2,2);plot(f,10*log(PSD1));

%单极性归零波形

unipolarzerowave=zeros(1,N);

fori=1:

dutyradio*L%dutyradio为占空比

unipolarzerowave(i+[0:

M-1]*L)=randwave;

end

X2=fft(unipolarzerowave);

X2=X2/N;

mPSD2=abs(X2).^2/(df^2);

PSD2=fftshift(mPSD2);

PSD2=(1/TotalT).*PSD2;

subplot(3,2,3);plot(Showt,unipolarzerowave(1:

ShowN));

subplot(3,2,4);plot(f,10*log(PSD2));

%双极性归零波形

bipolarzerowave=unipolarzerowave*2-1;%转换成双极性的

X3=fft(bipolarzerowave);

X3=X3/N;

mPSD3=abs(X3).^2/(df^2);

PSD3=fftshift(mPSD3);

PSD3=(1/TotalT).*PSD3;

subplot(3,2,5);plot(Showt,bipolarzerowave(1:

ShowN));

subplot(3,2,6);plot(f,10*log(PSD3));

3.产生步骤1中极性码对应的曼彻斯特码、差分曼彻斯特码和CMI码的时域波形和功率谱波形;

%曼彻斯特码

manchesewave=zeros(1,N);

fori=0:

M-1%

if(randwave(i+1)==1)

manchesewave(i*L+1:

i*L+L/2)=0;

manchesewave(i*L+L/2+1:

i*L+L)=1;

else

manchesewave(i*L+1:

i*L+L/2)=1;

manchesewave(i*L+L/2+1:

i*L+L)=0;

end

end

X4=fft(manchesewave);

X4=X4/N;

mPSD4=abs(X4).^2/(df^2);

PSD4=fftshift(mPSD4);

PSD4=(1/TotalT).*PSD4;

figure;subplot(2,2,1);plot(Showt,manchesewave(1:

ShowN));

subplot(2,2,2);plot(f,10*log(PSD4));

%差分曼彻斯特码

diffmanchesewave=zeros(1,N);

lastcode=1;

fori=0:

M-1%

if(randwave(i+1)==1)%有跳变

if(lastcode==1)

diffmanchesewave(i*L+1:

i*L+L/2)=0;

diffmanchesewave(i*L+L/2+1:

i*L+L)=1;

lastcode=1;

else

diffmanchesewave(i*L+1:

i*L+L/2)=1;

diffmanchesewave(i*L+L/2+1:

i*L+L)=0;

lastcode=0;

end

else

if(lastcode==1)

diffmanchesewave(i*L+1:

i*L+L/2)=1;

diffmanchesewave(i*L+L/2+1:

i*L+L)=0;

lastcode=0;

else

diffmanchesewave(i*L+1:

i*L+L/2)=0;

diffmanchesewave(i*L+L/2+1:

i*L+L)=1;

lastcode=1;

end

end

end

X5=fft(diffmanchesewave);

X5=X5/N;

mPSD5=abs(X5).^2/(df^2);

PSD5=fftshift(mPSD5);

PSD5=(1/TotalT).*PSD5;

subplot(2,2,3);plot(Showt,diffmanchesewave(1:

ShowN));

subplot(2,2,4);plot(f,10*log(PSD5));

4、产生步骤1中极性码对应的密勒码、AMI码和HDB3码的时域波形和功率谱波形。

%密勒码

millwave=zeros(1,N);

lastcode=1;

zeronum=0;

fori=0:

M-1%

if(randwave(i+1)==1)%有跳变

if(lastcode==1)

millwave(i*L+1:

i*L+L/2)=1;

millwave(i*L+L/2+1:

i*L+L)=0;

lastcode=0;

zeronum=0;

else

millwave(i*L+1:

i*L+L/2)=0;

millwave(i*L+L/2+1:

i*L+L)=1;

lastcode=1;

zeronum=0;

end

else

if(lastcode==1)

if(zeronum==0)%单零不跳

millwave(i*L+1:

i*L+L/2)=1;

millwave(i*L+L/2+1:

i*L+L)=1;

lastcode=1;

else

millwave(i*L+1:

i*L+L/2)=0;

millwave(i*L+L/2+1:

i*L+L)=0;

lastcode=0;

end

zeronum=zeronum+1;

else

if(zeronum==0)%单零不跳

millwave(i*L+1:

i*L+L/2)=0;

millwave(i*L+L/2+1:

i*L+L)=0;

lastcode=0;

else

millwave(i*L+1:

i*L+L/2)=1;

millwave(i*L+L/2+1:

i*L+L)=1;

lastcode=1;

end

zeronum=zeronum+1;

end

end

end

X7=fft(millwave);

X7=X7/N;

mPSD7=abs(X4).^2/(df^2);

PSD7=fftshift(mPSD7);

PSD7=(1/TotalT).*PSD7;

%figure;subplot(3,2,1);plot(Showt,millwave(1:

ShowN));

%subplot(3,2,2);plot(f,10*log(PSD7));

%AMI码

amiwave=zeros(1,N);

lastcode=1;

fori=0:

M-1%

if(randwave(i+1)==1)%有跳变

if(lastcode==1)

amiwave(i*L+1:

i*L+L)=-1;

lastcode=-1;

else

amiwave(i*L+1:

i*L+L)=1;

lastcode=1;

end

else

amiwave(i*L+1:

i*L+L)=0;

end

end

X8=fft(amiwave);

X8=X8/N;

mPSD8=abs(X8).^2/(df^2);

PSD8=fftshift(mPSD8);

PSD8=(1/TotalT).*PSD8;

%subplot(3,2,3);plot(Showt,amiwave(1:

ShowN));

%subplot(3,2,4);plot(f,10*log(PSD8));

%HDB3码

hdb3wave=zeros(1,N);

lastcode=1;%上一个1状态

vonevcount=0;%相邻V之间连1数目

zerocount=0;%连零数目

fori=0:

M-1%

if(randwave(i+1)==1)%有跳变

if(lastcode==1)

hdb3wave(i*L+1:

i*L+L)=-1;

lastcode=-1;

vonevcount=vonevcount+1;

else

hdb3wave(i*L+1:

i*L+L)=1;

lastcode=1;

vonevcount=vonevcount+1;

end

else

zerocount=zerocount+1;

if(zerocount==4)

if(mod(vonevcount,2)==1)%相邻V之间有奇数个1

if(lastcode==1)%插入000+V

hdb3wave(i*L+1:

i*L+L)=1;

else%插入000-V

hdb3wave(i*L+1:

i*L+L)=-1;

end

vonevcount=0;

else

if(lastcode==1)%插入-B00-V

hdb3wave((i-3)*L+1:

(i-3)*L+L)=-1;

hdb3wave(i*L+1:

i*L+L)=-1;

lastcode=-1;

else%插入+B00+V

hdb3wave((i-3)*L+1:

(i-3)*L+L)=+1;

hdb3wave(i*L+1:

i*L+L)=1;

lastcode=1;

end

vonevcount=0;

end

zerocount=0;

else

hdb3wave(i*L+1:

i*L+L)=0;

end

end

end

X9=fft(hdb3wave);

X9=X9/N;

mPSD9=abs(X9).^2/(df^2);

PSD9=fftshift(mPSD3);

PSD9=(1/TotalT).*PSD3;

%subplot(3,2,5);plot(Showt,hdb3wave(1:

ShowN));

%subplot(3,2,6);plot(f,10*log(PSD9));

四、思考题

1、分析产生的各种基带码型的时域波形和功率谱特性;

2、试从曼彻斯特码、差分曼彻斯特码、CMI码密勒码、AMI码和HDB3码中任选一种设计其解码波形;

2、试从曼彻斯特码、差分曼彻斯特码、CMI码密勒码、AMI码和HDB3码中任选一种设计其基于VHDL的编解码波形。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1