SNR、无滤波、相干滤波和非相干滤波研究(Matlab代码实现)

本文探讨了在高和低信噪比环境下,相干平均和非相干平均如何改善信号质量。通过Matlab代码示例,展示了两种技术如何减少信号变化,尤其是在低信号载波情况下,相干平均能突出信号,而非相干平均则在信号功率显著高于噪声时才有效。
摘要由CSDN通过智能技术生成

 👨‍🎓个人主页:研学社的博客    

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

对于非相干平均的优势存在许多经验法则,想以一种相当实用的方式了解真正的优势是什么。事实证明,这比想象的要复杂得多,因为必须识别输出噪声方程并实现单独的部分。本文生成输入 SNR、无滤波、相干滤波和非相干滤波的输出 SNR。代码注释清晰。

我们正在研究相干和非相干平均如何提高信噪比。如果我们把带噪声的信号看成一个带噪声向量的信号向量,那么:
相干积分是在一个积分时间内将噪声和信号矢量叠加在一起。积分时间越长,带宽越窄,因此噪声矢量的变化量减小,这是因为降低了噪声功率相对于信号矢量的水平。
非相干积分通过对相邻时刻的噪声进行平均来减小噪声矢量的变化。这必须在一个过程将相位作为信号中的一个因素去除之后才能发生。在这种情况下我们使用幅度检测器。
例如,假设在t1,t2,t3等时刻有一股噪声和信号电压矢量。对流进行相干积分,加入相邻向量V ( t1 ) + V ( t2 ),V ( t3 ) + V ( t4 )等。非相干积分是将这些项的绝对值相加,如| V ( t1 ) | + | V ( t2 ) |、| V ( t3 ) | + | V ( t4 ) |等
这两种技术都会减少信号的变化,只是量不同。
输入SNR通过取平均功率并除以方差中的平均功率计算得到。

We are looking at how coherent and non-coherent averaging improves the SNR. If we look at our signal with noise as a signal vector with a noise
vector then:
Coherent integration is adding the noise and signal vectors together over an integration time. The longer the integration time the narrower the bandwidth, so the variation of the noise vector decreases because we are reducing the level of the noise power with respect tot he signal vector. Non-coherent integration reduces the variation in the noise vector by
averaging the noise in adjacent times. This has to occur after a process
has removed the phase as a factor in the signal. In this case we use an
amplitude detector.

For example suppose we have a stream of noise and signal voltage vectors at t1, t2, t3 and so on. Coherent integration of the stream we would add adjacent vectors V(t1)+V(t2), V(t3)+V(t4), and so on. Non-Coherent integration has us adding the absolute value of these terms as |V(t1)|+|V(t2)|, |V(t3)|+|V(t4)|, and so on Both of these techniques will reduce the variation of the signal, just in differing amounts.

Input SNR is calculated by taking the average power and dividing it by the average power in the variation of each sample. Effectively this is the mean squared divided by the std dev squared.

This improvement is easy to see at high SNR cases, but suppose we have no signal and are integrating noise only. In this case as we increase the coherent integration time the noise power will decrease, but with non-coherent we will hit a fixed power determined by the coherent bandwidth of any filtering before the non-coherent filtering.

Suppose we have a case with a very low level carrier in noise.

With coherent modulation as we make the filter bandwidth narrower  by coherently adding samples eventually the carrier will stand out as higher than the surrounding noise.

With non-coherent integration we smooth out the noise, but we do not  reduce the noise power, so unless the carrier power is significantly higher than the power in the noise we
will not find the carrier, no matter how many non-coherent samples we use in the filter.

The noise on the output is a sum of 2 basic terms. One is the deviation from the ideal signal for each sample, and the other is where the mean is  with respect to the ideal signal.

Before the AM detection the mean is close to the ideal signal and the std deviation is close to the noise, after detection this is not true. After detection the mean is not a good representation of the true signal. Instead of the mean we use our knowledge of the true signal to generate the output SNR terms.

📚2 运行结果

 部分代码:

%number of input samples we average together
NumberAverages=4;%also make this a power of 2

for index=1:NumberSNRValues;%this is used as dB power
    InputSNR=index-11;
    Signal=10^(InputSNR/20);
    
    %To calc the noise convert the SNR to a voltage ratio and use it to 
    %multiply the noise, where the noise has a std dev =1
    %The signal is added in and is amplitude 1
    SignalNoiseReal=randn(1,NumberInputSamples);
    SignalNoiseImag=randn(1,NumberInputSamples);
    InputSignalWithNoise=Signal + 1/sqrt(2)*...
        (SignalNoiseReal+ i.*SignalNoiseImag);

    %put the signals into a matrix with the form we can use to take the
    %mean of the columns to do the integration i.e. the number of rows
    %equals NumberAverages
    A=reshape(InputSignalWithNoise,NumberAverages,NumberInputSamples/NumberAverages);

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]卢勇,舒涛.基于SNR_(ESI)信道选择的改进IMCRA语音增强算法[J].计算机应用与软件,2022,39(11):148-153.

[2]Rick McConnell (2023). SNR for Coherent and Non-Coherent Filtering.

🌈4 Matlab代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值