2012-11-22 10 views
5

Używam programu Matlab. Mam duży wektor kolumnowy złożony ze złożonych wartości. na przykładMatlab: Klasa koloru a Schemat konstelacji

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

Stanowi to diagram konstelacji, które są przedstawione poniżej.

enter image description here

Chciałbym kolor punkty konstelacji w zależności od częstotliwości stopnia w określonym punkcie. Zakładam, że muszę utworzyć histogram, ale nie jestem pewien, jak to zrobić za pomocą złożonych wektorów, a następnie, jak wykreślić kolorystykę. Każda pomoc doceniona.

+1

Przepraszam, ale nie jestem w stanie zrozumieć, co dokładnie rozumiesz przez "* nadawanie ocenom punktów konstelacji w zależności od częstotliwości w określonym punkcie *". Czy mógłbyś bardziej otwarcie powiedzieć o matematyce tego, co chcesz robić? – Acorbe

+0

Czy chcesz wykreślić schemat konstelacji sygnału OFDM z różnymi kolorami dla każdej podnośnej? – Deve

+0

Przykro mi, ale stopień koloru mam na myśli: "Funkcja Color Grade zapewnia niekończący się wykres trwałości, w którym częstotliwość występowania punktu na wykresie jest wskazywana przez jego kolor." Podany jest przykład: https://www.dropbox.com/s/ujlnb29xvybmbtr/colour%20grade%20QPSK.JPG – user1844666

Odpowiedz

2

Myślę, że chcesz zrobić mapę ciepła:

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); 

Tutaj hist3 tworzy matryca histogramu, imagesc rysuje skalowaną mapę cieplną. Jeśli wolisz wizualizację 3D, po prostu wpisz hist3(histdata).

Po kliknięciu prawym przyciskiem myszy litery N w oknie roboczym dostępnych jest wiele innych opcji wizualizacji. Proponuję również wypróbować contourf(N), który jest wypełnionym polem konturu.

+0

Dziękuję za pomoc. Mapa termiczna była dokładnie tym, czego szukałem. – user1844666

+0

nie ma problemu, stary. –

1

Chcemy więc znaleźć histogram dwóch-2. Najprostszym sposobem byłoby oddzielić prawdziwe i wyimaginowane punkty i korzystać z funkcji hist2d, tak:

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

hist2d([rdata;idata]); 
+0

Dziękuję za pomoc, to zadziałało – user1844666

Powiązane problemy