2012-11-22 142 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