信号処理

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

1
複雑なエンベロープとは正確には何ですか?
私が読んだいくつかの本でこれが何度か言及されているのを見たので、確認したい。複素包絡線は、信号の実数成分と直交成分の合計であり、絶対値は(実数)包絡線ですか?このウィキページを読みましたが、完全に理解しているとは思いません。複雑なエンベロープは、単に通過帯域信号の実数部と虚数部を組み合わせたものですか?ありがとうございました。

5
双一次変換の使用から生じる数学的な質問
これはクックブックに関連しているので、おそらく20年前に解決しようとしましたが、あきらめ、未解決の問題を思い出しました。しかし、それはかなりまっすぐ進むのですが、私はまだ泥に詰まっています。 これは、共振周波数を持つ単純なバンドパスフィルター(BPF)です。 Ω0Ω0\Omega_0と共振:QQQ H(s)=1QsΩ0(sΩ0)2+1QsΩ0+1H(s)=1QsΩ0(sΩ0)2+1QsΩ0+1 H(s) = \frac{\frac{1}{Q}\frac{s}{\Omega_0}}{\left(\frac{s}{\Omega_0}\right)^2 + \frac{1}{Q}\frac{s}{\Omega_0} + 1} 共振周波数で |H(jΩ)|≤H(jΩ0)=1|H(jΩ)|≤H(jΩ0)=1 |H(j\Omega)| \le H(j\Omega_0) = 1 上部と下部のバンドエッジは次のように定義されています |H(jΩU)|2=∣∣H(jΩ02BW/2)∣∣2=12|H(jΩU)|2=|H(jΩ02BW/2)|2=12 |H(j\Omega_U)|^2 = \left|H\left(j\Omega_0 2^{BW/2} \right)\right|^2 = \tfrac12 |H(jΩL)|2=∣∣H(jΩ02−BW/2)∣∣2=12|H(jΩL)|2=|H(jΩ02−BW/2)|2=12 |H(j\Omega_L)|^2 = \left|H\left(j\Omega_0 2^{-BW/2} \right)\right|^2 = \tfrac12 これらを「ハーフパワーバンドエッジ」と呼びます。私たちはオーディオなので、オクターブ単位で帯域幅を定義し、アナログの世界では、オクターブ単位のこの帯域幅BWBWBWはQに関連しています。QQQようにます。 1Q=2BW−12BW−−−−√=2sinh(ln(2)2BW)1Q=2BW−12BW=2sinh⁡(ln⁡(2)2BW) \frac{1}{Q} = \frac{2^{BW} - 1}{\sqrt{2^{BW}}} = 2 \sinh\left( \tfrac{\ln(2)}{2} BW \right) マップする双線形変換(事前にワープした共振周波数)を使用しています。 sΩ0jΩΩ0←1tan(ω0/2)1−z−11+z−1←jtan(ω/2)tan(ω0/2)sΩ0←1tan⁡(ω0/2)1−z−11+z−1jΩΩ0←jtan⁡(ω/2)tan⁡(ω0/2)\begin{align} …

2
FFTのアーティファクト
最近、FFTは完全ではないことに気付きました。信号を取得してからFFTを取得してから逆FFTを実行すると、結果の出力は入力とまったく同じにはなりません。ここに私が何を意味するかを示す画像があります: 画像はかなり自明だと思います。IFFT信号は「FFT​​スペクトル」の逆変換であり、「差分」プロットはIFFT信号と元の信号の差です(IFFT-オリジナルIFFT-オリジナル\text{IFFT - Original})。 明らかに小さいのですが、いくつかのアーティファクトがあります。そもそもなぜ発生するのか知りたい。これはフーリエ変換の有限ウィンドウのためですか?または、FFTアルゴリズムの何かのためですか? 注:このプロットには32ポイントがありますが、100、1000、1024、256、および64ポイントで確認しました。同様の大きさの差(またはいずれか)には常にこの残差があります。)。10− 1610−1610^{-16}10− 1510−1510^{-15}

2
DFTベクトルの複素共役対称性を維持するための行列のプリコーディングの条件
長さNのDFTベクトルがあるとします。これは、その中間点の周りに複素共役対称性を示します。つまり、、など。 およびは、それぞれDCおよびナイキスト周波数であるため、実数です。残りの要素は複雑です。XX\mathbf{X}X(1)=X(N−1)∗X(1)=X(N−1)∗X(1) = X(N-1)^*X(2)=X(N−2)∗X(2)=X(N−2)∗X(2) = X(N - 2)^*X(0)X(0)X(0)X(N/2)X(N/2)X(N/2) ここで、ベクトルXを乗算するサイズ行列とします。TT\mathbf{T}N×NN×NN \times N Y=TXY=TX\begin{align} \mathbf{Y} = \mathbf{T}\mathbf{X} \end{align} 質問は: どのような条件で、行列に対して、結果のベクトルの中間点の周りの複素共役対称性が保持されますか?TT\mathbf{T}YY\mathbf{Y} この質問の動機は、IFFTが実数である事前にコード化された(事前に等化された)シンボルをもたらすプリコーダー行列を考え出そうとすることです。TT\mathbf{T}YY\mathbf{Y} 編集: @MattLに感謝します。と@niaren。この質問の難しさは、必要な条件を見つけることです。マットの答えは確かに十分です。次の変更を加えるだけでも十分です。 最初の行と最初の列はゼロである必要はありません。代わりに、それらはゼロ以外の値である可能性があります。その値が中間点の周りに複雑な共役対称性を示す限り、そのシンボルのように、最初の値は実数で、番目の値は実数です。同じことは、番目の列、番目の行、および主対角線についても言えます。(N/2+1)(N/2+1)(N/2+1)(N/2+1)(N/2+1)(N/2+1)(N/2+1)(N/2+1)(N/2+1) 次に、左上隅と右下隅のマトリックス間の同じ対応を右上隅と左下隅の間で行うことができます。つまり、t 2 、N / 2 + 2から t N / 2 、Nまでの行列。左から右に反転し、逆さまに反転して共役を取り、左下隅に配置します。MATLABでは、次のようになります。(N/2−1)×(N/2−1)(N/2−1)×(N/2−1)(N/2 -1)\times(N/2-1)t2,N/2+2t2,N/2+2t_{2,N/2 + 2}tN/2,NtN/2,Nt_{N/2,N} T(N/2+2:N,2:N/2) = conj(fliplr(flipud(Tisi(2:(N/2),N/2+2:N)))) この構造は、DFT行列の構造に似ています。それは必要条件でしょうか? 編集(2): 次のコードは、任意の実数値行列Aに対してこのような有効な演算子を実装します。N×NN×NN \times NAA\mathbf{A} N = 8; A = …

4
フィルターの群遅延をゼロにするにはどうすればよいですか?
ウェーブパケットを1次ローパスフィルターの通過帯域に通した場合、フィルターの群遅延によって遅延され、同じ振幅のままですよね。 同じ波のパケットを同じカットオフ周波数の相補1次ハイパスフィルターに通すと、群遅延曲線は同じになるため、パケットの遅延は同じになりますが、ゲインははるかに低くなるため、遅れるように、そして無視できるように弱められる。 ハイパスフィルターの出力は非常に小さいため、これらの2つのフィルターの出力を合計すると(オーディオクロスオーバーの場合など)、ローパスフィルターの出力と無視できるほど異なると予想されます。大きな遅延信号+非常に小さい遅延信号=大きな遅延信号。 しかし、フィルター応答を合計すると、振幅はどこでも0 dB、位相はどこでも0になるため、群遅延は0になり、波のパケットは遅延なく変化せずに出力されます。これがどのようにして可能になるのかわかりません。フィルターは常に遅延を招きませんか?フィルター(これも正の群遅延があります)は、特にこれが阻止帯域で発生しているときに、他のチャネルによって引き起こされる遅延をどのように元に戻すことができますか? ここで誤解している部分はどこですか? 線形位相を持つ最もよく知られているクロスオーバータイプは、1次の非反転クロスオーバーです... 1次クロスオーバーは、その出力が通常合計されるときの最小位相です。0°でフラットな位相プロットがあります。- アクティブなクロスオーバーの設計 そして ここで、出力を合計した結果は0°の位相シフトを生成します。つまり、1次クロスオーバーの振幅と位相シフトの合計は、1本のワイヤーに相当します。- リンクウィッツ・ライリークロスオーバー:Aプライマー:1次クロスオーバーネットワーク 実際のパルスをテストすると、ローパス(青)が予想どおりにパルスを遅延させる方法と、ハイパス(緑)がパルスと結合して元の(赤)パルスを生成する方法がわかりますが、ハイパスパルスが元の前に発生する方法はハイパスフィルターは因果関係があり、正の群遅延がありますか?直感が私を失敗させています。 これは、ハイパス出力が私が想像したほど無視できず、遅延が私が想像したよりも無視できるほど小さいことを示しています。また、キャリア周波数を移動すると、これら2つのプロパティは比例して変化します(遅延が小さいほど、低振幅のハイパス出力が必要です)修正します)。しかし、私はまだそれを本当に理解していません。


2
指先や爪を検出するためのアルゴリズム
画像の指先/爪の検出に使用するのに最適なアルゴリズムは何かについてアドバイスをいただけますか。最初に気が付いたのはビオラ・ジョーンズでした。再考した後、エッジ検出を適用した後にヒュー変換のみを使用することが可能である可能性があると結論付けました。しかし、もう少しアドバイスをお願いします。また、これは学習を目的とした学生のプロジェクトになるため、OpenCVまたは同様のフレームワークを使用することは許可されていません。以下は、処理される典型的な画像です。(トップダウンビューではないことに注意してください)。親指を検出する必要はありません。 典型的な画像http://www.deviantpics.com/images/BwgPX.jpg

5
カルマンフィルター-実装、パラメーター、チューニング
まず、カルマンフィルターを作成するのはこれが初めてです。 私は以前、次の質問を投稿しました。この投稿の背景を説明しているStackOverflowで、ノイズと速度値からの変動を除外します。これは私がフィルタリングしようとしている値の典型的なサンプルです。ここでは、必ずしも減少する必要はありません。しかし、変化率は通常、このようなものです X ------- Y 16 --- 233.75 24 --- 234.01 26 --- 234.33 32 --- 234.12 36 --- 233.85 39 --- 233.42 47 --- 233.69 52 --- 233.68 55 --- 233.76 60 --- 232.97 66 --- 233.31 72 --- 233.99 このチュートリアルに従って、カルマンフィルターを実装しました:カルマンフィルター(ダミー用)。 私の実装は次のようになります(疑似コード)。 //Standard deviation is 0.05. Used in calculation …

1
第2世代ウェーブレットのチュートリアル(リフティングあり)?
一部のノイズ除去とデコンボリューションの実験では、第2世代のウェーブレット変換を適用します(リフティングステップ)を画像ます。 私はいくつかの実装が利用可能であることを知っていますが、それらのほとんどはmatlabを使用していますが、OpenCVを使用してC ++で作業したいと思っています。OpenCV 2.xには組み込みウェーブレット変換の実装がないため、自分で実装する予定です(さらに、私にとっては良い練習になります)。いくつかの調査の後、第2世代の変換に関する元の記事を見つけることができましたが、アルゴリズムの正確な動作についてはまだ少し混乱しています。 Sweldensによる論文[1]を主に参照すると、リフティングスキーム:第2世代のウェーブレットの構築ですが、インデックスセットの定義にはまだ混乱しています。彼らはどのように構築されていますか?...K(j)K(j)\mathcal{K}(j) したがって、私の質問:チュートリアルのような形式であるか、(数学的なものではなく)よりアルゴリズム的なビューを提供する、第2世代ウェーブレット変換に関するいくつかのリソース(論文、チュートリアル、スライド...)について誰かが知っていますか?、それは私自身の実装を設計するのに役立ちますか? 前もって感謝します。 参考文献 私の主な参照は: [1] Sweldens、W.(1998)。リフティング方式:第2世代のウェーブレットの構築。SIAM Journal on Mathematical Analysis、29(2)、511。 また、私は次のことからも学びます。 [2] Daubechies、I.、&Sweldens、W.(1998)。因数分解ウェーブレットはリフティングステップに変換されます。Journal of Fourier analysis and applications、4(3)、247–269。 [3] Kovacevic、J。、およびSweldens、W。(2000)。任意の次元で昇順のウェーブレットファミリー。画像処理、9(3)、480–496。doi:10.1109 / 83.826784

2
OCR処理用の「ハーフトーン」画像のフィルタリング
スキャンしたPDF資料に非表示のテキストレイヤーを追加したいので、ドキュメントにインデックスを付けます。私はghostscript白黒のtiff出力デバイス(tiffg4)を使用して、ページをtiff画像として抽出しました。以下に、それらがどのように見えるかの例を示します。 この画像をテッセラクトで処理しても、良い結果は得られません。 ghostscript出力DPI(600、300、150、96)を変更すると、96 DPIの画像がテッセラクトから最良の結果が得られることを示していますが、それでも十分ではありません。 次に、OCR処理用にこのフィルターを強化するフィルターについてアドバイスを求めようと思いました。 imagemagick、またはnumpy / scipy / ndimageを使用できます


1
FFTを使用して加速度計のジェスチャーを解釈できますか?
加速度計のデータを見ているときに発生する2つの異なるジェスチャーを検出する必要があります。以下がその概要です(私ができる限り簡単に): iPhoneが表を上にしたまま、前後に振動しているとしましょう。ユーザーは、1つの振動(前方または後方に1回、ジェスチャー1)または任意の時間の継続的な振動(ジェスチャー2)を実行できます。 現在、私のコードは、最後の50フレームからのデバイスの加速度計データ(y軸)のリストを保持しています。このデータごとにFFTアルゴリズム(これはhttp://goo.gl/yi3mn)を実行してから、指定された周波数領域を解釈しようとします。私は振動の速度と周波数空間の中低域のパワーとの間に強い関係があることに気づきました。 問題は、(動きが画面上で何かをアニメートするときにリアルタイムで)直前に完了した振動が単一のものか、それとも反対方向に別の振動が続くものかを検出する必要があることです。ここで、加速度計はプレッシャープレートで機能することを指摘しておきます。発振が停止すると、入力データは発振が実行されていたときと反対の値を示します。これにより、1回の前進運動と2回の前進運動とその後の運動運動(最初の各振動の終わり)の明らかな違いを確認することが困難になります。 上記のジェスチャーの違いを伝えるために使用できる正確な大きさの値(または何か他の便利なもの)をFFTを使用して解読する方法を誰かが提案できますか? 使用しているデータをテキストファイルに記録しました。これは、加速度計入力のy軸に沿った生データ(g力の値)です。 http://pastebin.ca/2108123は、2つの特異な振動のデータを示しています(デバイスを最初、最後、および2つの振動の間で静止させています)。 注:20振動の新しい生データがアップロードされていますが、まだプロットされていません。 http://pastebin.ca/2108387は、20回の連続振動のデータを示しています(デバイスを最初と最後で動かさないでください)。
10 fft 

2
関数のサンプルからのテイラー級数係数の推定
いくつかのノイズを含むx iでサンプリングされた関数測定値があるとします。これは、テイラー級数展開で近似できます。私の測定からその拡張の係数を推定するための受け入れられた方法はありますか?y= y(x )y=y(x)y = y(x)バツ私xix_i データを多項式に適合させることもできますが、それは正しくありません。テイラー級数の場合、x = 0のように中心点に近づくほど近似が良くなるためです。多項式を適合させるだけで、すべての点が等しく扱われます。 拡張点での微分のさまざまな次数を推定することもできますが、どの微分フィルターを使用するか、およびそれぞれにいくつのフィルター係数を使用するかを決定する必要があります。異なる派生物のフィルターはどういうわけか一緒に合わせる必要がありますか? それで誰かがこれのために確立された方法を知っていますか?論文の説明や参照をいただければ幸いです。 明確化 以下のコメントに応じて、私のサンプリングは無限関数からの長方形のウィンドウであり、必ずしも帯域制限されているわけではありませんが、強い高周波成分はありません。具体的には、推定器のパラメーター(基になる組織の変形またはひずみのレベル)の関数として、推定器の分散(医療用超音波信号の変位を測定)を測定しています。変形の関数としての分散の理論的なテイラー級数があり、シミュレーションから得られるものと比較したいと思います。 同様のおもちゃの例は次のようになります:ノイズが追加されたxの間隔でサンプリングされたln(x)のような関数があるとします。あなたはそれが本当に何の関数かわからないので、x = 5の周りのテイラー級数を推定したいとします。したがって、関数は滑らかで、関心のあるポイントの周囲の領域でゆっくり変化します(たとえば、2 <x <8)。ただし、領域の外側では必ずしも良いとは限りません。 答えは役に立ちました、そしてある種の最小二乗多項式フィットはおそらく取るためのルートです。ただし、推定されるテイラー級数が通常の多項式近似と異なるのは、高次の項を削り落とし、多項式を元の関数に近似させることができることです。これは、初期点の小さい範囲内にあります。 したがって、おそらく、アプローチは、初期点に近いデータのみを使用して線形多項式近似を実行し、その後、さらに多くのデータを使用して2次近似を実行し、それより少し多くを使用して3次近似などを実行することになります。

3
「スペクトルモーメント」とはどういう意味ですか?
私はグーグルとウィキの全能の神託を調べましたが、「スペクトルの瞬間」というフレーズの定義を見つけることができないようです。 私が読んでいるレガシーの作業テキストは次のように使用し、単位時間あたりのゼロクロッシングの数を次のように定義しています。 N0=1π(m2m0)1/2N0=1π(m2m0)1/2 N_0 = \frac1{\pi} \left(\frac{m_2}{m_0}\right)^{1/2} 次に、単位時間あたりの極値の数をさらに次のように定義します。 Ne=1π(m4m2)1/2Ne=1π(m4m2)1/2 N_e = \frac{1}{\pi}\left(\frac{m_4}{m_2}\right)^{1/2} 「mimim_iはスペクトルのiii番目のモーメントです」と最終的に言います。 誰もがこれに遭遇しましたか?スペクトルの「瞬間」とは何ですか?DSPの文献では、これについて聞いたことがありません。

2
信号の微分と二次微分の平滑化された推定値を見つける方法は?
ΔtΔt\Delta tfi(ti=iΔt)fi(ti=iΔt)f_i(t_i=i\Delta t)i=0,…,n−1i=0,…,n−1i = 0,\ldots,n-1f′(t)f′(t)f'(t)f′′(t)f″(t)f''(t) 私の最初の考えは、中心的な違いによって導関数を推定することでした: f′(ti)f′′(ti)=f(ti+1)−f(ti−1)2Δt=f(ti+1)−2f(ti)+f(ti−1)(Δt)2f′(ti)=f(ti+1)−f(ti−1)2Δtf″(ti)=f(ti+1)−2f(ti)+f(ti−1)(Δt)2\begin{align} f'(t_{i})&=\frac{f(t_{i+1})-f(t_{i-1})}{2\Delta t}\\ f''(t_{i})&=\frac{f(t_{i+1})-2f(t_{i})+f(t_{i-1})}{(\Delta t)^2} \end{align} ただし、信号には、および急激な変動を引き起こす可能性のある高周波ノイズが多い場合があります。f′f′f'f′′f″f'' と「平滑化された」推定値を見つける最良の方法は何でしょうか?f′f′f'f′′f″f''

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