Re: [問題] 依然是有關QPSK的疑問...已回收

看板MATLAB作者 (ck901004)時間16年前 (2009/10/17 17:34), 編輯推噓6(609)
留言15則, 2人參與, 最新討論串3/3 (看更多)
恩,你好,你們老師要求不少。 另外我沒講到的基本常識是少用 for 迴圈。 這樣會拖慢數度。盡量以vector表示。 我幫你修了一下code: % ======================================================================= clear all; close all; SNR = 0:1:10; %%%% 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:100 s = sqrt(2*Eb/2)*ones(10000,1); n1 = sqrt(NO/2)*randn(10000,1); n2 = sqrt(NO/2)*randn(10000,1); s1 = s + n1; s2 = s + n2; correct(i)=correct(i)+sum(s1>0)+sum(s2>0); %若在第一象限則判斷他對 N(i)=N(i)+length(s1)+length(s2)-sum(s1>0)-sum(s2>0); end pe(i)=N(i)/j/length(s)/2; %計算錯誤率 end %%%%%%%%%%%%%%%%% QPSK理論值 %%%%%%%%%%%%%%%%%%%%%%%%% r = 0:1:10; %%% SNR的範圍 %%% Eb=1; %%% 固定Eb=1 %%% No = 10.^(-r/10); %%% 逆推得到的No %%% for i=1:length(r) snr = Eb./No; pe1=(1/2)*erfc(sqrt(2*(snr))/sqrt(2)); %%% 這是Matlab中不用Qfunction跑的錯誤機率程式碼 %%% end semilogy(SNR,pe,'*',r,pe1); %%% 畫圖,X軸為Eb/No的範圍,Y軸為錯誤機率 legend('simulation','theoretical'); ylabel('BER') xlabel('SNR (dB)') 希望有幫助~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.117.2.93

10/17 17:45, , 1F
嗯嗯,非常感謝C大的回應,不過老X不少,不能隨意更動,
10/17 17:45, 1F

10/17 17:46, , 2F
因此我不能用你的程式QQ 所以我還是自己思考看看好了,
10/17 17:46, 2F

10/17 17:46, , 3F
非常感謝大大不厭其煩的教導,謝謝。
10/17 17:46, 3F

10/17 17:48, , 4F
C大,我突然有個問題,我寫n1=sqrt(NO/2)*randn(1);
10/17 17:48, 4F

10/17 17:49, , 5F
這個應該是錯誤的吧。會有這個疑問,是因為,我忘記當初
10/17 17:49, 5F

10/17 17:50, , 6F
為什麼我要把N0/2 開根號了...
10/17 17:50, 6F

10/17 17:51, , 7F
這是一個內心的疑問,問的有點白癡...不過還是想問一下
10/17 17:51, 7F

10/17 17:56, , 8F
NO/2是power,開根號只是取amplitude。
10/17 17:56, 8F

10/17 18:03, , 9F
喔喔喔,我知道了,謝謝C大。 那我要怎麼改呢...苦惱中= =
10/17 18:03, 9F

10/17 18:11, , 10F
C大,你的程式碼跑時,會出現錯誤
10/17 18:11, 10F

10/17 18:12, , 11F
這是錯誤訊息:??? Error: Missing variable or function.
10/17 18:12, 11F

10/17 18:13, , 12F
在Line: 10 Column: 16
10/17 18:13, 12F

10/17 19:09, , 13F
我想比較一下你跑出的圖和我的圖的不同...好讓我有靈感XD
10/17 19:09, 13F
※ 編輯: ck901004 來自: 59.117.11.68 (10/17 20:21)

10/17 20:23, , 14F
嗨~我修了!我跑都沒問題,應該是哪邊多打了一些空白。
10/17 20:23, 14F

10/18 01:19, , 15F
嗯嗯,我會試試看,謝謝。
10/18 01:19, 15F
文章代碼(AID): #1AsO-mS5 (MATLAB)
文章代碼(AID): #1AsO-mS5 (MATLAB)