PCM通信系统的性能分析与MATLAB仿真
- 格式:doc
- 大小:420.50 KB
- 文档页数:13
淮海工学院课程设计报告书课程名称:通信系统的计算机仿真设计题目: PCM通信系统的性能分析与MATLAB仿真系(院):电子工程学院学期:专业班级:姓名:学号:1 绪论研究背景与研究意义数字化e时代,我们身边的数字产品越来越多,像数码相机,手机,数字电视等等。
我们重点关注的是这些现代无线通信系统有一个共同的特点,那就是它们采用的都是数字制式。
在现阶段,数字通信系统相对模拟通信系统有着巨大的优势。
脉冲编码(PCM)调制是一种将模拟信号转变成数字信号的编码方式,主要运用与语音传输。
于20世纪40年代,在通信技术中就已经实现了这一编码技术,并迅速在光纤通信、卫星通信、数字微波通信中得到广泛应用,目前它不仅运用于通信领域,还广泛运用于计算机、遥控遥测、数字仪表广播电视等许多领域。
借助于MATLAB软件,可以直观方便的进行计算和仿真。
课程设计的目的和任务通信系统的计算机仿真设计课程设计目的在于使学生在课程设计过程中能够理论联系实际,在实践中充分利用所学理论知识分析和研究设计过程中出现的各类技术问题,巩固和扩大所学知识面,为以后走向工作岗位进行设计打下一定的基础。
课程设计的任务是:(1)掌握一般通信系统设计的过程、步骤、要求、工作内容及设计方法;掌握用计算机仿真通信系统的方法。
(2)训练学生网络设计能力。
(3)训练学生综合运用专业知识的能力,提高学生进行通信工程设计的能力。
2 PCM通信系统PCM通信系统介绍噪声图1 PCM通信系统框图PCM系统的原理框图,本次课程设计应用Matlab进行仿真,仿真基本框图如图1所示。
PCM主要优点是:抗干扰能力强;传输性能稳定,远距离信号再生中继时噪声不累积,且可以使用压缩编码和纠错编码和保密编码等来提高系统有效性、可靠性、保密性。
PCM通信系统的性能指标1.误码率:错误接收的码元数在传送总码元数中所占的比例,误码率是码元在传输系统中被传错的概率。
2.误信率:指错误接收的信息量在传送信息总量中所占的比例。
3 PCM通信系统主要模块模拟信号的抽样抽样定理抽样是时间上连续的模拟信号变成一系列时间上离散的抽样序列的过程。
抽样定理要解决的是能否由此抽样序列无失真地恢复出原模拟信号。
抽样定理是模拟信号数字化的理论依据。
根据乃奎斯特抽样定理:若频带宽度有限的,要从抽样信号中无失真地恢复原信号,抽样频率应大于2倍信号最高频率。
抽样过程抽样的过程是将输入的模拟信号与抽样信号相乘,通常抽样信号是一个周期为 Ts的周期脉冲信号,抽样后得到的信号称为抽样序列。
对幅度A频率f的信号进行的周期性扫描即是对信号的抽样。
话音信号频率在4kHZ以内,实际中话音的抽样频率采用的是8kHZ,此次课程设计也是采用fs=8kHZ的抽样频率,抽样周期T=1/fs。
所以由音频信号和抽样函数可得抽样后的信号为:S=Asin(w*n*T),抽n个值。
每隔时间t(时间t要尽量小,如)对低通连续的语音信号进行取样。
MATLAB对抽样的仿真结果(1)时域抽样MATLAB程序运行仿真出的一百个点的序列,连线形成的波形为正弦波如图所示。
图2 原始语音信号语音信号幅度A=,频率f=2K;图3 抽样脉冲信号抽样频率fs=8K,抽样周期Ts=1/fs图4 时域抽样信号在-0s到时间段T内,每隔进行取样,信源的单音频信号为y=Asin(w*t),抽样后的信号为:S=Asin(w*n*T),抽100个值,即n=[1,100]。
(2)抽样信号的频谱原音频信号f=的单频信号,抽样频率是8kHZ,两个信号相乘即为已抽样信号,时域相乘对应频域卷积,所以已抽样信号的频谱应是周期离散的,如果只显示一个周期(0—8kHZ)的,只在和有值,如图3,理论分析与实际仿真结果正好吻合。
图5 抽样信号频谱量化和编码量化就是将一个有连续幅度值的信号映射成取值离散的抽样。
量化方案可分为标准量化和矢量量化,标量量化中每个信源输出被分别量化,又分为均与量化和非均匀量化。
均匀量化对大的输入信号还是小的输入信号一律采用相同的量化间隔。
为适应幅度大的输入信号,同时又要满足精度要求,就需要增加样本的位数。
但是,对话音信号来说,大信号出现的机会并不多,增加的样本位数就没有充分利用。
为了克服这个不足,就出现了非均匀量化的方法。
非均匀量化非均匀量化是根据信号的不同区间来确定量化间隔的。
对于信号取值小的区间,其量化间隔v ∆也小;反之,量化间隔就大。
它与均匀量化相比,有两个突出的优点。
实际中,非均匀量化的实际方法通常是将抽样值通过压缩再进行均匀量化。
通常使用的压缩器中,大多采用对数式压缩。
广泛采用的两种对数压缩律是μ压缩律和A 压缩律。
美国采用μ压缩律,我国和欧洲各国均采用A 压缩律,所谓A 压缩律也就是压缩器具有如下特性的压缩律: A X A Ax y 10,ln 1≤<+= , 11,ln 1ln 1<≤++=X A A Ax y由于A 律压缩实现复杂,常使用 13 折线法编码, 压扩特性图如图4所示:图6 13 折线法编码编码编码是把量化后的信号变换成代码的过程。
其反过程称为译码。
编码的原理:把量化后的所有量化级,按其量化电平的大小次序排序起来,并列出个对应的码字。
PCM编码中一般采用二进制编码,常用的二进制码型有自然码和折叠码等。
语音信号数字化国际标准采用的是折叠码型。
A律13折线编码规则中采用8位二进制码,对应有M=82=256个量化级,即正、负输入幅度范围内各有128个量化级。
每根折线为一个区间,正负各8个区间。
每个区间均匀量化成16个量化电平。
13折线编码码位的安排按照极性码、段落码、段内码的顺序。
A律PCM编码规则:极性码段落码段内码C1 C2C3C4 C5C6C7C8C1:极性码,1为正;0为负,表示信号的正负极;C2C3C4:段落码,表示信号绝对值处在8个区间中的哪个区间,为000~111共有8种组合,分别表示对应的8个分段,即第1至8段;C5C6C7C8:段内码,表示区间中的16个均匀量化级,0000~1111共有16中组合,表示每段的16个分级。
信道编码/译码信道编码的目的就是增强数字信号的抗干扰能力。
数字信号在信道中传输容易受到噪声干扰,为了减少差错,我们对传输信息的码元按一定的规则加入保护成分(监督元),组成所谓的抗干扰编码。
主要实现方法是增加冗余位。
常见的纠错编码有线性分组码、循环码、卷积码等等。
本课程采用了线性分组码中的典型编码方式(7,4)汉明码和(15,8)循环编码。
程序(见附录)中这两种编码方式;对收到的信号还要进行译码,信道译码是信道编码的逆过程。
数字调制/解调编码完成后的信息序列还不能再信道中传输,必须经过调制后才能发射出去,数字调制就是把数字基带信号的频谱搬移到高频处,形成适合在信道中传输的带通信号。
对数字信号调制的方式有很多种,基本的调制方式有振幅键控(ASK)、频移键控(FSK)、绝对相移键控(PSK)、差分相移键控(DPSK)等,本课程设计中则采用的是振幅键控(ASK)。
数字解调:在接收端可以采用相干解调或者非相干解调还原数字基带信号。
性能分析PCM 通信系统的主要参数设置信噪比(SNR )范围:dB=[-25:5:25];信源模块:我们设定原始信号的幅值A 为,频率f 为2KHZ ;信源编码/译码:取样时间间隔t :,范围T 是;抽样频率fs=8K ,抽样数量n=100,进行非均匀量化。
PCM 系统中噪声的影响PCM 系统的噪声主要有两种:量化噪声和加性噪声。
在图1中的PCM 系统的低通滤波器的输出信号为)()()()(ˆt n t n t m t me q ++= 其中 )(t m :接收端输出的信号成分;)(t n q :由量化引起的输出噪声成分;)(t n e :由信道加性噪声引起的输出噪声成分。
在接收端输出信号的总信噪比为[]e q N N t m E N S +=)(200q N :量化噪声的平均功率;e N :信道加性噪声的平均功率;(1)量化噪声对系统的影响PCM 系统输出端的量化信号与量化噪声的平均功率比为20M N S q= 对于二进制编码,设其编码位数为N ,则上式又可写为N qN S 202= (2)加性噪声对系统的影响仅考虑信道加性噪声时PCM 系统的输出信噪比为eq p N S 410= 从上式可以看出,由于误码引起的信噪比与误码率成反比。
(3)PCM 系统接收端输出信号的总信噪比[]N e NN e e q q p p M N N t m E N S 2222202412241)(+=+=+=在接收端输入大信噪比的情况下,误码率e p 将极小,于是1242<<N e p ,所以总信噪比近似为N qN S 202≈ ()1 与只考虑量化噪声情况下的系统输出信噪比是相同的。
在接收端输入小信噪比的情况下,有1242>>N e p ,则又可近似为 eN e N p p Nq S 41242220=≈与只考虑噪声干扰时系统的输出信噪比是相同的。
由于在基带传输时误码率降到以下是不难的,所以此时通常用式()1来估算PCM 系统的性能。
MATLAB 仿真分析系统误码律系统误码率仿真图如图4:从仿真图可以看出,信噪比越大,误码率越低,与理论相符;还可以直观的看出误码率在有信道编码的情况下明显低于无信道编码的情况,尤其是当信噪比dB>5时,有信道编码的系统的误码率几乎为0,其传输可靠性远好于无信道编码的情况;两种信道编码方式(7,4)汉明编码和(15,8)循环编码在此传输系统中,性能相当。
由图可以得知通过信道编码可以增加通信系统的可靠性。
图7 系统误码率—信噪比仿真曲线图4 心得体会设计给人以创作的冲动,在这学期的设计过程中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
通过此次课程设计,更加扎实的掌握了有关的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,检查找出了原因所在,也暴露出了我在这方面的知识的欠缺和经验的不足。
实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。
在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
在今后社会的发展和学习实践过程中,一定要不懈努力,不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,收获成功,得到社会及他人的认可!参考资料[1] 黄吉顺.数字信号处理及其应用.北京:国防工业出版社,1982[2] 邓华.MATLAB通信仿真及应用实例详解[M].北京:人民邮电大学出版社,2006[3] 张贤达.现代数字信号处理.北京:清华大学出版社,1994[4] 王世一.数字信号处理.北京:北京理工大学出版社,2010[5] 赵静,张瑾.基于基于MATLAB的通信系统的仿真.北京:北京航空航天大学出版社,2007[6] 郭文彬.通信原理—基于MATLAB的计算机仿真[M].北京:北京邮电大学出版社,2006[7] 韩利竹,王华.MATLAB电子仿真与应用[M].北京:国防工业出版社,2003.[8] 刘卫国.MATLAB程序设计与应用[M].北京:高等教育出版社,2006.[9] 丛玉良,王宏志.数字信号处理原理及其MATLAB实现[M].北京:电子工业出版社,2005.附录实验程序clear allA=;f=2000;w=2*pi*f;%语音信号频率2K,幅值t=-0::y=A*sin(w*t);%语音信号figure(4)plot(t,y);xlabel('t');ylabel('A');legend('原始语音信号')n=1:100;%抽样的个数fs=8*10^3;T=1/fs;Y(n)=1;figure(5)stem(n,Y(n));axis([0 50 0 1]);xlabel('n');ylabel('幅度');legend('抽样脉冲信号');n=1:100;fs=8*10^3;T=1/fs;s=A*sin(w*n*T);figure(1)stem(n,s);%时域抽样后的信号图axis([0 100 -4 4]);xlabel('n');ylabel('幅度');legend('时域抽样信号图');f=n./(100*T);y1=abs(fft(s));figure(2)plot(f,y1);xlabel('f');ylabel('幅频');legend('抽样信号频谱');s1=s./max(s);%归一化s2=s1./(1/2048);for i=1:100 %c是pcm码100*8y=s2(i);u=[0 0 0 0 0 0 0 0 ]if(y>0)%极值码判断u(1)=1;elseu(1)=0;endy=abs(y);if(y>=0&y<16)%段落码判断u(2)=0;u(3)=0;u(4)=0;step=1;st=0; elseif(y>=16&y<32)u(2)=0;u(3)=0;u(4)=1;step=1;st=16;elseif(y>=32&y<64)u(2)=0;u(3)=1;u(4)=0;step=2;st=32;elseif(y>=64&y<128)u(2)=0;u(3)=1;u(4)=1;step=4;st=64;elseif(y>=128&y<256)u(2)=1;u(3)=0;u(4)=0;step=8;st=128;elseif(y>=256&y<512)u(2)=1;u(3)=0;u(4)=1;step=16;st=256;elseif(y>=512&y<1024)u(2)=1;u(3)=1;u(4)=0;step=32;st=512;elseif(y>=1024&y<=2048)u(2)=1;u(3)=1;u(4)=1;step=64;st=1024;endif(y<2048)%段内码判断t=floor((y-st)/step);p=dec2bin(t,4)-48;u(5:8)=p(1:4);elseu(5:8)=[1 1 1 1]endc(i,1:8)=u(1:8);endm=c;%调制m1=m.';m1=reshape(m1,2,400);m1=m1.';m2=bi2de(m1,'left-msb');m2(find(m2==0))=-1;m2(find(m2==2))=-3;c1=c.';c7=c;c1=reshape(c1,4,200);c1=c1.';%c1=200*4,前两行对应c第一行c2=encode(c1,7 ,4,'hamming/binary');%(7,4)hamming信道编码200*7 c3=encode(c7,15,8,'cyclic/binary');%(15,8)循环码编码tx1=c2;tx1(find(tx1==0))=-1;tx2=c3;tx2(find(tx2==0))=-1;%调制errorbit=0;dB=-25:5:25for q=1:11biterrors=0;biterrors1=0;biterrors2=0;r1=10.^(dB(q)/10);r1=./(r1);sigma=sqrt(r1);%标准差qq2=m2+sigma*randn(400,1);%加噪声qq2(find((qq2>=0)&(qq2<2)))=1;%判决,解调qq2(find(qq2>=2))=3;qq2(find((qq2>=-2)&(qq2<0)))=-1;qq2(find(qq2<-2))=-3;qq2(find(qq2==-3))=2;qq2(find(qq2==-1))=0;m3=de2bi(qq2,2,'left-msb');m3=m3.';m3=reshape(m3,8,100);m3=m3.';%把m3变成8行100列的矩阵errors=zeros(100,8);errors(find(m3~=c))=1;%发现错误让error为1 errors=reshape(errors,1,800);%把矩阵变成1行800列的矩阵biterrors=sum(errors);bit1(q)=biterrors/(100*8);rx1=tx1+sigma*randn(200,7);%加噪声rx2=tx2+sigma*randn(100,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信道译码200*4c33=decode(rx2,15,8,'cyclic/binary');%循环译码errors1=zeros(200,4);errors2=zeros(100,8);errors1(find(c22~=c1))=1;%发现错误让其值为1errors2(find(c33~=c7))=1;%发现错误让其值为1errors1=reshape(errors1,1,800); %把矩阵变成1行800列的矩阵errors2=reshape(errors2,1,800);%把矩阵变成1行800列的矩阵biterrors1=sum(errors1);%统计错误biterrors2=sum(errors2);%统计错误errorbit(q)=biterrors1/(100*8);errorbit2(q)=biterrors2/(100*8);%误码率endfigure(3)semilogy(dB,errorbit,':ro');holdsemilogy(dB,bit1,'--bs');semilogy(dB,errorbit2,'*');grid;legend(':ro汉明','--bs无信道编码','*循环码');xlabel('dB');ylabel('误码率');。