MATLAB绘制SNR-BER图

对于三条线的SNR对数函数的图,用semilogy很合适,从EP那里学来的,超级简单,半天的时间就差不多搞定了。
算是学过MATLAB的一点证明吧。

有空继续添加,未完待续

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的 MATLAB 代码示例,用于比较有无 RS 码两种条件下的信噪比-误码率 (SNR-BER) 曲线: ```matlab % 比较有无RS码的SNR-BER曲线 % 参数设置 n = 255; % 数据块长度 k = 239; % 数据块中信息位长度 t = 8; % 纠错能力 EbNo = 0:1:10; % 信噪比范围 numBits = 1e6; % 发送比特数 % 生成随机数据 data = randi([0 1], 1, numBits); % 无编码情况下的误码率 for i = 1:length(EbNo) % 调制 modData = qammod(data, 4); % 添加高斯白噪声 snr = EbNo(i) + 10*log10(2); noisyData = awgn(modData, snr, 'measured'); % 解调 demodData = qamdemod(noisyData, 4); % 统计误码数 numErrs_nocoding(i) = sum(data~=demodData); end ber_nocoding = numErrs_nocoding/numBits; % RS编码情况下的误码率 rs = comm.RSEncoder(n, k); for i = 1:length(EbNo) % 编码 codedData = step(rs, data'); % 添加高斯白噪声 snr = EbNo(i) + 10*log10(k/n); noisyData = awgn(codedData, snr, 'measured'); % 解码 rs = comm.RSDecoder(n, k); [decodedData, numErrs_coding(i)] = step(rs, noisyData'); end ber_coding = numErrs_coding/k; % 绘制SNR-BER曲线 semilogy(EbNo, ber_nocoding, 'b--', 'LineWidth', 2); hold on; semilogy(EbNo, ber_coding, 'r-', 'LineWidth', 2); xlabel('Eb/No (dB)'); ylabel('Bit Error Rate'); legend('无编码', '有RS编码'); grid on; ``` 该代码会生成一个 SNR-BER 曲线,其中蓝色虚线表示无编码情况下的误码率,红色实线表示有 RS 编码情况下的误码率。您可以根据需要修改代码中的参数值,以适应不同的应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值