资源描述
PCM通信系统的性能分析与MATLAB仿真
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
淮海工学院
课程设计报告书
课程名称: 通信系统的计算机仿真设计
题 目:PCM通信系统的性能分析与MATLAB仿真
系 (院): 电子工程学院
学 期: 10-11-2
专业班级: 通信工程082
姓 名: 刘怀玉
学 号: 040822108
评语:
成绩:
签名:
日期:
1绪论
14
目录
1 绪论.。。.。。。..。。.。.........。。。.。.。.。。。.。。。。...。。。......。。。。....。..2
1。1 研究背景与研究意义 。。。.。。。..。...。。。...。.。.。....。..。。.。.。。.。。2
1。2 课程设计的目的和任务......。。。。。..。。。..。.....。.。。.....。。..。.。2
2 PCM通信系统。....。....。。.。。.。。.。。。。。。.。。..。。.。。....。.。.......。。。2
2。1蒙特卡罗模型通信系统基本模型。。.。。..。.。.。。...。...。.。。....。。.2
2。2 PCM通信系统的主要性能指标。..。。。。。.。。。....。..。..。.。。.。.。..。.3
3 PCM通信系统主要模块.。。。.。..。。。。........。....。。.。...。。。。。....。.3
3.1信号源 .......。.。。。....。。..。。.。..。。。。。...。.。..。...。..。..。..。。。.3
3。2抽样。.。.。。....。.。...。.。..。。...。。.。。.。。。。。。..。。.。..。.。..。....。。.3
3。3量化。。。。.。.。..。。..。。.。.。.。。。..。。..。....。。.。.。。。。。.......。.。。。。.3
3.4信道编码.....。。。。。.。...。。。。。..。.....。..。.。。.。.。。.。.。。.。。..。.。..4
3.4.1无信道编码。..。。。.。.。。。.。.。。.。。。。。.。。...。。。...。。.。.。.。........4
3。4.2 汉明编码.。..。。..。......。。。...。。.。。...。。..。。。。。..。..。。。...。。..4
3。4。3 循环编码。。..。。...。..。。.。..。。。..。...。..。..。。。...。...。。..。.。。。.4
3.5 调制.。。。.。。.。.。。。。。。。。..。。。..。..。。..。。.。。。。。。.。。。。。....。。。。。。。4
3.6加入高斯加性白噪声并解调判决和译码..。.。..。。。.。.。。...。。.。。.5
3。7 计算误码率。。........。。。.。。。....。.。。.。..。.。。..。。。。.。.......。.。5
4 PCM通信系统仿真图和结果分析...。。......。。。..。。..。...。。。.....。5
4.1 PCM通信系统的仿真图。。..。。...。。.。.。。..。.。.。。.。。...。......。.。6
4。2 结果分析。。.....。.。.....。.。。。。。.。..。.。。。。。.。.。。。。..。。.。。。。.。。。7
5参考文献..。。..。.。..。..。....。。。.。。.。.....。。。.。。..。.。。.。.....。..。7
6附录..。.。.。。。...。。..。...。。。。...。。。。...。..。。。.....。。。.。.....。....8
1 绪论
1.1 研究背景与研究意义
实验在高等学校的人才培养过程中起着非常重要的作用。实验的创新,必须“四个有利于”出发:有利于激发学生对实验的学习兴趣和积极性,有利于提高学生理论联系实际的实践性,有利于引导学生培养科学的工作和学习作风及创新能力,有利于促进学生对整个学科体系全面而又深入的理解。大多数传统实验是硬件实验,即采用由元件、电路等硬代替实际应用的设备、系统,具有真实、直观、形象等特点,学生易于理解和操作,但它需要较大的资金投入和较大的实验场所,且不能及时跟随现代科学技术理论的快速发展而创新,特别是通信等方面的专业实验教学设备.在实验的过程中,实验手段是关键,它直接影响到实验的质量、学生的学习兴趣和学习效果.实验手段要充分利用现代化手段,如电化、计算机辅助 、计算机仿真等手段,特别是利用计算机进行实验仿真。计算机仿真实验。
1.2 课程设计的目的和任务
1 课程设计的目的:
本次课程设计是根据“通信工程专业培养计划”要求而制定的.通信系统的计算机仿真设计课程设计是通信工程专业的学生在学完通信工程专业基础课、通信工程专业主干课及科学计算与仿真专业课后进行的综合性课程设计.其目的在于使学生在课程设计过程中能够理论联系实际,在实践中充分利用所学理论知识分析和研究设计过程中出现的各类技术问题,巩固和扩大所学知识面,为以后走向工作岗位进行设计打下一定的基础。
2 课程设计的任务:
(1)掌握一般通信系统设计的过程、步骤、要求、工作内容及设计方法;掌握用计算机仿真通信系统的方法。
(2)训练学生网络设计能力。
(3)训练学生综合运用专业知识的能力,提高学生进行通信工程设计的能力.
2 PCM通信系统
2。1 蒙特卡罗模型通信系统基本模型
仿真基本框图如下:
信号源
信道
PCM
量化
抽样
解调
性能
分析
译码
噪声
2.1。1 脉冲编码基本原理
脉冲编码调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输.对模拟信号先抽样,再对样值幅度量化,编码的过程。将模拟信号离散化,即对模拟信号按一定的时间间隔进行抽样;然后再将无限个可能的抽样值(不是指抽样点的个数,而是每个抽样点的可能取值)变成有限个可能取值,我们称之为量化;最后对量化后的抽样值用二进制(或多进制)码元进行编码,就可得到所需要的数字信号。所谓编码就是用一组符号(码组)取代或表示另外一组符号(码组或数字)的过程。这种将模拟信号经过抽样、量化、编码三个处理步骤变成数字信号的A/D转换方式称为脉冲编码调制(PCM,Pulse Code Modulation)。文档为个人收集整理,来源于网络文档为个人收集整理,来源于网络
PCM传输系统图如图1。
图1 PCM传输系统
2.2 PCM通信系统的主要性能指标
信噪比范围在—25dB~25dB之间,抽样频率为8000Hz,抽样点数为400
3 PCM通信系统主要模块
PCM通信系统的主要模块为信号源,抽样,量化,信道编码,调制,加入高斯加性白噪声并解调判决和译码,计算误码率.
3。1 信号源
本实验采用正弦信号,幅度为2048,即 S=2048*sin(w*t);
3.2抽样
(a) 抽样
所谓抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号。该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号.它的抽样速率的下限是由抽样定理确定的。
本实验中所选抽样周期ts=0.000125s,抽取300个样值,抽样后画出其时域上的图形,然后进行离散傅里叶变换得到其频谱图。主要MATLANB程序如下:
figure(1)
clear;
t=0。05;
ts=0.000125;
fs=1/ts;
df=0。5;
t1=[-t/2:ts:t/2];
s=2048*sin(300*2*pi*t1);
[n,mn,dy]=fftseq(s,ts,df);
n=n/fs;
f=[0:dy:dy*length(mn)-dy]—fs/2;
subplot(2,1,1);stem(t1,s);
xlabel('时间’);title(’原信号波形’);
axis([—0。005 0.005 —2048 2048]);
subplot(2,1,2);plot(f,abs(fftshift(n)));
axis([—1000,1000,0,60]);
xlabel('频率');ylabel('幅频’);title(’原信号频谱’);
3.3 量化
(b) 量化
从数学上来看,量化就是把一个连续幅度值的无限数集合映射成一个离散幅度值的有限数集合。
模拟信号的量化分为均匀量化和非均匀量化。由于均匀量化存在的主要缺点是:无论抽样值大小如何,量化噪声的均方根值都固定不变。因此,当信号较小时,则信号量化噪声功率比也就很小,这样,对于弱信号时的量化信噪比就难以达到给定的要求。通常,把满足信噪比要求的输入信号取值范围定义为动态范围,可见,均匀量化时的信号动态范围将受到较大的限制。为了克服这个缺点,实际中,往往采用非均匀量化。
非均匀量化是根据信号的不同区间来确定量化间隔的。对于信号取值小的区间,其量化间隔也小;反之,量化间隔就大.它与均匀量化相比,有两个突出的优点.首先,当输入量化器的信号具有非均匀分布的概率密度(实际中常常是这样)时,非均匀量化器的输出端可以得到较高的平均信号量化噪声功率比;其次,非均匀量化时,量化噪声功率的均方根值基本上与信号抽样值成比例。因此量化噪声对大、小信号的影响大致相同,即改善了小信号时的量化信噪比.
采用不均匀量化,本实验采用13折线法,主要MATLAB实现程序如下:
function [c]=PCMcode(y)
c=[0 0 0 0 0 0 0 0 ]
if(y>0)
c(1)=1;
else
c(1)=0;
end
y=abs(y);
if(y>=0&y〈16)
c(2)=0;c(3)=0;c(4)=0;step=1;st=0;
elseif(y>=16&y<32)
c(2)=0;c(3)=0;c(4)=1;step=1;st=16;
elseif(y>=32&y<64)
c(2)=0;c(3)=1;c(4)=0;step=2;st=32;
elseif(y〉=64&y〈128)
c(2)=0;c(3)=1;c(4)=1;step=4;st=64;
elseif(y〉=128&y〈256)
c(2)=1;c(3)=0;c(4)=0;step=8;st=128;
elseif(y>=256&y<512)
c(2)=1;c(3)=0;c(4)=1;step=16;st=256;
elseif(y>=512&y<1024)
c(2)=1;c(3)=1;c(4)=0;step=32;st=512;
elseif(y>=1024&y<=2048)
c(2)=1;c(3)=1;c(4)=1;step=64;st=1024;
end
if(y<2048)
t=floor((y-st)/step);
p=dec2bin(t,4)—48;
c(5:8)=p(1:4);
else
c(5:8)=[1 1 1 1]
end
3。4 信道编码
(c) 编码
所谓编码就是把量化后的信号变换成代码,其相反的过程称为译码.当然,这里的编码和译码与差错控制编码和译码是完全不同的,前者是属于信源编码的范畴。
编码的实现是由编码器完成的。在现有的编码方法中,若按编码的速度来分,大致可分为两大类:低速编码和高速编码.通信中一般都采用第二类。编码器的种类大体上可以归结为三类:逐次比较型、折叠级联型、混合型。在逐次比较型编码方式中,无论采用几位码,一般均按极性码、段落码、段内码的顺序排列。图 2 为逐次反馈型编码器。
图2 编码器
在相同信噪比的情况下分别进行三种不同的信道编码,分别是无信道编码,汉明编码和循环编码。
3。4.1无信道编码
基带波形采用双极性不归零波形,不对信道进行编码。
3.4.2 汉明编码
对信道进行汉明编码,其程序如下:
c1=c.’;c7=c;
c1=reshape(c1,4,800);c1=c1。’;%c1=800*4,前两行对应c第一行
c2=encode(c1,7 ,4,'hamming/binary’);
3。4.3 循环编码
对信道进行循环编码,其程序如下:
c3=encode(c7,15,8,'cyclic/binary');%(15,8)循环码编码
3.5 调制
无信道编码,汉明编码和循环编码均采用2ASK进行调制.
3.6 加入高斯加性白噪声并解调判决和译码
在相同条件下分别加入高斯加性白噪声,信噪比范围在—25dB~25dB之间,步长为5dB,然后在接受端进行相应的解调并经行判决和译码,如果所得值大于0则判为1,小于0判为0。主要MATLAB实现程序如下:
m=m+sigma*randn(400,8);
m(find(m〉=0))=1;m(find(m〈0))=0;
errors=zeros(400,8);errors(find(m~=c))=1;
errors=reshape(errors,1,3200);
biterrors=sum(errors);
bit1(q)=biterrors/(400*8);
rx1=tx1+sigma*randn(800,7);
rx2=tx2+sigma*randn(400,15);%加噪声
rx1(find(rx1>=0))=1;rx1(find(rx1〈0))=0;%判决,解调
rx2(find(rx2〉=0))=1;rx2(find(rx2<0))=0;
c22=decode(rx1,7,4,'hamming/binary');%hamming信道译码800*4
c33=decode(rx2,15,8,'cyclic/binary');%循环译码
3.7 计算误码率
依次改变信噪比,得到在特定信噪比下的误码率。信噪比范围在-25dB~25dB之间,步长为5dB。根据得到的误码率数据,绘出误码率-信噪比曲线图,主要MATLAB程序如下:
errors1=zeros(800,4);
errors2=zeros(400,8);
errors1(find(c22~=c1))=1;
errors2(find(c33~=c7))=1;
errors1=reshape(errors1,1,3200);
errors2=reshape(errors2,1,3200);
biterrors1=sum(errors1);
biterrors2=sum(errors2);%统计错误
errorbit(q)=biterrors1/(400*8);
errorbit2(q)=biterrors2/(400*8);%误码率
end
4 PCM通信系统仿真图和结果分析
对PCM通信系统进行仿真,得到抽样信号时域图及频谱图,三种情况下的误码率-信噪比曲线图,2ASK的星座图。
4.1 PCM通信系统的仿真图
图一 抽样信号时域图及频谱图
图二 误码率-信噪比曲线图
图三 2ASK的星座图
4。2结果分析
从图二中可以得出在其他条件相同时同一信道编码条件下不同信噪比时所得的误码率不一样,且信噪比越高所得到的误码率越小,;在同一信噪比条件下不同的信道编码所得到的误码率也不一样,其中汉明编码对应的误码率最小,循环编码的误码率次之,无信道编码时对应的误码率最大,从表一中可以清楚的得出如上结论,表一如下:
信道编码方式
信噪比(db)
()
-20
-15
-10
—5
0
无信道编码
0。4856
0。4872
0。4644
0.4425
0.4188
循环编码
0。4512
0。4275
0.3653
0.2463
0.0553
汉明编码
0。4418
0.4147
0.3322
0。2052
0。0338
表一 不同信噪比时的误码率
5 参考文献
1 赵静.基于MATLAB的通信系统仿真。北京:北京航空航天大学出版社,2007
2 樊昌信,曹丽娜。通信原理.北京:国防工业出版社,2010
3 王华。MATLAB电子仿真与应有教程.北京:国防工业出版社,2010
4 王世一。数字信号处理。北京:北京理工大学出版社,2010
5 邓华。MATLAB通信仿真及应用实例详解。北京:人民邮电出版社,2006
6 孙祥。MATLAB7.0基础教程.北京:清华大学出版社,2005
6 附录
figure(1)
clear;
t=0。05;
ts=0。000125;
fs=1/ts;
df=0。5;
t1=[—t/2:ts:t/2];
s=2048*sin(300*2*pi*t1);
[n,mn,dy]=fftseq(s,ts,df);
n=n/fs;
f=[0:dy:dy*length(mn)—dy]-fs/2;
subplot(2,1,1);stem(t1,s);
xlabel(’时间’);title(’原信号波形’);
axis([-0。005 0.005 -2048 2048]);
subplot(2,1,2);plot(f,abs(fftshift(n)));
axis([-1000,1000,0,60]);
xlabel('频率’);ylabel('幅频');title(’原信号频谱');
s1=s./max(s);
s2=s1./(1/2048);
for i=1:400
y=s2(i);
d=[0 0 0 0 0 0 0 0 ]
if(y>0)
d(1)=1;
else
d(1)=0;
end
y=abs(y);
if(y>=0&y〈16)
d(2)=0;d(3)=0;d(4)=0;step=1;st=0;
elseif(y>=16&y〈32)
d(2)=0;d(3)=0;d(4)=1;step=1;st=16;
elseif(y>=32&y<64)
d(2)=0;d(3)=1;d(4)=0;step=2;st=32;
elseif(y〉=64&y〈128)
d(2)=0;d(3)=1;d(4)=1;step=4;st=64;
elseif(y〉=128&y〈256)
d(2)=1;d(3)=0;d(4)=0;step=8;st=128;
elseif(y〉=256&y〈512)
d(2)=1;d(3)=0;d(4)=1;step=16;st=256;
elseif(y〉=512&y〈1024)
d(2)=1;d(3)=1;d(4)=0;step=32;st=512;
elseif(y〉=1024&y<=2048)
d(2)=1;d(3)=1;d(4)=1;step=64;st=1024;
end
if(y<2048)
t=floor((y—st)/step);
p=dec2bin(t,4)-48;
d(5:8)=p(1:4);
else
d(5:8)=[1 1 1 1]
end
c(i,1:8)=d(1:8);
end
m=c;
m=2*m—1;%调制 %无信道编码
c1=c.';c7=c;
c1=reshape(c1,4,800);c1=c1.’;%c1=800*4,前两行对应c第一行
c2=encode(c1,7 ,4,’hamming/binary’);%(7,4)hamming信道编码800*7
c3=encode(c7,15,8,'cyclic/binary’);%(15,8)循环码编码
tx1=2*c2-1;tx2=2*c3—1;%2ASK BNRZ调制
errorbit=0;
dB=-25:5:25
for q=1:11
biterrors=0;biterrors1=0;biterrors2=0;
r1=10。^(dB(q)/10);
r1=0.5./(r1);
sigma=sqrt(r1);
m=m+sigma*randn(400,8);
m(find(m>=0))=1;m(find(m<0))=0;
errors=zeros(400,8);errors(find(m~=c))=1;
errors=reshape(errors,1,3200);
biterrors=sum(errors);
bit1(q)=biterrors/(400*8);
rx1=tx1+sigma*randn(800,7);
rx2=tx2+sigma*randn(400,15);%加噪声
rx1(find(rx1>=0))=1;rx1(find(rx1〈0))=0;%判决,解调
rx2(find(rx2〉=0))=1;rx2(find(rx2<0))=0;
c22=decode(rx1,7,4,'hamming/binary’);%hamming信道译码800*4
c33=decode(rx2,15,8,'cyclic/binary’);%循环译码
errors1=zeros(800,4);
errors2=zeros(400,8);
errors1(find(c22~=c1))=1;
errors2(find(c33~=c7))=1;
errors1=reshape(errors1,1,3200);
errors2=reshape(errors2,1,3200);
biterrors1=sum(errors1);
biterrors2=sum(errors2);%统计错误
errorbit(q)=biterrors1/(400*8);
errorbit2(q)=biterrors2/(400*8);%误码率
end
figure(2)
semilogy(dB,bit1,'--mo’);
hold
semilogy(dB,errorbit,’:bs’);
semilogy(dB,errorbit2,'-。r*');
grid;
legend(’—-mo无信道编码:’,’bs汉明',’—.r*循环码’);
xlabel('dB’);
ylabel(’误码率’);
figure(3)
modmap('ask’,2);
展开阅读全文