用Matlab实现一发两收并且调制信号为BPSK经过瑞利信道的分集接收技术。
时间: 2023-06-25 15:03:23 浏览: 195
以下是一份简单的 Matlab 代码实现一发两收并且调制信号为BPSK经过瑞利信道的分集接收技术。其中,瑞利信道使用了 Rayleigh fading 模型。
```
% 发送端
N = 10000; % 发送的比特数
data = randi([0,1],1,N); % 随机生成发送的比特流
mod_data = 2*data-1; % BPSK调制
tx_signal = mod_data; % 发送信号
% 瑞利信道模型
h1 = (randn(1,N)+1i*randn(1,N))/sqrt(2); % 第一个接收天线的信道增益
h2 = (randn(1,N)+1i*randn(1,N))/sqrt(2); % 第二个接收天线的信道增益
% 接收端1
rx_signal1 = h1.*tx_signal + 0.1*(randn(1,N)+1i*randn(1,N)); % 接收信号1
rx_mod_data1 = real(rx_signal1) > 0; % BPSK解调
err1 = sum(abs(data-rx_mod_data1)); % 统计误码率
% 接收端2
rx_signal2 = h2.*tx_signal + 0.1*(randn(1,N)+1i*randn(1,N)); % 接收信号2
rx_mod_data2 = real(rx_signal2) > 0; % BPSK解调
err2 = sum(abs(data-rx_mod_data2)); % 统计误码率
% 分集接收
rx_signal_div = h1.*rx_signal1 + h2.*rx_signal2; % 分集接收信号
rx_mod_data_div = real(rx_signal_div) > 0; % BPSK解调
err_div = sum(abs(data-rx_mod_data_div)); % 统计误码率
```
上述代码中,我们首先生成了一个长度为 N 的随机比特流,然后对其进行 BPSK 调制。接着,我们通过瑞利信道模型生成两个接收天线的信道增益 h1 和 h2,并将调制后的信号经过瑞利信道发送到两个接收端。在接收端,我们对接收到的信号进行 BPSK 解调,并计算误码率。最后,我们使用分集接收技术,将两个接收端的信号进行加权和,得到分集接收信号,并对其进行 BPSK 解调和误码率计算。
阅读全文