semilogy(SNRdBs,BER(1,:),'-ko',SNRdBs,BER(2,:),'-r*','linewidth',2); grid on xlabel('SNR[dB]'); ylabel('BER'); legend('信道反转(NB=NTx=5,用户数:25/选择用户数:5)','(规则化信道反转(NB=NTx=5,用户数:25/选择用户数:5)');怎么将legend中的字体变大
时间: 2023-08-20 10:32:28 浏览: 133
你可以在 legend 函数中添加 'FontSize' 参数来设置字体大小,例如:
```
legend('信道反转(NB=NTx=5,用户数:25/选择用户数:5)','(规则化信道反转(NB=NTx=5,用户数:25/选择用户数:5)', 'FontSize', 12);
```
这里将字体大小设置为 12。你可以根据需要将其更改为其他值。
相关问题
semilogy(SNRdBs,BER(1,:),'-ko',SNRdBs,BER(2,:),'-r*','linewidth',2); grid on xlabel('SNR[dB]'); ylabel('BER'); legend('信道反转(NB=NTx=5,用户数:25/选择用户数:5)','(规则化信道反转(NB=NTx=5,用户数:25/选择用户数:5)','FontSize',12);
这是一段 MATLAB 代码,用于绘制信噪比和误码率之间的关系图。其中 SNRdBs 是一个包含不同信噪比值的向量,BER 是一个矩阵,其中每行对应一个不同的误码率曲线。 '-ko' 和 '-r*' 是线条的样式选项,'linewidth' 是线条宽度的选项。xlabel 和 ylabel 分别设置 x 轴和 y 轴的标签,legend 可以添加图例说明。
% 4PAM调制信号在高斯信道下的性能仿真 clear; % 参数设置 M = 4; % 调制阶数 Eb = 1; % 符号能量 Es = Eb * log2(M); % 平均符号能量 N0 = 1; % 单边噪声功率谱密度 SNRdBs = 0:14; % 信噪比范围 SNRs = 10.^(SNRdBs/10); % 信噪比 numBits = 1e6; % 仿真比特数 numTrials = 100; % 重复试验次数 % 产生随机比特序列 bits = randi([0 1], 1, numBits); % 4PAM调制 symbols = pammod(bits, M); % 仿真误符号率和误比特率 simBERs = zeros(size(SNRs)); simSERs = zeros(size(SNRs)); for i = 1:length(SNRs) SNR = SNRs(i); sigma = sqrt(Es/(2*SNR)); % 噪声标准差 numErrors = 0; numBits = 0; for j = 1:numTrials % 加入高斯白噪声 received = symbols + sigma * randn(size(symbols)); % 4PAM解调 detected = pamdemod(received, M); % 统计误符号数和误比特数 numErrors = numErrors + sum(detected ~= bits); numBits = numBits + length(bits); end simBERs(i) = numErrors / numBits; simSERs(i) = simBERs(i) * log2(M); end % 理论误符号率和误比特率 theoryBERs = 2*(1-1/sqrt(M))*qfunc(sqrt((3*SNRs)/(2*sqrt(M-1)))); theorySERs = 2*(M-1)/M*theoryBERs; % 画图比较 figure; semilogy(SNRdBs, theoryBERs, '-.', 'LineWidth', 2); hold on; semilogy(SNRdBs, simBERs, 'o-', 'LineWidth', 2); grid on; xlabel('SNR (dB)'); ylabel('BER'); legend('Theory', 'Simulation'); title(sprintf('4PAM in AWGN Channel)', 10*log10(Eb/N0))); figure; semilogy(SNRdBs, theorySERs, '-.', 'LineWidth', 2); hold on; semilogy(SNRdBs, simSERs, 'o-', 'LineWidth', 2); grid on; xlabel('SNR (dB)'); ylabel('SER'); legend('Theory', 'Simulation'); title(sprintf('4PAM in AWGN Channel', 10*log10(Eb/N0)));求其在4PAM下的误码率和误符号率
在4PAM调制下,使用MATLAB中的pammod函数进行调制,使用pamdemod函数进行解调。根据理论公式,可以计算出4PAM调制信号在高斯信道下的误码率和误符号率,如下所示:
```matlab
theoryBERs = 2*(1-1/sqrt(M))*qfunc(sqrt((3*SNRs)/(2*sqrt(M-1)))); % 理论误码率
theorySERs = 2*(M-1)/M*theoryBERs; % 理论误符号率
```
其中,qfunc为Q函数,M为调制阶数,SNRs为信噪比。
接下来,通过仿真计算4PAM调制信号在高斯信道下的误码率和误符号率,如下所示:
```matlab
simBERs = zeros(size(SNRs)); % 仿真误码率
simSERs = zeros(size(SNRs)); % 仿真误符号率
for i = 1:length(SNRs)
SNR = SNRs(i);
sigma = sqrt(Es/(2*SNR)); % 噪声标准差
numErrors = 0;
numBits = 0;
for j = 1:numTrials
% 加入高斯白噪声
received = symbols + sigma * randn(size(symbols));
% 4PAM解调
detected = pamdemod(received, M);
% 统计误符号数和误比特数
numErrors = numErrors + sum(detected ~= bits);
numBits = numBits + length(bits);
end
simBERs(i) = numErrors / numBits; % 仿真误码率
simSERs(i) = simBERs(i) * log2(M); % 仿真误符号率
end
```
最后,将理论误码率和误符号率以及仿真结果画在同一张图上进行比较,如下所示:
```matlab
figure;
semilogy(SNRdBs, theoryBERs, '-.', 'LineWidth', 2);
hold on;
semilogy(SNRdBs, simBERs, 'o-', 'LineWidth', 2);
grid on;
xlabel('SNR (dB)');
ylabel('BER');
legend('Theory', 'Simulation');
title(sprintf('4PAM in AWGN Channel (Eb/N0 = %.1f dB)', 10*log10(Eb/N0)));
figure;
semilogy(SNRdBs, theorySERs, '-.', 'LineWidth', 2);
hold on;
semilogy(SNRdBs, simSERs, 'o-', 'LineWidth', 2);
grid on;
xlabel('SNR (dB)');
ylabel('SER');
legend('Theory', 'Simulation');
title(sprintf('4PAM in AWGN Channel (Eb/N0 = %.1f dB)', 10*log10(Eb/N0)));
```
运行上述代码,可以得到4PAM调制信号在高斯信道下的误码率和误符号率的仿真结果。
阅读全文