#include "mex.h"
#include "math.h"
#include "stdio.h"
#include "stdlib.h"//free
#define N 1024//信息比特长度
#define K 512//信息比特长度
#define L 1
char sign(double x)//判断符号函数
{
char z;
if (x>0)
z=1;
else if (x<0)
z=-1;
else
z=0;
return(z);
}
double min(double a,double b)//取较小值函数
{
if (a>=b)
return b;
else
return a;
}
double likelihood_rate_c(int n,int i,char *uu,double*LLR_matrix)//求似然比函数
{
int j,k=0,k1=0;
double LLR=0,L1=0,L2=0;
double LLR_matrix1[K],LLR_matrix2[K];
char ue[K],uo[K],uoe[K];
if (n!=1)
{
if (i&1==1)//jishu//
{
for(j=0;j<i-1;j=j+2,k++) //
{
uo[k]=uu[j];
ue[k]=uu[j+1];
uoe[k]=(uo[k]+ue[k])&1;//
}
for(j=0;j<n/2;j++,k1++) //
{
LLR_matrix1[k1]=LLR_matrix[j];
LLR_matrix2[k1]=LLR_matrix[n/2+j];
}
L1=likelihood_rate_c(n/2,(i+1)/2,uoe,LLR_matrix1);
L2=likelihood_rate_c(n/2,(i+1)/2,ue,LLR_matrix2);
LLR=sign(L1*L2)*min(fabs(L1),fabs(L2));
}
else //oushu
{
for(j=0;j<i-2;j=j+2,k++) //
{
uo[k]=uu[j];
ue[k]=uu[j+1];
uoe[k]=(uo[k]+ue[k])&1;///
}
for (j=0;j<n/2;j++,k1++) //
{
LLR_matrix1[k1]=LLR_matrix[j];
LLR_matrix2[k1]=LLR_matrix[n/2+j];
}
L1=likelihood_rate_c(n/2,i/2,uoe,LLR_matrix1);
L2=likelihood_rate_c(n/2,i/2,ue,LLR_matrix2);
LLR=(1-2*uu[i-2])*L1+L2;//pow((double)-1,)
}
return LLR;
}
else
{
LLR=LLR_matrix[0];
return LLR;
}
}
//***********************************************************
void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray*prhs[])
{
int n=(int)mxGetScalar(prhs[0]); //标量 整型
int i=(int)mxGetScalar(prhs[1]); //
double*uu=mxGetPr(prhs[2]); //矢量 double型
double*LLR_matrix=mxGetPr(prhs[3]);
double*LLR;
int k=0;
char *int_uu;
int_uu=(char*)malloc(sizeof(char)*(i-1));//double转换成int
for(k=0;k<i-1;k++)
{
int_uu[k]=(char)uu[k];
}
plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);//需要在mex函数内申请到内存空间
LLR=mxGetPr(plhs[0]);
*LLR=likelihood_rate_c(N,i,int_uu,LLR_matrix);
free(int_uu);
int_uu=NULL;
return;
}
没有合适的资源?快使用搜索试试~ 我知道了~
polar.zip_CA SCL_polar code CA-SCL_polar code CA-SCL_polar code
共16个文件
m:12个
cpp:2个
log:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 152 浏览量
2022-07-15
11:54:57
上传
评论 1
收藏 19KB ZIP 举报
温馨提示
Polar code with CA-SCL Decoder
资源推荐
资源详情
资源评论
收起资源包目录
polar.zip (16个子文件)
polar
polarEnc.m 584B
likelihood_rate_c.m 939B
polarDec.m 4KB
bpsk.m 201B
likelihood_rate_c.cpp 2KB
hs_err_pid6168.log 22KB
likelihood_rate.m 939B
crcCheck24a.m 554B
path_matrix.m 312B
genSrc.m 103B
polarcode_main.m 4KB
likelihood_rate_c.mexw64 10KB
likelihood_rate.cpp 2KB
path_metric.m 647B
awgn.m 224B
attachCRC24.m 391B
共 16 条
- 1
资源评论
- weixin_419594842023-04-01资源不错,对我启发很大,获得了新的灵感,受益匪浅。
JaniceLu
- 粉丝: 79
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功