タグ付けされた質問 「peak-detection」

4
ピーク検出アプローチ
存在するピーク検出アルゴリズムは何ですか?ノイズの多いデータがあり、このデータのピーク検出を実装したいと思います。データは逆で、実際に私は底を決定しようとしています。 これがExcelのデータのスナップショットです。私は両方の底を検出するのが好きです。データをローパスフィルターに通してから、移動平均を行ってピークを決定し、移動平均内で別の検索を行うことを考えました。DSPバックグラウンドはゼロです。これは単なる常識的なアプローチです。専門家が推奨することを聞きたいです。

7
周波数が2つのビンの中心の間にある場合、信号のピーク値を取得する
以下を想定してください: 信号の基本周波数は、FFTといくつかの周波数推定法を使用して推定されており、2つのビン中心の間にあります サンプリング周波数は固定です 計算努力は問題ではありません 周波数がわかっている場合、基本的な信号の対応するピーク値を推定する最も正確な方法は何ですか? 1つの方法は、ビンの中心が推定周波数に近くなるように、FFT分解能を高めるために時間信号をゼロで埋めることです。このシナリオで、私が確信していない点の1つは、必要なだけゼロパッドできるか、そうすることでいくつかの欠点があるかどうかです。もう1つは、ピーク値を取得するものとしてゼロパディング後に選択するビン中心です(ゼロパディングの後でも対象の周波数に正確にヒットしない可能性があるため)。 しかし、周囲の2つのビンの中心のピーク値を使用して目的の周波数でのピーク値を推定する推定器など、より良い結果を提供できる別の方法があるかどうかも疑問に思っています。

4
画像内のシマウマのようなパターンの検出(写真からの構造化された光の縞の中心線の検出)
私は、被写体に対してフリンジを投影し、写真を撮るプロジェクトに取り組んでいます。タスクは、フリンジの中心線を見つけることです。フリンジの中心線は、フリンジ平面と被写体表面の間の交差の3D曲線を数学的に表します。 写真はPNG(RGB)であり、以前の試みでは、グレースケールと差分しきい値を使用して、白黒の「ゼブラのような」写真を取得し、そこから各フリンジの各ピクセル列の中間点を簡単に見つけました。問題は、しきい値処理と離散ピクセル列の平均高さの取得により、精度の低下と量子化が発生することです。これはまったく望ましくありません。 私の印象では、画像を見ると、いくつかの統計的掃引法によって、しきい値なしの画像(RGBまたはグレースケール)から直接検出された場合、中心線はより連続的(より多くのポイント)およびより滑らか(量子化されない)になる可能性があります(いくつかのフラッディング/反復畳み込み、何でも)。 以下は実際のサンプル画像です。 どんな提案でも大歓迎です!

5
相互相関の前のアップサンプリングは役に立ちませんか?
2つの異なるセンサーからの2つの信号が相互相関し、到着時間遅延が相互相関関数のピークの横座標から計算される単純なケースを考えます。 さらに、両方のアンテナの次元の制約と、可能な最大サンプリングレートの制約により、可能な最大遅延は、10サンプルに対応するであると仮定します。DDD 問題: これらの制約のため、計算された遅延は0〜10サンプルの整数値、つまりから変動する可能性があります。私が本当に欲しいのは、アンテナに衝突する2つの信号間の遅延の分数遅延識別であり、次元やサンプリングレートの変更はオプションではないためです。0≤D≤100≤D≤100 \le D \le 10 いくつかの考え: 当然、この場合に最初に考えるのは、相互相関を実行する前に信号をアップサンプリングすることです。しかし、私はシステムに新しい情報を実際に追加していないので、これは何らかの形で「ごまかし」だと思います。 ある意味で、アップサンプリングがいかに「ごまかし」ではないのか理解できません。はい、現在観測されている周波数情報に基づいて信号を再構築していますが、これにより、たとえばと間で信号が本当に開始された場所を知ることができますか?この情報は、信号の真の非整数遅延開始が実際にであると判断した元の信号のどこに含まれていましたか?D = 8 D = 7.751D=7D=7D=7D=8D=8D=8D=7.751D=7.751D=7.751 質問): これは本当に「不正行為」ですか? そうでない場合、この新しい「情報」はどこから来るのでしょうか? はいの場合、非整数遅延時間を推定するために他にどのようなオプションが利用可能ですか? 遅延に対するサブサンプルの回答を集めるために、相互相関の結果をアップサンプリングすることは承知していますが、これも「不正」の形ではありませんか?相互相関前のアップサンプリングと異なるのはなぜですか? 実際にアップサンプリングが「不正」ではない場合、なぜサンプリングレートを上げる必要があるのでしょうか?(低いサンプリング信号を補間するよりも、ある意味でサンプリングレートが高い方が常に良いのではないでしょうか?) その場合、非常に低いレートでサンプリングし、必要なだけ補間することができます。信号を単純に私たちの心の欲求に補間するという観点から、これはサンプルレートを「無駄」にしないでしょうか?補間には計算時間がかかり、単純に高いサンプルレートで開始するのはそうではないことを理解していますが、それが唯一の理由ですか? ありがとう。

2
リアルタイムの人間のピッチ検出
私は生のマイク入力を分析し、プレーヤーに彼の歌がどれだけ上手かを伝える歌のゲームを実装しようとしています。それはリアルタイムで行う必要があります。 私は同じ質問をする多くのスレッドに出くわしましたが、おそらくフィールドでの経験の不足と浅い数学の背景が原因で、私はまだそれで完全に終わっていません。DSPDimension Webサイトのピッチシフトの記事に基づくアルゴリズムを実装しました:http ://www.dspdimension.com/admin/pitch-shifting-using-the-ft/ 記事で説明しているように、真の周波数と振幅を抽出しますが、これで基本周波数を見つけることはできません。私は最大の大きさでビンを取得しようとしましたが、それはより高いピッチの信号に対して正しい結果を与えるだけであり、どのオーバーサンプリング係数を使用しても問題はありません。このアプローチは完全に間違っていますか、それとも私は正しい軌道に乗っていますが、何か不足していますか? 前もって感謝します、 編集:私はピッチクラスにのみ興味があることを言及するのを忘れていたので、ファンダメンタルズが欠けていても大丈夫ですが、サンプルには強い倍音があります。 EDIT2:みんなのおかげで、魅力的なアルゴリズムのバージョンが完成しました。低ピッチ推定の問題は、入力テストによるものでした。私が音符を歌ったとき、それは正しく一致しました。また、最高のピークだけでなく、すべての高調波を検討しています。

2
相互相関プロットから何が得られますか?
以下に示すように、ノイズの影響を受ける2つのオーディオ信号x(t)とy(t)があると仮定します。そして、これら2つの信号を相互相関させ、相互相関プロットを以下に示します。 この相関プロットには、約-11ミリ秒にピーク値があります。このプロットでこのピークをどのように解釈するかを理解しようとしていますか?どういう意味ですか?相関関数のフーリエ変換から何が得られるかについても教えてください。 前もって感謝します!


1
リアルタイムスロープとピークの検出と計算
500kHzでサンプリングする信号があります。入力データの上昇、下降、ピークを検出しようとしています。ピークのベースは250マイクロ秒または2.5ミリ秒の場合があり、振幅はノイズフロアより6dbまたは15db高い場合があります。残念ながら私は良いsnrを持っていません。信号のDCレベルは一定ではありませんが、ACコンポーネントよりもはるかに遅く移動します。 決定点では、上昇と下降の勾配を知る必要があります。これはハードリアルタイムシステムであり、下り勾配がDCレベルに達した後、100usecで決定を行う必要があります。 まともなアルゴリズムを効率的に実装するにはどうすればよいかという提案を探しています。 現在、私は移動平均を行い(過去25データポイントを合計)、傾向を検出しようとしています。上昇傾向を検出したら、下降傾向を探し始め、検出すると、おそらくさらに50個のサンプルを収集して計算を開始します。 ノイズはこのアルゴリズムを簡単に台無しにするので、問題になります。 更新 他の人の利益のために、私は移動平均、続いてインテグレーターを実装することになりました。過去64のデータの移動平均は十分に平滑化されましたが、ある程度上昇を失い、最後の8つの値を統合することで上昇を取り戻し、単純に上昇と下降を求め、後で勾配の線形回帰を行いました。大丈夫ではありませんが、大丈夫です。

1
Savitzky Golayフィルターを使用して、離散的にサンプリングされた1D信号の(サンプル間の)極大値を見つけるにはどうすればよいですか?
私は地震信号y(i)を持っています: ここで私は1つの最大値を見つけました:i = 152.54、y = 222.29手動で、それを赤でプロットしました。 すべての最大値を自動的に検索したい。 Savitzky Golay Filter(SGF)を使用して、信号とその導関数の両方の平滑化された推定値を見つけることができ、SGFの利点の1つは、他のフィルターよりも優れた最小値と最大値を維持できることです。これは私の使用に最適に聞こえます。 SGF係数を生成するMatlabスクリプトを見つけました。 これを使用して、導関数の4次のSGF係数を見つけました。小さなMatlabスクリプトをコーディングしました 微分係数の4次SGF係数で信号をたたみ込むことにより、信号の微分係数を求めます 導関数が符号を変更するサンプルのペア(i、i + 1)を見つける iとi + 1の間の線形補間によって導関数のゼロクロッシングを見つけます 脚本: function [maxX,maxY] = findLocalMax(y) % Kernel for 4th order Savitzky-Golay filter for finding derivative: d4 = [0.0724 -0.1195 -0.1625 -0.1061 0 0.1061 0.1625 0.1195 -0.0724]; dy = conv(y,d4,'same'); % derivative …

1
微分計算
一連のデータ(単一配列)があります。このデータを取得してプロットすると、複数のピークがあることがわかります。ただし、データのセクションを拡大すると、かなりのノイズが表示されます。 CPU時間とエネルギーをほとんど使用せずに、データのピーク数を検出したい。私はこれらのピークの傾き(鋭いまたは滑らかな立ち上がりまたは立ち下がりの可能性があります)を検出し、傾きの数を見てピークの数を決定することを考えました。(2ピークはすべてのピークで正と負に傾斜します) ノイズが存在する状態で勾配を計算する方法を教えてください。 コードは組み込みシステムに入ります。メモリが限られているため、重要なデータのコピーを必要としないものを実装したいのです。

1
ヘッセ特徴検出器はどのように機能しますか?
私は、ハリスコーナー検出器について知って、私はその基本的な考え方を理解する二次モーメント行列を、 、エッジおよびその他の不安定なポイントはを介して削除できます。M=[I2xIxIyIxIyI2y]M=[Ix2IxIyIxIyIy2]M = \left[ \begin{array}{cc} I_x^2 & I_xI_y \\ I_xI_y & I_y^2 \end{array} \right]MMM ただし、ヘッセ行列検出器については、ヘッセ行列を使用してキーポイントを検出し、エッジを削除します。 H=[IxxIxyIxyIyy]H=[IxxIxyIxyIyy]\mathcal{H} = \left[ \begin{array}{cc} I_{xx} & I_{xy} \\ I_{xy} & I_{yy} \end{array} \right]、そしてHH\mathcal{H}エッジを削除して安定した点を検出する方法がわかりませんか?その背後にある直感的な基本的な考え方は何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.