ビット誤り率を計算するために numpy で matlab コードを変換しようとしています コードの一部が問題を引き起こしています これは変換したい matlab コードです
SNR=6:22;
display(SNR)
display(length(SNR))
BER=zeros(1,length(SNR));
display(BER)
display(length(BER))
Es=10;
for ii=1:length(SNR)
variance=Es*10^(-SNR(ii)/10);
std_dev=sqrt(variance/2);
noise=(randn(1,length(S))+sqrt(-1)*randn(1,length(S)))*std_dev;
S_noisy=S+noise;
end
display(variance)
Python コード SNR=arange(6,23,1)
BER=zeros(len(SNR))
print(BER)
Es=10
for ii in arange(0,len(SNR)):
variance=Es*10**(-SNR[ii]/10)
std_dev=cmath.sqrt(variance/2)
noise=(np.random.randn(len(S))+cmath.sqrt(-1)*np.random.randn(len(S))) *std_dev
S_noisy=S+noise
print(variance)
分散の答えは python では 0.063 bt である必要があり、0.01 plzz ヘルプが表示されます