UOMOP
FLOPs 성능 본문
% 파일의 시작 부분에 함수를 정의하지 않고 실행 부분을 분리하여 사용합니다.
% 함수를 호출하여 그래프를 바로 그립니다.
dim = 512;
plot_snr_flops(dim);
function plot_snr_flops(dim)
% 주어진 dim에 맞는 데이터를 설정합니다.
switch dim
case 512
snr = [30, 20, 10, 0];
flops_cbs = [18921.875, 18355.511, 16824.245, 14549.408];
flops_topk = [19578.203, 19357.112, 18657.311, 17099.987];
flops_rs = [19193.948, 18921.917, 17866.058, 16427.387];
flops_deepjscc = [57070, 57070, 57070, 57070];
case 1024
snr = [30, 20, 10, 0];
flops_cbs = [19313.786, 18773.372, 17558.9, 14874.896];
flops_topk = [19798.652, 19618.157, 19082.093, 17778.002];
flops_rs = [19455.308, 19298.48, 18452.123, 16578.431];
flops_deepjscc = [57070, 57070, 57070, 57070];
otherwise
error('지원하지 않는 dim 값입니다. 512 또는 1024를 입력하세요.');
end
% 그래프를 그립니다.
figure;
hold on;
% Random (RS) - 초록색, 네모 포인트
plot(snr, flops_rs, 'g--d', 'LineWidth', 2, 'MarkerSize', 8);
% Top-K - 파란색, 세모 포인트
plot(snr, flops_topk, 'b--s', 'LineWidth', 2, 'MarkerSize', 8);
% DeepJSCC - 검정색, 동그라미 포인트
plot(snr, flops_deepjscc, 'k-.o', 'LineWidth', 2, 'MarkerSize', 8);
% CBS (Proposed) - 빨간색, 별모양 포인트
plot(snr, flops_cbs, 'r-*', 'LineWidth', 2, 'MarkerSize', 10);
% 그래프 설정
xlabel('SNR (dB)');
ylabel('FLOPs');
ylim([0 80000]);
legend({'Random', 'Top-K','Proposed', 'DeepJSCC'}, 'Location', 'northeast');
grid on;
hold off;
end
Comments