1 / 7
文档名称:

matlab卷积码程序.doc

格式:doc   大小:30KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

matlab卷积码程序.doc

上传人:woyaonulifacai 2021/10/27 文件大小:30 KB

下载得到文件列表

matlab卷积码程序.doc

文档介绍

文档介绍:matlab卷积码程序
matlab卷积码程序
matlab卷积码程序
1、卷积码编码
function [output]=cnv_encd(input)
%output=cnv_encd(g,k0,input) 卷积码编码函数
%g 生成矩阵
%k0 输入码长
%input  输入信源序列
%output 输出卷积编码序列
g=[1 1 1;1 0 1];编码矩阵
k0=1;
input=[1 1 0 1];
if rem(length(input),k0)〉0
input=[input,zeros(size(1:k0—rem(length(input),k0)))];
end
n=length(input)/k0;
if rem(size(g,2),k0)>0
error(’Error,g is not of the right size。')
end
li=size(g,2)/k0;
n0=size(g,1);
u=[zeros(size(1:(li—1)*k0)),input,zeros(size(1:(li-1)*k0))];
u1=u(li*k0:-1:1);
for i=1:n+li—2
   u1=[u1,u((i+li)*k0:-1:i*k0+1)];
end
uu=reshape(u1,li*k0,n+li-1);
output=reshape(rem(g*uu,2),1,n0*(n+li—1));
2、Viterbi译码程序
1)
function y=bin2deci(x)
matlab卷积码程序
matlab卷积码程序
matlab卷积码程序
l=length(x);
y=(l-1:-1:0);
y=2.^y;
y=x*y';
2)
function y=deci2bin(x,l)
y=zeros(1,l);
i=1;
while x>=0 & i<=l
y(i)=rem(x,2);
x=(x-y(i))/2;
  i=i+1;
end
y=y(l:-1:1);
3)
function distance=metric(x,y)
if x==y
 distance=0;
else
  distance=1;
end
4)
function [next_state,memory_contents]=nxt_stat(current_state,input,L,k)
binary_state=deci2bin(current_state,k*(L-1));
binary_input=deci2bin(input,k);
next_state_binary=[binary_input,binary_state(1:(L—2)*k)];
next_state=bin2deci(next_state_binary);
memory_contents=[binary_input,binary_state];
5)
function [decoder_output,survivor_state,cumulated_metric]=vit