通信原理中用matlab进行2DPSK的实验,实验内容包括伯努利信号的2DPSK调制(键控法)与解调(相干解调),并模拟高斯噪音(均值为0,方差设置为0.5),最后得误差信号波形来验证,几秒以后开始一直为0,已知该实验结果并没有问题,请分析该实验整体流程和实验结果
时间: 2023-06-19 12:08:07 浏览: 86
2DPSK是一种数字调制方式,它将二进制数据转换为相位变化,从而实现数据的传输。本实验主要包括伯努利信号的2DPSK调制与解调,并模拟高斯噪音。
整体流程如下:
1. 生成伯努利信号,即随机二进制序列,这里我们可以使用Matlab的rand函数生成。假设我们要生成长度为N的伯努利信号,代码如下:
```matlab
x = rand(1,N)>0.5;
```
2. 对伯努利信号进行2DPSK调制。2DPSK是一种相干调制方式,它将0、1两种状态分别映射为相位为0和相位为π的载波信号,然后将二进制信号序列分组,每组两个比特,将其映射到相位两种不同的调制信号上,从而形成复合调制信号。具体实现可以使用Matlab的modulate函数,代码如下:
```matlab
carrier = exp(j*[0 pi]); % 相位为0和pi的载波信号
y = modulate(modulate(x,2,carrier),2*carrier); % 2DPSK调制
```
3. 模拟高斯噪音。高斯噪音是一种常见的随机干扰信号,它的统计特性符合高斯分布。在本实验中,我们可以使用Matlab的randn函数生成高斯噪音,代码如下:
```matlab
noise = 0.5*randn(1,length(y)); % 均值为0,方差为0.5的高斯噪音
z = y + noise; % 叠加高斯噪音
```
4. 对2DPSK调制信号进行解调。解调的目的是将复合调制信号恢复为原始的二进制信号,从而实现数据的传输。在本实验中,我们可以使用Matlab的demodulate函数进行相干解调,代码如下:
```matlab
x_hat = demodulate(demodulate(z,2,carrier),2*carrier); % 相干解调
```
5. 分析误差信号波形。最后,我们可以计算解调信号和原始信号之间的误差,从而验证实验结果是否正确。误差信号可以使用Matlab的xor函数计算,代码如下:
```matlab
err = xor(x,x_hat); % 计算误差信号
plot(err) % 绘制误差信号波形
```
根据题目描述,这个实验的结果是没有问题的,误差信号最终一直为0,这说明伯努利信号成功地通过2DPSK调制、加噪声和相干解调传输,没有发生数据传输错误。
阅读全文