作者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/cn.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