SNR、EbN0、EsN0的关系以及matlab仿真时添加AWGN噪声

部署运行你感兴趣的模型镜像

在通信领域,衡量一个算法的性能经常使用误码率(BER),而横坐标自变量有时使用EbN0,有时又使用SNR。在利用matlab对算法进行性能仿真时,添加AWGN噪声时就需要清楚两者之间的差别及awgn函数的使用。

PS:这篇文章主要是对matlab文档中的“AWGN Channel”词条的翻译。经常被EbN0和SNR之间的关系困惑,导致添加AWGN噪声时出错,然后在网上查找相关说明时,大多要么说不清要么说得不准确,还是要多读官方的说明文档呀,详细而准确!

首先需要明确在matlab中对发送信号进行仿真时,都是对信号进行采样后的离散数据。

符号说明

  • SNR:Signal-to-noise ratio 信噪比(dB)信号功率比噪声功率,这是matlab的awgn函数的真正输入参数!!
  • S:信号功率,单位瓦特。
  • N:噪声功率,瓦特。由功率谱密度的概念知,N = N0*Bn。
  • EbN0:Ratio of bit energy to noise power spectral density,每个二进制bit能量与噪声能量谱密度的比值(dB)。一般以该参数作为性能衡量的横坐标
  • EsN0:Ratio of symbol energy to noise power spectral density,每个符号能量与噪声能量谱密度的比值(dB)。
  • Rb:比特率,即每秒传输多少个bit的二进制数据
  • Rs:符号率,每秒传输多少个符号的数据
  • K:每个符号所承载的二进制bit数。比如16QAM调制中一个符号承载4bit数据,K=4。因此Rb = K*Rs。
  • Tsym:符号周期,每个符号持续的时间,易知Tsym = 1/Rs,单位秒。
  • Tsamp:采样周期,每个采样点持续的时间,易知Tsamp = 1/Fs,其中Fs为采样率。
  • Bn:噪声带宽,单位赫兹,对于awgn噪声,对于复信号有 Bn=Fs=1/TsampBn = Fs = 1/TsampBn=Fs=1/Tsamp

联系与转换

EsN0(dB)=EbN0(dB)+10log10(K)EsN0(dB) = EbN0(dB) + 10log_{10}(K)EsN0(dB)=EbN0(dB)+10log10(K)
由两者的定义很容易得出上式,Es=K∗EbEs = K*EbEs=KEb,都转换成dB形式即可。
然后需要由EsN0(dB)来推倒出awgn函数所需要的SNR:
Es/N0(dB)=10log10(Es/N0),Es=S∗Tsym,N0=N/Bn Es/N0(dB) = 10log_{10}(Es/N0) , Es=S*Tsym, N0 = N/BnEs/N0(dB)=10log10(Es/N0),Es=STsym,N0=N/Bn
Es/N0=S∗Tsym/(N/Bn)=(Tsym∗Fs)∗(S/N)Es/N0 = S*Tsym/(N/Bn) = (Tsym*Fs)*(S/N) Es/N0=STsym/(N/Bn)=(TsymFs)(S/N)
Es/N0(dB)=10log10(Tsym/Tsamp)+SNR(dB)Es/N0(dB) = 10log_{10}(Tsym/Tsamp) + SNR(dB)Es/N0(dB)=10log10(Tsym/Tsamp)+SNR(dB)
SNR(dB)=EbN0(dB)+10log10(K)−10log10(Fs/Rs) SNR(dB) = EbN0(dB) + 10log_{10}(K)-10log_{10}(Fs/Rs)SNR(dB)=EbN0(dB)+10log10(K)10log10(Fs/Rs)
因此上式就是性能曲线图横坐标EbN0(dB)与awgn输入参数SNR(dB)之间的转换公式了。其中Fs/RsFs/RsFs/Rs与过采样率有关。如利用4倍于符号率的采样率时,即Fs/Rs = 4,则表示每个符号采4个样点。
对于实信号则有 Bn=2∗FsBn = 2*FsBn=2Fs (双边带)。于是转换关系为:
SNR(dB)=EbN0(dB)+10log10(K)−10log10(0.5∗Fs/Rs) SNR(dB) = EbN0(dB) + 10log_{10}(K)-10log_{10}(0.5*Fs/Rs)SNR(dB)=EbN0(dB)+10log10(K)10log10(0.5Fs/Rs)

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

在分析两段 MATLAB 代码在添加 AWGN性高斯白噪声)信道和计算 LLR(对数似然比)方面的差异,需从以下几个维度进行比较:信道建模的准确性、噪声功率的控制、LLR 计算方法的数学严谨性、计算复杂度以及实现的可扩展性。 ### 3.1 AWGN 信道添加方法比较 AWGN 信道的添加通常涉及将噪声样本入发送信号中。常见的做法是使用 MATLAB 的 `awgn` 函数或手动构造噪声。 - **使用 `awgn` 函数**:该函数自动根据指定的信噪比(SNR)或噪声功率谱密度(EsNo)添加高斯白噪声。它内部考虑了信号功率,并据此调整噪声强度,适用于标准化测试环境[^1]。 - **手动构造噪声**:通过 `randn` 函数生成复高斯噪声,并根据目标信噪比手动缩放噪声幅度。这种方式提供了更高的灵活性,便于与仿真流程集成,尤其是在需要动态调整噪声参数的场景中。 **优劣分析**: - `awgn` 函数的优点在于实现简单且符合通信标准,但其灵活性较低。 - 手动添加噪声虽然实现稍复杂,但可更好地控制噪声模型,适用于非标准信道建模或复杂仿真环境。 ### 3.2 LLR 计算方法比较 LLR 是用于软解调和信道解码的关键指标,通常用于 BPSK、QPSK 或更高阶调制信号的解调过程中。LLR 的计算方法主要包括硬判决与软判决两种。 - **基于硬判决的 LLR**:仅使用接收信号的符号信息,不考虑噪声强度,LLR 值为 ±1,适用于低复杂度系统,但性能较差。 - **基于软判决的 LLR**:根据接收信号的实部或复数部分计算,通常表达为: $$ LLR = \frac{2y}{\sigma^2} $$ 其中 $ y $ 是接收信号,$ \sigma^2 $ 是噪声方差。该方法利用了信号的幅度信息,提高了译码性能[^1]。 **优劣分析**: - 硬判决 LLR 实现简单,但丢失了信号强度信息,误码率性能较差。 - 软判决 LLR 利用信号幅度,显著提升了译码器的性能,尤其在低 SNR 条件下。 ### 3.3 综合比较与实现建议 | 比较维度 | `awgn` 函数实现 | 手动添加噪声实现 | 硬判决 LLR | 软判决 LLR | |------------------|------------------|------------------|----------------|----------------| | 实现复杂度 | 低 | 中 | 低 | 中 | | 性能表现 | 中 | 高 | 低 | 高 | | 可扩展性 | 低 | 高 | 低 | 高 | | 适用场景 | 标准化仿真 | 自定义仿真 | 简单系统 | 高性能系统 | **推荐实现方式**: 更优的实现方式是**手动添加 AWGN 噪声并采用软判决 LLR 计算方法**。这种方式不仅提供了更高的灵活性,还能显著提升系统性能,尤其适用于现代通信系统中的 Turbo 码、LDPC 码等高性能译码算法。 ```matlab % 手动添加 AWGN 示例 snr_db = 10; % 信噪比 signal_power = mean(abs(tx_signal).^2); % 计算信号功率 noise_power = signal_power / (10^(snr_db/10)); % 根据 SNR 计算噪声功率 noise = sqrt(noise_power/2) * (randn(size(tx_signal)) + 1j*randn(size(tx_signal))); % 生成复高斯噪声 rx_signal = tx_signal + noise; % 添加噪声 % 软判决 LLR 计算示例(BPSK) llr = 2 * real(rx_signal) / noise_power; ```
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值