ママのスキンケアのお悩みにおすすめアイテム

 今エクセルで、グラフ化すると、
横軸:時間 
縦軸:電圧
で sinカーブのような波形となる数値データがあります。この振幅(山)の大きさは時間によって微妙に違います。振幅の平均値を取りたいのですが、何かいい方法ありますか?要は半周期での極大値を拾って、それを平均すればよいのですが方法が分かりません。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

グラフの元となったシートで、極大値は「左側のセルより大きく、かつ右側のセルより小さい」と言えると思います。



従って、a列に時刻、b列に電圧が入力されているとして
c2セルに
=if(and(b2>=b1,b2=<b3),b2,"")
と入力して、そのセルを最終行の1行前までコピーしたらよいと思います。

そしてc列の平均を取ればいいでしょう

極小値はd列に
=if(and(b2>=b1,b2=<b3),b2,"")
ですね。

なおb1にはダミーで数字のZEROを入れて下さい。

平均は
=AVERAGE(c2:cX) Xは最終データ行数
で求められます
    • good
    • 3
この回答へのお礼

ありがとうございます!とても分かりやすい説明でとても参考になりました。感謝しています。

お礼日時:2006/06/16 02:06

最大値=MAX(半周期の範囲)


最小値=MIN(半周期の範囲)
上記の平均なら
平均値=(MAX(半周期の範囲)+MIN(半周期の範囲))/2
    • good
    • 0
この回答へのお礼

ありがとうございます。参考にしてみます。

お礼日時:2006/06/16 02:07

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q曲線グラフからピーク値を求める方法

VB6のプログラムでちょっとつまづいているのでどなたか分かる方いらっしゃいましたら助言お願いいたします。

今、sinカーブのような曲線があるとします。
このsinカーブの極大値、極小値をもとめたいんですが;

微分を使わずに簡単に行ういい方法ってないでしょうか?
ちなみに自分は y座標方向のデータをyy(800)の配列にすべてのデータを入れておいて
yの最大値をymax(50)のように配列しておき

範囲を手入力で指定し、for 文でループさせ、その中に条件式を書いて
求めています。実際にはこんな感じです。
これは最大値をもとめるときのものです
ymax(0)=0
 for i= 0 to 800
if ymax(0)<y(i) then yymax(0)=y(i)
end if
next i

というような簡単な並べ替えでやっています。
範囲指定をせずこのような並べ替えの方法でうまく求める方法ってないものでしょうか?
長々とかいてしまいましたがどなたか分かる方いらっしゃいましたら
よろしくお願いします。

VB6のプログラムでちょっとつまづいているのでどなたか分かる方いらっしゃいましたら助言お願いいたします。

今、sinカーブのような曲線があるとします。
このsinカーブの極大値、極小値をもとめたいんですが;

微分を使わずに簡単に行ういい方法ってないでしょうか?
ちなみに自分は y座標方向のデータをyy(800)の配列にすべてのデータを入れておいて
yの最大値をymax(50)のように配列しておき

範囲を手入力で指定し、for 文でループさせ、その中に条件式を書いて
求めています。実際にはこん...続きを読む

Aベストアンサー

微分といってもさほど難しく無いように思いますが

Y成分の現時点と次との傾きが0または逆転する部分を見つければいいのではないでしょうか

800個のデータがあるのであれば

dim oldAngle as Double, Angle as Double
dim cnt as integer
oldAngle = y(1) - y(0)
cnt = 0
for n = 1 to 799 ' 800-1
  angle = y(n+1) - y(n)
  if Sgn(oldAngle) <> sgn(Angle) or Angle = 0 then
    ymax(cnt) = y(n)
    cnt = cnt + 1
  end if
next

# Angle=0は Round(Angle,8)などで丸めておいてからのほうがいいかも

Qピークの検出方法

ある離散時系列データf(x)があったとき、単純に考えれば
f'(x)=f(x+1)-f(x)<0.0001,f''(x)=f'(x+1)-f'(x)<0
となるxを求めればピークのxが検出できると思いますが、
f(x)が滑らかでない場合はどんな方法でピークが検出できますでしょうか?

Aベストアンサー

>f'(x)=f(x+1)-f(x)<0.0001, f''(x)=f'(x+1)-f'(x)<0 ....

基本はこれでOKなので、「f(x)が滑らかでない場合」に引っかかりそうなケースを考えてみましょう。

[誤検出しそうな例]
(1) サンプリングしたデータでは、ピークでの増分が 0.0001 未満とは限らない。(つまり、とんがり気味のピークは検出できない)
(2) 真のピークではなく、裾野の細かいうねりまで検出するおそれがある。

[対策例]
(1) 単純に、f'(x)が正から負へ極性反転したらピークとみなす。
(2) #1 さんの「平滑化」処理を適用する。
(2)' あるいは、f'(x)が正から負へ極性反転したピークの高さに閾値を設定しておく。(つまり、細かなピークは無視する)

ピーク検出には、適用分野に応じたノウハウが多数あるようです。

Qvbaで極大値を抽出する方法

数千の値を持つcsvファイルを所持しております。(A1-A5000位までに値が入っている)
値をグラフ化するとサインカーブの様な曲線が描かれる数値群なのですが
その中から

・極大となる値を始めから5つ
・その極大値に対する行の数

の二点を取り出すものを作りたいのですが、うまく行きません。
基本的にはおよそ100ごとに極大をとるのですが
ノイズが入っており極大から極小に向けて常に減少を続ける訳でなく
たまに増加してる点が現れていたりします。

流れとしては

A1から100個を探して、その中の極大を探す
A101から100個を探して極大を・・・

みたいな風にやりたいのですが、もしよろしければご教授頂けないでしょうか。

Aベストアンサー

VBAではなくて、関数案ですが
B列に
=MAX(A1:A100) と入れて下までコピーします。
C列に
=INDEX(B:B,(ROW(A1)-1)*100+1)
と入れて下までコピーすれば、10行ごとの値がでます。

>ノイズが入っており極大から極小に向けて常に減少を続ける訳でなく
>たまに増加してる点が現れていたりします。
たぶん、やりたいことは、実験値の中からノイズと思われる異常値を除去したいと
いう事ではないでしょうか。
エクセル 異常値 除去 或いは ノイズ 除去
などで検索すると、いくつかの方ほが紹介されています。

考え方も色々ですが、例えば
A1:A100 の平均値と分散(或いは標準偏差値)を求めて
実験値が分散の範囲外であれば、空白にするとかであれば
B列に
=IF(A2>AVERAGE(A2:A101)+STDEV(A2:A101),"",A2)
といったような関数を下までコピーすれば、想定した異常値を空白にできます。

Qエクセル STDEVとSTDEVPの違い

エクセルの統計関数で標準偏差を求める時、STDEVとSTDEVPがあります。両者の違いが良くわかりません。
宜しかったら、恐縮ですが、以下の具体例で、『噛み砕いて』教えて下さい。
(例)
セルA1~A13に1~13の数字を入力、平均値=7、STDEVでは3.89444、STDEVPでは3.741657となります。
また、平均値7と各数字の差を取り、それを2乗し、総和を取る(182)、これをデータの個数13で割る(14)、この平方根を取ると3.741657となります。
では、STDEVとSTDEVPの違いは何なのでしょうか?統計のことは疎く、お手数ですが、サルにもわかるようご教授頂きたく、お願い致します。

Aベストアンサー

データが母集団そのものからとったか、標本データかで違います。また母集団そのものだったとしても(例えばクラス全員というような)、その背景にさらならる母集団(例えば学年全体)を想定して比較するような時もありますので、その場合は標本となります。
で標本データの時はSTDEVを使って、母集団の時はSTDEVPをつかうことになります。
公式の違いは分母がn-1(STDEV)かn(STDEVP)かの違いしかありません。まぁ感覚的に理解するなら、分母がn-1になるということはそれだけ結果が大きくなるわけで、つまりそれだけのりしろを多くもって推測に当たるというようなことになります。
AとBの違いがあるかないかという推測をする時、通常は標本同士の検証になるわけですので、偏差を余裕をもってわざとちょっと大きめに見るということで、それだけ確証の度合いを上げるというわけです。

QExcelで微分をしたいのですが。。。

題意のままですが・・・(´;ω;`)ウッ…
Excelを使って微分の計算をすることは可能でしょうか・・・?
またExcelで使えるツールなどでももちろんOKです。
ご存知の方が見えましたらお助けお願いします。。。

Aベストアンサー

>エクセルを使って微分の計算をする
とはどういうことでしょうか。
たとえば、(1)y=Xの2乗の導関数のy=2Xを求めるということでしょうか。これは「数式処理」に該当し、エクセルは値を扱う(四則演算が中心)ものなので、お門違いの要求です。他のソフト(ただし原理的にどんな数式・関数に対しても求まるソフトはないようですが)を探しましょう。ただアドインという形だとプログラムを組んで何でもエクセルにぶち込めるようなので、そういう例があったとしたら、話は別です。
積分の原始関数を求めるというのも似たパターンでしょう。
そうではなくて
(2)上記の例で、導関数を、人間が!
(A)エクセルの関数式で与えてやり、
(B)またはその導関数の近似値を与える関数式を与えて
やるなら、
後はエクセルは「電卓の計算を繰り返し高速計算するような」ものですから可能と思います。
ただ1000個の数の足し算をするという風には簡単にいかないケースがあるとは思いますので、勉強がひつようでしょう。収束や近似や速度に合う条件・計算法が必要でしょうから。
y=Xの2乗の(1、1)点の接線の勾配を出すなら
2X1=2で簡単です。
微分でなくて、定積分なら数値計算法を質問する意味はあると思いますが。
エクセルは四則演算といっても初等的三角関数、対数
、行列計算、ガンマ関数などもあります。
上記は原則論ですが、エクセルは全世界の俊秀も使っているとおもわれ、いろいろな機能を付加されているかも知れないので、最低WEB照会程度はして、よく調べてください。またエクセルを入り口や出口の入力・結果表示の道具として使っているケースは多いようですから、そういうケースは「エクセルでできる」に該当しないと思います。

>エクセルを使って微分の計算をする
とはどういうことでしょうか。
たとえば、(1)y=Xの2乗の導関数のy=2Xを求めるということでしょうか。これは「数式処理」に該当し、エクセルは値を扱う(四則演算が中心)ものなので、お門違いの要求です。他のソフト(ただし原理的にどんな数式・関数に対しても求まるソフトはないようですが)を探しましょう。ただアドインという形だとプログラムを組んで何でもエクセルにぶち込めるようなので、そういう例があったとしたら、話は別です。
積分の原始関数を求...続きを読む

QExcelで最大値の入っている数値の右側にある項目名を拾いたい。

Excelで最大値の入っている数値の右側にある項目名を拾いたい。

下のようなデータがあります。(A列は年、Bは何かの生産量・・とします)

1 2000 7
2 2001 11
3 2002 14
4 2003 10
5 2004 9
6 2005 8

生産量(B列)の最大値を求めるのは=MAX(B1:B7)で"14"が得られると思いますが、求めているのは"14"の入っている年の"2002"という数字を隣のC1に入れたいと思います。
どのような関数が必要でしょうか?

Aベストアンサー

こんばんは!
一例です。

↓の画像でC2セルに表示するようになりますが・・・

C2セルの数式は
=INDEX($A$2:$A$1000,MATCH(MAX(B2:B1000),B2:B1000,0))
にしています。
(エラー処理はしていません)
A列の1000行目まで対応できるようにしていますが、
データ量によって範囲指定の領域はアレンジしてみてください。

以上、参考になれば幸いです。m(__)m

Qエクセル 0や空白のセルをグラフに反映させない方法

以下の点でどなたかお教えください。

H18.1~H20.12までの毎月の売上高を表に記載し、その表を元にグラフを作成しています。グラフに反映させる表の範囲はH18.1~H20.12の全てです。
そのためまだ経過していない期間のセルが空白になり、そこがグラフに反映され見づらくなります。
データを入力する都度グラフの範囲を変更すればいいのですが、うまく算式や設定等で空白や0円となっているセルをグラフに反映させない方法はありますか?

お手数ですが、よろしくお願いいたします。

Aベストアンサー

売上高のセルは数式で求められているのですよね?
それなら
=IF(現在の数式=0,NA(),現在の数式)
としてみてください。
つまり、0の場合はN/Aエラーにしてしまうんです。N/Aエラーはグラフに反映されません。

Q手軽に曲線の平滑化をしたい

手軽に曲線の平滑化をしたい

下図のような曲線に平滑化を施し、なめらかな曲線になるような値にしたいです。
エクセルには、A列に時間t、B列に時間ごとに得られたデータが出力されているとします。
エクセルの機能またはそれ以外の方法で簡単にできる方法はあるでしょうか?
知っている方教えてください。よろしくお願いします。

Aベストアンサー

Excelグラフの散布図から
グラフエリアを右クリック→グラフの平滑化で如何ですか

Qエクセルでノイズ値を除去する方法。

エクセルでノイズ値を除去できませんか。
ノイズ値除去をしたく、ネットで調べるとフーリエ変換という言葉が出てきます。
しかし、今一よくわかりません。
具体的には、
「2、5、7、5、8、21、6、10」という8個の数値があった場合に、
「21」をノイズ値として除去したいです。
実際にできるのでしょうか。
やり方を教えてください。宜しくお願いします。

Aベストアンサー

#1です.

3σの外を切るような乱暴な方法とか,
はたまた,外れ値は自動的には除去できないとか,無責任な回答があったので,
修正しておきます.

私は,「ノイズを除去しても欠測値にはしない」という立場で書いてきましたが,
除去でよいのなら,次のような取り除き方があります.

まずベースラインを補正します.
これは例えば,小学生の身長のように,学年に比例する観測値なら
学年に比例する分を取り除き,一定信号に基準化する作業です.

次に全体のヒストグラムを作ります.
これが,フーリエ変換のような作業だと考えて下さい.

運よく二山になったら,山の隙間のどこかに閾値(しきい値)をとって,上側の山を切り落とします.
これはローパスフィルタのような作業です.

二山にならず,肩のこぶのようになっていたら,
ここから先はエクセルでは無理かと思いますが,
ガウス分布やガンマ分布をあてはめて,二山をフィットします.
次にそれらの関数を使って,閾値を決めます.
閾値は,第1種の過誤(α)と第2種の過誤(β)が同じになるように決め,
原信号の犠牲比率とノイズの混入比率を同等にします.
次に,閾値から上側を切り落とします.

このように,ノイズの除去には原信号の犠牲が伴い,
それに対する配慮が必要であることを分かって頂けたと思います.
3σの外を切るような乱暴な話ではありません.

#1です.

3σの外を切るような乱暴な方法とか,
はたまた,外れ値は自動的には除去できないとか,無責任な回答があったので,
修正しておきます.

私は,「ノイズを除去しても欠測値にはしない」という立場で書いてきましたが,
除去でよいのなら,次のような取り除き方があります.

まずベースラインを補正します.
これは例えば,小学生の身長のように,学年に比例する観測値なら
学年に比例する分を取り除き,一定信号に基準化する作業です.

次に全体のヒストグラムを作ります.
これが,フーリエ変換のよ...続きを読む

QEXCELにてローパスフィルタを作成する

実験の測定データをEXCELでデータ整理しようと考えております。データ整理のためローパスフィルタをかけたいのですが、具体的にどういった式、もしくはEXCELの機能を使用したらいいのでしょうか?デジタルフィルタが良く分からないのでよろしくお願いします。
ちなみにローパスフィルタは1000Hzをかけたいです。

Aベストアンサー

時系列データの処理ならば

OutputData(n+1) = OutputData(n) + (InputData(n+1) - OutputData(n)) * dt / T

dt:データのサンプリング間隔
T:フィルタの時定数 1/2πf
f:カットオフ周波数
n,n+1:それぞれn個目,n+1個目のデータをしめす。

でいけると思いますが、一次のパッシブなんで効果が薄いかも。(普通はベッセルかけるんでしょうけど、そこまではわからない)


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング