ヒストグラムの時間変化グラフの出力

16 Ansichten (letzte 30 Tage)
masahiro kida
masahiro kida am 21 Jul. 2017
Beantwortet: michio am 22 Jul. 2017
1秒間でN=1000点の値を時系列で記録した電圧信号があると仮定した場合、 x軸は時間、y軸は電圧、z軸は1秒間の信号を0.1秒毎に10分割したヒストグラムの度数を色で、 平面に表現する方法はありませんか?
以下が元信号です。
Fs = 1/1000 ; % サンプリング周波数
t = (0:1:999) * Fs; % 時間軸
y = sin(2*pi*1*t); % 信号
使っているversionは以下です。
--------------------------------------------------------------------------------------------------
MATLAB バージョン: 9.2.0.556344 (R2017a)
MATLAB ライセンス番号: DEMO
オペレーティング システム: Microsoft Windows 10 Pro Version 10.0 (Build 14393)
Java バージョン: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
--------------------------------------------------------------------------------------------------
MATLAB バージョン 9.2 (R2017a)
  3 Kommentare
michio
michio am 21 Jul. 2017
Bearbeitet: michio am 22 Jul. 2017
すいません、最終的に描かれたい図のイメージがつかめません・・ 例えば・・0.1秒毎に、すなわち 0sから0.1s、0.1sから0.2s、0.2sから0.3s それぞれの区間で10個のヒストグラムを作成し、重ねて描くイメージですか?
masahiro kida
masahiro kida am 22 Jul. 2017
0sから0.1s、0.1sから0.2s…のそれぞれの区間で10個のヒストグラムを作成し、 x軸は時間、y軸は電圧としてヒストグラムをヒートマップで表示したいと考えています。

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

michio
michio am 22 Jul. 2017
x軸は0sから0.1s、0.1sから0.2s…のそれぞれの区間、y軸は電圧に対応。ビン数の要素数をヒートマップで。こんなイメージでしょうか。
もっと良いやり方があるのではとは思いながら、、 histocounts 関数 heatmap 関数 を組み合わせて半ば無理やり作ってみましたが、ラベルを思い通りにするのに多少手間がかかるかもしれませんね。
Fs = 1/1000;% sampling frequency
t = (0:1:999)*Fs;% Time axis
Y = sin(2*pi*1*t);% signal
nbins = 20; % 電圧方向のビン数
[~,edges] = histcounts(Y,nbins); % エッジ計算
YY = reshape(Y, [], 10); % 時系列方向に10個に分割
counts = zeros(nbins,10); % ビンの要素数用の変数
for ii=1:10
counts(:,ii) = histcounts(YY(:,ii),edges);
end
% heatmap(xvalues,yvalues,cdata);
heatmap(1:10, edges(1:end-1), counts)

Weitere Antworten (0)

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!