1

120 Hz で収集された信号データを分析しようとしています。私は自由に使える Excel と SPSS を持っています (MATLAB と同様ですが、あまり詳しくありません)。私は約1時間半オンラインで検索してきましたが、探しているものが見つからないようです.

0 と 1 のリストがあります。各信号の持続時間を計算してから、信号の頻度分布をグラフ化します (つまり、1/10 秒の信号の割合、2/10 秒の信号の割合、@ 3/10 秒の信号の割合を示すヒストグラム... @ 1 秒など)。私が探しているのは逆累積分布だと思いますが、それに到達する前に、スプレッドシートでデータを処理する必要があります。

各信号の持続時間を取得するために、各「グループ」を合計する方法を理解するのに苦労しています。1 を含むセルの場合、上のセルに 0 が含まれている場合、新しい合計が開始され、0 が表示されるまで 1 の合計が続けられます。スプレッドシートの終わりまでに、信号持続時間のリストができます (1/120 秒で表されます。つまり、30 は 0.25 秒になります)。

処理するファイルが 100 個以上あるので、ファイルごとにこれをすばやく実行する数式またはマクロを探しています。

4 つの異なるデバイスのデータがあり、これらの信号分布をデバイスごとに比較したいと考えています。これをExcel、spps、またはmatlabで行う方がよいでしょうか?

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

データは列にフォーマットされています。列 A にフレーム数、列 B (0 または 1) に信号があります。各フレームは 1/120 秒です (ファイルごとに数千のフレームがあります)。私は波形自体には興味がありません - 長い信号と短い信号の分布が条件間で大きく異なるかどうかを検出するために統計的な目的でこれを行っています. 最終的には、周波数のヒストグラムで表すことができる信号の長さのリストが必要です(周波数とは、波の周波数ではなく、発生数を意味します.

4

2 に答える 2

0

これは、SPSS でこれを行う方法の 1 つです。

   * create some test data.
    DATA LIST FREE / frame (F8) signal (F1).
    BEGIN DATA
    1  1
    2  1
    3  0
    4  0
    5  1
    6  0
    7  1
    8  1
    9  1
    10 0
    11 0
    12 0
    13 1
    14 0
    15 1
    16 0
    17 1
    18 0
    19 1
    20 1
    END DATA.
    DATASET NAME data_orig.

    * use a work copy because data will be reduced in the process.
    DATASET COPY data_workcopy.
    DATASET ACTIVATE data_workcopy.

    * count the length of each run of "1".
    COMPUTE signallength = 0.
    IF (signal=1 AND (LAG(signal)=0 OR frame=1)) signallength = 1.
    IF (signal=1 AND LAG(signal)>0) signallength = LAG(signallength)+1.
    EXECUTE.

    * get the last/highest number of each run.
    * It's somewhat complicated, but I haven't found a much better idea yet.
    IF (signallength=1) signalbegin = 1.

    SORT CASES BY frame (D).
    IF (signal=1 AND LAG(signal)>0) signallength = LAG(signallength).
    EXECUTE.

    SELECT IF signalbegin=1.

    FREQUENCIES signallength /HISTOGRAM.

SELECT IFこの例では、ワーク コピー データ シートを作成する必要はありません。コマンドの前に a を付けて実行でき、TEMPORARYデータが失われることはないからです。ただし、さらに分析を行う場合は、データ セットのコピーを使用すると役立つ場合があります。

于 2014-10-01T00:01:49.240 に答える
0

「各シグナルの期間を取得するために、1 の各「グループ」を合計するには」小計を適用し、変化するたびに: リストを選択し、関数を使用: 合計と小計を追加: 追加する列。

于 2014-09-25T23:32:15.270 に答える