UOMOP
성능 본문
% 파일의 시작 부분에 함수를 정의하지 않고 실행 부분을 분리하여 사용합니다.
% 함수를 호출하여 그래프를 바로 그립니다.
dim = 512;
plot_snr_psnr(dim);
function plot_snr_psnr(dim)
% 주어진 dim에 맞는 데이터를 설정합니다.
switch dim
case 512
snr = [30, 20, 10, 0];
psnr_cbs = [29.72, 27.97, 24.60, 20.66];
psnr_rs = [25.13, 24.35, 22.35, 19.63];
psnr_topk = [26.42, 25.32, 22.79, 19.34];
psnr_deepjscc = [29.227, 26.817, 23.501, 18.781];
case 1024
snr = [30, 20, 10, 0];
psnr_cbs = [30.60, 29.08, 25.99, 21.90];
psnr_rs = [25.70, 25.08, 23.43, 20.47];
psnr_topk = [27.03, 26.18, 23.92, 20.44];
psnr_deepjscc = [30.97, 28.337, 24.363, 19.958];
otherwise
error('지원하지 않는 dim 값입니다. 512 또는 1024를 입력하세요.');
end
% 그래프를 그립니다.
figure;
hold on;
% Random (RS) - 초록색, 네모 포인트
plot(snr, psnr_rs, 'g--d', 'LineWidth', 2, 'MarkerSize', 8);
% Top-K - 파란색, 세모 포인트
plot(snr, psnr_topk, 'b--s', 'LineWidth', 2, 'MarkerSize', 8);
% DeepJSCC - 검정색, 동그라미 포인트
plot(snr, psnr_deepjscc, 'k-.o', 'LineWidth', 2, 'MarkerSize', 8);
% CBS (Proposed) - 빨간색, 별모양 포인트
plot(snr, psnr_cbs, 'r-*', 'LineWidth', 2, 'MarkerSize', 10);
% 그래프 설정
xlabel('SNR (dB)');
ylabel('PSNR (dB)');
ylim([0 35]);
legend({'Random', 'Top-K', 'DeepJSCC', 'Proposed'}, 'Location', 'southeast');
grid on;
set(gca, 'YTickLabel', [0 5 10 15 20 25 30 35]); % y축 제축 지우기
hold off;
end
Comments