在赋值 A(:) = B 中,A 和 B 中的元素数目必须相同。 出错 Untitled (line 26) Pe(ii) = sum(data~=data_hat)/N;
时间: 2024-02-29 13:51:15 浏览: 333
Untitled.rar_DOA估计music算法_Untitled_become6cl
这个错误提示是因为在您的代码中,`data`和`data_hat`的长度不同,导致无法将`sum(data~=data_hat)/N`的结果赋值给`Pe(ii)`。您可以通过以下两种方式来解决这个问题:
1. 确保`data`和`data_hat`的长度相同,即在调制完成之后,解调出来的`data_hat`的长度应该与原始数据`data`的长度相同。您可以通过以下代码片段来实现:
```matlab
% 解调
[~,data_hat] = min(abs(rx-QPSK.'),[],2);
data_hat = data_hat-1;
% 确保data和data_hat的长度相同
data_hat = data_hat(1:length(data));
```
这段代码会通过切片的方式,将`data_hat`的长度截取到与`data`相同。
2. 将`Pe`的长度定义为与`EbN0_dB`相同,而不是与`N`相同,即将这行代码:
```matlab
Pe = zeros(1,length(EbN0_dB));
```
改为:
```matlab
Pe = zeros(size(EbN0_dB));
```
这样,`Pe`的长度就与`EbN0_dB`相同,可以确保在进行误码率统计时,`Pe(ii)`的赋值不会出现长度不同的问题。
希望这些解决方案可以帮助您解决问题!
阅读全文