code_erro.m

来自「该代码实现了 ook等不同通信通信方式的误码率的仿真比较。」· M 代码 · 共 53 行

M
53
字号

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 + =
减小字号Ctrl + -
显示快捷键?