信号処理

信号、画像およびビデオ処理の芸術および科学の実務家のためのQ&A

4
周波数ビンとは何ですか?
私はFFT法の研究を行っており、常に出てくる用語は「周波数ビン」です。私が理解していることから、これは与えられた正弦波の周波数の周りに作成された帯域と関係がありますが、私は実際にどのように理解することができません。また、特定のビンから関連する周波数に移動する方法も考えましたが、周波数ビンとは何なのかまだわかりません。
15 fft 

4
音分類のための特徴抽出
サウンドファイルから機能を抽出し、サウンドを特定のカテゴリ(犬の樹皮、車両エンジンなど)に属するものとして分類しようとしています。次のことについて明確にしたい: 1)これはまったく実行可能ですか?音声を認識し、さまざまな種類の犬の樹皮を区別できるプログラムがあります。しかし、音のサンプルを受け取り、それがどんな音なのかを言うことができるプログラムを持つことは可能ですか?(参照する多くのサウンドサンプルを含むデータベースがあると仮定します)。入力音のサンプルは、少しノイズが多い場合があります(マイク入力)。 2)最初のステップは音声特徴抽出だと思います。この記事では、MFCCを抽出し、それらを機械学習アルゴリズムに供給することを提案します。MFCCで十分ですか?一般的に音の分類に使用される他の機能はありますか? お時間をいただきありがとうございます。

2
どのIIRフィルターがガウスフィルターを近似しますか?
だから最近、ベッセルフィルターは、他の一般的なタイプと一緒にリストされているにもかかわらず、実際には別の「クラス」に属する奇妙なものであることがわかりました。 長方形の振幅応答は、遷移帯域がゼロで、阻止帯域の減衰が無限であるため、理想的な周波数領域応答を表します。一方、ガウス振幅応答は、インパルス応答とステップ応答でオーバーシュートが発生しないという点で、理想的な時間領域応答を表します。実際に達成される応答の多くは、これらの理想的なソースへの近似です したがって、ブリックウォールフィルターはsinc関数を使用した畳み込みであり、次の周波数領域のプロパティがあります。 フラットパスバンド ゼロ阻止帯域 無限ロールオフ率/遷移帯域なし 両方向に無限のテールがあるため、非因果的で実現不可能です。次のIIRフィルターで近似され、次数が増加するにつれて近似が改善されます。 バターワース(最大フラットパスバンド) チェビシェフ(阻止帯域または通過帯域リップルを伴う最大ロールオフレート) 楕円(阻止帯域と通過帯域のリップルを伴う最大ロールオフ率) ルジャンドル (単調な通過帯域での最大ロールオフ率) ガウスフィルタは、ガウス関数との畳み込みであり、これらの時間領域のプロパティがあります。 オーバーシュートゼロ 最小の立ち上がり時間と立ち下がり時間 最小群遅延 sinc関数と同じ理由で実現不可能であり、次数が増加するにつれて、これらのIIRフィルターにより近似できます。 1および2に従うベッセル(最大フラットグループ遅延) e− 12(πω )2e−12(πω)2e^{-{1 \over 2}(\pi \omega)^2} だから私の質問は: これまでのところすべてが正しいですか?もしそうなら、ガウスに近い他のIIRフィルターはありますか?彼らは何のために最適化されていますか?たぶん、オーバーシュートを最小限に抑えるものですか? 「IIR Gaussian」を検索すると、いくつかのものが見つかります(Deriche?van Vliet?)

2
セグメンテーションによる画像登録
通常、画像レジストレーションアルゴリズムは、SIFT(Scale-Invariant Feature Transform)などのポイントフィーチャに基づいています。 ラインフィーチャへの参照をいくつか見ましたが、ポイントの代わりに画像セグメントを一致させることが可能かどうか疑問に思っていました。たとえば、与えられたソースと変換された画像: それぞれでエッジ検出、ぼかし、および流域変換を行うことができます: 残念ながら、セグメンテーションは、個々のセグメントに一致するには各画像であまりにも異なることが判明しました。 アフィン変換に不変のマッチング形状と形状記述子に関する論文を見たので、この分野は有望であるようです... 画像のアフィン(または射影)変形に対してより堅牢なセグメンテーション方法はありますか?

6
さまざまな素材の画像セグメンテーションの問題
こんにちはCV /パターン認識コミュニティ、 画像のセグメンテーションに関して深刻な問題があります。シナリオは、私の頭を狂わせる炉内の雰囲気です。また、1つの特殊なケースだけでなく、さまざまな材料(ガラス、セラミック、Al、Irなど)のオブジェクトの輪郭を短時間(10秒未満)で検出する必要があります。また、コードのピクセルの連続した行に輪郭が必要です。したがって、チェーンコードまたはいわゆるボーダー/輪郭追跡も必要であるため、オープンホールは適切ではありません。バックグラウンドには、ほこり、粒子などの非線形ノイズが時々現れます。 MatlabまたはOpenCVの提案を歓迎します。 より明確にするために、目標と半透明のオブジェクトの別の画像を投稿しましたが、これも検出する必要があります。また、知っておく必要があるさらなる例。 画像#1を見るとわかるように、画像の右側の部分と、オブジェクトである星の外側の輪郭の近くに粒子があります。また、全体的なコントラストはあまり良くありません。オブジェクト自体は地下にあり、輪郭検出には関係ありません。画像#2は半透明のオブジェクトを示していますが、これも可能です。 次の画面(赤い線)のように、そのオブジェクトの輪郭/境界を見つけたい。2つの長方形(黄色)は、開始点(左)と終了点(右)を示しています。青い線は無視できます。 最初は、フィルターだけでその不潔な雰囲気の問題を解決できると思いました。しかし、多大な時間を費やした後、前景と背景のコントラストを高めるためにノイズを大幅に除去または削減する必要があることに気付きました。ヒストグラム等化、大津適応等化、線形フィルター(ガウスなど)、非線形フィルター(中央値、拡散)、Active Contours、k-Means、Fuzzy-c-means、純粋なCannyなど、多くの方法を試しました。形態学的演算子と組み合わせたエッジ検出。 キャニー:粒子と大気が穴の原因になっていますが、オブジェクトの完全な輪郭が必要です。モルフォロジー演算子を閉じて拡張しても、それだけでは十分ではありません。Cannyには、ヒステリシスがあるため、私が研究したすべての方法の中で最高の結果が残っています。 アクティブな輪郭:エッジ/グラデーションでも機能します。オブジェクト内で初期化した後、完全に狂ったように動作します。これは、エッジマップが「開いた」オブジェクトになっていることが原因である可能性があります。私の知る限り、輪郭を閉じなければなりません。さまざまな派生物(GVF / VFC / Classic Snake)で試してみました。 k-Means:霧の背景のため、結果には炉の雰囲気が含まれます。ファジーc-meansについても同じです。オブジェクトを背景から分離するため、2つのクラスターを選択しました。クラスターが多いと、結果が弱くなります。 ヒストグラム/大津:グレーの強度が非常に近いため(imho!)、オブジェクトと背景をマージしています。ローカルおよびグローバルな方法で試してみました。 フィルター:特にGLPFまたは他のLPFがエッジを塗りつぶしますが、これはあまり良くなく、霧の雰囲気さえも低減しません。 非線形フィルターはエッジを保持しています。それらのほとんどは、大きな画像の計算に時間がかかりすぎます。とりあえず、高速の双方向フィルタを使用しました。結果は以下を参照してください。 したがって、得られたオブジェクトセグメントの結果は既存のアルゴリズムと十分に競合しないため、後処理ステップには単一の方法では十分ではありません。既存のアルゴリズムは非常にローカルであるため、この非常に特殊なシナリオで機能します。 何かを完全に見逃してしまった場合、どうすればいいかわかりません。隙間や穴を開けずに、どのように処理し、どのように良好な輪郭結果を得る必要があるのか​​分かりません。 CCDと物理的環境?前もって感謝します! これまでの最後のアプローチ(MOでの長い実験の後): バイラテラルフィルター(エッジを保持しますが、均一な領域を平滑化します) キャニー(シグマ= 2、しきい値= [0.04 0.08]) 形態学的オペレーション(MO): 、 bwareopen、&closingremovebridge bwlabel輪郭の周囲のみを選択し、不要なノイズを除去します。まだスクリーンショットは更新されていませんが、スターには有効です。ガラスには外側の輪郭に接続された内側の輪郭があります。これは下のスクリーンショットでも確認できます。 そのため、外側の輪郭を横断するための特別なアルゴリズムが必要なのではないかと心配しています。近隣の時計回り/反時計回りの検索になります。コーナーポイントがある場合、その時計回り/反時計回りのステップを切り替えることができます。隙間がある場合は、半径を増やしてもう一度見てください。次のポイントが2つ以上ある場合は、前と同じ方向を向いたポイントを選択します。その輪郭追従アルゴリズムは理にかなっていると思いますか?

3
FFTによる高速コサイン変換
高速コサイン変換を実装したい。ウィキペディアで、FFTと同様に計算されるDCTの高速バージョンがあることを読みました。Scipyでも使用されているFTPACKおよびFFTWの実装について、引用されたMakhoul *の論文を読みましたが、実際のアルゴリズムを抽出できませんでした。これは私がこれまでに持っているものです: FFTコード: def fft(x): if x.size ==1: return x N = x.size x0 = my_fft(x[0:N:2]) x1 = my_fft(x[0+1:N:2]) k = numpy.arange(N/2) e = numpy.exp(-2j*numpy.pi*k/N) l = x0 + x1 * e r = x0 - x1 * e return numpy.hstack([l,r]) DCTコード: def dct(x): k = 0 N = x.size …
15 fft  dct 

3
エッジを破壊せずに画像からガウスノイズを除去する方法は?
エッジを破壊せずにガウスノイズを除去するのに最適なフィルターは何ですか?加法ガウスノイズを含む標準のレナ画像を使用しており、異方性拡散を適用する前にノイズを除去したい。エッジがぼやけてしまうので、中央値フィルターを使いたくありません。適応フィルタリングを試みましたが、結果は満足のいくものではありませんでした。

1
RMSでトラックのラウドネスを取得する
バッファーに保存したオーディオトラックの音量を計算しようとしています。バッファーには、信号のPCMデータが含まれています。ルート平均二乗を使用して、それがどれほど「大きい」のかを知りたいです。周波数ドメインに切り替える代わりに、時間ドメインでこれを行うことができると思います。これを行うための擬似コードは何でしょうか? 単純に1秒間サンプリングし(audio [0]-audio [44099]、audio [44099]-audio [88199]など)、それらの値のRMSを計算しますか?したがって、たとえば、私はこれをしますか: R MS= オーディオ[ 0 ]2+ オーディオ[ 1 ]2+ オーディオ[ 2 ]2。。。。。オーディオ[ 44099 ]244100−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√RMS=オーディオ[0]2+オーディオ[1]2+オーディオ[2]2。。。。。オーディオ[44099]244100RMS = \sqrt{\frac{\text{audio}[0]^2 + \text{audio}[1]^2 + \text{audio}[2]^2.....\text{audio}[44099]^2}{44100}} 毎秒?

1
状態遷移行列を使用して、状態空間の再現からシステムのインパルス応答を見つけるにはどうすればよいですか?
標準状態空間表記で表される線形があると仮定します。 Y(T)=CX(T)+DU(T)バツ˙(t )= A x (t )+ B u (t )バツ˙(t)=Aバツ(t)+Bあなたは(t) \dot{x}(t)=Ax(t)+Bu(t) y(t )= Cx (t )+ D u (t )y(t)=Cバツ(t)+Dあなたは(t)y(t) = Cx(t) + Du(t) インパルス応答を取得するために、ラプラス変換を取得することができます Y = C X + D US X= A X+ B Usバツ=Aバツ+BうんsX=AX+BU Y= Cバツ+ D UY=Cバツ+DうんY=CX+DU そして、次の伝達関数を解きます Yうん= C(s I− A )− 1B + …

4
FFTからの周波数の抽出
信号に対して512ポイントのFFTを実行しました。別の512番号のセットを入手しました。これらの数値は、周波数の異なるさまざまな正弦波と余弦波の振幅を表していることを理解しています。 私の理解が正しければ、512個の数値(振幅)の知識からサイン波とコサイン波の周波数を知る方法を誰かに教えてもらえますか?

3
OpenCV / C ++は、それらの間の距離に基づいて近くの輪郭を接続します
輪郭を接続するかどうかを指定するそれらの間の距離に基づいて、画像内の近くの輪郭を接続する必要があります。 今、同じ問題に関する質問があります/programming/8973017/opencv-c-obj-c-connect-nearby-contoursが、ここで彼はすべての輪郭を単一の輪郭にマージしています。これは欲しくない。このためのopencvの機能はないと思いますが、そのアルゴリズムを提案できます。私のアプリケーションは次のようになります: 私は手を検出しているので、皮膚検出アルゴリズムを使用してそれらを特定しましたが、私の皮膚は白くなく、ひょっとすると肘の輪郭が壊れていることもあります。だから私は近くの輪郭を接続したいがそれらのすべてではない(両方の私の手が輪郭にあるので)(手によって私は肩から手のひらまでを意味するからです)。 さらに、いくつかのエッジ検出を使用することで、手の境界を取得し、この境界内のこのパッチの一部が皮膚として検出されたかどうかを検出すると、この境界内の領域全体が皮膚として検出されますが、これを行う方法がわかりません部。 どんな助けでもありがたいです。前もって感謝します サンプル画像: この画像では、距離が40ピクセル未満のポイント(8つの接続)を接続したいので、左手を単一の輪郭として取得します 私の目的は、手の輪郭のみを取得することです(他の領域は気にしません)

2
笑いはいつ始まりますか?
私の週末のプロジェクトの1つは、信号処理の深海に連れて行ってくれました。いくつかの強力な数学を必要とするすべてのコードプロジェクトと同様に、理論的な根拠がないにも関わらず、解決策に手を加えたいと思っていますが、この場合は何もありません。つまり、テレビ番組中にライブの視聴者が笑うタイミングを正確に把握しようとしています。 私は笑いを検出するための機械学習アプローチを読むのにかなりの時間を費やしましたが、それは個々の笑いを検出することと関係があることに気付きました。一度に笑う200人は、音響特性が大きく異なります。私の直感では、ニューラルネットワークよりもはるかに粗雑な手法で区別できるはずです。私は完全に間違っているかもしれません!問題についての考えをいただければ幸いです。 これまでに試したことは次のとおりです。最近のサタデーナイトライブのエピソードから5分の抜粋を2秒のクリップに切り取りました。次に、これらの「笑い」または「笑いなし」とラベルを付けました。LibrosaのMFCC機能抽出ツールを使用して、データに対してK-Meansクラスタリングを実行しました。2つのクラスターがラベルに非常にきれいにマッピングされました。しかし、より長いファイルを反復処理しようとしたとき、予測には意味がありませんでした。 これから試すこと:これらの笑いのクリップを作成することについて、より正確になります。ブラインドスプリットアンドソートを行うのではなく、手動で抽出して、ダイアログが信号を汚染しないようにします。次に、それらを1/4秒のクリップに分割し、これらのMFCCを計算し、それらを使用してSVMをトレーニングします。 この時点での私の質問: これは理にかなっていますか? ここで統計が役立ちますか?私はAudacityのスペクトログラムビューモードでスクロールしてきましたが、笑いが発生する場所をかなりはっきりと見ることができます。対数パワースペクトログラムでは、スピーチは非常に特徴的な「溝」のように見えます。対照的に、笑いは、ほぼ正規分布のように、周波数の広いスペクトルを非常に均等にカバーします。拍手で表されるより限定された頻度のセットによって、拍手と笑いを視覚的に区別することさえ可能です。これにより、標準偏差を考えることができます。コルモゴロフ–スミルノフ検定と呼ばれるものがありますが、ここで役立つかもしれません。 (上の画像では、45%のところでオレンジ色の壁がヒットしているように笑い声を見ることができます。) 線形スペクトログラムは、笑いが低周波数でよりエネルギッシュであり、高周波数に向かってフェードアウトすることを示しているようです-これはピンクノイズとしての資格があることを意味しますか?もしそうなら、それは問題の足がかりになりますか? 専門用語を誤用した場合は謝罪します。この用語についてはウィキペディアにかなり載っていますが、ごちゃごちゃになったとしても驚かないでしょう。

2
高域通過信号は、信号から低域通過信号を引いたものと同じですか?
私の質問は、信号をハイパスしたい場合、信号をローパスして信号から減算することと同じですか?理論的には同じですか?実質的に同じですか? (googleとdsp.stackexchangeの両方で)検索しましたが、矛盾する答えが見つかりました。私は信号で遊んでいますが、ここに結果があります。私はそれをあまり理解できません。これは、4秒ごとに1回サンプリング周波数を持つ信号です。0.8 mHz〜1 mHzの遷移帯域を持つデジタルローパスフィルターを設計し、信号をフィルター処理しました。次に、同じ遷移帯域を持つハイパスフィルターを設計し、信号をフィルター処理しました。結果は次のとおりです。 この最初の画像は、元の信号を黒で、ローパス信号を青で示しています。それらはほぼ重なり合っていますが、完全ではありません。赤い曲線は、信号から信号の真上にあるハイパス信号を引いたものです。 この2番目の画像は、何が起こっているかを示すためにズームインした最初の画像です。ここでは、明らかに2つが同じではないことがわかります。私の質問はなぜですか?それは2つのフィルターをどのように実装したかに関するものですか、それとも私の実装とは独立した理論的なものですか?フィルターの設計についてはあまり知りませんが、直感に反することで有名です。これをすべて再現する完全なMATLABコードを次に示します。filtfiltコマンドを使用して、位相遅延を解消しています。ただし、ここで指摘するもう1つの点は、フィルターが正規化されていないことです。sum(Hd.Numerator)を実行すると、ローパスで0.9930、ハイパスで0.007が得られます。これを説明する方法がわかりません。係数の合計が1にならないため、出力を何らかの方法でスケーリングする必要がありますか?このスケーリングはこれと何か関係がありますか? close all clear all clc data = dlmread('data.txt'); Fs = 0.25; % Sampling Frequency N = 2674; % Order Fpass = 0.8/1000; % Passband Frequency Fstop = 1/1000; % Stopband Frequency Wpass = 1; % Passband Weight Wstop = 1; % Stopband Weight dens …

3
周波数対ウェーブレット変換の大きさをプロットするにはどうすればよいですか?
Morlet連続ウェーブレット変換を実行しています。私はwscalogram信号を受け取ったので、次の図のように周波数の大きさをプロットしたいのですが、どうすればいいのかわかりません。 scal2freqMATLAB関数を使用して、スケールを擬似周波数に変換しました。また、信号にいくつかの周波数があり、それらは大きな減衰比(4%)を持っているため、プロットではよく見えません。これらの非常に減衰したモードを誇張するにはどうすればよいですか? 私はMATLABを使用しています、ここに私のコードがあります: % Import the text4.txt to matlab workspace. and save it under name "data" t=linspace(0,30,301); Fs=ceil(inv(t(2)-t(1))); x=data(:,4); % use x=data(:,3),x=data(:,5) too. first column is time,second is refrence wname = 'morl'; scales = 1:1:256; coefs = cwt(x,scales,wname,'lvlabs'); freq = scal2frq(scales,wname,1/Fs); surf(t,freq,abs(coefs));shading('interp'); axis tight; xlabel('Seconds'); ylabel('Pseudo-Frequency (Hz)'); axis([0 30 0 …

1
デジタルフィルター設計の基本原則(IIR / FIR)
オーディオエンジンなどの設計には確かな経験がありますが、デジタルフィルター設計の分野、特にIIRフィルターとFIRフィルターはかなり新しい分野です。言い換えれば、フィルターを設計し、それらの差分方程式を導き出す方法について、できる限り多くのことを学ぼうとしています。私は基礎から始めているので、私が言ったように、私が学ぼうとしているので、我慢してください。 ここに私の質問があります: 特定のカットオフ(たとえば300 Hz)のローパスフィルターを設計したいとします。伝達関数を数学的に導出し、特定の差分方程式を導出して、直接フォームIおよび直接フォームII(または現時点ではDF-1のみ)でフィルターを実装する最良の方法は何でしょうか? 私は伝達関数と、それらがウェブ上のいくつかの優れた材料からの差分方程式にどのように関係するかについてある程度理解していますが、残念ながらその一部は事前の知識をかなり前提としているため、私の探求に役立つよりも混乱しています。ですから、ドットをつなげるのに役立つ、より段階的な例が必要だと思います。 したがって、基本的には、カットオフ周波数の選択から差分方程式の導出までのプロセスの内訳に関するヘルプを探しています。 どんな助けも大歓迎です。私は多くの概念に精通しています-インパルス応答、DFT、その背後にある数学、さらに助けが必要なのは、フィルターの伝達関数を設計するためのz変換と極/零点の概念ですカットオフ周波数はどうですか。最終的に差分方程式を導き出すためにこれらすべてを実行します。 私は例から最もよく学ぶ傾向があるので、私はここで尋ねると思った。助けてくれる時間を見つけてくれた人に感謝します。

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