2012-11-22 21 views
5

Matlab'ı kullanıyorum. Karmaşık değerlerden oluşan büyük bir sütun vektörüne sahibim. Örneğin.Matlab: Renk derecesi bir Takımyıldızı Diyagramı

verileri = [
-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
....
]

Bu, aşağıda gösterilen bir konstelasyon diyagramını temsil etmektedir.

enter image description here

Belirli bir noktada gradına frekansına bağlı olarak konstelasyon noktaları renk istiyoruz. Bir histogram oluşturmam gerektiğini farz ediyorum, fakat bunu karmaşık vektörler kullanarak nasıl yapacağımı ve renk sınıfını nasıl çizeceğimi bilmiyorum. Herhangi bir yardım takdir edildi.

+1

Maalesef, tam olarak ne demek istediğinizi "* belirli bir noktada frekansa bağlı takımyıldızı puanlarını renklendirmek için * anlayamıyorum." Yapmak istediğin şeyin matematiği hakkında daha açık konuşabilir misin? – Acorbe

+0

Her alt taşıyıcı için OFDM işaretinin farklı renklerle takımyıldız diyagramını çizmek ister misiniz? – Deve

+0

Üzgünüz, ancak renk notu demek istediğim: "Renk Derecesi özelliği, arsadaki bir noktanın meydana gelme sıklığının rengin gösterdiği bir kalıcılık çizgisi sağlar." Burada bir örnek verilmiştir: https://www.dropbox.com/s/ujlnb29xvybmbtr/colour%20grade%20QPSK.JPG – user1844666

cevap

2

: en kolay yolu bu gibi gerçek ve hayali noktaları ayırmak ve hist2d fonksiyonunu kullanmak olacaktır histogram matrisi, imagesc ölçekli bir ısı haritası çizer. 3D görselleştirmeyi tercih ediyorsanız, sadece hist3(histdata) yazın.

Çalışma alanı penceresindeki N'ye sağ tıklarsanız, başka görselleştirme seçenekleri de vardır. Dolu bir kontur çizim olan contourf(N)'u da denemenizi tavsiye ederim.

+0

Yardımlarınız için teşekkür ederiz. Isı haritası tam aradığım cümlenin aynısıydı. – user1844666

+0

sorun yok adamım. –

1

Yapmak istediğiniz şey iki 2'lik bir histogram bulmaktır. İşte

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 oluşturur: Sana bir ısı haritasını yapmak istiyorum düşünüyorum

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

hist2d([rdata;idata]); 
+0

Yardımlarınız için teşekkürler, bu harika çalıştı – user1844666