viterbi.m
来自「VC6.0开发环境下开发的ATA接口控制程序」· M 代码 · 共 55 行
M
55 行
function [data,detect,state]=viterbi(input,snr)
disp('Input signal:');
disp(input);
disp('Ideal sample signal:');
input=data2sample(input);
disp(input);
initial=input;
noised=randnoise(input,snr);
noise=noised-input;
disp('White Gaussion noise:');
disp(noise);
disp('noised signal:');
disp(noised);
input=noised;
N=length(input);
pathmetric=zeros(16,N);
weightmetric=zeros(16,N+1);
detectmetric=pathmetric;
datametric=pathmetric;
for i=1:N
for j=1:8
[pathmetric,weightmetric,datametric,detectmetric]=butterfly(j,j+8,2*j-1,2*j,pathmetric,weightmetric,datametric,detectmetric,input,i,N);
end
end
lastwvec=weightmetric(:,N+1);
minwei=min(lastwvec);
pos=zhao(lastwvec,minwei);
[state,detect,data]=backseek(pathmetric,detectmetric,datametric,pos,N);
bit=change(data);
disp('The DETECTED CODE is:');
disp(detect);
margin=detect-initial;
disp('Margin:');
disp(margin);
%disp('The CODED is:');
%disp(data);
%disp('The CODE is:');
%disp(bit);
%disp(state);
%disp(weightmetric);
%disp(pathmetric);
%disp(detectmetric);
%disp(datametric);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?