2012-11-22 96 views
5

我正在使用Matlab。我有一个由复数值组成的大列向量。例如Matlab:色阶a星座图

数据= [
-0.4447 + 0.6263i
0.3114 + 0.8654i
0.7201 + 0.6808i
0.7566 + 0.8177i
-0.7532 - 0.8085i
-0.7851 + 0.6042i
-0.7351 - 0.8725i
-0.4580 + 0.8053i
0.5775 - 0.6369i
0.7073 - 0.5565i
0.4939 - 0.7015i
-0.4981 + 0.8112i
....
]

这表示其在下面示出的星座图。

enter image description here

我想在一个特定的点颜色等级取决于频率的星座点。我想我需要创建一个直方图,但我不知道如何使用复杂的矢量做到这一点,然后如何绘制颜色等级。 任何帮助表示赞赏。

+1

对不起,但我无法理解您的确切意思是“*根据特定点处的频率对星座点进行着色等级”。你能更清楚地知道你想做什么的数学吗? – Acorbe

+0

您是否想要为每个副载波绘制具有不同颜色的OFDM信号的星座图? – Deve

+0

对不起,但是颜色等级I的意思是:“颜色等级功能提供了一个无限持久性图,其中图上点的出现频率由其颜色表示。”一个例子在这里给出:https://www.dropbox.com/s/ujlnb29xvybmbtr/colour%20grade%20QPSK.JPG – user1844666

回答

2

我想你想要做一个热图:

histdata = [real(data), imag(data)]; 
nbins_x = nbins_y = 10; 
[N, C] = hist3(histdata, [nbins_x, nbins_y]); % the second argument is optional. 
imagesc(N); 

这里hist3创建直方图矩阵imagesc绘制缩放的热图。如果您更喜欢3D可视化,只需输入hist3(histdata)

如果您在工作区窗口中右键单击N,则还有很多其他可视化选项。我建议也尝试contourf(N)这是一个填充轮廓图。

+0

谢谢你的帮助。热图恰好是我正在寻找的词组。 – user1844666

+0

没问题,男人。 –

1

所以,你想要做的是找到一个2 - 2直方图。最简单的方法是将分离出实部和虚点,并使用hist2d功能,像这样:

rdata=real(data); 
idata=imag(data); 

hist2d([rdata;idata]); 
+0

谢谢你的帮助,这很有效 – user1844666