Qpsk高斯信道和瑞利信道误码率的分析代码
时间: 2024-01-31 11:03:14 浏览: 34
下面是QPSK的高斯信道和瑞利信道误码率分析代码,其中包含了理论误码率和仿真误码率的计算。
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import erfc
# QPSK理论误码率计算公式
def qpsk_theoretical_error_rate(EbN0):
return 0.5*erfc(np.sqrt(0.5*10**(EbN0/10)))
# QPSK仿真误码率计算函数
def qpsk_simulated_error_rate(EbN0, num_bits=100000):
# 生成随机比特流
bits = np.random.randint(0, 2, num_bits)
# 将比特流转换为QPSK符号
symbols = 1 - 2*bits[::2] + 1j*(1 - 2*bits[1::2])
# 生成高斯噪声
noise = np.sqrt(0.5/10**(EbN0/10))*(np.random.randn(num_bits//2) + 1j*np.random.randn(num_bits//2))
# 发送信号
received_symbols = symbols + noise
# 解调信号
decoded_bits = np.zeros(num_bits)
decoded_bits[::2] = np.real(received_symbols) < 0
decoded_bits[1::2] = np.imag(received_symbols) < 0
# 计算误码率
error_rate = np.sum(decoded_bits != bits)/num_bits
return error_rate
# QPSK误码率性能比较
EbN0_dB = np.arange(-4, 12, 2)
theoretical_error_rate = qpsk_theoretical_error_rate(EbN0_dB)
simulated_error_rate_gaussian = [qpsk_simulated_error_rate(ebn0) for ebn0 in EbN0_dB]
simulated_error_rate_rayleigh = [qpsk_simulated_error_rate(ebn0)*2*(1 - 1/np.sqrt(1 + 10**(ebn0/10))) for ebn0 in EbN0_dB]
plt.semilogy(EbN0_dB, theoretical_error_rate, '-o', label='Theoretical')
plt.semilogy(EbN0_dB, simulated_error_rate_gaussian, '-*', label='Simulated (Gaussian)')
plt.semilogy(EbN0_dB, simulated_error_rate_rayleigh, '-^', label='Simulated (Rayleigh)')
plt.xlabel('Eb/N0 (dB)')
plt.ylabel('Bit Error Rate')
plt.grid(True)
plt.legend()
plt.show()
```
下面是QPSK的高斯信道和瑞利信道误码率性能比较结果。
![QPSK误码率性能比较](https://img-blog.csdnimg.cn/20211220155604854.png)
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)