1~200Hzまで0.01Hz間隔で振動レベルがわかっている場合、80Hzを中心とする1/3オクターブバンドレベルの大きさはどのようにして求めるのですか?

まず、80Hzのバンドを中心としたフィルターを通して、その後の各周波数の振動レベルの和を求めていくと考えているのですが、うまくいきません。
教えていただけないでしょうか?

各周波数ごとの和をとった場合、周波数刻み幅が大きいほど値が大きくなってしまうと思うのですが、周波数間隔で割るなどの処理が必要なのでしょうか?

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

A 回答 (1件)

中心周波数80Hzの周波数範囲は71Hzから90 Hzですから、中心周波数80Hzの振動レベルは71Hzから90Hzの19個の振動レベル L71、L72、・・・ L90 dB のdB和として次式で求められます。


10log[10^(L71/10)+10^(L72/10)+・・・+10^(L90/10)] dB 
また71Hzの振動レベル L71は70.01~71.00Hzの100個の振動レベルのdB和として上式で求められます。
72、73・・・90Hzのレベルについても同じです。
計算は以上のとおりですが、1~200Hzの範囲を中心周波数80Hzの1/3オクターブバンドフィルターを通した結果得られるのが、上記計算結果です。                     以上
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/04/26 12:52

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

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

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

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

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

Qarray_rand関数

現在、ランダム関数を使用して、配列にある値の中から
ランダムにいくつかの配列を抜き出す処理を行っています。

$rand_keys = array_rand($id,2);
for($k=0;$k<count($rand_keys);$k++){
 $rand_id[$i][$k]=$id[$rand_keys[$k]];
}

ただし、この関数では一つだけ取り出したい場合には使えません。
何かよい方法はありませんか??

Aベストアンサー

#1です。こちらこそすいませんでした。不勉強でした。
てっきり・・・1でもキーが取得できると思ってました。
改めて・・・
$rand[$i]が1の場合、$rand_keys[$i]は要素1の配列になることは分かっているので、格好悪いかもしれませんが、
<補足回答より>
$rand[0]=1;
$rand[1]=3;
$rand[2]=2;
$rand[3]=2;
for($i=0;$i<count($rand);$i++){
if($rand[$i] == 1){
$rand_keys[$i]=array( 0 => array_rand($id,$rand[$i]) );
}else{
$rand_keys[$i]=array_rand($id,$rand[$i]);
}
}

でどうでしょうか?今度は自分でもやってみました。
また勘違いしてたらすいません。

Q振動レベルと振動加速度レベルについて

振動レベル70dBに対して振動加速度レベルは1G以下なのかを調べてもらえないかと人から聞かれて困っています。
振動レベルと振動加速度レベルとはどのような関係なのでしょうか?

Aベストアンサー

下記の以前の質問がお役に立つと思います。結論的には1G以下と思います。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=556178

QMATLABの乱数生成関数 rand( ) について

一様乱数を生成する関数rand()について
 ・Y = rand(n);

 ・rand('state',sum(100*clock));
  Y = rand(n);

という2つのやり方があるようなのですが,以下のmatlabの関数の説明
のページをみても2つの違いが理解できません.
http://infoshako.sk.tsukuba.ac.jp/ShakoDoc/MATLAB5/jhelp/techdoc/ref/rand.html

どういう違いがあるのでしょうか?
また,この関数は[0,1]の一様乱数としていますが,[-a,a]みたいに範囲指定はできないのでしょうか?

回答よろしくお願いします.

Aベストアンサー

Y = rand(n);
は乱数発生器が固定されています。
ですので、rand関数を実行するたびに同じルールに従って乱数を生成します。

対して、
rand('state',sum(100*clock));
Y = rand(n);
は使用する乱数発生器を実行時の時間を基準に決定します。
ですので、rand関数を実行するたびにルールを変更して乱数を生成します。(変更した結果、同じルールが選択される場合もあります)

任意の範囲で正負を付けたい場合は、例えば以下のようにすれば可能です。

例:-1000~1000の乱数の場合
(1) 乱数1生成
(2) 乱数2生成
(3) Ans = 1000 * 乱数1
(4) 乱数2が奇数の場合 Ans = -Ans

Qオクターブバンド分析とは

床の上を人が歩くことに伴う振動測定(鉛直振動)を行い、オフライン処理(ソフトウェア上)で測定データから、1/3オクターブバンド分析による加速度の最大値(0-P)が求めたい結果です。
そもそもオクターブバンド分析というものは、全体波形(振動波形)のどのタイミングで処理を行っているものなのでしょうか?振動波形の中で最大値を示す箇所(もしくは、オーバオールが最大の位置)で処理を行いたいのですが、関連書物を見てもいまいちピンとくるものがありませんでした。
私自身の勉強不足ではありますが、何卒ご教示宜しくお願いいたします。

Aベストアンサー

通常オクターブバンドはアナログフィルターを介してバンド幅の周波数範囲の振動成分を抜き取り、解析しています。これをリアルタイムと呼んでいます。通常は表示は瞬時値ではなく、rms値を用います。
つまり、アナログフィルターというハードが必要なのです。

しかし質問者が行おうとしているのものは、おそらくディジタル信号で取り込んだデータをコンピュータ上で計算しようとしているのではないでしょうか?
それも、FFTを用いた方法を考えているのではないでしょうか?

FFTは一定の時間のデータが必要なので、オーバーオールが最大を示す瞬間のデータだけを解析することはできず、その周辺のデータも使用しなければなりませんので、質問者がしたいことは無理でしょうし、FFTから考えているから質問にあるような疑問が浮かんでいることと思います。
またこの方法から求めた値は必ずしもリアルタイムにより求めた結果と一致しません(このことはリオンのバンド分析器のマニュアルにも書いてありましたね)。

なお、私自身はあまり詳しくないのですが、ディジタルフィルターでバンドパスをかけた波形から、オールパスが最大を示した瞬間の波形振幅を読み取れば、できそうな気もします。でも、フィルターをかけた際に位相のずれが発生することが多いので、そのためにできないかもしれません。

通常オクターブバンドはアナログフィルターを介してバンド幅の周波数範囲の振動成分を抜き取り、解析しています。これをリアルタイムと呼んでいます。通常は表示は瞬時値ではなく、rms値を用います。
つまり、アナログフィルターというハードが必要なのです。

しかし質問者が行おうとしているのものは、おそらくディジタル信号で取り込んだデータをコンピュータ上で計算しようとしているのではないでしょうか?
それも、FFTを用いた方法を考えているのではないでしょうか?

FFTは一定の時間のデ...続きを読む

QWordのrandとは?

Wordで、たとえば

=rand(3,9)

と半角入力すると、文字列が表示されます。

rand とは、何のことでしょうか?

Aベストアンサー

#2です。

私は質問の意味を勘違いしていたと思います。
ごめんなさい。m(_ _)m

=rand()そのものの内容は
#1の方のご案内通り宣伝文句なのでしょうね。

Q音圧レベル(Hz)の騒音レベル(dB)への変換について

 いつもお世話になっています。このジャンルに質問をしていいのかすら分からないのですが、とても困っています。実は24時間の騒音測定を行ったのですが、私の設定間違いで音圧レベルにて測定をしてしまいました。しかし、実際に必要としているデータは騒音レベルでした。何か変換できる方法はないのでしょうか。もう一度計りなおしでしょうか?

Aベストアンサー

#1です。お困りでしょう。
研究でなく役所などでの騒音測定ですと、普通の騒音計を使いレベルレコーダーで記録というのが多いですが、この場合だと周波数ごとの音圧レベルは分からないから、残念ながら#1で書いた方法で補正はできません。

どうしても騒音レベルでなければいけないとなると、再測定する必要があります。

QRAND関数

RAND関数で 質問あります。
RAND関数で 乱数発生の後、その 乱数が再計算される度、乱数が 変更されないように したいので、エクセルのHelp参照したら
「数式バーに =RAND()という数式を入力して”F9”キーを押し 数式を 計算結果の乱数に置き換えます」
と 書いてありましたが、何度やっても 固定されず 乱数のままです。
どうしたら 固定できるのでしょうか?
お願いいたします。
エクセルは 2002です。
エクセル ヘルプの 検索は「RAND」で検索しました。

Aベストアンサー

=rand()と入力し、[Enter]の代わりに[F9]を押してください。
数式がなくなり、数値になります。

Q入力の振動数と、固有振動数と、出力の振動数の関係

入力の振動数をf1
振動体の固有振動数をf0
出力の振動数をf2とすると

振動体が自由振動をするときの
この3つの振動数の関係を教えてもらえないでしょうか?お願いします

Aベストアンサー

自由振動する場合振動体は固有振動数で振動するので出力振動数は一定だと思います。すなわち常にf0=f2

先の回答者も述べていますが、問題が間違っているような気がします。それとも自由振動の意味を問う引っかけ問題なのかな?

入力振動数が関係するなら自由振動ではなく強制振動ということになりますので問題としておかしいです。

自由振動の問題ではなく強制振動の問題なら入力振動と固有振動の関係によって、振幅がどうなるかを問う問題になるのが普通ではないでしょうか?

例えば入力振動数をf1、振動体の固有振動数をf0、入力に対する出力の振幅比をf2とした場合の関係などと

参考までにこの場合、減衰がないとすると、関係がわかるのは(共振曲線などで検索すると出てきます)
f1=f0のとき出力振幅=∞
f1<<f0(f1が極めてf0に比べて小さいとき) f2=1
f1/f0=√2のときf2=1
f1/f0>√2のときf2<1

こんなことを共振曲線を説明させたかったのに、出題ミスをしてしまったような気がします。

Qrand()に関して

srand((unsigned) time(NULL));
for(~~~){
   ~~~rand()~~
}
と使って順番に1か0を出していくプログラムを書いてるんですが
いつも最初の部分が1になっていてデバッグして調べてみたら
同じではないのですが毎回似たような数字を出していました。

26392
26535
26682
26784
このようなかんじです。
(4回デバッガを使って1番最初に呼び出されたrand()の返した値を調べました)

rand()とはそういうものなのでしょうか?
それとも何か原因があるんでしょうか。
2回目以降は一見大丈夫そうなのでただ
rand();
と呼び出す無駄な行を書いてやりすごしたのですが、
もしこれが普通の現象であったら一般的な対策方法が知りたいです。

Aベストアンサー

srand の引数にシステム時間を使った場合、同じような時間に
実行すると値の変化が少ないために 1回目の rand の値が似た
ような値になります。これは rand の仕様というか癖です。

これを防ぐために、最初に rand を何回か呼び出しておく、
というのは、わりと一般的な対策です。

Q1/3オクターブ分析

ある振動波形のFFT結果として、周波数(Hz)と加速度(m/s^2)があります。このデータをExcelを用いて1/3オクターブ分析の値を計算上(数学的な算術結果)求めたいのですが、計算式(定義式?)をご教示いただけませんでしょうか?何卒宜しくお願いいたします。

Aベストアンサー

 1/3オクターブバンドの加速度はバンド内周波数の加速度の自乗の和の平方根になります。
 例えば中心周波数10Hz(9~11Hz)の1/3オクターブバンドの加速度m/s2は、バンド内の周波数9、10 、11Hzの加速度の自乗の和の平方根になります。
通常、この計算は、加速度m/s2を加速度レベルdBに換算し、暗算で行います。


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

人気Q&Aランキング

おすすめ情報