目錄
1.算法運行效果圖預覽
2.算法運行軟件版本
3.部分核心程序
4.算法理論概述
5.算法完整程序工程
1.算法運行效果圖預覽
(完整程序運行后無水印)
2.算法運行軟件版本
matlab2024b
3.部分核心程序
(完整版代碼包含詳細中文注釋和操作步驟視頻)
.......................................................................
for loop = 1:length(YTest(1, :))disp(loop); % 顯示當前循環次數temp = classify(net, XTest(:,:,:,:,loop)); % 對測試數據進行分類for n = 1:length(temp)if YTest(n, loop) == 'ON'if temp(n) ~= YTest(n, loop)FDR(loop) = FDR(loop) + 1; % 誤檢次數加 1endcnt1 = cnt1 + 1; % ON 狀態計數器加 1elseif temp(n) ~= YTest(n, loop)MDR(loop) = MDR(loop) + 1; % 漏檢次數加 1endcnt2 = cnt2 + 1; % OFF 狀態計數器加 1endendFDR(loop) = FDR(loop) / cnt1; % 計算誤檢率MDR(loop) = MDR(loop) / cnt2; % 計算漏檢率ACC(loop) = 1 - sum(temp ~= YTest(:, loop)) / length(temp); % 計算準確率
endSNR = -20:2:6; % 信噪比范圍% 繪制誤檢率和漏檢率圖
figure;
semilogy(SNR, FDR, 'bo-', 'LineWidth', 2); % 繪制誤檢率曲線
hold on;
grid on;
title('Miss & False'); % 圖標題
xlabel('SNR (dB)'); % x 軸標簽
ylabel('Probability'); % y 軸標簽
legend('False detection ratio'); % 圖例% 繪制準確率圖
figure;
plot(SNR, ACC, 'bo-', 'LineWidth', 2); % 繪制準確率曲線
grid on;
xlabel('SNR (dB)'); % x 軸標簽
ylabel('Total Accuracy'); % y 軸標簽% 保存結果if sel==1save R1.mat FDR ACC SNR; % 保存 QPSK 的結果
end
if sel==2save R2.mat FDR ACC SNR; % 保存 QPSK 的結果
end
if sel==3save R3.mat FDR ACC SNR; % 保存 QPSK 的結果
end
217
4.算法理論概述
QPSK 調制原理:QPSK(四相相移鍵控)是一種常用的數字調制方式。它將輸入的二進制比特流分成兩路,分別進行正交調制。具體來說,設輸入的二進制比特流為b(t),將其分為兩路I(t)和Q(t),每路的比特速率是原比特流的一半。然后,用這兩路信號分別對載波的同相分量和正交分量進行調制。數學表達式為:
? ? ? 在實際通信中,由于收發兩端的載波頻率可能存在偏差,會導致接收到的 QPSK 信號產生頻偏。設頻偏為Δω,則接收到的帶頻偏 QPSK 信號可以表示為:
? ? ? 其中n(t)是加性高斯白噪聲。頻偏會使 QPSK信號的相位發生線性變化,從而影響信號的檢測和識別。
? ? ? 卷積神經網絡(CNN)在圖像處理和信號處理領域有著廣泛的應用。對于帶頻偏QPSK調制信號檢測識別,CNN可以自動學習信號的特征,通過卷積層提取信號的局部特征,池化層對特征進行壓縮和降維,全連接層將提取的特征進行分類。CNN能夠自適應地處理頻偏帶來的相位變化,通過大量的訓練數據學習到不同頻偏下QPSK信號的特征模式,從而實現準確的檢測和識別。
? ? ? ? 將預處理后的數據分為訓練集和驗證集,使用訓練集對 CNN 模型進行訓練。在每次迭代中,將一批訓練數據輸入到模型中,計算損失函數并通過優化算法更新模型的參數。同時,在驗證集上評估模型的性能,根據驗證集的損失和準確率等指標來調整模型的超參數,如學習率、卷積核大小、層數等,直到模型收斂或達到預設的訓練輪數。
5.算法完整程序工程
OOOOO
OOO
O