第一篇:MATLAB通信原理课程设计报告
MATLAB通信原理课程设计报告
目 录
1课题名称.....................................................................................................................1 2课程设计的方案和基本原理.....................................................................................1
2.1信息论基本计算...............................................................................................1 2.2数字信号基带传输系统...................................................................................1 3课程设计步骤.............................................................................................................3
3.1信息论基本计算的设计步骤...........................................................................3 3.2数字信号基带传输系统的设计步骤...............................................................3 4课程设计结果和结果分析论证.................................................................................4
4.1信息论的基本运算结果...................................................................................4 4.2数字信号基带传输系统的设计结果...............................................................6
5、心得体会................................................................................................................11 6附件...........................................................................................................................11 6.1信息论基本计算.............................................................................................11 6.2数字信号基带传输系统.................................................................................14 7 评分表......................................................................................错误!未定义书签。
1课题名称
(1)信息论基本计算。
(3)数字信号基带传输系统设计
2课程设计的方案和基本原理
2.1信息论基本计算
2.1.1平均信息量:平均每个符号所能提供的信息量。
H(X)。
2.1.2离散信道容量:信道容量是信道所能传送的最大的信息量。C=maxI(X;Y)R=I(X;Y)=H(X)-H(XY)2.1.3信源编码过程:Huffman编码的意义是,用最少的编码长度来表达符号的信息。为了使平均码长度最小,将发生概率较大的符号用比较短的码组来表示,将发生概率较小的符号用较长的码组实现,以得到最佳的变长编码,减少冗余度,提高系统传输的效率。
2.2数字信号基带传输系统
2.2.1数字基带信号的码型:由于数字基带信号是数字信息的电脉冲表示,不同形式的基带信号(又称为码型)有不同的频谱结构和功率谱分布。不同的码型有不同的优点,常用的码型有单/双极性码、非归零/归零码、数字双相码(曼彻斯特码)、密勒码、AMI码、HDB3码。
2.2.2单/双极性码:单极性码是用电平1来表示二元信息中的‘1’,用电平0来表示二元信息中的0,电平在整个码元的持续时间里保持不变,记做NRZ码。双极性码与单极性码的区别仅在于它用电平-1来表示二元信息中的‘0’。
2.2.3非归零/归零码:归零码与非归零码的区别仅在于,非归零码在整个码元持续时间内保持电平值不变,而归零码的码元持续时间的前一半时间内保持,而后一半时间内回到0.1 2.2.4数字双相码(曼彻斯特码):此种码型采用在一个码元的持续时间中央时刻从0到1的跳变来表示1,从1到0的跳变来表示0。或者与之相反用在一个码元的持续时间中央时刻从0到1的跳变来表示0,从1到0的跳变来表示1。
2.2.5密勒码:该码型是双相码的变型。它采用码元中央时刻跳变表示信息1即前半时间的电平和前一码元的后半时间的电平相同,中间跳变。遇到信息0做如下处理:首先对0的码元在整个持续时间内保持同一电平值,其次若此0的前一信息是一则码元的电平同前面信息1的码元后半时间电平相同,若前一信息为0,则与前面码元的电平相反。
2.2.6 AMI码、HDB3码: AMI码是传号交替反转码。其编码规则是将消息码中的“1”交替变成“+1”和“-1”,将消息码中的“0”仍保持为“0”。HDB3码的全称是3阶高密度双极性码。首先将信息码变换成AMI码,然后检查AMI码中连0的情况,没有发现4个以上连0的码元串时码型不需变换,仍为AMI码的形状。若发现4个以上连0的码元串时,则根据相应规则把第四个0变换成相应符号。
2.2.7码型的功率谱分布:数字基带信号一般是随机信号,因此分析随机信号的频谱特性要用功率诺密度来分析。一般来说,求解功率谱是一件相当困难的事,但由于上述几种码型比较简单,我们可以求出其功率谱密度函数。
对单极性非归零码、单极性归零码、双极性非归零码和双极性归零码这4种码。由于统计的独立性,课由由功率谱公式画出功率谱波形图。数字双相码的功率相关公式如下:“y=sin(pi*x/2);y=y./(pi*x/2);y(1)=1;mache=sin(pi*x/2).*sin(pi*x/2);mache=mache.*y;mache=mache.*y”。密勒码的相关功率公式如下:
“x=x*pi;miler=(23-2*cos(x)-22*cos(2*x)-12*cos(3*x)+5*cos(4*x)+12*cos(5*x)+2*cos(6*x)-8*cos(7*x)+2*cos(8*x))./(17+8*cos(8*x));t=x.*x;miler=miler./t;”
对于AMI码和HDB3码的功率谱函数,则需要进行实际的码型进行分析。
3课程设计步骤
3.1信息论基本计算的设计步骤
3.1.1信源平均信息量的计算(以高斯分布的信源为例):
通过系统产生一个高斯随机信源,再求出它的平均信息量。3.1.2离散信道容量的计算(以输入符号等概分布为例):
编写hmessage函数求出平均互信息,编写dmessage函数,求出离散信息熵,调用hmessage函数和dmessage函数得出hf和hx,最后信道容量c=hx-hf。3.1.3信源编码过程(以Huffman编码为例):
先编写huffman函数,对系列排序并求出huffman编码。调用huffman函数和dmessage函数,得出编码后的码字。
3.2数字信号基带传输系统的设计步骤
3.2.1单/双极性归零/非归零码:先对原始码型进行相应的码型变换,画出码型子图,再由功率谱公式画出功率谱波形图。
3.2.2数字双相码:先进行码型变换,再画出功率谱,功率相关公式如下:“y=sin(pi*x/2);y=y./(pi*x/2);y(1)=1;mache=sin(pi*x/2).*sin(pi*x/2);mache=mache.*y;mache=mache.*y”。
3.2.3密勒码:密勒码的相关功率公式如下:
“x=x*pi;miler=(23-2*cos(x)-22*cos(2*x)-12*cos(3*x)+5*cos(4*x)+12*cos(5*x)+2*cos(6*x)-8*cos(7*x)+2*cos(8*x))./(17+8*cos(8*x));t=x.*x;miler=miler./t;”
3.2.4AMI码:编写AMI函数,求的AMI码型变换。编写t2f函数,功能是将时域信号做傅里叶变换到频域。为了求AMI码的功率谱密度,编写AMIpower函数,该函数中又调用了t2f函数。3.2.5HDB3码:编写HDb3函数和t2f函数,分别实现HDb3编码和傅里叶变换。调用HDb3函数和t2f函数,得出原序列图、编码后的序列图和功率谱图。
4课程设计结果和结果分析论证
4.1信息论的基本运算结果
4.1.1信源平均信息量的计算(以高斯分布的信源为例):
图4.1.1连续信源平均信息量
4.1.2离散信道容量的计算(以输入符号等概分布为例)4
图4.1.2离散信道容量
信道容量为信源的平均信息量减去互信息量。
4.1.3信源编码过程(以Huffman编码为例)
图4.1.3 huffman编码
哈弗曼编码是把出现概率较大的用较短的码元来实现,概率出现较小的用较长的码元实现。4.2数字信号基带传输系统的设计结果
4.2.1单极性非归零码及其功率谱
图4.2.1单极性非归零码码型和功率谱
输入的序列是x=[1 1 0 1 0 0 1 0 1 0 0 1],输出的序列是y=[1 1 0 1 0 0 1 0 1 0 0 1]经编码规则验证是正确的。功率谱显示,码型的功率分布有分段性,并以某些频率为中心。
4.2.2单极性归零码及其功率谱
图4.2.2单极性归零码码型和功率谱
由图可知,输入的序列是x=[1 1 0 1 0 0 1 0 1 0 0 1],输出的序列是y=[10 10 00 10 00 00 10 00 10 00 00 10] 经编码规则验证是正确的。功率谱显示,码型的功率分布有分段性,并以某些频率为中心。
4.2.3双极性非归零码及其功率谱
图4.2.3双极性非归零码码型和功率谱
由图可知输入的序列为x=[1 1 0 1 0 0 1 0 1 0 0 1],输出的序列为y=[1 1-1 1-1-1 1-1 1-1-1 1], 经编码规则验证是正确的。功率谱显示,码型的功率分布有分段性,并以某些频率为中心。
4.2.4双极性归零码及其功率谱密度
图4.2.4双极性归零码码型和功率谱
由图可知,输入序列为x=[1 1 0 1 0 0 1 0 1 0 0 1],输出序列为y=[10 10-10 10-10-10 10-10 10-10-10 10]。经编码规则验证是正确的。功率谱显示,码型的功率分布有分段性,并以某些频率为中心。
4.2.5数字双相码及其功率谱
图4.2.5数字双相码码型和功率谱
由图可知,输入的序列为x=[1 1 0 1 0 0 1 0 1 0 0 1],输出的序列为y=[10 10 01 10 01 01 10 01 10 01 01 10].功率谱显示,码型的功率分布有分段性。
4.2.6密勒码及其功率谱
图4.2.6密勒码码型和功率谱
信息的输入序列是x=[1 1 0 1 0 0 1 0 1 0 0 1]。
4.2.7 AMI码及其功率谱
图4.2.7AMI码码型和功率谱
输入序列是x=[1 1 0 1 0 0 1 0 1 0 0 1]。
4.2.8 HDB3码及其功率谱
图4.2.8 HDB3码码型和功率谱
由此图的功率谱与AMI码的功率谱比较可知,HDB3码与AMI码是相似的,HDB3码是AMI码的变形。
5、心得体会
6附件
6.1信息论基本计算
6.1.1、信源平均信息量的计算(高斯分布的信源)x=randn(1,100000);%产生N(0,1)高斯源 px=1/sqrt(2*pi)*exp(-(x-1).^2/2);%计算概率 l=-mean(log2(px))%计算熵
6.1.2、编程实现离散信道容量的计算(以输入符号等概分布为例)function r=dmessage(x,n)%参数x表示概率矩阵,n是符号的数目 r=0;for i=1:n r=r-x(i)*log(x(i))/log(2);end disp('此离散信源的平均信息量为:');r %直接在命令窗口中调用dmessage函数,也可以在其它函数中调用 dmessage([0.25,0.25,0.25,0.25],4)
6.1.3、离散信道容量的计算 %求互信息的函数文件如下 function r=hmessage(x,f,nx,my)%x为输出的信源分布,f为转移概率矩阵,nx为输出的符号可选个数 %my为输出的符号个数 sum=0;for i=1:nx for j=1:my 11 %通过式子p(x,y)=p(x)p(y/x)来求p(x,y),用t表示 t=f(i,j)*x(i);%求平均互信息量 if t~=0 sum=sum-t*log(f(i,j))/log(2);end;end;end;r=sum;disp('平均互信息量为:');%利用函数dmessage来求信源的熵,利用函数hmessage来求平均互信息量 x=[0.25,0.25,0.25,0.25];f1=[1/2,1/4,1/4,0,0,0 0,1/2,1/4,1/4,0,0 0,0,1/2,1/4,1/4,0 0,0,0,1/2,1/4,1/4,];hf1=hmessage(x,f1,4,6);hx=dmessage(x,4);c1=hx-hf1 %信道容量
6.1.4、哈弗曼编码的实现 p=[1/4,1/4,1/4,1/8,1/8];[h,l]=huffman1(p)%哈弗曼编码的实现函数如下 function [h,l]=huffman(p)if(length(find(p<0))~=0)error('Not a prob,negative component');end if(abs(sum(p)-1)>10e-10)error('Not a prob.vector,component do not add to 1')end n=length(p);q=p;12 m=zeros(n-1,n);for i=1:n-1 [q,l]=sort(q);m(i,:)=[l(1:n-i+1),zeros(1,i-1)];q=[q(1)+q(2),q(3:n),1];end for i=1:n-1 c(i,:)=blanks(n*n);end c(n-1,n)='0';c(n-1,2*n)='1';for i=2:n-1
c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))-(n-2):n*(find(m(n-i+1,:)==1)));c(n-i,n)='0';c(n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)='1';for j=1:i-1
c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1));end;end for i=1:n h(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n);ll(i)=length(find(abs(h(i,:))~=32));end l=sum(p.*ll);%在命令窗口或M文件里调用haffman函数 p=[1/2,1/4,1/8,1/16,1/16];[h,l]=huffman(p)
6.2数字信号基带传输系统
6.2.1、单极性非归零码以及功率谱的实现 function y=djx(x)%本函数实现将输入的一段二进制代码编码为相应的单极性非归零码输出 %输入x为二进制码,输出y为编好的码
%给出计算每一个码元的点数,因为我们只有用离散的点来得出连续的函数表示 grid=300;t=0:1/grid:length(x);for i=1:length(x)if(x(i)==1)for j=1:grid y((i-1)*grid+j)=1;end else for j=1:grid y((i-1)*grid+j)=0;end end end y=[y,x(i)];M=max(y);m=min(y);subplot(2,1,1);plot(t,y);hold on;axis([0,i,m-0.1,M+0.1]);%采用title命令来实现标记出各码元对应的二元信息
title(' 1 1 0 1 0 0 1 0 1 0 0 1 ');fs=100;x=1:1/fs:5;y=sin(pi*x);y=y./(pi*x);14 y(1)=1;dan1=y.*y;dan1=dan1/4;subplot(2,1,2);subplot(2,1,2);plot(x,dan1);axis([1,4,0,0.015]);title('单极性非归零码的功率谱');%函数调用t=[1 1 0 1 0 0 1 0 1 0 0 1];djx(t);
6.2.2、单极性归零码及其功率谱实现 function y=djxglm(x)grid=200;t=0:1/grid:length(x);for i=1:length(x)if(x(i)==1)for j=1:grid/2 y(grid/2*(2*i-2)+j)=1;y(grid/2*(2*i-1)+j)=0;end else for j=1:grid/2 y(grid*(i-1)+j)=0;end end end y=[y,x(i)];M=max(y);m=min(y);subplot(2,1,1);plot(t,y);axis([0,i,m-0.1,M+0.1]);title(' 1 1 0 1 0 0 1 15
0 1 0 0 1 ');fs=50;x=1:1/fs:5;y=sin(pi*x);y=y./(pi*x);y(1)=2;dan2=y.*y;dan2=dan2/4;subplot(2,1,2);plot(x,dan2);axis([1,5,0,0.05]);title('单极性归零码的功率谱');%在命令窗口或M文件中调用函数 t=[1 1 0 1 0 0 1 0 1 0 0 1];djxglm(t);
6.2.3、双极性非归零码及其功率谱的实现 function y=sjx(x)%本函数实现将输入的一段二进制代码编码为相应的双极性非归零码输出 %输入x为二进制码,输出y为编好的码 grid=300;t=0:1/grid:length(x);for i=1:length(x)if(x(i)==1)for j=1:grid y((i-1)*grid+j)=1;end else for j=1:grid y((i-1)*grid+j)=-1;end 16 end end y=[y,x(i)];M=max(y);m=min(y);subplot(2,1,1);plot(t,y);axis([0,i,m-0.1,M+0.1]);%采用title命令来实现标记出各码元对应的二元信息
title(' 1 1 0 1 0 0 1 0 1 0 0 1 ');fs=100;x=1:1/fs:5;y=sin(pi*x);y=y./(pi*x);y(1)=1;dan1=y.*y;dan1=dan1/4;subplot(2,1,2);plot(x,dan1);axis([1,4,0,0.02]);title('双极性非归零码的功率谱');%在命令窗口或M文件中调用函数 t=[1 1 0 1 0 0 1 0 1 0 0 1];sjx(t);
6.2.4、双极性归零码及其功率谱的实现 function y=sjxglm(x)%本函数实现将输入的一段二进制代码编码为相应的双极性归零码输出%输入x为二进制码,输出y为编好的码 grid=300;t=0:1/grid:length(x);for i=1:length(x)17
if(x(i)==1)for j=1:grid/2 y(grid/2*(2*i-2)+j)=1;y(grid/2*(2*i-1)+j)=0;end else for j=1:grid/2 y(grid/2*(2*i-2)+j)=-1;y(grid/2*(2*i-1)+j)=0;end end end y=[y,x(i)];M=max(y);m=min(y);subplot(2,1,1);plot(t,y);axis([0,i,m-0.1,M+0.1]);%采用title命令来实现标记出各码元对应的二元信息title(' 1 1 0 1 0 0 1 0 1 0 0 1 ');fs=50;x=1:1/fs:5;y=sin(pi*x);y=y./(pi*x);y(1)=2;dan2=y.*y;dan2=dan2/4;subplot(2,1,2);plot(x,dan2);axis([1,5,0,0.025]);title('双极性归零码的功率谱');%在命令窗口或M文件中调用函数
t=[1 1 0 1 0 0 1 0 1 0 0 1];sjxglm(t);
6.2.5、数字双相码及其功率谱的实现 function y=szsxm(x)%本函数实现将输入的一段二进制代码编码为相应的数字双相码输出 %输入x为二进制码,输出y为编好的码 grid=300;t=0:1/grid:length(x);for i=1:length(x)if(x(i)==1)for j=1:grid/2 y(grid/2*(2*i-2)+j)=1;%用从1到0的电平跳变来表示‘1’ y(grid/2*(2*i-1)+j)=0;end else for j=1:grid/2 y(grid/2*(2*i-2)+j)=0;%用从0到1的电平跳变来表示‘0’ y(grid/2*(2*i-1)+j)=1;end end end y=[y,x(i)];M=max(y);m=min(y);subplot(2,1,1);plot(t,y);axis([0,i,m-0.1,M+0.1]);%采用title命令来实现标记出各码元对应的二元信息
title(' 1 1 0 1 0 0 1 0 1 0 0 1 ');fs=100;x=1:1/fs:5;19
y=sin(pi*x/2);y=y./(pi*x/2);y(1)=1;mache=sin(pi*x/2).*sin(pi*x/2);mache=mache.*y;mache=mache.*y;subplot(2,1,2);plot(x,mache);axis([1,5,0,0.5]);title('数字双相码的功率谱');%在命令窗口或M文件中调用函数 t=[1 1 0 1 0 0 1 0 1 0 0 1];szsxm(t);
6.2.6、密勒码及其功率谱的实现 function y=mlm(x)%该函数实现密勒编码,输入码序列为x grid=100;t=0:1/grid:length(x);%定义时间序列 i=1;%由于第一码元的编码不定,我们直接给出 if(x(i)==1)for j=1:grid/2 y(grid/2*(2*i-2)+j)=0;%前半时间为0 y(grid/2*(2*i-1)+j)=1;%后半时间为1 end else for j=1:grid%若输入0 y(grid*(i-1)+j)=0;%码元持续时间内为0 end end for i=2:length(x)%开始进行密勒编码
if(x(i)==1)%若输入信息为1 for j=1:grid/2 y(grid/2*(2*i-2)+j)=y(grid/2*(2*i-3)+grid/4);%前半时间与前一码元后半时间值相同
y(grid/2*(2*i-1)+j)=1-y(grid/2*(2*i-2)+j);%后半时间与前半时间相反 end else if(x(i-1)==1)%反之,若前一信息为1,输入为0 for j=1:grid y(grid*(i-1)+j)=y(grid/2*(2*i-3)+grid/4);%所有时间与前一码元后半时间值相同 end else%前一信息为0 for j=1:grid y(grid*(i-1)+j)=1-y(grid/2*(2*i-3)+grid/4);%所有时间与前一码元后半时间值相反 end end end end y=[y,y(i*grid)];M=max(y);m=min(y);subplot(2,1,1);plot(t,y);axis([0,i,m-0.1,M+0.1]);%采用title命令来实现标记出各码元对应的二元信息
title(' 1 1 0 1 0 0 1 0 1 0 0 1 ');fs=100;x=1:1/fs:5;x=x*pi;miler=(23-2*cos(x)-22*cos(2*x)-12*cos(3*x)+5*cos(4*x)+12*cos(5*x)+2*c 21 os(6*x)-8*cos(7*x)+2*cos(8*x))./(17+8*cos(8*x));t=x.*x;miler=miler./t;miler(1)=0.2;x=x/pi;subplot(2,1,2);plot(x,miler);axis([1,5,0,0.3]);title('密勒码的功率谱')%下面是mlm函数的调用 t=[1 1 0 1 0 0 1 0 1 0 0 1];mlm(t);
6.2.7、AMI码及其功率谱的实现 *t2f.m文件:傅里叶变换 function X=t2f(x,dt)X=fftshift(fft(x))*dt;
function y=AMI(x)grid=300;t=0:1/grid:length(x);i=1;if(x(i)==1)for j=1:grid y(j)=1;h=1;end else for j=1:grid y(j)=0;end end for i=2:length(x)if(x(i)==1)if h==1 for j=1:grid y(grid*(i-1)+j)=-1;h=-1;end else if h==-1 for j=1:grid y(grid*(i-1)+j)=1;h=1;end end end else for j=1:grid y(grid*(i-1)+j)=0;end end end y=[y,x(i)];M=max(y);m=min(y);subplot(2,1,1);plot(t,y);axis([0,i,m-0.1,M+0.1]);%采用title命令来实现标记出各码元对应的二元信息title(' 1 1 0 1 0 0 1 0 1 0 0 1 ');Rt=0.5;k=14;N=2^k;L=64;M=N/L;Rb=2;Ts=1/Rb dt=Ts/L;df=1/(N*dt)T=N*dt Bs=N*df/2;t=[-T/2+dt/2:dt:T/2];f=[-Bs+df/2:df:Bs];Ep=zeros(size(f));for ii=1:50 n=1;while rem(n,2)~=0, a=round(rand(1,M));n=length(find(a==1));end bb=find(a==1);cc=bb(1:2:length(bb));b=a;
b(cc)=-ones(size(cc));ami=zeros(1,N);for tt=1:Rt*Ts/dt;ami(tt+[0:M-1]*L)=b;end AMI=t2f(ami,dt);P=AMI.*conj(AMI)/T;Ep=(Ep*(ii-1)+P)/ii;end aa=30+10*log10(Ep+eps);subplot(2,1,2);plot(f,aa);axis([-5,+5,-50,50]);title('AMI功率谱密度')%AMI函数的调用
t=[1 1 0 1 0 0 1 0 1 0 0 1];AMI(t);
6.2.8、HDB3码及其功率谱的实现 function X=t2f(x,dt)X=fftshift(fft(x))*dt;*HDB3_encoding.m文件:
function [changed_hdb3]=Hdb3_encoding(pcm)last_V=-1;last_one=-1;M=length(pcm);changed_hdb3=zeros(size(pcm));count=0;for i=1:M if(pcm(i)==1)changed_hdb3(i)=-last_one;last_one=changed_hdb3(i);count=0;else count=count+1;
if(count==4)count=0;changed_hdb3(i)=-last_V;last_V=changed_hdb3(i);if(i>4)if(changed_hdb3(i)*last_one==-1)changed_hdb3(i-3)=changed_hdb3(i);end end last_one=changed_hdb3(i);end end end %函数调用 clear all close all k=input(‘取样点数=2^k,k=[4]’);if isempty(k), k=14;end N=2^k;L=64;M=N/L;Rb=1;Ts=1/Rb;dt=Ts/L;df=1/(N*dt);T=N*dt;Bs=N*df/2;t=[-T/2+dt/2:dt:T/2];f=[-Bs+df/2:df:Bs];Ep=zeros(size(f));for ii=1:30 a=rand(1,M)>0.75;b=Hdb3_encoding(a);hdb=zeros(L,M);init=zeros(L,M);for loop=1:L/2 init(loop,:)=a;end for loop=1:L/2 hdb(loop,:)=b;end hdb=reshape(hdb,1,N);init=reshape(init,1,N);HDB=t2f(hdb,dt);P=HDB.*conj(HDB)/T;Ep=(Ep*(ii-1)+P)/ii;end init figure(9)subplot(3,1,1)plot(t,init,'m')grid on axis([0,T/10,-1.5,1.5])set(gca,'XTick',[0:1:T/10])xlabel('t(Tb)')ylabel('s(t)')title(‘原始序列’)subplot(3,1,2)plot(t,hdb,'b')grid on axis([0,T/10,-1.5,1.5])set(gca,'XTick',[0:1:T/10])xlabel('t(Tb)')ylabel('s(t)')title(‘HDB3编码序列’)subplot(3,1,3)aa=30+10*log10(Ep+eps);plot(f,aa,'r')grid on axis([-5,5,-50,50])xlabel('f(Rb)')ylabel('Ps(f)')title(‘HDB3码功率谱密度’)
第二篇:通信原理课程设计_(基于MATLAB的_2PSK_2DPSK仿真)
江西农业大学
通信原理课程设计报告
题 目 基于Matlab的相移键控仿真设计
专 业 电子信息工程
学生姓名 曾凡文
学 号 20121206
江西农业大学课程设计报告 二 0 一五 年 六 月
基于Matlab的2PSK,2DPSK仿真
摘要:现代通信系统要求通信距离远、通信容量大、传输质量好,作为其关键技术之一的调制技术一直是研究的一个重要方向。本设计主要叙述了数字信号的调制方式,介绍了2PSK数字调制方式的基本原理,功率谱密度,并运用MATLAB软件对数字调制方式2PSK进行了编程仿真实现,在MATLAB平台上建立2PSK和2DPSK调制技术的仿真模型。进一步学习了MATLAB编程软件,将MATLAB与通信系统中数字调制知识联系起来,为以后在通信领域学习和研究打下了基础在计算机上,运用MATLAB软件来实现对数字信号调制技术的仿真。
课程设计目的:通过课程设计,巩固已学过的*****知识,加深对其理解和应用,学会应用Matlab Simulink工具对通信系统仿真。
关键词:数字调制与解调;MATLAB;2PSK;2DPSK;
江西农业大学课程设计报告
第1章 基本工作原理
1.1 2PSK原理
1.1.1 2PSK基本原理
二进制移相键控,简记为2PSK或BPSK。2PSK信号码元的“0”和“1”分别用两个不同的初始相位“0”和“”来表示,而其振幅和频率保持不变.因此,2PSK信号的时域表达式为:
(t)=Acos其中,表示第n个符号的绝对相位:
t+)
=因此,上式可以改写为:
这种以载波的不同相位直接表示相应二进制数字信号的调制方式,称为二进制移相键控方式。二进制移相键控信号的典型时间波形如图1-1。
10011tTs江西农业大学课程设计报告
图1-1 二进制相移键控信号的时间波形
1.1.2 2PSK调制原理
在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。2PSK信号调制有两种方法,即模拟调制法和键控法。通常用已调信180°分别表示信号的 1 和 两个反相的载制。2PSK以载
号载波的 0°和 二进制数字基带0,模拟调制法用波信号进行调波的相位变化作为参考基准的,当基带信号为0时相位相对于初始相位为0°,当基带信号为1时相对于初始相位为180°。键控法,是用载二进制信息的调制和180°来分别代表达式为:
波的相位来携带方式。通常用0°表0和1。其时域
e2PSKang(tnTs)cosct
n其中,2PSK的调制中an必须为双极性码。两种方法原理图分别如图1-2和图1-3所示。
图1-2 模拟调制原理图
江西农业大学课程设计报告
图 1-3 键控法原理图
带通滤波器ae2PSK(t)相乘器c低通滤波器d抽样判决器定时脉冲e输出
cosct
1.1.3 2PSK解调原理
b由于2PSK的幅度是恒定的,必须进行相干解调。经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,在进行抽样判决。判决器是按极性来判决的。即正抽样值判为1,负抽样值判为0。2PSK信号的相干解调原理图如图1-4所示,各点的波形如图1-5所示。
由于2PSK信号的载波回复过程中存在着180°的相位模糊,即恢复的本地载波与所需相干载波可能相同,也可能相反,这种相位关系的不确定性将会造成解调出的数字基带信号与发送的基带信号正好相反,即“1”变成“0”吗“0”变成“1”,判决器输出数字信号全部出错。这种现象称为2PSK方式的“倒π”现象或“反相工作”。
图 1-4 2PSK的相干解调原理图
江西农业大学课程设计报告
edb10011atTstctt10011t
图 1-5 相干解调中各点波形图
1.2 2DPSK原理
1.2.1 2DPSK基本原理
二进制差分相移键控常简称为二相相对调相,记为2DPSK。它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。所谓相对载波相位是只本码元初相与前一码元初相之差。
传输系统中要保证信息的有效传输就必须要有较高的传输速率和很低的误码率。在传输信号中,2PSK信号和2ASK及2FSK信号相比,具有较好的误码率性能,但是,在2PSK信号传输系统中存在相位不确定性,并将造成接收码元“0”和“1”的颠倒,产生误码。为了保证2PSK的优点,又不会产生误码,将2PSK体制改进为二进制差分相移键控(2DPSK),及相对相移键控。
2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。现假设用Φ表示本码元初相与前一码元初相之差,并规定:Φ=0表示0码,Φ=π表示1码。则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图见图1-6。
江西农业大学课程设计报告
图1-6 2DPSK信号波形图
(a)绝对码(b)相对码10参考100011011(c)2DPSKt1.2.2 2DPSK调制原理
二进制差分相移键控。2DPSK方式是用前后相邻码元的载波相对相位变化来表示数字信息。假设前后相邻码元的载波相位差为,可定义一种数字信息与之间的关系为:
0(数字信息“0”)
(数字信息“1 为前一码元的相位。
实现二进制差分相移键控的最常用的方法是:先对二进制数字基带信号进行差分编码,然后对变换出的差分码进行绝对调相即可。2DPSK调制原理图如图1-7所示。
绝对码Dn相对码BnCnS2dpsk(t)+延时Ts波形变换×Coswc(t)
图1-7 2DPSK调制原理框图
1.2.3 2DPSK解调原理
2DPSK信号解调有相干解调方式和差分相干解调。用差分相干解调这种方法解调时不需要恢复本地载波,只要将DPSK信号精确地延迟一个码元时间间隔,然后与DPSK信号相乘,相乘的结果就反映了前后码元的相对相位关系,经低通滤波后直接抽样判决即可恢复出原始的数字信息,而不需要在进行差分解码。
第二章 设计系统
江西农业大学课程设计报告 2.1框图
两种解调方式的原理框图如图1-8和图1-9所示。
图 1-8 2DPSK差分相干解调原理框图
图 1-9 2DPSK相干解调原理框图
2.2工作原理
相干解调码变换法及相干解调法的解调原理是,先对2DPSK信号进行相干解调,恢复出相对码,再通过码反变换器变换为绝对码,从而恢复出发送的二进制数字信息。
在解调过程中,若相干载波产生180相位模糊,解调出的相对码将产生倒置现象,但是经过码反变换器后,输出的绝对码不会发生任何倒置现象,从而解决了载波相位模糊的问题。本次设计采用相干解调。
2.3设定参数 如附录1
江西农业大学课程设计报告
第三章 Matlab仿真
3.1显示系统不同部分的信号波形
3.1.1PSK如图3-1和图3-2所示
图3-1
图3-2
江西农业大学课程设计报告
3.1.2 2DPSK如图3-
3、图3-4和图3-5所示
图3-3
图3-4
江西农业大学课程设计报告
图3-5 3.2各种相移系统的比较和分析
例如“倒π”现象
对于相同的数字信号基带序列,由于初始相位不同,2DPSK信号的相位并不直接代表基带信号,而前后码元相对相位的差才唯一决定信号的符号。2PSK信号载波恢复过程中,存在着180°的相位模糊即恢复的本地载波与与所需的想干载波可能同相也可能反相,这种相位关系的不确定性将会造成解调出来的数字基带信号与发送的数字基带信号正好相反,即“1”变成“0”,“0”变成“1”,判决器输出的数字信号全部出错, 这种现象称为2PSK的“倒π”现象或“反相工作”。本地载波与发送端载波反向时,2PSK的解调波形与2DPSK完全相反
3.3不同方式解调下PSK、DPSK的误码率
误码率是指接收的码元数在传输总码元数中所占的比例,即:
误码率错误码元数传输总码元数 PSK相干解调:
误码率(r/2)DPSK相干解调:
误码率 DPSK差分非相干解调:
误码率1/2e^(-r)r为信噪比。
误码率是衡量一个数字通信系统性能的重要指标。在信道高斯白噪声的干扰下,各种二进制数字调制系统的误码率取决于解调器输入信噪比,而误码率表达式的形式则取决于解调方式。对于所有的数字调制系统误码率与信噪比的关系的图表来看,所有的曲线呈减函数的下降曲线,即随着信噪比的增大,误码率降低。横向比较来看,对于同一种调制方式,当信噪比相同时,采用相干解调方式的误码率低于非相干解调方式的误码率;纵向比较来看,对2PSK,2DPSK两种调制方式若采用同一种解调方式
江西农业大学课程设计报告(相干解调或非相干解调),则2PSK的误码率最低,2DSPK的误码率次之。当信噪比一定时,误码率由低到高依次是:2PSK的相干解调,2DPSK的相干解调,2DPSK的差分解的非相干调。
附录1 2PSK调制解调程序及注释: clear all close all i=10;j=5000;fc=4.6;%载波频率 fm=i/5;%码元速率 B=2*fm;t=linspace(0,5,j);a=round(rand(1,i));%随机序列,基带信号 figure(3);stem(a);st1=t;for n=1:10 if a(n)<1;for m=j/i*(n-1)+1:j/i*n st1(m)=0;end else for m=j/i*(n-1)+1:j/i*n st1(m)=1;end end end figure(1);subplot(411);plot(t,st1);title('基带信号st1');axis([0,5,-1,2]);%由于PSK中的是双极性信号,因此对上面所求单极性信号取反来与之一起构成双极性码
st2=t;for k=1:j;if st1(k)>=1;st2(k)=0;else
江西农业大学课程设计报告 st2(k)=1;end end;subplot(412);plot(t,st2);title('基带信号反码st2');axis([0,5,-1,2]);st3=st1-st2;subplot(413);plot(t,st3);title('双极性基带信号st3');axis([0,5,-2,2]);s1=sin(2*pi*fc*t);subplot(414);plot(s1);title('载波信号s1');e_psk=st3.*s1;figure(2);subplot(511);plot(t,e_psk);title('e_2psk');noise=rand(1,j);psk=e_psk+noise;%加入噪声 subplot(512);plot(t,psk);title('加噪后波形');psk=psk.*s1;%与载波相乘 subplot(513);plot(t,psk);title('与载波s1相乘后波形');[f,af] = T2F(t,psk);%通过低通滤波器 [t,psk] = lpf(f,af,B);subplot(514);plot(t,psk);title('低通滤波后波形');for m=0:i-1;if psk(1,m*500+250)<0;for j=m*500+1:(m+1)*500;psk(1,j)=0;end else for j=m*500+1:(m+1)*500;psk(1,j)=1;end
江西农业大学课程设计报告 end end subplot(515);plot(t,psk);axis([0,5,-1,2]);title('抽样判决后波形')
2DPSK调制解调程序及注释: clear all close all i=10;j=5000;fc=4.6;%载波频率 fm=i/5;%码元速率 B=2*fm;t=linspace(0,5,j);a=round(rand(1,i));figure(4);stem(a);st1=t;for n=1:10 if a(n)<1;for m=j/i*(n-1)+1:j/i*n st1(m)=0;end else for m=j/i*(n-1)+1:j/i*n st1(m)=1;end end end figure(1);subplot(321);plot(t,st1);title('绝对码');axis([0,5,-1,2]);b=zeros(1,i);%全零矩阵 b(1)=a(1);for n=2:10 if a(n)>=1;
江西农业大学课程设计报告 if b(n-1)>=1 b(n)=0;else b(n)=1;end else b(n)=b(n-1);end end st1=t;for n=1:10 if b(n)<1;for m=j/i*(n-1)+1:j/i*n st1(m)=0;end else for m=j/i*(n-1)+1:j/i*n st1(m)=1;end end end subplot(323);plot(t,st1);title('相对码st1');axis([0,5,-1,2]);st2=t;for k=1:j;if st1(k)>=1;st2(k)=0;else st2(k)=1;end end;subplot(324);plot(t,st2);title('相对码反码st2');axis([0,5,-1,2]);s1=sin(2*pi*fc*t);subplot(325);plot(s1);title('载波信号s1');s2=sin(2*pi*fc*t+pi);subplot(326);plot(s2);
江西农业大学课程设计报告 title('载波信号s2');d1=st1.*s1;d2=st2.*s2;figure(2);subplot(411);plot(t,d1);title('st1*s1');subplot(412);plot(t,d2);title('st2*s2');e_dpsk=d1+d2;subplot(413);plot(t,e_dpsk);title('调制后波形');noise=rand(1,j);dpsk=e_dpsk+noise;%加入噪声 subplot(414);plot(t,dpsk);title('加噪声后信号');dpsk=dpsk.*s1;%与载波s1相乘 figure(3);subplot(411);plot(t,dpsk);title('与载波相乘后波形');[f,af]=T2F(t,dpsk);%通过低通滤波器 [t,dpsk]=lpf(f,af,B);subplot(412);plot(t,dpsk);title('低通滤波后波形');st=zeros(1,i);%全零矩阵 for m=0:i-1;if dpsk(1,m*500+250)<0;st(m+1)=0;for j=m*500+1:(m+1)*500;dpsk(1,j)=0;end else for j=m*500+1:(m+1)*500;st(m+1)=1;dpsk(1,j)=1;end end end subplot(413);
江西农业大学课程设计报告 plot(t,dpsk);axis([0,5,-1,2]);title('抽样判决后波形')dt=zeros(1,i);%全零矩阵 dt(1)=st(1);for n=2:10;if(st(n)-st(n-1))<=0&&(st(n)-st(n-1))>-1;dt(n)=0;else dt(n)=1;end end st=t;for n=1:10 if dt(n)<1;for m=j/i*(n-1)+1:j/i*n st(m)=0;end else for m=j/i*(n-1)+1:j/i*n st(m)=1;end end end subplot(414);plot(t,st);axis([0,5,-1,2]);title('码反变换后波形');
第三篇:通信原理课程设计_(基于MATLAB的_2PSK_2DPSK仿真)
江西农业大学
通信原理课程设计报告
题 目 基于Matlab的相移键控仿真设计
专 业 电子信息工程
学生姓名 曾凡文
学 号 20121206
江西农业大学课程设计报告 2015年6月
基于Matlab的2PSK,2DPSK仿真
摘要:现代通信系统要求通信距离远、通信容量大、传输质量好,作为其关键技术之一的调制技术
一直是研究的一个重要方向。本设计主要叙述了数字信号的调制方式,介绍了2PSK数字调制方式的
基本原理,功率谱密度,并运用MATLAB软件对数字调制方式2PSK进行了编程仿真实现,在MATLAB平
台上建立2PSK和2DPSK调制技术的仿真模型。进一步学习了MATLAB编程软件,将MATLAB与通信系统
中数字调制知识联系起来,为以后在通信领域学习和研究打下了基础在计算机上,运用MATLAB软件
来实现对数字信号调制技术的仿真。
关键词:数字调制与解调;MATLAB;2PSK;2DPSK;
江西农业大学课程设计报告
江西农业大学课程设计报告
第1章 绪论
1.1 调制方式
数字通信系统, 按调制方式可以分为基带传输和带通传输。数字基带信号的功率一般处于从零开始到某一频率(如0~6M)低频段,因而在很多实际的通信(如无线信道)中就不能直接进行传输,需要借助载波调制进行频谱搬移,将数字基带信号变换成适合信道传输的数字频带信号进行传输,这种传输方式,称为数字信号的频带传输或调制传输、载波传输。所谓调制,是用基带信号对载波波形的某参量进行控制,使该参量随基带信号的规律变化从而携带消息。对数字信号进行调制可以便于信号的传输;实现信道复用;改变信号占据的带宽;改善系统的性能。
数字基带通信系统中四种基本的调制方式分别称为振幅键控(ASK,Amplitude-Shift keying)、移频键控(FSK,Frequency-Shift keying)、移相键控(PSK,Phase-Shift keying)和差分移相键(DPSK,Different Phase-Shift keying)。本次课程设计对PSK,DPSK这两种调制方式进行了仿真。
1.2 设计要求 1.2.1 设计内容
用MATLAB完成对2PSK、2DPSK的调制与解调仿真电路设计,并对仿真结果进行分析,可编写程序,也可硬件设计框图
1.2.2 设计参数(参数可以自行设置)
1、传输基带数字信号(15位)码元周期T=0.01S
2、载波频率:15KHz 1.2.3 设计仪器
计算机和MATLAB软件
江西农业大学课程设计报告
第2章 2PSK,2DPSK原理
2.1 2PSK原理 2.1.1 2PSK基本原理
二进制移相键控,简记为2PSK或BPSK。2PSK信号码元的“0”和“1”分别用两个不同的初始相位“0”和“”来表示,而其振幅和频率保持不变.因此,2PSK信号的时域表达式为:
(t)=Acos其中,表示第n个符号的绝对相位:
t+)
=因此,上式可以改写为:
这种以载波的不同相位直接表示相应二进制数字信号的调制方式,称为二进制移相键控方式。二进制移相键控信号的典型时间波形如图2-1。
10011tTs图2-1 二进制相移键控信号的时间波形
2.1.2 2PSK调制原理
在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。2PSK信号调制有两种方法,即模拟调制法和键控法。通常用已调信号载波的 0°和 180°分别表示二进制数字基带信号的 1 和 0,模拟调
江西农业大学课程设计报告
制法用两个反相的载波信号进行调制。2PSK以载波的相位变化作为参考基准的,当基带信号为0时相位相对于初始相位为0°,当基带信号为1时相对于初始相位为180°。
键控法,是用载波的相位来携带二进制信息的调制方式。通常用0°和180°来分别代表0和1。其时域表达式为:
e2PSKang(tnTs)cosct
n其中,2PSK的调制中an必须为双极性码。两种方法原理图分别如图2-2和图2-3所示。
图2-2 模拟调制
原理图
图 2-3 键控法原理
图
2.1.3 2PSK解调原理
由于2PSK的幅度是恒定的,必须进行相干解调。经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,在进行抽样判决。判决器是按极性来判决的。即正抽样值判为1,负抽样值判为0。2PSK信号的相干解调原理图如图2-4所示,各点的波形如图2-5所示。
由于2PSK信号的载波回复过程中存在着180°的相位模糊,即恢复的本地载波与所需 3
江西农业大学课程设计报告
相干载波可能相同,也可能相反,这种相位关系的不确定性将会造成解调出的数字基带信号与发送的基带信号正好相反,即“1”变成“0”吗“0”变成“1”,判决器输出数字信号全部出错。这种现象称为2PSK方式的“倒π”现象或“反相工作”。
e2PSK(t)带通滤波器a相乘器c低通滤波器d抽样判决器定时脉冲e输出
cosct
b
图 2-4 2PSK的相干解调原理图
edb10011atTstctt10011t图 2-5 相干解调中各点波形图
2.2 2DPSK原理 2.2.1 2DPSK基本原理
二进制差分相移键控常简称为二相相对调相,记为2DPSK。它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。所谓相对 4
江西农业大学课程设计报告
载波相位是只本码元初相与前一码元初相之差。
传输系统中要保证信息的有效传输就必须要有较高的传输速率和很低的误码率。在传输信号中,2PSK信号和2ASK及2FSK信号相比,具有较好的误码率性能,但是,在2PSK信号传输系统中存在相位不确定性,并将造成接收码元“0”和“1”的颠倒,产生误码。为了保证2PSK的优点,又不会产生误码,将2PSK体制改进为二进制差分相移键控(2DPSK),及相对相移键控。
2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。现假设用Φ表示本码元初相与前一码元初相之差,并规定:Φ=0表示0码,Φ=π表示1码。则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图见图2-6。
图2-6 2DPSK信号波形图(a)绝对码(b)相对码10参考100011011(c)2DPSKt
2.2.2 2DPSK调制原理
二进制差分相移键控。2DPSK方式是用前后相邻码元的载波相对相位变化来表示数字信息。假设前后相邻码元的载波相位差为,可定义一种数字信息与之间的关系为:
0(数字信息“0”)
(数字信息“1 为前一码元的相位。
实现二进制差分相移键控的最常用的方法是:先对二进制数字基带信号进行差分编码,然后对变换出的差分码进行绝对调相即可。2DPSK调制原理图如图2-7所示。
江西农业大学课程设计报告
绝对码Dn相对码BnCnS2dpsk(t)+延时Ts波形变换×Coswc(t)
图2-7 2DPSK调制原理框图
2.2.3 2DPSK解调原理
2DPSK信号解调有相干解调方式和差分相干解调。用差分相干解调这种方法解调时不需要恢复本地载波,只要将DPSK信号精确地延迟一个码元时间间隔,然后与DPSK信号相乘,相乘的结果就反映了前后码元的相对相位关系,经低通滤波后直接抽样判决即可恢复出原始的数字信息,而不需要在进行差分解码。
相干解调码变换法及相干解调法的解调原理是,先对2DPSK信号进行相干解调,恢复出相对码,再通过码反变换器变换为绝对码,从而恢复出发送的二进制数字信息。
在解调过程中,若相干载波产生180相位模糊,解调出的相对码将产生倒置现象,但是经过码反变换器后,输出的绝对码不会发生任何倒置现象,从而解决了载波相位模糊的问题。本次设计采用相干解调。两种解调方式的原理图如图2-8和图2-9所示。
2DPSK相干解调各点波形图如图 2-10所示。
图 2-8 2DPSK差分相干解调原理图
江西农业大学课程设计报告
图 2-9 2DPSK相干解调原理图
第3章 实验过程
3.1 2PSK仿真部分 3.1.1 2PSK仿真图
用MATLAB搭建好的2PSK仿真图如下:
江西农业大学课程设计报告
图3-1PSK仿真图
3.1.2 2PSK模块的参数设置: 1)相乘模块
图3-2 相乘器参数设置
2)低通滤波器模块
江西农业大学课程设计报告
图3-3 滤波器其参数设置
3)抽样判决模块
图3-4 pulse generator 参数设置
江西农业大学课程设计报告
3.2 2DPSK仿真部分 3.2.1 2DPSK仿真图
用MATLAB搭建好的2DPSK仿真图如下:
图3-5 2DPSK仿真图
2.2.2 2DPSK模块的参数设置: 1)载波模块
图3-6 载波参数设置
江西农业大学课程设计报告
2)乘法器模块
图3-7 乘法器参数设置
3)基带模块
图3-8 基带信号参数设置
江西农业大学课程设计报告
4)Unipolar to Bipolar Converte模块
图3-9 Unipolar to Bipolar Converter参数设置
5)码变换模块
图3-10 Logical Operator参数设置
江西农业大学课程设计报告
图3-11 Unit Delay参数设置
图3-12 Data Type Conversion参数设置
6)滤波器模块
江西农业大学课程设计报告
图3-13 带通滤波器参数设置
图3-14 低通滤波器参数设置
江西农业大学课程设计报告
第4章 仿真结果
4.1 2PSK仿真结果
图4-1 2PSK电路仿真波形
4.2 2DPSK仿真结果
江西农业大学课程设计报告
图4-2 2DPSK电路仿真波形
附录:
通过编写M文件程序: 2PSK调制解调程序及注释 clear all close all i=10;j=5000;fc=4;%载波频率 fm=i/5;%码元速率 B=2*fm;t=linspace(0,5,j);a=round(rand(1,i));%随机序列,基带信号 figure(3);stem(a);st1=t;16
江西农业大学课程设计报告
for n=1:10 if a(n)<1;for m=j/i*(n-1)+1:j/i*n st1(m)=0;end else for m=j/i*(n-1)+1:j/i*n st1(m)=1;end end end figure(1);subplot(411);plot(t,st1);title('基带信号st1');axis([0,5,-1,2]);%由于PSK中的是双极性信号,因此对上面所求单极性信号取反来与之一起构成双极性码 st2=t;
for k=1:j;
if st1(k)>=1;
st2(k)=0;
else
st2(k)=1;
end end;subplot(412);plot(t,st2);title('基带信号反码st2');axis([0,5,-1,2]);st3=st1-st2;subplot(413);plot(t,st3);title('双极性基带信号st3');axis([0,5,-2,2]);s1=sin(2*pi*fc*t);subplot(414);plot(s1);title('载波信号s1');e_psk=st3.*s1;figure(2);subplot(511);plot(t,e_psk);title('e_2psk');noise=rand(1,j);psk=e_psk+noise;
%加入噪声 subplot(512);plot(t,psk);title('加噪后波形');psk=psk.*s1;
%与载波相乘 subplot(513);plot(t,psk);title('与载波s1相乘后波形');[f,af] = T2F(t,psk);
%通过低通滤波器
[t,psk] = lpf(f,af,B);subplot(514);plot(t,psk);title('低通滤波后波形');for m=0:i-1;
if psk(1,m*500+250)<0;
for j=m*500+1:(m+1)*500;
psk(1,j)=0;
end
else
for j=m*500+1:(m+1)*500;
psk(1,j)=1;
end
end end subplot(515);plot(t,psk);axis([0,5,-1,2]);title('抽样判决后波形')
2DPSK调制解调程序及注释 clear all close all i=10;j=5000;fc=4;%载波频率 fm=i/5;%码元速率B=2*fm;t=linspace(0,5,j);a=round(rand(1,i));figure(4);stem(a);st1=t;for n=1:10 if a(n)<1;for m=j/i*(n-1)+1:j/i*n st1(m)=0;end else for m=j/i*(n-1)+1:j/i*n st1(m)=1;end end end 江西农业大学课程设计报告
figure(1);subplot(321);plot(t,st1);title('绝对码');axis([0,5,-1,2]);b=zeros(1,i);%全零矩阵 b(1)=a(1);for n=2:10 if a(n)>=1;if b(n-1)>=1 b(n)=0;else b(n)=1;end else b(n)=b(n-1);end end st1=t;for n=1:10 if b(n)<1;for m=j/i*(n-1)+1:j/i*n st1(m)=0;end else for m=j/i*(n-1)+1:j/i*n st1(m)=1;end end end subplot(323);plot(t,st1);title('相对码st1');axis([0,5,-1,2]);st2=t;for k=1:j;if st1(k)>=1;st2(k)=0;else st2(k)=1;江西农业大学课程设计报告 end end;subplot(324);plot(t,st2);title('相对码反码st2');axis([0,5,-1,2]);s1=sin(2*pi*fc*t);subplot(325);plot(s1);title('载波信号s1');s2=sin(2*pi*fc*t+pi);subplot(326);plot(s2);title('低通滤波后波形');st=zeros(1,i);
%全零矩阵for m=0:i-1;
if dpsk(1,m*500+250)<0;
st(m+1)=0;
for j=m*500+1:(m+1)*500;
dpsk(1,j)=0;
end
else
for j=m*500+1:(m+1)*500;
st(m+1)=1;
dpsk(1,j)=1;
end
end end subplot(413);plot(t,dpsk);axis([0,5,-1,2]);title('抽样判决后波形')dt=zeros(1,i);
%全零矩阵 dt(1)=st(1);for n=2:10;
if(st(n)-st(n-1))<=0&&(st(n)-st(n-1))>-1;
dt(n)=0;
else
dt(n)=1;
end end st=t;for n=1:10
if dt(n)<1;
for m=j/i*(n-1)+1:j/i*n
st(m)=0;
end
else
for m=j/i*(n-1)+1:j/i*n
st(m)=1;
end
end end 江西农业大学课程设计报告
江西农业大学课程设计报告
subplot(414);plot(t,st);axis([0,5,-1,2]);title('码反变换后波形')21
第四篇:通信原理课程设计报告
通信原理课程设计报告
电信0802 3080503031 王婉婉
题一:QPSK误码率性能研究以及QPSK和DQPSK调制信号性能的比较
(一):QPSK误码率性能
1:目的:本题是设计一个QPSK仿真模型,以衡量QPSK在高斯白噪声信道中的性能。
2:原理图解析 图中Bernoulli binary generator产生一个二进制向量,向量的长度等于2,分别代表QPSK Modulator baseband的两个输入信号。QPSK调制器产生的调制信号首先经过一个AWGN Channel然后进入QPSK Dodulator baseband进行解调;由于贝努力二进制序列产生器的输出信号是长度为2的二进制向量,而QPSK基带解调器模块的输出信号则是一个二进制序列,因此在对它们进行比较之前首先通过两个数值转换模块(Bit to integer Converter和Bit to integer Converter1),把它们转化成四进制数;最后两个数值转换的输出信号进入一个误码率统计模块(Error Rate Calculation),以统计QPSK解调信号的误码率。QPSK调制解调原理图如下图所示:
3:为了得到QPSK调制信号误码率与信号的信噪比之间的关系,所需m文件代码如下:
xSampleTime=1/100000;xSimulationTime=10;xInitialSeed=[61 71];xPhaseOffset=pi/4;x=0:10;y=x;hold off;for index=1:4 xSamplesPerSymbol=index;switch index case 1 xReceiveDelay=0;color='r';case 2 xReceiveDelay=1;color='g';case 3 xReceiveDelay=1;color='b';case 4 xReceiveDelay=1;color='m';end for i=1:length(x)xSNR=x(i);sim('QPSK');y(i)=xErrorRate(1);end semilogy(x,y,color);hold on;end
4:将仿真截止时间设为0.1秒,可得如下图示仿真结果:
图中:4条曲线分别表示当QPSK调制器和解调器的Samples per symbol参数等于1,2,3,4时QPSK信号的误码率性能从图中可以看出Samples per symbol参数的设置在很大程度上影响着QPSK信号的解调性能。
(二)DQPSK和QPSK调制信号性能的比较
1:在DQPSK调制的仿真模型中,Bernoulli binary generator产生一个二进制向量,向量的长度等于2,分别代表DQPSK两个支路的输入信号。我们采用DQPSK Modulator baseband对这个信号进行调制产生DQPSK基带调制信号;
基带调制信号首先经过一个AWGN Channel然后进入DPSK Dodulator baseband进行解调;由于贝努力二进制序列产生器的输出信号在通过Bit to integer Converter转换成整数后,与DPSK解调信号一起进入一个误码率统计模块(Error Rate Calculation),以统计DPSK的误码率。DQPSK 调制解调原理图如下图所示:
2:将DQPSK和QPSK的误码率性能曲线绘出的m文件如下所示:
xSampleTime=1/100000;xSimulationTime=10;xInitialSeed=[61 71];xPhaseOffset=pi/4;xSamplesPerSymbol=1;xReceiveDelay=0;x=0:10;y1=x;y2=x;for i=1:length(x)xSNR=x(i);sim('DQPSK');y1(i)=xErrorRate(1);sim('QPSK');y2(i)=xErrorRate(1);end semilogy(x,y1,'r');gtext('DQPSK');hold on;semilogy(x,y2,'g');gtext('QPSK');
3:将仿真截止时间设为2秒,可得如下图示仿真结果:
图中紫红色曲线表示DQPSK调制信号的误码率,而绿色曲线表示QPSK调制信号的误码率,从图中可见在相同条件下(相同的数据源、相同的信噪比以及相同的调制信号抽样数),QPSK调制信号的性能优于DQPSK。
题二:SSB信号的调制与解调
1:其调制解调原理图如下图所示:
单边带调制系统中,发送端只传输频带幅度调制信号的上边带或下边带,它使用的带宽只是双边带调制信号的一半,因此具有更高的频带利用率,下图中,将输入信号进行SSB调制,然后将其解调回复原波形。图中示波器用以观察信号调制解调各个阶段的波形。
2:仿真结果如下所示:
示波器显示结果
注:第一个和第六个是输入信号波形,第二个是下边带调制信号,第三个是已调制是的信号波形,第四个是已解调的信号波形,第五个是下边带信号波形。
三:参考资料
【1】MATLAB通信仿真及应用实例详解 邓华等编著 人民邮电出版社
【2】MATLAB仿真在通信与电子工程中的应用 徐明远 邵玉斌编著 西安电子科技大学出版社
第五篇:通信原理课程设计报告
课 题 学 院 专 业 学生姓名学 号 班级 指导教师
通信原理 课程设计报告
基于MATLAB的2FSK仿真 电子信息工程学院 通信工程
二〇一五年一月
基于MATLAB的基带传输系统的研究与仿真
—— 码型变换
摘 要
HDB3码编码规则
首先将消息代码变换成AMI码;然后检查AMI码中的连0情况,当无4个或4个以上的连0串时,则保持AMI的形式不变;若出现4个或4个以上连0串时,则将1后的第4个0变为与前一非0符号(+1或-1)同极性的符号,用V表示(+1记为+V,-1记为-V);最后检查相邻V符号间的非0符号的个数是否为偶数,若为偶数,则再将当前的V符号的前一非0符号后的第1个0变为+B或-B符号,且B的极性与前一非0符号的极性相反,并使后面的非0符号从V符号开始再交替变化
关键词: HDB3码 MATLAB编码原则 V码 B码
目
一、背景知识
二、MATLAB仿真软件介绍
三、仿真的系统的模型框图
四、使用MATLAB编程(m文件)完成系统的仿真
五、仿真结果
六、结果分析
七、心得、参考文献
录
正文部分
一、背景知识
在实际的传输系统中,并不是所有的代码电气波形都可以信道中传输。含有直流分量和较丰富的单极性基带波形就不适宜在低频传输特性差的信道中传输,因为它有可能造成信号的严重的畸变。
在传输码(或称线路吗)的结构将取决于实际信道特性和系统的工作条件。通常,传输码的结构应具有以下的特性:
(1)相应的基带信号无直流分理,且低频分量少(2)便于从信号中提取定时信息
(3)信号中高频分应尽量少以节省传输频带并减少码间串扰(4)不受信号源统计特性影响,即能适应于信息源变化
(5)具有内在的检错能力,传输的码型应具有一定的规律性,以便利用这一规律性进行宏观监测
(6)编译码设备要尽可能简单
满足以上特性的传输码型种类繁多,这里使用HDB3。
要了解HDB3码的编码规则,首先要知道AMI码的构成规则,AMI码就是把单极性脉冲序列中相邻的“1”码(即正脉冲)变为极性交替的正、负脉冲。将“0”码保持不变,把“1”码变为+
1、-1交替的脉冲。如: NRZ码: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 HBD3码(3nd Order High Density Bipolar)的全称是三阶高密度双极性码,它是AMI码的一种改进型,改进目的是为了保持AMI码的优点而克服其缺点,使连“0”个数不超过3个。其编码规则:
(1)检查消息码中连“0”的个数。当连“0”数目小于等于3时,HBD3码与AMI码一样(“1”交替的变换为“+1”和“-1”,“0”保持不变)。
(2)当连“0”数目超过3时,将每4个连“0”化作一小节,定义为“B00V"称为破坏节,其中V称为破坏脉冲,而B称为调节脉冲;
(3)V与前一个相邻的非“0”脉冲的极性相同(这破坏了极性交替的规则,所以V称破坏脉冲),并且要求相邻的V码之间极性必须交替。V的取值为“+1”或“-1”;
(4)B的取值可选0、+1或-1,以使V同时满足(3)中的两个要求;(5)V码后面的传号码极性也要交替。例如:
消息码: 1 000 0 1 000 0 1 1 000 0 000 0 1 1 AMI码:-1 000 0 +1 000 0-1+1 000 0 000 0-1+1 HDB3码:-1 000-V +1 000+V-1+1-B00-V +B00+V-1+1 其中的±B脉冲和±V脉冲与±1脉冲波形相同,用V或B表示的目的是为了示意其中的该非“0”码是由原信码的“0”变换而来的。
当相邻两个V码之间有奇数个“1”码时,能保证V码满足(3)的要求,B取“0”;当相邻两个V码之间有偶数个“1”码时,不能保证V码极性交替,B取“+1”或“-1”,B码的符号与前相邻“1”相反,而其后面的V码与B码极性相同。
二、MATLAB简介
美国MATHWORK公司于1967年推出了“Matrix Laboratory”(缩写为MATLAB)软件包,不断更新和扩充。它是一种功能强、效率高便于进行科学和工程计算的交互式软件包。其中包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。在新的版本中也加入了对C,FORTRAN,c++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用,非常的方便。
MATLAB的基础是矩阵计算,但是由于他的开放性,并且mathwork也吸收了像maple等软件的优点,使MATLAB成为一个强大的数学软件。
当前流行的MATLAB 6.5/7.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox)。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。
开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。
Matlab的优势和特点:
(1)友好的工作平台和编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
(2)简单易用的程序语言
Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
(3)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如距阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
(4)出色的图形处理功能
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和距阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使他不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(5)应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,他们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(6)实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。
MATLAB的一个重要特色就是他有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
(7)应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5。
三、仿真的系统的模型框图
(1)实验编码原理框图如下所示 :
(2)以下是V码以及B码产生的框图:
(3)V码产生单元的工作流程图
(4)B码产生单元的工作流程图 译码规则: 在接收端,将接收到的HDB3码序列恢复为原输入二进制数字信息序列的过程称为译码。
对HDB3码而言,译码就是找到编码时插入的特殊序列并将它恢复为0000。根据编码原则,HDB3的译码可分为三个步骤:
(1)根据“V”的极性特点,找出特殊序列。由于编码时,每个“V”的极性 都与其前一个“1”码的极性相同,所以,在接收序列中一旦出现连续两个同极性码时,两个同极性码的后一个即为“V”,此“V”与其前的三位码就是一个特殊序列;
(2)将所有的特殊序列都恢复为“0000”;
(3)将正、负脉冲都恢复为“1”码,零电平恢复为“0”码。下图是译码的框图:
四、使用MATLAB编程(m文件)完成系统的仿真
程序源代码
global dt df t f N close all
N=2^13;
%采样点数
L=8;
%每码元的采样点数
M=N/L;
%码元数
Rb=2;Ts=0.5;
%码元宽度是0.5us dt=Ts/L;
df=1/(N*dt);
%MHz RT=0.5;
%占空比 T=N*dt;
%截短
Bs=N*df/2;
%系统带宽
t=[-T/2+dt/2:dt:T/2];
%时域横坐标
f=[-Bs+df/2:df:Bs];
%频域横坐标 figure(1)
set(1,'Position',[10,50,300,200])
%设定窗口位置及大小
figure(2)
set(2,'Position',[350,50,300,200])
%设定窗口位置及大小
EPAMI=zeros(size(f));EPHDB=zeros(size(f));for ii=1:8 ami=zeros(1,M);hdb=zeros(1,M);a=round(rand(1,M));
b=3;
%表示0000之间循环个数
c=-1;
%记载相邻V之间的1元素个数
sign1=-1;
%标志前一个信号
sign2=-1;
%标志前一个信号
for ii=1:M
if a(ii)==1
sign1=0-sign1;ami(ii)=sign1;
end End for ii=1:M
if b==3
%表示非0000
if a(ii)==1
sign2=0-sign2;hdb(ii)=sign2;
if c>=0
%表示不是第一个0000
c=c+1;
%用来计算相邻v之间的非0元素个数
end
elseif ii<=M-3 & a(ii)+a(ii+1)+a(ii+2)+a(ii+3)==0
if mod(c,2)==1
%000V hdb(ii+3)=sign2;
else
%B00V
sign2=0-sign2;hdb(ii)=sign2;
hdb(ii+3)=sign2;
end
c=0;
b=0;
end
elseif b<3
%对0000的循环
b=b+1;
End end
for i=[1:L] ami1(i+[0:M-1]*L)=ami;hdb1(i+[0:M-1]*L)=hdb;end
AMI=T2F*(ami1);
PAMI=AMI.*conj(AMI)/T;HDB=T2F*(hdb1);
PHDB=HDB.*conj(HDB)/T;EPAMI=(EPAMI*(ii-1)+PAMI)/ii;EPHDB=(EPHDB*(ii-1)+PHDB)/ii;figure(1)
aa=30+10*log10(EPAMI+eps);
%加eps以避免除以零
bb=30+10*log10(EPHDB+eps);plot(f,aa,'g');grid
axis([-8,+8,-80,80])xlabel('f(MHz)')
ylabel('AMIPs(f)
(dBm/MHz)')figure(2)plot(f,bb,'b');grid
axis([-8,+8,-80,80])xlabel('f(MHz)')
ylabel('HDBPs(f)
(dBm/MHz)')figure(3)subplot(3,1,1)tt=[1:40];
stem(tt,a(1:40),'g')title('原始RNZ信号')s ubplot(3,1,2)
stem(tt,ami(1:40),'g')title('AMI信号')subplot(3,1,3)
stem(tt,hdb(1:40),'g')title('HDB码')end
%将下面的代码保存在t2f.m文件中
function X=t2f(x)global dt df N t f T
%X=t2f(x)
%x为时域的取样值矢量 %X为x的傅氏变换
%X与x长度相同,并为2的整幂。
%本函数需要一个全局变量dt(时域取样间隔)H=fft(x);
X=[H(N/2+1:N),H(1:N/2)]*dt;end
五、仿真结果
六、结果分析和心得
HDB3(High DensityBinary-3)码的全称是3阶高密度双极性码。它是AMI码的一种改进型,主要是为了克服AMI码中连“0”时所带来的提取定时信息的困难。HDB3编码规则是:先把消息代码中的“1”交替变成“+1”和“-1”,“0”仍然保持“0”不变的AMI码,然后去检查AMI码的连“0”的情况 ,当没有4个和4个以上连“0”串时 ,这样的AMI码就是HDB3码 ;当出现4个和4个以上连“0”串时,则将每4个连“0”的小段的第4个“0”变换成与其前一个非零符号相同极型的符号,并用“+V”和“-V”表示.若此“V”使后面的序列破坏了“极性交替反转” 的原则,则将出现直流分量。故需要保证相邻“V”的符号也是极性相反,所以,当不满足V也极性相反时,将这个连“0” 码无串的等一个“0” 变成“-B”和“+B”。“B”的符号与前一个非“0”码的符号相反,并且让后面的非“0” 码元符号从“V” 码开始再交替变化。
HDB3码译码比较容易,从收到的符号序列中可以容易地找到破坏点V,于是也断定V符号及其前面3 个符号必是连0 符号,从而恢复4个连0码,再将所有的-1变成+1后便得到原消息代码。
下面用例题来进一步说明编码与译码的原理: 例:求序列***000对应的HDB3码。编码译码步骤如下: 找出四连0序列;用特殊序列代替连0序列,第一个特殊序列可任意选择如选择100V。
将“1”和“V”标上极性“+1”或“-1”。输入数据中的“1”和特殊序列中的“1”作为一个整体极性交替,第一个“1”的极性可任意选择如选择“-1”。第一个特殊序列中的“V“与其前第一个“1”的极性相同,后面的“V”依次极性交替。
根据上面步骤列出系列各式以及画图,实现HDB3码的编码。
通过译码原理可知:V码与B码的极性相同,我们可以对这个输出码从后开始译码,自然而然的可以得到原输入的序列,此时,编码与译码就完成了。
另外说明:1.由于第一个特殊序和第一个“1”的极性均可任意选择,所以同一数字信息序列的HDB3可有四种不同的形式。2.当编码的序列足够长时,我们的编码与译码过程中更容易得到规律。
以上的程序便是综合了HDB3的编码译码以及对于其仿真的全部过程,此是经过了本组成员的反复修改最终制作而成,对于HDB3的编译码有了更加深入的了解。
七、参考文献
1.郭文彬,桑林编著,通信原理-基于Matlab的计算机仿真,北京邮电大学出版社,2006 2.曹志刚,钱亚生,现代通信原理,清华大学出版社,2002年
3.郭仕剑等,《MATLAB 7.x数字信号处理》,人民邮电出版社,2006年
4.樊昌信,曹丽娜编著,通信原理学习指导,西安电子科技大学,2003