ヒストグラムの時間変化グラフの出力
17 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
michio
on 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)

0 Comments
More Answers (0)
See Also
Categories
Find more on データ分布プロット in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!