信号AWGN噪声添加及SNR计算(matlab完整代码)

  SNR(Signal-to-Noise Ratio,信噪比)是与信号质量相关的重要指标。它衡量了信号与噪声之间的相对强度,在计算 SNR之前,通常需要进行校准和对齐,以确保接收到的信号与理想信号具有相同的参考点和相位,校准过程可能涉及信道估计、时钟同步和相位校正等步骤。

计算公式为

SNR = 10 * log10(Ps / Pn)

其中:

  • SNR 表示信噪比,以分贝(dB)表示。
  • Ps 表示信号的平均功率。
  • Pn 表示噪声的平均功率。

需要注意的是,信号功率和噪声功率通常是指平均功率,可以通过对信号和噪声进行功率测量来获得。

%计算信号加上AWGN噪声及SNR展示
clear
close all

%PAM
M=4;
symLen=2^14;
dataIn=randi([0 M-1],1,symLen);
txSymbols = qammod(dataIn,M);
power_PAM=mean(abs(txSymbols).^2)

%Add AWGN
snr_dB=9.8;
snr=10^(snr_dB./10);
Psignal=mean(abs(txSymbols).^2);
Pnoise=Psignal./snr;
noise=sqrt(Pnoise).*(randn(1,length(txSymbols))+1j*randn(1,length(txSymbols)))./sqrt(2);
rxSymbols=txSymbols+noise;
scatterplot(rxSymbols)
rSNR = 10*log10( mean(abs(txSymbols).^2)./mean(abs(txSymbols-rxSymbols).^2) )

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是BPSK和QPSK在AWGN信道下的SNR对比的MATLAB代码: ```matlab % BPSK和QPSK在AWGN信道下的SNR对比 clear all; close all; % 设置参数 N = 100000; % 发送符号的数量 EbN0dB = 0:2:20; % 信噪比范围 EbN0 = 10.^(EbN0dB/10); % 生成随机的二进制序列 data = randi([0,1],1,N); % BPSK调制 bpsk_data = 1-2*data; % QPSK调制 qpsk_data = 1/sqrt(2)*(1-2*data(1:2:end)) + 1i*1/sqrt(2)*(1-2*data(2:2:end)); % 计算理论误码率 Pb_bpsk = 0.5*erfc(sqrt(EbN0)); Pb_qpsk = 0.5*erfc(sqrt(EbN0/2)); % 产生高斯白噪声 for ii = 1:length(EbN0dB) % 计算噪声功率 N0 = 1/EbN0(ii); % 产生高斯白噪声 noise_bpsk = sqrt(N0/2)*(randn(1,N)+1i*randn(1,N)); noise_qpsk = sqrt(N0/2)*(randn(1,N/2)+1i*randn(1,N/2)); % 添加噪声 received_bpsk = bpsk_data + noise_bpsk; received_qpsk = qpsk_data + noise_qpsk; % BPSK解调 bpsk_demod = real(received_bpsk)<0; % QPSK解调 qpsk_demod = zeros(1,N); qpsk_demod(1:2:end) = real(received_qpsk)<0; qpsk_demod(2:2:end) = imag(received_qpsk)<0; % 计算实际误码率 Pe_bpsk(ii) = sum(bpsk_demod~=data)/N; Pe_qpsk(ii) = sum(qpsk_demod~=data)/N; end % 绘制误码率曲线 figure; semilogy(EbN0dB,Pb_bpsk,'r-','LineWidth',2); hold on; semilogy(EbN0dB,Pe_bpsk,'ro-','LineWidth',1); semilogy(EbN0dB,Pb_qpsk,'b-','LineWidth',2); semilogy(EbN0dB,Pe_qpsk,'bo-','LineWidth',1); grid on; xlabel('Eb/N0(dB)'); ylabel('误码率'); title('BPSK和QPSK在AWGN信道下的SNR对比'); legend('BPSK理论误码率','BPSK实际误码率','QPSK理论误码率','QPSK实际误码率'); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值