📄 viterbi.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -