![matlab-HDB3编码译码数字信号调制解调_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/9e708e2e-273a-4c95-b1b3-c09d3f64b92b/9e708e2e-273a-4c95-b1b3-c09d3f64b92b1.gif)
![matlab-HDB3编码译码数字信号调制解调_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/9e708e2e-273a-4c95-b1b3-c09d3f64b92b/9e708e2e-273a-4c95-b1b3-c09d3f64b92b2.gif)
![matlab-HDB3编码译码数字信号调制解调_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/9e708e2e-273a-4c95-b1b3-c09d3f64b92b/9e708e2e-273a-4c95-b1b3-c09d3f64b92b3.gif)
![matlab-HDB3编码译码数字信号调制解调_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/9e708e2e-273a-4c95-b1b3-c09d3f64b92b/9e708e2e-273a-4c95-b1b3-c09d3f64b92b4.gif)
![matlab-HDB3编码译码数字信号调制解调_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/9e708e2e-273a-4c95-b1b3-c09d3f64b92b/9e708e2e-273a-4c95-b1b3-c09d3f64b92b5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、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,符号的极性与前一非零符号的相反,并让后面的非零符号从符号开始再交替变化。例如:消息代码: 1 0 0 0 0 1
2、;0 0 0 0 1 1 0 0 0 0 1 1AMI码: +1 0 0 0 0 -1 0 0 0 0 +1 -1 0 0 0 0 +1 -1HDB3码:+1 0 0 0 +V -1 0 0 0 -V +1 -1 +B 0 0 +V -1 +1简易编码方法:原理:HDB3码既要包含AMI的交替特性使输出无直流特性,又要不出现四个以上的连0,因此可以先满足后者。1把"0000"换为取代节。规那么:先将"0000"别离开来,第一个"0000"直接变为"000V",然后数
3、相邻两个"0000"之间"1"的个数,奇数那么变为"000V",偶数那么变为" B00V"。2更新符号。根据教材有:B总是与其前面的1或V符号相反,V总是与前面的1或B相符号相同,1总是与前面的V或B符号相反,就可以编符号了。例如:消息代码:1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1中间码: 1 0 0 0 V 1 0 0 0 V 1 1 B 0
4、 0 V 1 1 B 0 0 V B 0 0 V 1 1 1 0 0 0 V 1HDB3码:+1 0 0 0 +V -1 0 0 0 -V +1 -1 +B 0 0 + V -1 +1 -B 0 0 -V +B 0 0 +V -1 +1 -1 0 0 0 -V +1解码规那么:1虽然编码很复杂,但解码规那么很简单,假设3连“0”前后非零脉冲同极性,那么将最后一个非零元素译为零,如+1000+1 就应该译成“10000”;假设2连 “0”前后非零脉冲极性相同,那么两零前后都译为零,如-100-1,就应该译为
5、0000.2再将所有的-1变换成+1后,就可以得到原消息代码。3、程序运行结果运行程序 可自定义二进制序列,第一个窗口显示所输入的二进制码元,第二个窗口为HDB3编码后的结果,最后一个窗口为解码后的窗口。4、程序源代码% ch7example6prog1.m % AMI码的编码xn=1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0;% 输入单极性码yn=xn;% 输出yn初始化num=0;% 计数器初始化for k=1:length(xn) if xn(k)=1 num=num+1; % "1"计数器 if num/2 = fix(num/
6、2) % 奇数个1时输出-1,进行极性交替 yn(k)=1; else yn(k)=-1; end endend % HDB3编码num=0; % 连零计数器初始化yh=yn; % 输出初始化sign=0; % 极性标志初始化为0V=zeros(1,length(yn);% V脉冲位置记录变量 B=zeros(1,length(yn);% B脉冲位置记录变量for k=1:length(yn) if yn(k)=0 num=num+1; % 连“0”个数计数 if num=4 % 如果4连“0” num=0; % 计数器清零 yh(k)=1*yh(k-4); % 让0000的最后一个0改变为与
7、前一个非零符号相同极性的符号 V(k)=yh(k); % V脉冲位置记录 if yh(k)=sign % 如果当前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符号开始再交替变化 end sign=yh(k); % 记录前一个V符号的极性 end else n
8、um=0; % 当前输入为“1”那么连“0”计数器清零 endend % 编码完成re=xn',yn',yh',V',B' % 结果输出: xn AMI HDB3 V&B符号 % HDB3解码input=yh; % HDB3码输入decode=input; % 输出初始化sign=0; % 极性标志初始化for k=1:length(yh) if input(k) = 0 if sign=yh(k) % 如果当前码与前一个非零码的极性相同 decode(k-3:k)=0 0 0 0;% 那么该码判为V码并将*00V清零 end sign=inpu
9、t(k); % 极性标志 endenddecode=abs(decode); % 整流error=sum(xn'-decode'); % 解码的正确性检验,作图subplot(3,1,1);stairs(0:length(xn)-1,xn);axis(0 length(xn) -2 2);subplot(3,1,2);stairs(0:length(xn)-1,yh);axis(0 length(xn) -2 2);subplot(3,1,3);stairs(0:length(xn)-1,decode);axis(0 length(xn) -2 2);二、数字带通系统的调制解调
10、1、实验要求:利用MATLAB程序设计语言实现数字带通系统的调制解调。2、原理简述:数字调制:用数字基带信号控制载波,把数字基带信号变换为数字带通信号已调信号的过程成为数字调制。数字调制与模拟调制的根本原理相同,但数字信号有离散取值的特点。因此数字调制技术有两种方法:利用模拟调制的方法实现数字调制,即把数字调制看成是模拟调制的特例把数字基带信号当成是模拟信号的特殊情况处理;利用数字信号的离散取值特点通过开关键控制载波,从而实现数字调制。这种方法称为键控法,比方对载波的振幅,频率和相位进行键控,便可得到振幅键控ASK,频移键控FSK和相移键控PSK三种根本的数字调制方式。振幅键控ASK振幅键控利
11、用载波的幅度变化来传递数字信息,而其频率和初始相位保持不变。在2ASK中,载波的幅度只有两种变化状态,分别为对应二进制信息“0”或“1”。常用的二进制振幅键控方式称为通断键控,2ASK信号的一般表达式为 其中2ASK有两种根本的解调方法:非相干解调和相干解调,解调方式如下:非相干解调方式:带通滤波器全波整流器低通滤波器抽样判决器输出想干解调方式:带通滤波器相乘器低通滤波器抽样判决器输出频移键控FSK频移键控是利用载波的频率变化来传递数字信息。在2FSK中,载波的频率随二进制基带信号在f1和f2两个频率点检变化。一个2FSK信号可以看成是两个不同载频的2ASK信号的叠加。其产生方式有两种:采用模
12、拟调频来实现也可采用键控法实现,即在二进制基带矩形序列的控制下通过开关电路对两个不同的独立频率源进行选通。但相邻码元之间的相位不一定连续。2FSK信号的常用解调方法也采用相干解调和非相干解调两种方式。其解调原理是将2FSK信号分解为上下两路2ASK信号分别进行解调,然后进行判决。相移键控PSK二进制相移键控2PSK相移键控是利用载波的相位变化来传递数字信息,而振幅和频率保持不变。在2PSK中,通常用初始相位0和分别表示二进制“1和“0。与2ASK信号的产生方式相比,只是对s(t)的要求不同,在2ASK中是单极性的,而在2PSK中是双极性的基带信号。2PSK信号的解调通常采用相干解调法。二进制差
13、分相移键控2DPSK2PSK相干解调时,由于载波恢复中相位有0、模糊性,导致解调过程出现“反向工作现象,恢复出的数字信号“1”“0”倒置,使得2PSK难以实际应用。而2DPSK是利用前后相邻码元的载波相对相位变化传递数字信息,对于相同的基带数字信息序列,由于初始相位不同,2DPSK的相位可以不同。也就是说,2DPSK信号的相位并不直接代表基带信号,而前后码元相对相位的差才唯一决定信号符号。2DPSK信号的解调方法为相干解调极性比较法加码反变换法。其原理为:带通滤波器相乘器低通滤波器抽样判决器码反变换输出3、程序运行结果2ASK调制后的信号以及2ASK解调后的信号2PSK基带信号,2PSK调制后
14、的信号以及2PSK解调后的信号2FSK调制后的信号以及使用2FSK解调后的信号随机产生得二进制原始信号以及2DPSK调制之后得信号使用2DPSK解调之后的信号4、程序源代码2ASKclear all;clear;N=10; %调制序列的长度 fc=20; %载波频率datat=0.01; %时域采样间隔data=1/datat;df=0.01 ; %频率分辨率t=0:datat:N; %设每个码元长度为1ms 时间矢量:0:Nm=randint(1,N); %产生调制序列fs=1/datat;c=cos(2*pi*fc*t); for i=1:length(m) if(m(i)=1) for
15、j=1:1/datat; ask_pre(j+(i-1)*(1/datat)=1; end elseif(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:lengt
16、h(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=f
17、ftseq(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
18、); % 矩形窗截取H(length(f)-n_off+1:length(f)=2*ones(1,n_off);%H(1:n_off)=2*hamming(n_off); %hamning窗截取%H(length(f)-n_off+1:length(f)=2*hamming(n_off); BP1=BP.*ask_F;BPN=BP.*ask_NF;ask_re1=ifft(BP1);ask_ren1=ifft(BPN);ask_re=2*ask_re1.*c; %相干解调法 ask_ren=2*ask_ren1.*c; %相干解调高斯白噪声ask_reF,ask_re,df1=fftseq(a
19、sk_re,datat,df);ask_reNF,ask_ren,df1=fftseq(ask_ren,datat,df);D1=H.*ask_reF;DN=H.*ask_reNF;d1=ifft(D1);dn=ifft(DN);for i=1 : length(m) % 判决 if(d1(i-1)*(1/datat)+(1/(2*datat)>=0.5) % 判决规那么:d1>0.5 => 1 m_de(i)=1; % 否那么 d1<0.5 => 0 for j=1:1/datat d11(j+(i-1)*(1/datat)=1; %为了画解调波形需要 end
20、else m_de(i)=0; for j=1:1/datat d11(j+(i-1)*(1/datat)=0; %为了画解调波形需要 end endendfor i=1 : length(m) % 判决 if(dn(i-1)*(1/datat)+(1/(2*datat)>=0.5) % 判决规那么:d1>0.5 => 1 m_den(i)=1; % 否那么 d1<0.5 => 0 for j=1:1/datat dnn(j+(i-1)*(1/datat)=1; %为了画解调波形需要 end else m_den(i)=0; for j=1:1/datat dnn
21、(j+(i-1)*(1/datat)=0; %为了画解调波形需要 end endendfigure(2);subplot(4,1,1);plot(t,ask(1:length(t);axis(0,N,-1.5,1.5);xlabel('时间');title('解调器接收波形');subplot(4,1,2);plot(t,ask_re1(1:length(t);axis(0,N,-1.5,1.5);xlabel('时间');title('经过带通滤波器波形');subplot(4,1,3);plot(t,d1(1:length(t
22、);axis(0,N,-0.5,2.5);xlabel('时间');title('经过低通滤波器波形');subplot(4,1,4);plot(t(1:length(d11),d11);axis(0,N,-1.5,1.5);xlabel('时间');title('经过判决器波形');2FSKclear;N=20; %调制序列的长度 fc=5; %载波基频datat=0.01; %时域采样间隔fs=1/datat; %频率分辨率df=0.01 %频率缩放系数t=0:datat:N; %设每个码元长度为1ms 时间矢量:0:Nm=r
23、andint(1,N); %产生调制序列for i=1:length(m) if(m(i)=1) for j=1:1/datat; fsk_f(j+(i-1)*(1/datat)=4; %1码的载波基波倍频系数 20hz mm(j+(i-1)*(1/datat)=1; %为了画码元时域波形需要 end elseif(m(i)=0) for j=1:1/datat; fsk_f(j+(i-1)*(1/datat)=1; %0码的载波基波倍频系数 5hz mm(j+(i-1)*(1/datat)=0; %为了画码元时域波形需要 end endendif(m(i)=1) nn=4; else nn=
24、1;endfsk_f=fsk_f,nn; %使fsk_f的长度与t相同fsk_c=fsk_f*fc; %根据不同的倍频系数产生不同的载波频率c=cos(2*pi*fsk_c.*t); %2fsk信号产生C,c,df1=fftseq(c,datat,df); %2fsk信号的傅立叶变换MM,mm,df1=fftseq(mm,datat,df); %基带信号的傅立叶变换f=0:df1:df1*(length(mm)-1)-fs/2; %频率作图矢量figure(1);subplot(2,1,1);plot(t,mm(1:length(t);axis(0,N,-1.5,1.5);xlabel(
25、9;时间 ms');title('未调信号');ylabel('幅值 :v');subplot(2,1,2);plot(t,c(1:length(t);axis(0,N,-1.5,1.5);xlabel('时间 ms');title('2FSK信号');ylabel('幅值 :v');%-%- 解调 -%-B0=fc-2,fc+2; %0码频带宽B1=fc*4-2,fc*4+2; %1码频带宽n0=floor(fc-2)/df1):floor(fc+2)/df1);n1=floor(4*fc-2)/df1)
26、:floor(4*fc+2)/df1);H0=zeros(1,length(C);H0(min(n0):max(n0)=ones(1,length(n0); %滤波器设计(0码带通滤波器)H0(length(H0)-max(n0):length(H0)-min(n0)=ones(1,length(n0);H1=zeros(1,length(C);H1(min(n1):max(n1)=ones(1,length(n1); %滤波器设计(1码带通滤波器)H1(length(H1)-max(n1):length(H1)-min(n1)=ones(1,length(n1);n_off0=fc/df1;
27、n_off1=4*fc/df1;L0=zeros(1,length(C); %(0码低通滤波器)L0(1:n_off0)=2*ones(1,n_off0);L0(length(L0)-n_off0+1:length(L0)=2*ones(1,n_off0);L1=zeros(1,length(C); % %(1码低通滤波器)L1(1:n_off1)=2*ones(1,n_off1);L1(length(L1)-n_off1+1:length(L1)=2*ones(1,n_off1);C0=C.*H0;C1=C.*H1;m0=ifft(C0);m1=ifft(C1);mm0=abs(m0); %
28、包络检波mm1=abs(m1);MM0,mm0,df1=fftseq(mm0,datat,df);MM1,mm1,df1=fftseq(mm1,datat,df); MM0=MM0.*L0;MM1=MM1.*L1;mm0=ifft(MM0);mm1=ifft(MM1);for i=1 : length(m) % 比较器判决 if(abs(m0(i-1)*(1/datat)+(1/(2*datat)>=abs(m1(i-1)*(1/datat)+(1/(datat*2) % 判决规那么:mo>m1 => 0 m_de(i)=0; % 否那么 => 1 for j=1:1/
29、datat m_anti(j+(i-1)*(1/datat)=0; %为了画解调波形需要 end else m_de(i)=1; for j=1:1/datat m_anti(j+(i-1)*(1/datat)=1; %为了画解调波形需要 end endendm_anti=m_anti,m_de(i);figure(2)subplot(5,1,1);plot(t,m0(1:length(t);xlabel('时间'); title('经过带通滤波器1后波形');subplot(5,1,2);plot(t,m1(1:length(t); xlabel('时
30、间'); title('经过带通滤波器2后波形');subplot(5,1,3);plot(t,mm0(1:length(t);xlabel('时间');axis(0,N,-0.1,2); title('经过低通滤波器1后波形');subplot(5,1,4);plot(t,mm1(1:length(t); xlabel('时间'); axis(0,N,-0.1,2); title('经过低通滤波器2后波形');subplot(5,1,5);plot(t,m_anti(1:length(t); xlabel
31、('时间'); axis(0,N,-0.5,1.5); title('经过比较起判决后波形');2PSKclear;N=10; %调制序列的长度 fc=10; %载波频率datat=0.01; %时域采样间隔fs=1/datat; %频率分辨率df=0.01 %频率缩放系数t=0:datat:N; %设每个码元长度为1ms 时间矢量:0:Nm=randint(1,N); %产生调制序列%-%- 调制 -%-for i=1:length(m) if(m(i)=1) for j=1:1/datat; psk_p(j+(i-1)*(1/datat)=pi; %1码的对
32、应的相位为pi(采用a方式) mm(j+(i-1)*(1/datat)=1; %为了画码元时域波形需要 end elseif(m(i)=0) for j=1:1/datat; psk_p(j+(i-1)*(1/datat)=0; %0码的对应的相位为0(采用a方式) mm(j+(i-1)*(1/datat)=0; %为了画码元时域波形需要 end endendif(m(i)=1) nn=pi/2; else nn=-(pi/2);endpsk_p=psk_p,nn; %使p的长度与t相同,psk_p为根据不同码元产生不同的调制相位c=cos(2*pi*fc*t+psk_p); %2psk信号产
33、生C,c,df1=fftseq(c,datat,df); %2fsk信号的傅立叶变换MM,mm,df1=fftseq(mm,datat,df); %基带信号的傅立叶变换f=0:df1:df1*(length(mm)-1)-fs/2; %频率作图矢量subplot(2,1,1);plot(t,mm(1:length(t);axis(0,N,-1.5,1.5);xlabel('时间 ms');title('未调信号');ylabel('幅值 :v');subplot(2,1,2);plot(t,c(1:length(t);axis(0,N,-1.5,
34、1.5);xlabel('时间 ms');title('2PSK信号');ylabel('幅值 :v');%-%- 解调 -%-carwav=2*cos(2*pi*fc.*t);CF,carwav,df1=fftseq(carwav,datat,df);n_off=(fc-1)/df;n0=floor(fc-2)/df1):floor(fc+2)/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); % 低通滤波器设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度建筑植筋加固材料供应及施工合同
- 2025年度人工智能项目借款合同范本
- 2025年度文化艺术场馆工装装饰装修合同范本
- 金华浙江金华永康市自然资源和规划局工作人员招聘5人笔试历年参考题库附带答案详解
- 温州浙江温州泰顺县面向2025年医学类普通高等院校应届毕业生提前招聘笔试历年参考题库附带答案详解
- 桂林2025年广西桂林市全州县事业单位招聘服务期满三支一扶人员5人笔试历年参考题库附带答案详解
- 杭州浙江杭州市上城区人民政府南星街道办事处编外人员招聘笔试历年参考题库附带答案详解
- 承德2025年河北承德宽城满族自治县招聘社区工作者40人笔试历年参考题库附带答案详解
- 2025年金头黑色密胺筷项目可行性研究报告
- 2025至2031年中国长方形木炉座行业投资前景及策略咨询研究报告
- 中国传统文化课件6八卦五行
- 《胃癌课件:病理和分子机制解析》
- 口腔科导诊分诊技巧(PPT课件)
- 圆筒混料机-设计说明书
- 发电机临时用电施工方案(定)
- 盖板涵施工工艺流程配图丰富
- 与食品经营相适应的主要设备设施布局、操作流程等文件
- 混合动力汽车发动机检测与维修中职PPT完整全套教学课件
- 统编版高中历史必修中外历史纲要下册第4课中古时期的亚洲课件(共18张PPT)
- 2023年副主任医师(副高)-肿瘤内科学(副高)考试历年真题荟萃带答案
- 工伤认定操作实务全攻略
评论
0/150
提交评论