• 締切済み

MATLABで波形を一周期ごとに区切る方法

MATLABについての質問です。 加速度センサで取得した歩行波形を一周期分ごとに区切って、ファイルに保存するまでの過程をMATLABを使って行いたいのですが、いい方法があれば教えて下さい。 今、自分で考えている手順は、 (1)波形をSavitzky-Golayフィルタで滑らかにする (2)波形のピーク値の位置を特定する (3)ゼロ点と波形が交わる点を特定する (4) (2)、(3)を利用して、一波形(ゼロ点~ピーク値~ゼロ点)分のデータを抽出してファイルを作成する という風に考えています。 今のところ(2)まではしたのですが、どうもしっくりきません。 波形を一周期ごとに区切るよい方法がありましたら教えて下さい! よろしくお願いします。

みんなの回答

  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.1

1周期分なら,ピークからピークでいいのでは, 波形がゼロと交わるところを取り出すのは zero-crossing とか 言って結構ややこしい問題です. 波形がそれほど,ぐちゃぐちゃでなければ, 数値積分して極値(ピーク)を取り出すのが手っ取り早いです.

関連するQ&A

  • 梱包落下試験の衝撃波形(作用時間)の読み取り方に…

    梱包落下試験の衝撃波形(作用時間)の読み取り方について 梱包落下試験で製品が受ける衝撃値をオシロと加速度センサを使って計測し、その結果として正弦波形のような波形(正弦波形の複合波形も一部あります)が得られました。 その波形より衝撃ピーク値と作用時間を読み取ろうと思うのですが、作用時間の考え方がよくわかりません。 波形の立ち上がりの点をそのまま読み取ってしまうのではなく、衝撃ピーク値の何割かのラインと波形の交点の幅を読み取るのではないかと推測しているのですが、詳しい方法をご存知の方いらっしゃらないでしょうか?

  • 地震動の変位波形の求め方

    建築構造を学んでいるものです。 地震動の時刻歴波形は加速度のものが一般だと思いますが、加速度波形から速度波形、変位波形の求め方がよく分かりません。 FFTして、IFFTのときに積分する方法などは分かるのですが、除去すべき長周期成分などはどの程度にすればよいのでしょうか? また、実務レベルではどのように波形処理されているのか、もっと一般的な方法があるのでしょうか? どなたか教えて下さい。おねがいします。

  • MATLABのプログラミング

    MATLAB全くの初心者です。 横軸を時間、縦軸を反応値は0または1に固定したもので、 周期性をもったパルス波形を生成したいのですが、 途中でつまずいてしまいました。 グラフをプロットすると、 ____∧__∧___ このようなグラフになってしまいます。 本当は、 __|____|____ このようなグラフをつくりたいと考えているのですが… 関数zerosを使った記述方法があれば教えていただきたいです。 よろしくお願いいたします。

  • matlabで指定した周波数帯域だけ返す方法

    matlab初心者です。 matlabで、ある音響データを読み込んだ時、時間領域の波形のまま、 指定した周波数帯域だけを取り出したいのですがやり方が分かりません。 例として、サンプリング周波数44.1kH  16bitモノラル音源の音響データがあったとして、 1kH~1.5kHの周波数帯域を時間領域の波形のまま取り出すにはどうすればいいですか? つまるところ、帯域通過フィルタの設計方法がわからないのです。

  • matlabデータをバイナリデータで書き出す方法

    matlabデータをバイナリデータで書き出す方法を教えてください。 matlabで心電図波形を記録したのですが、RR間隔を出すプログラムを組むことが出来ませんでした。 そこで、先生が作られたRR間隔を出すプログラムがLabVIEWにあるので、matlabデータをLabVIEWにくわせてRR間隔を出したいと考えています。 LabVIEWにくわすには、matlabデータをヘッダ1024バイト、データは4バイトの単精度浮動小数点にしなければいけません。 matlabで任意のヘッダを付けたバイナリデータを生成する方法を教えてください。

  • 加速度波形ファイルの入手方法教えてください。

    1995年兵庫県南部地震で観測された加速度波形ファイルの入手方法がわかる方いましたらアドバイスお願いします。 観測地点は大阪、兵庫あたりのどこか1点で、その場所において液状化が発生したかどうかもわかればうれしいです。

  • エクセルの最小値抽出方法について

    エクセルで最小値を抽出する方法 みなさん教えてください。 今エクセルで下図のような正弦波のグラフ図中の赤矢印部(ピーク値) で一番小さくなる最小値を抽出したいと思っています。 しかし、方法がわかりません。 MIN関数を使用すると、一番小さい0が出てきます。 データの境目(~以上)と指定してオートフィルタでデータを抽出しようとしても、 データのプロット数が多すぎて境目をみつけるだけでも苦労し、うまくいきませんでした。 何か簡単に抽出できる良い方法はないでしょうか。 みなさんお力をかしてください。よろしくお願いします。 <波形元データ> ※オシロスコープで測定したデータ(CSVファイル:データ数2000行弱) 時間 電圧 0 0.03626667 0.0002 0.037975 0.0004 0.035025 0.0006 0.03514167 0.0008 0.03781667 0.001 0.03830833 0.0012 0.03346667 0.0014 0.03460833 0.0016 0.03616667 0.0018 0.0342 0.002 0.03035 ・ ・ ・ ・ ・ ・

  • 音楽を波形によって分類できるの?

    初めて質問いたします。 音楽&信号処理に関することです。 音楽をwavファイルの波形によってjazzっぽい曲,Classicっぽい曲…というようにある程度のカテゴリに分類したいと想っています。 まず、このことは可能なのでしょうか。 いろいろ考えたのですが、音色の特徴パラメータを波形から取り出してによって統計学的に分類しようと考えているのですが、 なにか音色を端的に表わす特徴を波形から抽出する方法としてどんな方法があるか全く思いつきません。 他にwavファイルの分類の解決策としてあれば知恵を貸していただきたいと思います。 信号処理関連はある程度、勉強してきましたが、まだ初心者レベルです。 宜しくお願いします。

  • MATLABにおける行の挿入方法

    こんにちは,現在データ整理のためにMATLABを用いて以下のようなプログラムを構築しています 1.ファイルを読み,その値を100行7列の行列Aとする 2.Aの10行目と11行目の間に1行7列の行列B1を挿入する (イメージ的にはEXCELの行の挿入です) 3.同様に20行目と21行目の間に1行7列の行列B2を挿入する 4.以降10行ごとに繰り返す となります.ここで2の処理にあたる「行列の特定の列の間に別の行列を挿入する」方法がわかりません いろいろ調べたのですが、このような方法はどこにもありませんでした MATLABに詳しい方,教えていただけないでしょうか?

  • Excelで周期的に列を削除する方法

    Excel2007を使用しています。 データの整理で、周期的に列を削除する方法を探しています。 具体的には、Fast samplingで10点、Slow samplingで1点とるというような計測プログラムのデータで、Slow samplingのデータのみを抽出しようとしています。 そのため、10列削除して、11列目を残し、12列目から10列削除して、22列を残し・・・と周期的に抽出する必要があります。 マクロなどを使ったことがないほどの初心者です。 ご教授、よろしくお願い致します。

専門家に質問してみよう