1 Star 1 Fork 0

zhoub86/polar-coded-SCMA

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
pencode.m 1.70 KB
一键复制 编辑 原始数据 按行查看 历史
ZhipengPan 提交于 2018-09-19 10:19 . first submit
function y=pencode(u,FZlookup,crc_size,bitreversedindices,F_kron_n)
x = FZlookup;
switch crc_size
case 0
crc_code = [];
case 8
L=length(u);
crc_gen=[1 0 0 0 0 0 1 1 1] ; % CRC generator sequence
left_shift=[1 0 0 0 0 0 0 0 0];
a=conv(u,left_shift); % 左移24位,即乘以2^24
for i=1:L % 模2除
if a(i)==1
a(i:i+8)=xor(a(i:i+8),crc_gen);
end
end
crc_code=a(L+1:L+8); % CRC码
case 16
L=length(u);
crc_gen=[1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1]; % CRC generator sequence
left_shift=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
a=conv(u,left_shift); % 左移16位,即乘以2^16
for i=1:L % 模2除
if a(i)==1
a(i:i+16)=xor(a(i:i+16),crc_gen);
end
end
crc_code=a(L+1:L+16); % CRC码
case 32
L=length(u);
crc_gen=[1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1]; % CRC generator sequence
left_shift=[1 zeros(1,32)];
a=conv(u,left_shift); % 左移16位,即乘以2^16
for i=1:L % 模2除
if a(i)==1
a(i:i+32)=xor(a(i:i+32),crc_gen);
end
end
crc_code=a(L+1:L+32); % CRC码
end
u = [u crc_code];
x (x == -1) = u; % -1's will get replaced by message bits below
x = x(bitreversedindices+1);
y = mod(x*F_kron_n,2);
end
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zhoub86/polar-coded-SCMA.git
git@gitee.com:zhoub86/polar-coded-SCMA.git
zhoub86
polar-coded-SCMA
polar-coded-SCMA
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385