5

Matlabを使用しています。複素数値で構成される大きな列ベクトルがあります。例えば

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







これは、以下に示すコンスタレーションダイアグラムを表しています。

ここに画像の説明を入力してください

特定のポイントでの頻度に応じて、コンスタレーションポイントをカラーグレーディングしたいと思います。ヒストグラムを作成する必要があると思いますが、複雑なベクトルを使用してこれを行う方法と、カラーグレードをプロットする方法がわかりません。助けていただければ幸いです。

4

2 に答える 2

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)塗りつぶされた等高線図も試してみることをお勧めします。

于 2012-11-22T16:06:08.690 に答える
1

したがって、実行したいのは、2対2のヒストグラムを見つけることです。最も簡単な方法は、実数点と虚数点を分離し、次のようにhist2d関数を使用することです。

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

hist2d([rdata;idata]);
于 2012-11-22T12:10:33.577 に答える