matlabHDB3编码译码数字信号调制解调.docx
11页一、HDB的编码和译码 1、实验要求:掌握 HDB3的编码规则,利用 MTAB 计并实现 D狷的编码和译码 2、原理简述: 编码规则: 1) 先将消息代码变换成 AMI 码,若 AMI 码中连 0 的个数小于 4,此时的 AI 码就是DB3 码;2)若M码中连的个数大于 3,则将每个连 0 小段的第个 0 变换成与前一个非 0 符号(+1 或-1)同极性的符号,用表示(1+ ,-1-); 3)为了不破坏极性交替反转,当相邻符号之间有偶数个非 0符号时,再将该小段的第 1 个 0变换成B 或-B,符号的极性与前一非零符号的相反,并让后面的非零符号从符号开始再交替变化 例如: 消息代码:1000100 0 11 0 0 011 AM码:+1 0-1000 +1-0 0+1 HDB3 码:+10 0 +-1 0V+1- + 0+ -1简易编码方法: 原理:HB3码既要包含AMI的交替特性使输出无直流特性,又要不出现四个以上的连0,因此可以先满足后者 1)把000换为取代节 规则:先将000分离开来,第一个00直接变为000,然后数相邻两个00之间1的个数,奇数则变为00V”,偶数贝变为B0V。
2)更新符号 根据教材有:B总是与其前面的或V符号相反,V总是与前面的1或B相符号相同,总是与前面的V或 B 符号相反,就可以编符号了 例如: 消息代码:0001 0001100 1 0 000000 0 110 1 中间码:10V 1 00 11B 0V11B0 V B0 0 11 1000V HB3 码:+10 0+V-0-V+1-1 + 0+-1+1- B 00-V+B0 +V1+100-V 解码规则: 1)虽然编码很复杂,但解码规则很简单,若 连后非零脉冲同极性,则将最后一个 非零元素译为零,如+1000+1 就应该译成“10000;若连“喻后非零脉冲极性相同,贝 U 两零前后都译为零,如-10-1 ,就应该译为000. )再将所有的-1 变换成+1 后,就可以得到原消息代码 、程序运行结果 运行程序 可自定义二进制序列,第一个窗口显示所输入的二进制码元,第二个窗口为HDB3 编码后的结果,最后一个窗口为解码后的窗口 4、程序源代码chexapleprog.m% AMI 码的编码 xn=10 1 1 00000 11000010;%输入单极性码 y=n;输出 yn 初始化 nu=0;%计数器初始化 for k1:gh(xn) ifxn(k)=1 nunu1;%1计数器f m/ =fix(num2) %奇数个 1 时输出-1,进行极性交替 yn(k)=;eseyn(k)=-1;end endendH3 编码 num=0;%连零计数器初始化 yh=yn; %输出初始化 sig0; %极性标志初始化为 0=os(,legth(yn); V脉冲位置记录变量 B=zero(1,leth(y);% B脉冲位置记录变量 fork:ength(y) ifyn(k)=0num=num1;连“0”个数计数 ifnum=4%如果 连“0”nu=0;%计数器清零(k)yh(-4);让 000 的最后一个改变为与前一个非零符号相同极性的符号 V(k)=(k);脉冲位置记录 ih()=si %如果当前 V 符号与前一个 V 符号的极性相同 yh(k)=1h(k);%则让当前 V 符号极性反转,以满足 V 符号间相互极性反转要求h(k-3)=yh(k);%添加 B 符号,与 V 符号同极性 B(k-)=h(k); %脉冲位置记录 V()=h(k);%V 脉冲位置记录 yh(k+1:leh() )=-1*yh(k:ngth(yn) );%并让后面的非零符号从 V 符号开始再交替变化 ensig=h(k);%记录前一个 V 符号的极性 endelse nu=0; end 当前输入为“T 则连“0”计数器清零 nd 编码完成 r=xn,yn,yh,V,; %结果输出:xnAM DB VB 符号 %HDB解码 iput=h; deceinut; sgn=0; fr=1:lgth(h) HB码输入 %输出初始化 %极性标志初始化 if int(k) ifsign=yh(k) %如果当前码与前一个非零码的极性相同 decod(k-3:)000;则该码判为 V 码并将0V 清零 endign=inpu(k); 极性标志 endnddecode=bs(dcde);err=sum(n-decde);sblo (3,);stair (0:length(xn)-1 ,xn);is(et (xn) - 2 ) subplot(3,1,2);strs(0:lngth()1,yh);ais(0 lenth(xn)22);blt(3,1,3);st%整流%解码的正确性检验,作图 ir(:enth(xn)-,deoe);xs(0legh(xn)-22);二、数字带通系统的调制解调、实验要求:利用 MATL雎序设计语言实现数字带通系统的调制解调。
2、原理简述: 数字调制:用数字基带信号控制载波, 把数字基带信号变换为数字带通信号(已调信号)的过程成为数字调制 数字调制与模拟调制的基本原理相同,但数字信号有离散取值的特点因此数字调制技术有两种方法:利用模拟调制的方法实现数字调制,即把数字调制看成是模拟调制的特例把数字基带信号当成是模拟信号的特殊情况处理;利用数字信号的离散取值特点通过开关键控制载波,从而实现数字调制这种方法称为键控法,比如对载波的振幅,频率和相位进行键控,便可得到振幅键控 ASK频移键控 FSK和相移键控SK 三种基本的数字调制方式振幅键控K 振幅键控利用载波的幅度变化来传递数字信息,而其频率和初始相位保持不变在S中,载波的幅度只有两种变化状态,分别为对应二进制信息“0”或“ 1”常用的二进制振幅键控方式称为通断键控,2AK 信号的一般表达式为 s(r)口招们心睥陌 其中知=义(-就): 2SK 有两种基本的解调方法:非相干解调和相干解调,解调方式如下: 非相干解调方式: 带通滤波器一一全波整流器一一低通滤波器一一抽样判决器一一输出 想干解调方式: 带通滤波器一一相乘器一一低通滤波器一一抽样判决器一一输出频移键控 FSK 频移键控是利用载波的频率变化来传递数字信息。
在 2SK 中,载波的频率随二进制基带信号在 fl 和 f两个频率点检变化一个2FSK信号可以看成是两个不同载频的2SK信号的叠加其产生方式有两种:采用模拟调频来实现也可采用键控法实现,即在二进制基带矩形序列的控制下通过开关电路对两个不同的独立频率源进行选通但相邻码元之间的相位不一定连续 2SK 信号的常用解调方法也采用相干解调和非相干解调两种方式其解调原理是将 2FS信号分解为上下两路SK 信号分别进行解调,然后进行判决 相移键控 PSK 二进制相移键控 2PS 相移键控是利用载波的相位变化来传递数字信息,而振幅和频率保持不变在SK 中,通常用初始相位0和兀分别表示二进制“1”和“0”与ASK信号的产生方式相比,只是对s(t)的要求不同,在2AK中是单极性的,而在P中是双极性的基带信号 PSK 信号的解调通常采用相干解调法 二进制差分相移键控 2SK PS相干解调时,由于载波恢复中相位有 、兀模糊性,导致解调过程出现“反向工作”现象,恢复出的数字信号“ 1”“0”倒置,使得PSK 隹以实际应用而 2DSK利用前后相邻码元的载波相对相位变化传递数字信息,对于相同的基带数字信息序列,由于初始相位不同,2DPK 勺相位可以不同。
也就是说,2DPSK言号的相位并不直接代表基带信号,而前后码元相对相位的差才唯一决定信号符号 2DPSKW 号的解调方法为相干解调(极性比较法)加码反变换法 其原理为: 带通滤波器一一相乘器一一低通滤波器一一抽样判决器一一码反变换一一输出、程序运行结果基带信号 2AS调制后的信号以及 2ASK 解调后的信号2PK 基带信号,2SK 调制后的信号以及 2PSK 解调后的信号与带信号 D2005003D060070080 涉句K已俏信导 WL土盘00203 00700600500032FSK 调制后的信号以及使用 2K 解调后的信号随机产生得二进制原始信号以及 2DPS 斓制之后得信号解调后1言号使用DPSKW 调之后的信号、程序源代码ASleral;cr; N askpre(+(-1)*(1at)=;ed elseif(m(i=0) ak_pre(j(i-1)*(1/datat)=; enddak_pe=as_pe,m(i);ak=as_pre.c;ask_F,ak,df1=fftseq(ask,dat,df);C,c,df1=ftseq(,daat,f);,ask,d=ffseq(sk_pe,datat,f);=0:df:f1(enth(c)-1)-fs/2;ubplt(2,1,1);plot(t,k_r(:lnth(t);axi(0,-1.,1.5);xlael(时间 ms);title(未调信号);ylabl(幅值:v);sblot(2,1,2);plot(,ask(1:lnth(t)));axs(,,-1.,1.5);xlabl(时间 ms);itl(K 信号);ylab(幅值:v);% 解调%askn=(s_pre+n(1,lngth(ask_pr))).*c;%(高斯白噪声)askNF,ak_n,df1=ffts(ask_n,data,);_sti=8;noff=floor(f_srinf1);=0:df1:d*(length(ask)1)-f/2;n=floo(fc8)f1):foor(fc8)df1);BPzeo(1,length(f);BP(mi(n0):max(0)=ones(,length(n0);% 带通滤波器设计 B(lenth(BP)-ax(0):lenh(B)-min(n0)=ones(,length(n);=zes(1,lent(f);(:_o)2*ones(,n_off);%矩形窗截取 H(engh(f) -nof+1:length()) =2*ns(1,n_f) ;%(:n_f)*mmig(_off) ;%hamning 窗截取%H(leng()noff+1:leth(f)2*amig(_of);B=Pas_;PNB.*k_NF;askre1=ifft(BP1);sk_ren=fft(BN);a_re*ask_re.*;%相干解调法sk_r=*N=10; %调制序列的长度 0; 载波频率 datat=01; 时域采样间隔 data=1atat; df=0 ;%频率分辨率 t=:dtat:N; %设每个码元长度为 1s 时间矢量:0 =randt(1,N); %产生调制序列 f=1datat; ccs(2*pi*fc*t); r i=1:ngth (m) if(m(i)=1) sk_ren1.;相干解调(高斯白噪声)askreF,ask_re,df1=ftseq(ask_re,dtat,df);ask_reNF,asken,df1=ftseq(ak_ren,tt,df);D1=H.ak_eF;D=H.*sk_eN;d1ifft(D1);dn=ift(DN); fr 1: lengt(m) %判决 if(d1(i-1) *(1/daat)+(1 (*dtat)) =0.5) 决规则:10.51 %判 m_de(i)=; d1 0 frj=1:1/datat 否则 d1(+(i1)*(/at)=; ed es_e(i)=0; for =1:1/atat %为了画解调波形需要 d1(j+(-1)*(1/datat))=0; e nd end 为了画解调波形需要 for 1: nth(m) %判决 if(dn(i-)(1/daat)(/(*atat)))0.) 决规则:d. %判 m_e(i)=1; d1 0 oj=:1datat %否则 dnn(j+(i1)*(1/data))=1; ed elemn(i。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


