[問題] 依然是有關QPSK的疑問...已回收
各位大大好,小弟又來發問有關QPSK的問題了。
這次,我靠我自己寫出了QPSK程式碼,模擬值,也是自己寫出的。
但是好像還是有點問題...。
1.我的模擬值好像有問題,實在是太靠近實驗值了,尤其是在低SNR dB的時候,
幾乎重合實驗值.....請問該如何修改,才能跑出正確的圖?
2.當我把SNR的範圍拉長時(X軸拉長),後面幾個點卻跑不出來,值都是0,
請問該如何修改,才能跑出點來?
以下是我的程式碼。
clear all;
close all;
SNR = 1:1:15; %%%% SNR的範圍
Eb = 1; %%%% 設定Eb=1
No = 10.^(-SNR/10); %%%% 逆推得到的雜訊Power
for i=1:length(SNR)
NO = No(i);
N(i)=0;
correct(i)=0;
for j=1:100000
s = sqrt(2*Eb/2);
n1 = sqrt(NO/2)*randn(1);
n2 = sqrt(NO/2)*randn(1);
s1(j,i) = s + n1;
s2(j,i) = s + n2;
if (s1(j,i)>0 & s2(j,i)>0);
correct(i)=correct(i)+1; %若在第一象限則判斷他對
else
N(i)=N(i)+1;
end
end
pe(i)=N(i)/j; %計算錯誤率
end
semilogy(SNR,pe,'*'); %畫模擬值
hold
%%%%%%%%%%%%%%%%% QPSK理論值 %%%%%%%%%%%%%%%%%%%%%%%%%
r = 1:1:10; %%% SNR的範圍 %%%
Eb=1; %%% 固定Eb=1 %%%
No = 10.^(-r/10); %%% 逆推得到的No %%%
for i=1:length(r)
SNR = Eb./No;
pe=2*(1/2)*erfc(sqrt(2*(SNR))/sqrt(2)); %%% 這是Matlab中不用Qfunction跑的錯誤
機率程式碼 %%%
end
semilogy(r,pe); %%% 畫圖,X軸為Eb/No的範圍,Y軸為錯誤機率
請好心的大大幫幫我,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.23.17.113
推
10/16 23:14, , 1F
10/16 23:14, 1F
→
10/16 23:15, , 2F
10/16 23:15, 2F
→
10/16 23:16, , 3F
10/16 23:16, 3F
→
10/17 13:28, , 4F
10/17 13:28, 4F
→
10/17 13:29, , 5F
10/17 13:29, 5F
→
10/17 13:29, , 6F
10/17 13:29, 6F
→
10/17 13:30, , 7F
10/17 13:30, 7F
→
10/17 13:30, , 8F
10/17 13:30, 8F
→
10/17 13:31, , 9F
10/17 13:31, 9F
※ 編輯: dv8508 來自: 114.38.131.147 (10/17 13:31)
→
10/19 01:01, , 10F
10/19 01:01, 10F
→
10/19 01:01, , 11F
10/19 01:01, 11F
→
10/19 01:03, , 12F
10/19 01:03, 12F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章