作者yymmbbtt (daniel)
看板comm_and_RF
標題[問題] BPSK調變MATLAB程式模擬疑問
時間Sun Dec 23 19:07:24 2018
我寫了以下一段matlab程式碼來畫出BPSK訊號的波形,顯示的波形中,
可以看出傳送bit 1 與 bit 0有相位差180度的差異,看起來沒什麼問題,
於是我想用計算BER來再次確認是否程式有誤。
在AWGN通道下,當SNR_db=4時,合理BER應該為1%而SNR_dB=7時,應為0.1%,
但我測試時,BER大多都維持0,僅在SNR非常差的情況(小於-20),
BER才有0.1%左右,想請教是否有人能幫我檢察看看或是提供一些意見,謝謝。
for kk=1:1000
bitstream=[1 0];
d=0.01;
Es=1; Ts=1; fc=2; tc=[0:d:0.99];
n=1;
symbolbits=1;
NRZ=2*bitstream-1;
carrier=sqrt(2/Ts)*cos(2*pi*fc*tc);
for i=1:symbolbits:length(bitstream)
s(1,(n-1)*length(tc)+1:n*length(tc))=NRZ(i)*carrier;
n=n+1;
end
SNR=4; snr=10^(SNR/10); E=sum(abs(s).^2)/length(s);
N0=E/snr;
noise=sqrt(N0)*randn(1,length(s));
z=s+noise;
%% coherent detection
for i=1:length(z)/length(tc)
Q(1,(i-1)*length(tc)+1:i*length(tc))=z((i-1)*length(tc)+1:i*length(tc)).*carrier;
end
integral=[];
for i=1:2
integral(1,i)=trapz(Q((i-1)*100+1:i*100));
end
detect=integral>0;
ber(1,kk)=sum(detect~=bitstream)/length(bitstream);
end
final_ber=sum(ber)/1000;
figure(1)
time=[0:d:1.99];
subplot(2,1,1); plot(time,s);
subplot(2,1,2); plot(time,z);
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.166.129.144
※ 文章網址: https://webptt.com/m.aspx?n=bbs/comm_and_RF/M.1545563246.A.88F.html
1F:推 Leadgen: 未看先猜你noise加的power對嗎? 175.98.8.6 12/30 11:04
2F:→ yymmbbtt: 我有懷疑過,但我用雜訊power N0與訊號p 36.231.33.197 12/30 23:32
3F:→ yymmbbtt: ower E做計算,snr是等於4db沒錯,請問 36.231.33.197 12/30 23:32
4F:→ yymmbbtt: 還有其他方式可以檢驗這部分嗎 36.231.33.197 12/30 23:32
5F:→ yymmbbtt: 修正 ,是我另外計算雜訊power En 118.168.63.62 12/31 00:41
6F:→ yymmbbtt: En=sum(abs(n))/length(n) ,然後與E 118.168.63.62 12/31 00:41
7F:→ yymmbbtt: 驗證是否snr=4 118.168.63.62 12/31 00:41
8F:推 bxxl: 你需要的是Eb/N0, Eb=Amp^2*Nb 114.45.100.195 01/04 09:49
9F:→ bxxl: Nb是每個bit sample多少點. 114.45.100.195 01/04 09:49
10F:→ bxxl: 你好像是sample了100點,這樣就差了20dB 114.45.100.195 01/04 09:49
11F:→ yymmbbtt: 恩 我一個bit調變成一個載波 載波取樣 118.166.131.5 01/13 18:17
12F:→ yymmbbtt: 了100點 118.166.131.5 01/13 18:17
13F:→ yymmbbtt: 剛剛試了 ber大概6%上下,有了改善,請 118.166.131.5 01/13 18:29
14F:→ yymmbbtt: 問一下,這樣算出來的Eb可以說是傳送訊 118.166.131.5 01/13 18:29
15F:→ yymmbbtt: 號s的平均功率吧 118.166.131.5 01/13 18:29
16F:→ yymmbbtt: 我之前有用關鍵字snr找過文獻,請問是否 118.166.131.5 01/13 18:32
17F:→ yymmbbtt: 還有什麼關鍵字可以找到關於你說的這一 118.166.131.5 01/13 18:32
18F:→ yymmbbtt: 部份,想一次搞懂,謝謝 118.166.131.5 01/13 18:32
19F:推 bxxl: 你修過通訊原理(或數位通)跟數位訊號處理嗎?220.136.146.133 01/13 19:14
20F:→ bxxl: 前者有講雜訊的模型跟BER推導.220.136.146.133 01/13 19:16
21F:→ bxxl: 後者讓你知道進來的noise 頻寬應該是多少220.136.146.133 01/13 19:17
22F:→ bxxl: 然後SNR是個不精確的詞, Eb/N0才是精確的220.136.146.133 01/13 19:19
23F:推 bxxl: 假設你把前端的filter變寬, S不變, N卻變大220.136.146.133 01/13 19:24
24F:→ bxxl: 這樣會造成SNR降低. 但其實不影響錯誤率220.136.146.133 01/13 19:25
25F:→ bxxl: 因為那些是out-of-band noise, 可以再濾220.136.146.133 01/13 19:25
26F:→ bxxl: 最終不影響結果.220.136.146.133 01/13 19:25
27F:→ yymmbbtt: 通原有修過,但自己知道還是有些觀念不 118.166.131.5 01/13 21:24
28F:→ yymmbbtt: 是非常清楚,所以想配合讀過後的心得用m 118.166.131.5 01/13 21:24
29F:→ yymmbbtt: atlab來驗證或釐清,像經過這次我才知道 118.166.131.5 01/13 21:24
30F:→ yymmbbtt: 這一部份的差別,是個很好的經驗 118.166.131.5 01/13 21:24
31F:→ yymmbbtt: 數位訊號處理就沒有修了,但我有書籍, 118.166.131.5 01/13 21:25
32F:→ yymmbbtt: 會再去翻翻看的,感謝指教 118.166.131.5 01/13 21:25
33F:推 bxxl: 回想了一下應該不用去看數位訊號處理(很大本220.136.146.133 01/13 23:53
34F:→ bxxl: 去看通原或數通裡面,band-limited noise特性220.136.146.133 01/13 23:54
35F:→ bxxl: 跟了解sampling theorem, 應該就可以了220.136.146.133 01/13 23:55