通信原理 简易AMI码与HDB3码编码方式比较的matlab实现

不同码型的优缺点对比:

AMI码:优点:没有直流成分,且高、低频分量少,能量集中在1/2码速处,编码解电路简单,且可利用传号极性交替这一规律观察误码情况

缺点:当原信码出现长连“0”串时,信号的电平长时间不跳变,造成提取定时信号的困难。

HDB3码:除了具有AMI码的优点外,还克服了AMI码的缺点,同时还将连“0”码限制在3个以内,使得接受时能保证定时信息的提取。

通过MATLAB软件仿真,我们对以上码型的波形图以及性能进行了对比:

AMI码:
N = 100;
RanNum = randperm(N , N/2);
a = zeros(1,100);
for i = 1:50
    a(RanNum(i)) = 1;
end;
 
a_num=length(a);
a_ami=a;
a_sign=-1;
for i=1:a_num
    if a(i)==0
        continue;
    elseif a(i)==1&a_sign==-1
        a_ami(i)=-a(i);
        a_sign=1;
    elseif a(i)==1&a_sign==1
        a_ami(i)=a(i);
        a_sign=-1;
    end
end
 
Ts = 1; % 码元周期
N_sample = 1024; % 单个码元抽样点数
dt = Ts / N_sample; % 抽样时间间隔
N = 100; % 码元数
t = 0 : dt : (N * N_sample - 1) * dt; % 序列传输时间
gt1 = ones(1, N_sample); % NRZ
gt0 = -1*ones(1, N_sample);
se = [];
for i = 1:N
    if a_ami(i)==1
        se = [se gt1];
    else
        if a_ami(i)==-1
        se = [se gt0];
        else
            se = [se zeros(1,N_sample)];
        end
    end
end
fft_se = fftshift(fft(se)); 
PE = 10 * log10(abs(fft_se) .^ 2 );
PEL = (-length(fft_se) / 2 : length(fft_se) / 2 - 1) / 100*(1/Ts);
subplot(2, 1, 1);plot(t, se);grid on;axis([0 20 -1.5 1.5]);title('AMI');xlabel('t');ylabel('level');
subplot(2, 1, 2);plot(PEL, PE); grid on; axis([-100 100 -100 100]); title('AMI');xlabel('f');ylabel('level(dB)');

HDB3码:
N = 100;
RanNum = randperm(N , N/2);
a = zeros(1,100);
for i = 1:50
    a(RanNum(i)) = 1;
end;
 
a_num=length(a);
a_ami=a;
a_sign=-1;
for i=1:a_num
    if a(i)==0
        continue;
    elseif a(i)==1&a_sign==-1
        a_ami(i)=-a(i);
        a_sign=1;
    elseif a(i)==1&a_sign==1
        a_ami(i)=a(i);
        a_sign=-1;
    end
end
 
Ts = 1; % 码元周期
N_sample = 1024; % 单个码元抽样点数
dt = Ts / N_sample; % 抽样时间间隔
N = 100; % 码元数
t = 0 : dt : (N * N_sample - 1) * dt; % 序列传输时间
gt1 = ones(1, N_sample); % NRZ
gt0 = -1*ones(1, N_sample);
se = [];
for i = 1:N
    if a_ami(i)==1
        se = [se gt1];
    else
        if a_ami(i)==-1
        se = [se gt0];
        else
            se = [se zeros(1,N_sample)];
        end
    end
end
fft_se = fftshift(fft(se)); 
PE = 10 * log10(abs(fft_se) .^ 2 );
PEL = (-length(fft_se) / 2 : length(fft_se) / 2 - 1) / 10;
subplot(2, 1, 1);plot(t, se);grid on;axis([0 20 -1.5 1.5]);title('AMI');xlabel('t');ylabel('level');
subplot(2, 1, 2);plot(PEL, PE); grid on; axis([-100 100 -100 100]); title('AMI');xlabel('f');ylabel('level(dB)');
N = 200;
RanNum = randperm(N , N/2);
a = zeros(1,N);
for i = 1:100
    a(RanNum(i)) = 1;
end;
 
a_num=length(a);
a_sign=-1;  
a_sign_V=-1; %先是按照负极性进行编码,即原初始位为‘1’,
a_hdb3=zeros(1,200);    
a_zero_num = 0;
 
for i = 1:200
    if a(i) == 0
        if a_zero_num <3%连0小于三,加上此位连0小于4,未超过阈值
            a_zero_num = a_zero_num + 1;
            a_hdb3(i) = 0;
        else
            if a_zero_num == 3%连0等于三,加上此位连0等于4,达到阈值
                a_zero_num = 0;%连0个数清零
                if a_sign == a_sign_V%将要赋值的V的极性达到交替要求,即000V
                a_hdb3(i) = a_sign;
                a_sign_V =-1*a_sign_V;
                else%将要赋值的V的极性达不到交替要求,即B00V
                    a_hdb3(i) = a_sign_V;
                    a_hdn3(i-3) = a_sign_V;
                    a_sign_V = -1*a_sign_V;
                end
            end
        end
    else
        a_hdb3(i) = a_sign;%对1进行处理
        a_sign = -1*a_sign;
    end
end
 
Ts = 0.1; % 码元周期
N_sample = 1024; % 单个码元抽样点数
dt = Ts / N_sample; % 抽样时间间隔
N = 200; % 码元数
t = 0 : dt : (N * N_sample - 1) * dt; % 序列传输时间
gt1 = ones(1, N_sample); % NRZ
gt0 = -1*ones(1, N_sample);
se = [];
for i = 1:N
    if a_hdb3(i)==1
        se = [se gt1];
    else
        if a_hdb3(i)==-1
        se = [se gt0];
        else
            se = [se zeros(1,N_sample)];
        end
    end
end
fft_se = fftshift(fft(se)); 
PE = 10 * log10(abs(fft_se) .^ 2/(Ts*2));
PEL = (-length(fft_se) / 2 : length(fft_se) / 2 - 1) / 100*(1/Ts);
subplot(2, 1, 1);plot(t, se);grid on;axis([0 20 -1.5 1.5]);title('HDB3');xlabel('t');ylabel('level');
subplot(2, 1, 2);plot(PEL, PE); grid on; axis([-100 100 -100 100]); title('HDB3');xlabel('f');ylabel('level(dB)');

经过比较讨论后,我们选择了不受信道特征变化的影响、抗干扰能力比较强的双极性波形。采用兼具了AMI编码无直流成分,且高、低频分量少等优点,同时克服了其长连“0”时,难提取定时信号的缺点的HDB3编码方式进行编码。 

  • 6
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值