tic
clc
clear all
close all
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%全局定义%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global N
global Channel_Parameter
global Generated_Matrix
global glo_Det
global saturate_LLR
global saturate_PM
global saturate_Mode
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 参数设置 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N = 1024; %设置码长
L = 16; %设置搜索路径
Block = 1; %设置仿真块数
EbN0 =[1 1.5 2 2.25]; %设置位信噪比范围
load('Channel_Parameter_1024','Channel_Parameter'); %设置对应的信道参数
load('Generated_Matrix_N=1024','Generated_Matrix'); %编码矩阵
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%定点参数设置%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
saturate_LLR = 8; %设置LLR字长
saturate_PM = 13; %设置PM字长
Fra_Shift =4 ; %设置小数点的移位运算系数
saturate_Mode = 'symmetric'; %设置定点模式
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
k = N/2;
Info_Length = N-k-24;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CRC-24校验 %%%%%%%%%%%%%%%%%%%%%%%%%%
gen = crc.generator([1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1]);
glo_Det=crc.detector([1 1 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Error_Rate = zeros(1,length(EbN0));
Block_Error = zeros(1,length(EbN0));
BLER = zeros(1,length(EbN0));
Info_index = find(Channel_Parameter==1);
%%%%%%%%%%%%%%%%%%%%%%% 在编码矩阵中挑选出与信息位下标对应的行 %%%%%%%%%%%%%%%
Info_Generated_Matrix = Generated_Matrix(Info_index,:);
processing = 0;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for jj = 1:length(EbN0)
All_Num = 0;
ii = 0;
%%%%%%%%%%%%%%%%%%%%%%%% 设置需要仿真的帧数 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
while ((ii <=Block))
ii = ii + 1;
Msg = round(rand(1,Info_Length));
%%%%%%%%%%%%%%%%%% 进行 polar 编码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Info = (generate(gen,Msg'))';
Code = mod(Info*Info_Generated_Matrix,2);
%%%%%%%%%%%%%%%%%%%%%基带处理加噪声%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Code = 1 - 2*Code;
Delte_Square = (N/(2*(Info_Length)))/(10^((EbN0(jj)/10)));
y = Code +sqrt(Delte_Square)*randn(1,N);
LLR = (2*y)/Delte_Square ;
%%%%%%%%%%%%%%%% LLR 定点%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
LLR=round(Fra_Shift*LLR'); %小数点移位
for i=1:length(LLR)
LLR(i)=saturate(LLR(i),saturate_LLR,saturate_Mode); %浮点饱和
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%译码开始%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Data_Output = SCL_CRC_Decoder_FP(LLR,L);
%%%%%%%%%%%%%%%%%%%%误码统计%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Num = sum(bitxor(Msg,Data_Output));
if Num ~=0
Block_Error(jj) = Block_Error(jj) +1;
end
All_Num = Num + All_Num;
processing = processing + 1;
if mod(processing,100)==0
disp('目前正在进行中....');
processing/(100)
disp('还要继续....')
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BLER(jj) = Block_Error(jj)/ii;
Error_Rate(jj) = All_Num/(Info_Length*ii);
end
save('1024BLER_L=32(D0802)','BLER'); %每次仿真前记住更改保存目录,不然以前仿真的结果被覆盖了!!切记!!
save('1024Error_Rate_L=32(D0802)','Error_Rate');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%绘图%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(1)
semilogy(EbN0,Error_Rate,'-.rd');
title('码率0.5,码长256,SCL-CRC译码');
xlabel('EbN0'),ylabel('BER');
grid on;
figure(2)
semilogy(EbN0,BLER,'-.rd');
title('码率0.5,码长256,SCL-CRC译码');
xlabel('EbN0'),ylabel('BLER');
grid on;
toc
没有合适的资源?快使用搜索试试~ 我知道了~
算法仿真代码极化码.zip
共63个文件
m:40个
mat:16个
html:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 51 浏览量
2022-04-12
21:20:41
上传
评论
收藏 1.84MB ZIP 举报
温馨提示
包括极化码基于CRC的SCL算法,Lazy Copy,定点量化
资源推荐
资源详情
资源评论
收起资源包目录
算法仿真代码极化码.zip (63个子文件)
算法仿真代码
~$lar code list decoder算法说明.doc 162B
SCL-CRC(Lazy Copy)
recursivelyCalcP.m 2KB
getArrayAddress_C.m 1004B
Main.m 4KB
Position_Config_1024.mat 279B
Position_Config_256.mat 224B
clonePath.m 776B
continuePaths_FrozenBit.m 784B
continuePaths_UnfrozenBit.m 4KB
html
ceshi2.html 3.01MB
Encoder_Matrix.m 344B
Generated_Matrix_N=1024.mat 11KB
Generated_Matrix_N=256.mat 1KB
SCL_CRC_Decoder.m 4KB
getArrayAddress_P.m 1KB
recursivelyUpdateC.m 1KB
Polar code list decoder算法说明.doc 395KB
SCL-CRC(C数组全复制+LLR数组Lazy Copy)
recursivelyCalcP.m 2KB
getArrayAddress_I.m 462B
Main.m 4KB
Position_Config_1024.mat 279B
Position_Config_256.mat 224B
clonePath.m 1KB
continuePaths_FrozenBit.m 968B
continuePaths_UnfrozenBit.m 4KB
html
ceshi2.html 3.01MB
Encoder_Matrix.m 344B
Generated_Matrix_N=1024.mat 11KB
Generated_Matrix_N=256.mat 1KB
SCL_CRC_Decoder.m 4KB
getArrayAddress_P.m 847B
recursivelyUpdateC.m 1KB
SCL-CRC(Floating)
recursivelyCalcP.m 1KB
Main.m 4KB
Position_Config_1024.mat 279B
Position_Config_256.mat 224B
clonePath.m 725B
continuePaths_FrozenBit.m 797B
continuePaths_UnfrozenBit.m 3KB
html
ceshi2.html 3.01MB
Encoder_Matrix.m 344B
Generated_Matrix_N=1024.mat 11KB
Generated_Matrix_N=256.mat 1KB
SCL_CRC_Decoder.m 3KB
Painting.m 787B
recursivelyUpdateC.m 1KB
SCL-CRC (Fix-定点)
recursivelyCalcP.m 2KB
saturate.m 435B
clonePath.m 725B
CrcDecode.m 880B
continuePaths_FrozenBit.m 858B
continuePaths_UnfrozenBit.m 3KB
SCL_CRC_Decoder_FP.m 3KB
html
ceshi2.html 3.01MB
Encoder_Matrix.m 394B
Generated_Matrix_N=1024.mat 11KB
CrcEncode.m 697B
Channel_Parameter_1024.mat 283B
Main_FP.asv 5KB
Generated_Matrix_N=256.mat 1KB
Channel_Parameter_256.mat 228B
recursivelyUpdateC.m 1KB
Main_FP.m 5KB
共 63 条
- 1
资源评论
zwl2022
- 粉丝: 9
- 资源: 225
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功