7、噪声和分贝【入门软件无线电(SDR)】PySDR:使用 Python 的 SDR 和 DSP 指南

您所在的位置:网站首页 dsp的作用是什么 7、噪声和分贝【入门软件无线电(SDR)】PySDR:使用 Python 的 SDR 和 DSP 指南

7、噪声和分贝【入门软件无线电(SDR)】PySDR:使用 Python 的 SDR 和 DSP 指南

2023-04-09 08:10| 来源: 网络整理| 查看: 265

 在本章中,我们将讨论噪声,包括如何在无线通信系统中对噪声进行建模和处理。概念包括AWGN、复数噪声和SNR/SINR。我们还将在此过程中介绍分贝(dB),因为它在无线通信和SDR中广泛存在。高斯噪声

大多数人都知道噪声的概念:不必要的波动会掩盖我们想要的信号。噪音如下所示:

在这里插入图片描述

请注意时域图中的平均值如何为零。如果平均值不为零,那么我们可以减去平均值,称之为偏差,我们将得到平均值为零。另请注意,图中的各个点不是“均匀随机的”,即值越大越少,大多数点更接近零。 我们将这种类型的噪声称为“高斯噪声”。对于来自许多自然来源的噪声类型,这是一个很好的模型,例如接收器射频组件硅中原子的热振动。中心极限定理告诉我们,许多随机过程的总和将倾向于具有高斯分布,即使各个过程具有其他分布。换句话说,当许多随机事物发生并累积时,即使单个事物不是高斯分布的,结果也近似于高斯。

在这里插入图片描述

高斯分布也称为“正态”分布(回想一下钟形曲线)。 高斯分布有两个参数:均值和方差。我们已经讨论了如何将均值视为零,因为如果均值不为零,则始终可以删除均值或偏差。方差改变了噪声的“强度”。方差越高,数字越大。正是由于这个原因,方差定义了噪声功率。 方差等于标准差平方 (

在这里插入图片描述

分贝 (dB)

我们将采取快速切线来正式引入dB。您可能听说过 dB,如果您已经熟悉它,请随时跳过本节。 当我们需要同时处理小数字和大数字时,或者只是一堆非常大的数字时,在dB中工作非常有用。考虑一下使用示例 1 和示例 2 中的刻度数字会有多麻烦。

示例 1:信号 1 以 2 瓦接收,本底噪声为 0.0000002 瓦。 示例2:垃圾处理比安静的农村地区大100,000倍,链锯比垃圾处理大10,000倍(以声波的功率计)。

如果没有dB,这意味着以正常的“线性”术语工作,我们需要使用大量的0来表示示例1和2中的值。坦率地说,如果我们要绘制类似信号 1 的东西,我们甚至看不到本底噪声。例如,如果 y 轴的比例从 0 瓦到 3 瓦,则噪声将太小而无法显示在图中。为了同时表示这些尺度,我们在对数尺度中工作。

为了进一步说明我们在信号处理中遇到的规模问题,请考虑以下三个相同信号的瀑布。左侧是线性刻度的原始信号,右侧显示转换为对数刻度 (dB) 的信号。两种表示形式使用完全相同的色彩映射表,其中蓝色为最低值,黄色为最高值。在线性刻度中,您几乎看不到左侧的信号。

在这里插入图片描述

对于给定的值 x,我们可以使用以下公式以 dB 表示 x:

在这里插入图片描述

In Python:

x_db = 10.0 * np.log10(x)

我们使用以下命令将 dB 转换回线性(正常数字):

在这里插入图片描述

In Python:

x = 10.0 ** (x_db / 10.0)

在DSP中,我们一起处理非常大的数字和非常小的数字(例如,信号强度与噪声强度的比较)。dB的对数刻度让我们在表达数字或绘制数字时拥有更大的动态范围。它还提供了一些便利,例如能够在我们通常相乘时变为相加(正如我们将在链接预算一章中看到的那样)。 刚接触 dB 时人们会遇到的一些常见错误是: 1、使用自然对数而不是对数基数 10,因为大多数编程语言的 log() 函数实际上是自然对数。 2、在表示数字或标记轴时忘记包含 dB。如果我们在dB中,我们需要在某个地方识别它。 3、当您以 dB 为单位时,您加/减值而不是乘/除,例如:

在这里插入图片描述

同样重要的是要了解dB在技术上不是一个“单位”。仅以 dB 为单位的值是无单位的,就像如果某物大 2 倍,在我告诉你单位之前没有单位。dB是一个相对的东西。在音频中,当他们说dB时,他们实际上是指dBA,它是声级的单位(A是单位)。在无线中,我们通常使用瓦特来指代实际功率水平。因此,您可能会将 dBW 视为一个相对于 1 W 的单位。您可能还会看到相对于 1 mW 的 dBmW(通常简称为 dBm)。例如,有人可以说“我们的发射器设置为 3 dBW”(所以 2 瓦)。有时我们单独使用 dB,这意味着它是相对的,没有单位。可以说,“我们的信号是在高于本底噪声20 dB的地方接收的”。这里有一个小提示:0 dBm = -30 dBW。 以下是我建议记住的一些常见转换:

在这里插入图片描述

最后,为了正确看待这些数字,以下是一些以dBm为单位的功率水平示例:

在这里插入图片描述

频域噪声

在频域一章中,我们讨论了“傅里叶对”,即某个时域信号在频域中的样子。那么,高斯噪声在频域中是什么样的?下图显示了时域中的一些仿真噪声(上图)和该噪声的功率谱密度(PSD)图(下图)。这些情节取自GNU Radio。

在这里插入图片描述

我们可以看到,它在所有频率上看起来大致相同,并且相当平坦。原来,时域中的高斯噪声也是频域中的高斯噪声。那么为什么上面的两个图看起来不一样呢?这是因为频域图显示了FFT的大小,所以只会有正数。重要的是,它使用对数刻度,或以dB为单位显示幅度。否则,这些图形看起来会相同。我们可以通过在 Python 中生成一些噪声(在时域中)然后采用 FFT 来证明这一点。

import numpy as np import matplotlib.pyplot as plt N = 1024 # number of samples to simulate, choose any number you want x = np.random.randn(N) plt.plot(x, '.-') plt.show() X = np.fft.fftshift(np.fft.fft(x)) X = X[N//2:] # only look at positive frequencies. remember // is just an integer divide plt.plot(np.real(X), '.-') plt.show()

请注意,randn() 函数默认使用 mean = 0 和方差 = 1。两个图看起来都像这样:

在这里插入图片描述

然后,您可以通过获取日志并将一堆平均在一起来生成我们在 GNU Radio 中拥有的平面 PSD。我们生成并获取FFT的信号是真实信号(相对于复数信号),任何真实信号的FFT都会有匹配的负部分和正部分,所以这就是为什么我们只保存FFT输出的正部分(下半部分)。但是为什么我们只产生“真实”噪声,复数信号是如何发挥作用的呢?

复数噪声

“复高斯”噪声是我们在基带有信号时将经历的;噪声功率在实部和虚部之间平均分配。最重要的是,实部和虚部是相互独立的;知道一个的值并不能给你另一个的值。 我们可以在 Python 中使用以下命令生成复数的高斯噪声:

n = np.random.randn() + 1j * np.random.randn()

但是等等!就功率(称为噪声功率)而言,上述等式不会产生与 np.random.randn() 相同的“噪声量”。我们可以使用以下方法找到零均值信号(或噪声)的平均功率:

power = np.var(x)

其中 np.var() 是方差的函数。这里信号 n 的幂为 2。为了产生具有“单位功率”的复数噪声,即 1 的幂(这让事情变得方便),我们必须使用:

n = (np.random.randn(N) + 1j*np.random.randn(N))/np.sqrt(2) # AWGN with unity power

为了在时域中绘制复数的噪声,就像任何复数的信号一样,我们需要两条线:

n = (np.random.randn(N) + 1j*np.random.randn(N))/np.sqrt(2) plt.plot(np.real(n),'.-') plt.plot(np.imag(n),'.-') plt.legend(['real','imag']) plt.show()

在这里插入图片描述

你可以看到,实部和虚部是完全独立的。 IQ 图上的复杂高斯噪声是什么样子的?请记住,IQ 图显示实部(水平轴)和虚部(纵轴),两者都是独立的随机高斯。

plt.plot(np.real(n),np.imag(n),'.') plt.grid(True, which='both') plt.axis([-2, 2, -2, 2]) plt.show()

在这里插入图片描述

它看起来就像我们期望的那样;以 0 + 0j 或原点为中心的随机斑点。只是为了好玩,让我们尝试在QPSK信号中添加噪声,看看IQ图是什么样子的:

在这里插入图片描述

现在,当噪音更强时会发生什么?

在这里插入图片描述

我们开始感受到为什么无线传输数据并不那么简单。我们希望每个符号发送尽可能多的位,但如果噪声太高,那么我们将在接收端得到错误的位。

加性白高斯噪声(AWGN)

加性白高斯噪声(AWGN)是一个缩写,你会在DSP和SDR领域听到很多。GN,高斯噪声,我们已经讨论过了。添加剂只是意味着噪声被添加到我们接收到的信号中。在频域中,白色意味着频谱在整个观测带上是平坦的。在实践中,它几乎总是白色的,或者大约是白色的。在本教科书中,我们将使用AWGN作为处理通信链路和链路预算等的唯一噪声形式。非AWGN噪声往往是一个利基话题。

信噪比和信噪比 (SNR and SINR)

信噪比(SNR)是我们测量信号和噪声之间强度差异的方式。这是一个比率,因此它是无单位的。在实践中,SNR几乎总是以dB为单位。通常在仿真中,我们的编码方式是我们的信号是一个单位的功率(功率= 1)。这样,我们就可以通过在产生噪声时调整方差来产生功率为-10 dB的噪声,从而产生10 dB的SNR。

在这里插入图片描述在这里插入图片描述

SNR = 0 dB,则表示信号和噪声功率相同。正SNR意味着我们的信号功率高于噪声,而负SNR意味着噪声功率更高。在负SNR下检测信号通常非常困难。 就像我们之前提到的,信号中的功率等于信号的方差。因此,我们可以将SNR表示为信号方差与噪声方差的比率:

在这里插入图片描述

信干加噪声比(SINR)与SNR基本相同,只是在分母中包括干扰和噪声。

在这里插入图片描述

干扰的构成取决于应用/情况,但通常是另一个干扰目标信号(SOI)的信号,并且频率与SOI重叠,和/或由于某种原因无法滤除。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3