HDB3的matlab编译码
%程序說明:對一個二進制序列進行hdb3編碼運算
%function y=hdb3(x)
x=[0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 ]
n=length(x);%輸入系列的長度
last_V=-1;%初始化V的符號
last_one=-1;%初始化1的符號
y=zeros(size(x)); ? ?%初始化輸出序列
count=0; ? ? ? ? ? ? %連0計數器
for i=1:n
? ? ?if x(i)==1 ? ? ? %遇1則極性反轉
? ? ? ? ?y(i)=-last_one;
? ? ? ? ?last_one=y(i);
? ? ? ? ?count=0;
? ? ?else
? ? ? ? ?count=count+1;%遇0則零的個數加1
? ? ? ? ?if count==4 ? %遇到連續4個0
? ? ? ? ? ? ?count=0;
? ? ? ? ? ? ?y(i)=-last_V; ? ? ? ? ? ?%遇4連零則置為V,相鄰的V極性反轉
? ? ? ? ? ? ?last_V=y(i);
? ? ? ? ? ? ?if y(i)*last_one==-1 ? ? %V與前一個非0符號必須同極性(相鄰V之間如果間隔偶數個1,則y(i)*last_one==-1,插入B符號,否者,不插入。)
? ? ? ? ? ? ? ? ?y(i-3)=y(i); ? ? ? ??
? ? ? ? ? ? ?end
? ? ? ? ? ? ?last_one=y(i);
? ? ? ? ?end
? ? ?end
end
y
?
總結
以上是生活随笔為你收集整理的HDB3的matlab编译码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于FPGA的HDB3数字编码器设计
- 下一篇: 标准PSO辨识NARMAX模型源码程序