UOMOP
논문성능 본문
% 기존 데이터 입력 (FLOPs 데이터)
snr_512 = [30, 25, 20, 15, 10, 5, 0]; % 새로운 SNR 범위
flops_proposed_512 = [14855.182, 14400, 14073.754, 13500, 12959.42, 12000, 11114.83];
flops_TopK_512 = [31627.156, 30991, 30431.124, 28912, 25640.668, 22231, 20487.248];
flops_Random_512 = [41444.78, 39123, 34116.336, 27983, 23495.256, 20032, 18640.542];
snr_256 = [30, 20, 10, 0]; % 새로운 SNR 범위
flops_proposed_256 = [24347.008, 21197.228, 19014.698, 17960.544];
flops_TopK_256 = [38023.62, 32121.048, 23387.992, 21973.838];
flops_Random_256 = [45570.174, 39177.99, 27203.11, 19126.07];
% DeepJSCC FLOPs는 고정값
flops_DeepJSCC = 57070;
snr_DeepJSCC = [0, 5, 10, 15, 20, 25, 30]; % DeepJSCC 데이터의 SNR 범위
% dim을 기반으로 선택
dim = 512; % 원하는 dim 입력 (512 또는 256)
if dim == 512
snr = snr_512;
flops_proposed = flops_proposed_512;
flops_TopK = flops_TopK_512;
flops_Random = flops_Random_512;
else
snr = snr_256;
flops_proposed = flops_proposed_256;
flops_TopK = flops_TopK_256;
flops_Random = flops_Random_256;
end
% ylim 설정 예시
figure;
plot(snr_DeepJSCC, flops_DeepJSCC * ones(size(snr_DeepJSCC)), '-kd', 'LineWidth', 2.5, 'MarkerSize', 8, 'DisplayName', 'DeepJSCC'); hold on; % DeepJSCC 검정 실선, 고정된 FLOPs 값 사용
plot(snr, flops_proposed+5050, ':r*', 'LineWidth', 2.5, 'MarkerSize', 12, 'DisplayName', 'DA-JSCC (Proposed)'); % CBS 빨간 점선
plot(snr, flops_TopK+5050, '--bs', 'LineWidth', 2.5, 'MarkerSize', 8, 'DisplayName', 'DA-JSCC (Top-K)'); % TopK 파란 점선
plot(snr, flops_Random+5050, '-.','Color', [0.85, 0.65, 0], 'Marker', '^', 'LineWidth', 2.5, 'MarkerSize', 8, 'DisplayName', 'DA-JSCC (Random)'); % Random 노란 점선
% 그래프 옵션 설정
xlabel('SNR (dB)');
ylabel('FLOPs');
legend('Location', 'southeast');
grid on;
ylim([0 70000]); % y축 범위 설정
hold off;
% 기존 데이터 입력
snr_512 = [30, 25, 20, 15, 10, 5, 0];
psnr_DeepJSCC_512 = [20.781, 23.6, 25.801, 27.5, 28.817, 30, 31.227];
psnr_proposed_512 = [30.19, 29.4, 28.48, 27, 25.08, 23, 19.55];
psnr_TopK_512 = [29.09, 28, 26.83, 25.5, 23.99, 21.8, 19.71];
psnr_Random_512 = [28.2, 27.2, 26.18, 24.8, 23.24, 20.9, 17.72];
%snr_256 = [30, 20, 10, 0];
%psnr_DeepJSCC_256 = [19.638, 23.318, 26.505, 27.997];
%psnr_proposed_256 = [27.35, 25.98, 23.23, 20.20];
%psnr_TopK_256 = [26.80, 25.34, 22.61, 19.32];
%psnr_Random_256 = [26.92, 25.24, 21.69, 17.96];
% DeepJSCC 데이터 추가
snr_DeepJSCC = [0, 5, 10, 15, 20, 25, 30]; % DeepJSCC 데이터의 SNR 범위
% dim을 기반으로 선택
dim = 512; % 원하는 dim 입력 (512 또는 256)
if dim == 512
snr = snr_512;
psnr_proposed = psnr_proposed_512;
psnr_TopK = psnr_TopK_512;
psnr_Random = psnr_Random_512;
psnr_DeepJSCC = psnr_DeepJSCC_512;
%else
%snr = snr_256;
%psnr_proposed = psnr_proposed_256;
%psnr_TopK = psnr_TopK_256;
%psnr_Random = psnr_Random_256;
%psnr_DeepJSCC = psnr_DeepJSCC_256;
end
% 그래프 그리기
% 그래프 그리기
figure;
plot(snr_DeepJSCC, psnr_DeepJSCC, '-kd', 'LineWidth', 2.5, 'MarkerSize', 8, 'DisplayName', 'DeepJSCC'); hold on; % 실
plot(snr, psnr_proposed, ':r*', 'LineWidth', 2.5, 'MarkerSize', 12, 'DisplayName', 'DA-JSCC (Proposed)');
plot(snr, psnr_TopK, '--bs', 'LineWidth', 2.5, 'MarkerSize', 8, 'DisplayName', 'DA-JSCC (Top-K)'); % 점선
plot(snr, psnr_Random, '-.','Color', [0.85, 0.65, 0], 'Marker', '^', 'LineWidth', 2.5, 'MarkerSize', 8, 'DisplayName', 'DA-JSCC (Random)'); % 어두운 노란색 점선
% 그래프 옵션 설정
xlabel('SNR (dB)');
ylabel('PSNR (dB)');
ylim([0 35]);
legend('Location', 'southeast');
grid on;
hold off;
Comments