根据信噪比SNR添加噪声
2022-11-17 16:06:28 星期四
什么是信噪比SNR#
信噪比的计量单位是dB,其计算方法是
其中Ps和Pn分别代表信号和噪声的有效功率,也可以换算成电压幅值的比率关系:20Lg(Vs/Vn),Vs和Vn分别代表信号和噪声电压的“有效值”。在音频放大器中,我们希望的是该放大器除了放大信号外,不应该添加任何其它额外的东西。因此,信噪比应该越高越好。
根据信噪比SNR给信号添加噪声#
实现代码如下:
点击查看代码
# x: 待处理信号序列
# y: SNR设定值
def wgn(x, snr):
snr = 10 ** (snr / 10.0)
xpower = np.sum(x ** 2) / 1024
npower = xpower / snr
random.seed(1)
noise = np.random.randn(1024) * np.sqrt(npower)
return x + noise
根据SNR计算公式与离散信号功率公式可推出代码含义
noise1 = np.random.randn(1024) * np.sqrt(npower)
过程如下:
故而可得add_noise为均值为0,方差1的序列:
add_noise = np.random.randn(1024)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?