[python]生成特定方差的复数信号

仿真代码:

if __name__ == '__main__':

    noise = []
    P_noise = 10

    for num in range(0,100000):  # 迭代 10 到 20 之间的数字
        noise.append(np.sqrt(P_noise / 2) * complex(np.random.randn(1), np.random.randn(1)))

    tm = np.abs(np.array(noise))    # 非零均值,高斯噪声
    # rms 计算
    rms = np.mean(tm * tm)
    print(np.mean(tm), np.var(tm), rms)

  

输出结果为:

2.8078446223572175 2.1578479990371187 10.041839422337462

结果说明:

   设定方差为10的信号,最后生成的信号的能量为10.041839422337462, 仿真成功

注:

  1:用两路高斯白噪声生成复数信号,总能量是各个单路能量的2倍

  2: 生成的复数信号的模值 为 非零均值的高斯白噪声,因此在输出能量是用RMS ,注意和方差的区别

 

posted @ 2021-11-08 16:35  博客园—哆啦A梦  阅读(267)  评论(0)    收藏  举报