好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

matlabHDB3编码译码数字信号调制解调.doc

13页
  • 卖家[上传人]:博****1
  • 文档编号:388981022
  • 上传时间:2023-03-25
  • 文档格式:DOC
  • 文档大小:467KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • HDB3码的编码和译码1、实验要求:掌握HDB3码的编码规则,利用MATLAB设计并实现HDB3码的编码和译码2、原理简述:编码规则:1)先将消息代码变换成AMI码,若AMI码中连0的个数小于4,此时的AMI码就是HDB3码;2)若AMI码中连0的个数大于3,则将每4个连0小段的第4个0变换成与前一个非0符号(+1或-1)同极性的符号,用表示(+1+,-1-);3)为了不破坏极性交替反转,当相邻符号之间有偶数个非0符号时,再将该小段的第1个0变换成+B或-B,符号的极性与前一非零符号的相反,并让后面的非零符号从符号开始再交替变化例如:消息代码:100001000011000011AMI码:+10000-10000+1-10000+1-1HDB3码:+1000+V-1000-V+1-1+B00+V-1+1简易编码方法:原理:HDB3码既要包含AMI的交替特性使输出无直流特性,又要不出现四个以上的连0,因此可以先满足后者1)把"0000"换为取代节规则:先将"0000"分离开来,第一个"0000'直接变为"000V",然后数相邻两个"0000"之间"1"的个数,奇数则变为"000V",偶数则变为"B00V"。

      2)更新符号根据教材有:B总是与其前面的1或V符号相反,V总是与前面的1或B相符号相同,1总是与前面的V或B符号相反,就可以编符号了例如:消息代码:1000010000110000110000000011100001中间码:1000V1000V11B00V11B00VB00V111000V1HDB3码:+1000+V-1000-V+1-1+B00+V-1+1-B00-V+B00+V-1+1-1000-V+1解码规则:1)虽然编码很复杂,但解码规则很简单,若3连“0”前后非零脉冲同极性,则将最后一个非零元素译为零,如+1000+1就应该译成“10000”;若2连“0”前后非零脉冲极性相同,则两零前后都译为零,如-100-1,就应该译为0000.2)再将所有的-1变换成+1后,就可以得到原消息代码3、程序运行结果运行程序可自定义二进制序列,第一个窗口显示所输入的二进制码元,第二个窗口为HDB3编码后的结果,最后一个窗口为解码后的窗口4、程序源代码%ch7example6prog1.m%AMI码的编码xn=[101100000001100000010];%输入单极性码yn=xn;%输出yn初始化num=0;%计数器初始化fork=1:length(xn)ifxn(k)==1num=num+1;%"1"计数器ifnum/2==fix(num/2)%奇数个1时输出-1,进行极性交替yn(k)=1;elseyn(k)=-1;endendend%HDB3编码num=0;%连零计数器初始化yh=yn;%输出初始化sign=0;%极性标志初始化为0V=zeros(1,length(yn));%V脉冲位置记录变量B=zeros(1,length(yn));%B脉冲位置记录变量fork=1:length(yn)ifyn(k)==0num=num+1;%连“0”个数计数ifnum==4%如果4连“0”num=0;%计数器清零yh(k)=1*yh(k-4);%让0000的最后一个0改变为与前一个非零符号相同极性的符号V(k)=yh(k);ifyh(k)==sign%V脉冲位置记录%如果当前V符号与前一个V符号的极性相同yh(k)=-1*yh(k);%则让当前V符号极性反转,以满足V符号间相互极性反转要求yh(k-3)=yh(k);%添加B符号,与V符号同极性B(k-3)=yh(k);%B脉冲位置记录V(k)=yh(k);%V脉冲位置记录yh(k+1:length(yn))=-1*yh(k+1:length(yn));%并让后面的非零符号从V符号开始再交替变化sign=yh(k);endendelsenum=0;endendre=[xn',yn',yh',V',B'];%当前输入为“1”则连“0”计数器清零%编码完成%结果输出:xnAMIHDB3V&B符号%HDB3解码input=yh;decode=input;sign=0;fork=1:length(yh)%HDB3码输入%输出初始化%极性标志初始化ifinput(k)~=0ifsign==yh(k)%如果当前码与前一个非零码的极性相同%记录前一个V符号的极性decode(k-3:k)=[0000];%则该码判为V码并将*00V清零endsign=input(k);%极性标志endenddecode=abs(decode);%整流error=sum([xn'-decode']);%解码的正确性检验,作图subplot(3,1,1);stairs([0:length(xn)-1],xn);axis([0length(xn)-22]);subplot(3,1,2);stairs([0:length(xn)-1],yh);axis([0length(xn)-22]);subplot(3,1,3);stairs([0:length(xn)-1],decode);axis([0length(xn)-22]);二、数字带通系统的调制解调1、实验要求:利用MATLAB程序设计语言实现数字带通系统的调制解调。

      2、原理简述:数字调制:用数字基带信号控制载波,把数字基带信号变换为数字带通信号(已调信号)的过程成为数字调制数字调制与模拟调制的基本原理相同,但数字信号有离散取值的特点因此数字调制技术有两种方法:①利用模拟调制的方法实现数字调制,即把数字调制看成是模拟调制的特例把数字基带信号当成是模拟信号的特殊情况处理;②利用数字信号的离散取值特点通过开关键控制载波,从而实现数字调制这种方法称为键控法,比如对载波的振幅,频率和相位进行键控,便可得到振幅键控ASK,频移键控FSK和相移键控PSK三种基本的数字调制方式振幅键控ASK振幅键控利用载波的幅度变化来传递数字信息,而其频率和初始相位保持不变在2ASK中,载波的幅度只有两种变化状态,分别为对应二进制信息“0”或“1”常用的二进制振幅键控方式称为通断键控,2ASK信号的一般表达式为s(E)=口(f)沁他I其中2ASK有两种基本的解调方法:非相干解调和相干解调,解调方式如下:非相干解调方式:带通滤波器——全波整流器——低通滤波器——抽样判决器——输出想干解调方式:带通滤波器——相乘器——低通滤波器——抽样判决器——输出频移键控FSK频移键控是利用载波的频率变化来传递数字信息。

      在2FSK中,载波的频率随二进制基带信号在fl和f2两个频率点检变化一个2FSK信号可以看成是两个不同载频的2ASK信号的叠加其产生方式有两种:①采用模拟调频来实现②也可采用键控法实现,即在二进制基带矩形序列的控制下通过开关电路对两个不同的独立频率源进行选通但相邻码元之间的相位不一定连续2FSK信号的常用解调方法也采用相干解调和非相干解调两种方式其解调原理是将2FSK信号分解为上下两路2ASK信号分别进行解调,然后进行判决相移键控PSK二进制相移键控2PSK相移键控是利用载波的相位变化来传递数字信息,而振幅和频率保持不变在2PSK中,通常用初始相位0和n分别表示二进制“1”和“0”与2ASK信号的产生方式相比,只是对s(t)的要求不同,在2ASK中是单极性的,而在2PSK中是双极性的基带信号2PSK信号的解调通常采用相干解调法二进制差分相移键控2DPSK2PSK相干解调时,由于载波恢复中相位有0、n模糊性,导致解调过程出现“反向工作”现象,恢复出的数字信号“1”“0”倒置,使得2PSK难以实际应用而2DPSK是利用前后相邻码元的载波相对相位变化传递数字信息,对于相同的基带数字信息序列,由于初始相位不同,2DPSK的相位可以不同。

      也就是说,2DPSK信号的相位并不直接代表基带信号,而前后码元相对相位的差才唯一决定信号符号2DPSK信号的解调方法为相干解调(极性比较法)加码反变换法其原理为:带通滤波器——相乘器——低通滤波器——抽样判决器——码反变换——输出3、程序运行结果2ASK调制后的信号以及2ASK解调后的信号D1D2FSK调制后的信号以及使用2FSK解调后的信号原诟诣号谓制牯的信号随机产生得二进制原始信号以及2DPSK调制之后得信号使用2DPSK解调之后的信号%调制序列的长度%载波频率%时域采样间隔%频率分辨率%设每个码元长度为1ms时间矢量:0:N%产生调制序列4、程序源代码2ASKclearall;clear;N=10;fc=20;datat=0.01;data=1/datat;df=0.01;t=0:datat:N;m=randint(1,N);fs=1/datat;c=cos(2*pi*fc*t);fori=1:length(m)if(m(i)==1)forj=1:1/datat;ask_pre(j+(i-1)*(1/datat))=1;endelseif(m(i==0))ask_pre(j+(i-1)*(1/datat))=0;endendask_pre=[ask_pre,m(i)];ask=ask_pre.*c;[ask_F,ask,df1]=fftseq(ask,datat,df);[C,c,df1]=fftseq(c,datat,df);[M,ask_pre,df1]=fftseq(ask_pre,datat,df);f=[0:df1:df1*(length(c)-1)]-fs/2;subplot(2,1,1);plot(t,ask_pre(1:length(t)));axis([0,N,-1.5,1.5]);xlabel('时间ms');title('未调信号');ylabel('幅值:v');subplot(2,1,2);plot(t,ask(1:length(t)));axis([0,N,-1.5,1.5]);xlabel('时间ms');title('2ASK信号');ylabel('幅值:v');%%解调%ask_n=(ask_pre+rand(1,length(ask_pre))).*c;%(高斯白噪声)[ask_NF,ask_n,df1]=fftseq(ask_n,datat,df);f_strain=8;n_off=floor(f_strain/df1);f=[0:df1:df1*(length(ask)-1)]-fs/2;n0=floor((fc-8)/df1):floor((fc+8)/df1);BP=zeros(1,length(f));BP(min(n0):max(n0))=ones(1,length(n0));%带通滤波器设计BP(length(BP)-max(n0):length(BP)-min(n0))=ones(1,length(n0));H=zeros(1,length(f));H(1:n_off)=2*ones(1,n_off);%矩形窗截取H(length(。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.