📄 converpe.m
字号:
function[err_rate,err_rate1]=converPe(snr_in_dB)
%噪声功率
E=1;
snr=10^(snr_in_dB/10);%将信噪比化为DB为单位
sgma=sqrt((E/snr)/2);
%桢个数
N=10;
%信息序列
signal=round(rand(1,N*260));
signal1=signal;%信号signal1没有经过编码,直接通过信道
%G,k
G=[1 0 0 1 1;1 1 0 1 1];%TCH/FS信道编码内编码的生成矩阵
k=1;%输入的个数
u=viterbi_encoder(G,k,signal);%编码
%以下为经编码后的码字经高斯噪声信道后的信号和未经过编码的函数经过高斯信道
u=2*u-1;
signal1=2*signal1-1;
u=sign(u+sgma*randn(size(u))+eps);%加高斯噪声
signal1=sign(signal1+sgma*randn(size(signal))+eps);%未编码的信号经过高斯信道
u=(u+1)/2;%将-1,1的单极性码转化为0,1的双极性码
signal1=(signal1+1)/2;
%维特比译码,调用viterbi_decoder函数
[rev_sig,survivor_state,cumulated_metric]=viterbi_decoder(G,k,u);
%计算误码率
err_rate=(length(find(signal~=rev_sig)))/length(signal)%信号经编码后通过高斯信道的改善后的误码率
err_rate1=(length(find(signal~=signal1)))/length(signal)%信号未经编码直接经过高斯信道的码码率
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -