fuheshan 发表于 2007-11-30 11:06

对《如何向一个数据序列中添加已知频率范围的高频噪声信号?》帖子的再讨论

我详细地看了帖子的回复,特别是zhlong 的热心回答。
‘如何向一个数据序列中添加已知频率范围的高频噪声信号?’
http://forum.vibunion.com/forum/viewthread.php?tid=51548&pid=298808&page=1&extra=#pid298808
学习到以上解决的问题是“添加已知频率范围的高频噪声信号”
如果问题要求再加一条:已知SNR呢?
即:如何添加已知频率范围、已知SNR的高斯白噪声呢?

直观的方法是:
1、计算信号强度。经过带通后,信号基本没损失(假设带通滤波器幅度为1),信号功率容易求得,
2、计算噪声强度。将第1步的信号功率代入SNR公式,计算得到噪声功率p1,即我们需要加入的噪声功率p1,
3、用randn产生高斯白噪声,通过带通滤波,计算这时候的噪声功率p2,
4、然后回到第3步,调整randn的系数sqrt(p1/p2)*randn,使调整后的高斯白噪声再通过带通滤波,
便得到符合频率范围要求、符合SNR要求的高斯白噪声。

问题1:第3步中的p2如何计算呢?即如何计算带限高斯白噪声的功率。

我的想法是:带通后的噪声还是高斯分布的,可以用它这时候的方差(经验证,此时方差变小了)表示功率。
我的另一种想法:用sum(n.^2)/length(n)表示功率。
                        对这种想法有利的理论依据是:根据数理统计理论,这个统计量就是方差的估计量。

我想请教下各位,这两种想法哪个合适呢?

问题2:第4步中调整系数的想法合适吗?滤波器对功率的影响是线性的吗?通过调整系数可以达到目的吗?

[ 本帖最后由 fuheshan 于 2007-11-30 11:28 编辑 ]

fuheshan 发表于 2007-11-30 21:12

希望大家能提点意见,
不能解决也没关系,
希望能从大家那里得到点启发。

花如月 发表于 2007-11-30 22:33

回复 #2 fuheshan 的帖子

既然是再讨论,最好的办法就是在原帖子下边回复,没必要开新帖。

如果真的需要考虑滤波带来的功率损失,噪声也是信号,功率的计算和普通信号是一样的
页: [1]
查看完整版本: 对《如何向一个数据序列中添加已知频率范围的高频噪声信号?》帖子的再讨论