equal
deleted
inserted
replaced
58 double |
58 double |
59 YansErrorRateModel::GetQamBer (double snr, unsigned int m, uint32_t signalSpread, uint32_t phyRate) const |
59 YansErrorRateModel::GetQamBer (double snr, unsigned int m, uint32_t signalSpread, uint32_t phyRate) const |
60 { |
60 { |
61 double EbNo = snr * signalSpread / phyRate; |
61 double EbNo = snr * signalSpread / phyRate; |
62 double z = sqrt ((1.5 * Log2 (m) * EbNo) / (m - 1.0)); |
62 double z = sqrt ((1.5 * Log2 (m) * EbNo) / (m - 1.0)); |
63 double z1 = ((1.0 - 1.0 / sqrt (m)) * erfc (z)) ; |
63 double z1 = ((1.0 - 1.0 / sqrt (m)) * erfc (z)); |
64 double z2 = 1 - pow ((1 - z1), 2.0); |
64 double z2 = 1 - pow ((1 - z1), 2.0); |
65 double ber = z2 / Log2 (m); |
65 double ber = z2 / Log2 (m); |
66 NS_LOG_INFO ("Qam m=" << m << " rate=" << phyRate << " snr=" << snr << " ber=" << ber); |
66 NS_LOG_INFO ("Qam m=" << m << " rate=" << phyRate << " snr=" << snr << " ber=" << ber); |
67 return ber; |
67 return ber; |
68 } |
68 } |