⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matlab.txt

📁 hdb3编程实现
💻 TXT
字号:
function y=HDB3(x) 
p=0; 
q=0; 
grid=300; 
t=0:1/grid:length(x); 
for i=1:length(x) 
if(x(i)==1) 
if(p==1) 
for j=1:grid 
y((i-1)*grid+j)=-1; 
p=-1; 
q=0; 
end 
else 
for j=1:grid 
y((i-1)*grid+j)=1; 
p=1; 
q=0; 
end 
end 
else 
if(q==3) 
if(p==1) 
for j=1:grid 
y((i-1)*grid+j)=1; 
q=0; 
end 
else 
for j=1:grid 
y((i-1)*grid+j)=-1; 
q=0; 
end 
end 
else 
for j=1:grid 
y((i-1)*grid+j)=0; 
q=q+1; 
end 
end 
end 
end 
y=[y,y(i*grid)]; 
M=max(y); m=min(y); 
plot(t,y); axis([0,i,m-0.1,M+0.1]); 

保存为HDB3.m 
再在workspace中运行 
t=[0 0 1 1 0 1 0 0 0 1]; 
HDB3(t); 

对于HDB3_decode,采用同样方法






文件头:
MATLAB仿真HDB3码2007-04-18 23:25这个文件只是对一个序列进行hdb3的编码运算。把横线下面的内容保存为hdb3.m然后在主程序生成一个序列,调用这个文件就可以了。



-------------------------------------------------------------------------------------



%对一个二进制序列进行hdb3编码运算

%y=hdb3(x)

%x为原始序列



function y=hdb3(x)



n=length(x);



last_V=-1;

last_one=-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;

         if count==4

             count=0;

             y(i)=-last_V;            %遇4连零则置为V,相邻的V极性反转

             last_V=y(i);

             if y(i)*last_one==-1     %V与前一个非0符号必须同极性

                 y(i-3)=y(i);         %否则置B

             end

             last_one=y(i);

         end

     end

end

-------------------------------------------



主文件如下:



%hdb

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -