タグ付けされた質問 「signal-processing」

30
リアルタイム時系列データでのピーク信号検出
更新:これまでで 最高のパフォーマンスのアルゴリズムはこれです。 この質問では、リアルタイムの時系列データの突然のピークを検出するための堅牢なアルゴリズムについて説明します。 次のデータセットを検討してください。 p = [1 1 1.1 1 0.9 1 1 1.1 1 0.9 1 1.1 1 1 0.9 1 1 1.1 1 1 1 1 1.1 0.9 1 1.1 1 1 0.9 1, ... 1.1 1 1 1.1 1 0.8 0.9 1 1.2 0.9 1 1 1.1 …

7
曲線を正しい方法で滑らかにする方法は?
およそ次のように与えられるデータセットがあるとしましょう import numpy as np x = np.linspace(0,2*np.pi,100) y = np.sin(x) + np.random.random(100) * 0.2 したがって、データセットの20%の変動があります。私の最初のアイデアはscipyのUnivariateSpline関数を使用することでしたが、問題は小さなノイズを適切に考慮していないことです。周波数を考慮すると、背景は信号よりもはるかに小さいため、カットオフのみのスプラインが考えられるかもしれませんが、前後にフーリエ変換を行うため、動作が悪くなる可能性があります。別の方法は移動平均ですが、これには遅延の正しい選択も必要です。 この問題に取り組むためのヒント/本またはリンクはありますか?



4
高速フーリエ変換を使用してオーディオを分析する
私はpythonでグラフィカルスペクトラムアナライザーを作成しようとしています。 私は現在、1024ビットの16ビットデュアルチャネル44,100 Hzのサンプルレートのオーディオストリームを読み取り、2つのチャネルの振幅を一緒に平均しています。だから今私は256の署名されたショーツの配列を持っています。次に、numpyのようなモジュールを使用して、その配列にfftを実行し、その結果を使用して、グラフィカルスペクトラムアナライザーを作成します。これは、最初は32バーだけです。 高速フーリエ変換と離散フーリエ変換に関するウィキペディアの記事を読みましたが、結果の配列が何を表しているのかまだわかりません。これは、numpyを使用して配列にfftを実行した後の配列の様子です。 [ -3.37260500e+05 +0.00000000e+00j 7.11787022e+05 +1.70667403e+04j 4.10040193e+05 +3.28653370e+05j 9.90933073e+04 +1.60555003e+05j 2.28787050e+05 +3.24141951e+05j 2.09781047e+04 +2.31063376e+05j -2.15941453e+05 +1.63773851e+05j -7.07833051e+04 +1.52467334e+05j -1.37440802e+05 +6.28107674e+04j -7.07536614e+03 +5.55634993e+03j -4.31009964e+04 -1.74891657e+05j 1.39384348e+05 +1.95956947e+04j 1.73613033e+05 +1.16883207e+05j 1.15610357e+05 -2.62619884e+04j -2.05469722e+05 +1.71343186e+05j -1.56779748e+04 +1.51258101e+05j -2.08639913e+05 +6.07372799e+04j -2.90623668e+05 -2.79550838e+05j -1.68112214e+05 +4.47877871e+04j -1.21289916e+03 +1.18397979e+05j -1.55779104e+05 +5.06852464e+04j 1.95309737e+05 +1.93876325e+04j -2.80400414e+05 …

3
Scipy.signal.butterを使用してバンドパスバターワースフィルターを実装する方法
更新: この質問に基づいたScipyレシピを見つけました!したがって、興味のある方は、次のサイトに直接アクセスしてください。目次»信号処理»バターワースバンドパス 1次元のnumpy配列(時系列)にバターワースバンドパスフィルターを実装するという、最初は単純なタスクのように見えたものを実現するのに苦労しています。 私が含めなければならないパラメーターは、sample_rate、ヘルツ単位のカットオフ周波数、そして場合によっては次数です(減衰、固有振動数などの他のパラメーターは私にはわかりにくいので、「デフォルト」値ならどれでもかまいません)。 私が今持っているのはこれです。これはハイパスフィルターとして機能しているようですが、正しく実行しているかどうかはわかりません。 def butter_highpass(interval, sampling_rate, cutoff, order=5): nyq = sampling_rate * 0.5 stopfreq = float(cutoff) cornerfreq = 0.4 * stopfreq # (?) ws = cornerfreq/nyq wp = stopfreq/nyq # for bandpass: # wp = [0.2, 0.5], ws = [0.1, 0.6] N, wn = scipy.signal.buttord(wp, ws, 3, 16) …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.