1.一开始应该从最简单的情况出发
- 一开始应该从最简单的情况出发,一发一收,AWGN,高SNR(可以先设一个SNR点),单用户,看结果是否合理,如果不合理,说明程序有问题。进一步可以不加白噪声,再看结果是否正确。如果正确,控制单一变量,一步一步复杂化。如果最简单的情况下结果不正确,说明程序有问题。可以从先发送端再接收端排除,接收端是发送端的逆向操作。比如可以通过求信道估计的MSE,一步一步来,还是不能急。
- 如果一发一收的情况对,要加入多天线接收的话,加for循环,此时在该种情况下,设为一发一收,查看结果是否合理
- 若上种情况正确,再试一发多收的情况
2.保存.mat文件
当用穷举法的时候,每次运行一次程序很慢,可以第一次运行的时候保存成.mat文件,之后调试的过程可以直接调用。
save('DATA_for_DFT_pool.mat','DATA_for_DFT');
load('DATA_for_DFT_pool.mat','DATA_for_DFT');
3.矩阵运算
- 调试代码的时候,会出现一些矩阵运算,要注意是.*还是*
- 注意sum的用法,指定维度和默认维度
- 注意是最大值还是最小值
- 注意检查程序中新命名的变量是否前后出现
要是不太确定是否正确,可以先用简单的例子先试试,来验证是否正确