?? code_erro.m
字號:
function erro=code_erro(input_seq,SNR,varargin)
%--------------------------------------------------------------------------
%用法: erro=code_erro(input_seq,SNR,'type')
%input: 隨機序列;
% SNR:信噪比;
%type: 編碼類型,可選 dppm, ppm, ook ;
%erro: 編碼、加高斯白噪聲、檢測、解碼后,與input_seq相比的誤碼率
%--------------------------------------------------------------------------
s=varargin{1,1}; %取得輸入的第三個參數
N=length(input_seq);
% for dppm,ppm,and ook coding
code_out=code(input_seq,s);
% add niose
temp=awgn(code_out,SNR,'measured');
% detect
detect=temp>0.5;
% decode
decode_out=decode(detect,s);
% erro calculate
if length(decode_out)>=N
errol=decode_out(1:N)-input_seq;
else
add1=zeros(1,(N-length(decode_out)));
decode_out=cat(2,decode_out,add1);
errol=decode_out(1:N)-input_seq;
end
erro_abs=abs(errol);
errosum=0; %錯誤的個數
for i=1:N
errosum=errosum+erro_abs(i);
end
erro=errosum/N;
% end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -