This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于BCP中噪声因子的问题。



BCP的输入参数中有一个噪声因子的变量定义:

在程序中

/* snrEven is 1/noiseVar (one-dimension) */
noiseVar = (float) snrEven/rms/rms/2.f;
scale1 = * ((Int32 *) &noiseVar);
noiseVar = (float) snrOdd/rms/rms/2.f;
scale2 = * ((Int32 *) &noiseVar);

我有以下的问题:

1.看UserGuide中有关于这个噪声因子scale的介绍,和SSL软解调有什么具体的关系呢,对软解调的结果影响大么?

2.关于程序中的snrEven,这个应该是信噪比么??如果是,那么计数单位是什么??是信号功率比上噪声功率?还是在这结果上在做10log10,转化为dB??

如果按照这样理解的话,那么scale应该是噪声功率除以信号功率了??

3.如果我的信道条件较为良好的情况下,那我这个值设置为1.9左右的固定值可以么??

4.其中的rms该如何具体理解,是不是根据我的量化来决定??比如Q10量化,则rms为1024??

不好意思,刚刚接触这一块。所以问题比较多。希望能够帮我解答。

  • 你的这段程序是哪个程序包中的呢?

  • LTE上行参数的配置例子;

    具体工程为:

    Bcp_testProject

    文件为:test_lte_ul.c

    具体位置在1381行:

            /* snrEven is 1/noiseVar (one-dimension) */
            noiseVar = (float) snrEven/rms/rms/2.f; 
            scale1 = * ((Int32 *) &noiseVar);
            noiseVar = (float) snrOdd/rms/rms/2.f;
            scale2 = * ((Int32 *) &noiseVar);
    程序已附件。
  • 使用C6670LTE上行配置参数的例子;

    具体工程为:

    Bcp_testProject

    文件为:test_lte_ul.c

    具体在1381行;

     /* snrEven is 1/noiseVar (one-dimension) */
            noiseVar = (float) snrEven/rms/rms/2.f; 
            scale1 = * ((Int32 *) &noiseVar);
            noiseVar = (float) snrOdd/rms/rms/2.f;
            scale2 = * ((Int32 *) &noiseVar);
    这是程序中关于噪声因子部分。
    1. 这个噪声因子是软解调的时候对解调结果LLR的加权值,简单理解就是在产生解调结果LLR的一个乘因子(c)。

    c = 1/ (噪声功率)^2,对于BCP来说 这里的噪声功率是: 噪声功率定点表示值,但是取倒数之后变成一个浮点值

              2. RMS是浮点1.0f在解调星座图中的定点表示,你的理解是正确的

              3.  noiseVar = (float) snrEven/rms/rms/2.f; 
                    scale1 = * ((Int32 *) &noiseVar);

                    在计算时,snvEven是浮点的信噪比(默认以1表示信号,那么信噪比实际上就是浮点噪声功率的倒数),后面除以rms的平方实际上就是把浮点表示的噪声功率转换为定点噪声功率的倒数(也是一个浮点值)

               4. 如果信道条件好的,这个c值应该在保证解调结果不溢出的情况下取大一点。