BPSK经过瑞利信道误码率matlab仿真问题

求问 为什么这个程序无法实现BPSK经过瑞利信道误码率与实际误码率的对比曲线呢?哪里错了呢

clc
clear all

mod = comm.BPSKModulator;
demod = comm.BPSKDemodulator;
chan = comm.RayleighChannel( ...
    SampleRate=1e4, ...
    MaximumDopplerShift=100);
awgnChan = comm.AWGNChannel( ...
    NoiseMethod='Signal to noise ratio (SNR)');
errorCalc = comm.ErrorRate;

M = 2;                       % BPSK modulation order
tx = randi([0 M-1],50000,1); % Generate a random bit stream

dpskSig = mod(tx);
fadedSig = chan(dpskSig);

SNR = 0:2:20;
numSNR = length(SNR);
berVec = zeros(3, numSNR);
for n = 1:numSNR
   awgnChan.SNR = SNR(n);
   rxSig = awgnChan(fadedSig);
   rx = demod(rxSig);
   reset(errorCalc)
  
   berVec(:,n) = errorCalc(tx,rx);end
BER = berVec(1,:);

BERtheory = berfading(SNR,'psk',M,1);

semilogy(SNR,BERtheory,'b-',SNR,BER,'r*');
legend('Theoretical BER','Empirical BER');
xlabel('SNR (dB)'); 
ylabel('BER');
title('Binary BPSK over Rayleigh Fading Channel');


```bash


```