首页 > 编程语言 >【量化LDPC】基于量化技术的LDPC译码算法的研究与matlab仿真

【量化LDPC】基于量化技术的LDPC译码算法的研究与matlab仿真

时间:2022-12-17 19:22:10浏览次数:61  
标签:end sum endif matlab LDPC 量化 tmp1 s1

1.本LDPC采用的量化方案

 

 

 

 

 

 改进方案如下所示:

 

 公式,的范围是由一个统计范围得到的,但是在实际中,根据信道的不同,可能存在多种可能,这里,我们的考虑的方案是自适应的调整Ymax和Ymin,根据信道的大概估计结果对Ymax和Ymin进行调整,方案如下所示:

 

 

 

 

k1为0~1之间的值。在实际中,可以加入一个噪声估计模块,对难以确定的信道白噪声进行估计。

        这种改进方案的思路是,当噪声越大的时候,接收到信号的幅度波动范围也就越大,因此,其置信区间并不是一个固定的范围。对于第二个量化公式,采用的改进方案如下所示:

 

 

2.核心源码

function Q = func_QX(x);
q = 2;
s = 2;
s1= 1.7;
s2= 2;
d = 0.5;
N = 2^(q-1)-1;
r = 4;
Q = x;
tmp1=0;
for i = 1:N
tmp1(i) = d*s1^(i-1);
end
X_= -sum(tmp1) + d/2;
X = sum(tmp1) + d/2;
if x >= s^(2^q-1)*X
Q = s2^(2^q-1)*X;
end
if x > s^(r+1)*X & x <= s^(r)*X
Q = s2^(r)*X;
end
if x >= X & x <= s^(r+1)*X
Q = X;
end
if x > X_ & x < X
Q = QN(x,q,d,s1,N);
end
if x >= s^(r)*X_ & x < X_
Q = X_;
end
if x >= s^(r+1)*X_ & x < s^(r)*X_
Q = s2^(r)*X_;
end

if x <= s^(2^q-1)*X_
Q = s2^(2^q-1)*X_;
end
end
function y = QN(x,q,d,s1,N);
tmp1=0;
for i = 1:N
tmp1(i) = d*s1^(i-1);
end
tmp2=0;
for i = 1:N
tmp2(i) = d*s1^(i-1);
end
A1 = sum(tmp1) - d/2;
B1 = sum(tmp2) - d/2;
A2 = -sum(tmp1) + d/2;
B2 = -sum(tmp2) + d/2;
y = x;
if x >= A1 & x <= B1
y = sum(tmp2);
end
if x >= -d/2 & x <= d/2
y = 0;
end
if x >= B2 & x <= A2
y = -sum(tmp2);
end
end

3.仿真结果效果

 

  A14-36

 

标签:end,sum,endif,matlab,LDPC,量化,tmp1,s1
From: https://www.cnblogs.com/matlabfpga/p/16989375.html

相关文章