信号処理

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

2
「ゼロパディングでは周波数分解能が実際に向上しない」と言うのはなぜですか
f = 236.4 Hzこれは周波数の正弦波(長さは10ミリ秒です。N=441サンプリングレートにポイントがありますfs=44100Hz)とそのDFTで、ゼロパディングはありません。 DFTを確認することで得られる唯一の結論は、「周波数は約200Hzである」です。 これが信号とそのDFTであり、大きなゼロパディングがあります。 これで、より正確な結論を得ることができます。「スペクトルの最大値を注意深く見れば、周波数236Hzを推定できます」(ズームして最大値が236に近いことがわかりました)。 私の質問は、「ゼロパディングでは解像度が向上しない」と言うのはなぜですか?(私はこの文を頻繁に見ましたが、「補間を追加するだけです」と彼らは言っています) =>私の例では、ゼロパディングによって、より正確な分解能で適切な周波数を見つけることができました。

3
FFTまたはDFTを使用してオーディオをリサンプリングする方法
最初にFFTを実行し、次に必要な結果の部分のみを取得してから、逆FFTを実行することにより、音声オーディオをダウンサンプリングしています。ただし、32768から8192へのダウンサンプリングなど、2の累乗の周波数を使用している場合にのみ正しく機能します。32kデータに対してFFTを実行し、データの上位3/4を破棄してから、残りの1/4の逆FFT。 ただし、正しく整列しないデータを使用してこれを実行しようとすると、次の2つのいずれかが発生します。私の(Aforge.Math)を使用している数学ライブラリは、フィットがスローされます。これは、サンプルが2の累乗ではないためです。サンプルを2の累乗になるようにゼロ埋めしようとすると、反対側で意味不明になってしまいます。代わりにDFTも使用しようとしましたが、非常に遅くなります(これはリアルタイムで行う必要があります)。 最初のFFTと最後の逆FFTの両方で、FFTデータを適切にゼロパッドするにはどうすればよいですか?16khzに到達する必要がある44.1khzのサンプルがあると仮定して、私は現在、このようなものを試します。サンプルのサイズは1000です。 入力データを最後に1024に埋め込む FFTを実行する 最初の512アイテムを配列に読み込みます(最初の362だけが必要ですが、^ 2が必要です) 逆FFTを実行する 最初の362項目をオーディオ再生バッファーに読み込みます これで、最後にゴミが出ます。同じことを行いますが、サンプルが既に^ 2であるため、ステップ1と3でパディングする必要はなく、正しい結果が得られます。
12 c#  audio 

2
ノイズ内の信号の存在を判断するためにどの統計が使用されますか?
これは私が信じている検出器の問題です: 単純な問題のように思われることに困惑しています。基本的に、私は興味のあるバンドを持っています。この対象の帯域内に信号エネルギーが存在する場合、信号に対して操作Xを実行します。 私の問題は、信号が存在するかどうかを「決定する」方法について正確にわからないことです。その中で、FFTを実行した後、ピークを探すことができます。 しかし、今何ですか? 通常使用される統計は、このピークをスペクトルの周囲の平均と比較していますか?それとも他の統計ですか? 信号が存在するかどうかを簡単に判断し、そこから移動するには、どの統計的尺度を使用しますか? この値を設定するにはどうすればよいですか?単純なしきい値処理? フィードバックに基づいて編集: この単純なケースでは、ホワイトガウスノイズのトーンを想定しています。私がハンドルを握ろうとしているのは: ROC 曲線はどの程度正確に生成されますか。1が行くとしなければならないラベル最初にすべてのデータを、そしてその後、しきい値の多数のための真陽性と偽陽性率を得ますか? SNRの低下はROC曲線にどのように影響しますか?斜めに動かしますか? 適応しきい値なしで生成された特定のROC曲線に対して適応しきい値処理は何をしているのですか? 3a。私が見ることができるいくつかの一般的な適応しきい値技術は何ですか?

3
デジタルアンチエイリアシングフィルターを使用できますか?
ADCの入力にアンチエイリアシングフィルターがないボードで作業しています。RC +オペアンプ回路を使用して独自のフィルターを実装するオプションがあります。しかし、ADCでサンプリングしてデジタルドメインで処理した後、アンチエイリアシングフィルターを実装することもできますか?デジタルアンチエイリアシングフィルターですか?


7
カルマンフィルターを学ぶための良い本または参考書
この投稿を改善してみませんか?この質問に対する詳細な回答を提供します。これには、引用と、回答が正しい理由の説明が含まれます。詳細が不十分な回答は編集または削除される場合があります。 カルマンフィルターはまったく新しいものです。条件付き確率と線形代数に関するいくつかの基本的なコースを受講しました。誰かがカルマンフィルターの操作を理解するのに役立つ、良い本やWeb上のリソースを提案できますか? ほとんどのウェブサイトは公式とその意味から直接始まりますが、私はその導出、または詳細な導出ではないとしても、少なくとも各操作とパラメーターの物理的な重要性に関心があります。

5
オーディオのダブル(64ビット)浮動小数点を検討する場合
最新のプロセッサでオーディオを合成して処理するとき、単精度(32ビット)浮動小数点以外の使用を検討するのはいつですか。明らかに、現実世界に出入りするオーディオは16/24ビットなので、ソフトウェアでの信号(オーディオ自体とフィルター係数のようなものの両方)の精度について話しているだけです。 と仮定する: CPU / DSPには、単精度と倍精度の両方のハードウェア浮動小数点サポートがあります。 優先事項は、高性能ではなく高品質のオーディオです。たとえば、より良い(知覚的)品質を提供する場合は、倍精度が考慮されます。

2
フーリエ変換の表記法と表記法の選択?
大学で学んだフーリエ変換と逆フーリエ変換の定義は F (T )= 1F(jω)=∫∞−∞f(t)e−jωt dtF(jω)=∫−∞∞f(t)e−jωt dt F(j\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t}\ dt f(t)=12π∫∞−∞F(jω)ejωtdωf(t)=12π∫−∞∞F(jω)ejωtdω f(t)=\frac{1}{2\pi}\int_{-\infty}^{\infty}F(j\omega)e^{j\omega t} d\omega この条約の顕著な特徴は 非ユニタリ変換。周波数領域の単位はラジアンです(変数は)ωω\omega 「時間領域」の単位は時間です(変数は)ttt 関数変換は大文字で示されます(対f)FFFfff でのF (jはωが)厳しく関数はフーリエ変換であることを示し、jjjF(jω)F(jω)F(j\omega) そしてもちろん、j = √である通常のEE規則。j=−1−−−√j=−1j=\sqrt{-1} 最近では、本質的にはウィキペディアで使用されているものとは大きく異なる規則を使用し ています。 F(X)=∫ ∞ - ∞ F(ξ)EJ2πξXDξ この条約の特性はf^(ξ)=∫∞−∞f(x)e−j2πξxdxf^(ξ)=∫−∞∞f(x)e−j2πξxdx \hat{f}(\xi) = \int_{-\infty}^{\infty} f(x) e^{-j2\pi\xi x}dx f(x)=∫∞−∞f^(ξ)ej2πξxdξf(x)=∫−∞∞f^(ξ)ej2πξxdξ f(x) = \int_{-\infty}^{\infty} \hat{f}(\xi) e^{j2\pi\xi x} d\xi ユニタリ変換; …

12
ガウスカーネルによってぼやけた1D信号のデコンボリューション
ガウス分布でランダム信号をたたみ込み、ノイズ(この場合はポアソンノイズ)を追加して、ノイズの多い信号を生成しました。次に、このノイズの多い信号をデコンボリューションして、同じガウスを使用して元の信号を抽出します。 問題は、1Dでデコンボリューションを行うコードが必要なことです。(私はすでに2Dでいくつか見つけましたが、私の主な目的は1Dです)。 そうすることができるいくつかのパッケージまたはプログラムを私に提案していただけませんか?(できればMATLABで) 助けてくれてありがとう。

2
離散ウェーブレット変換-分解された詳細係数と信号間の関係の可視化
離散ウェーブレット変換(DWT)詳細係数と元の信号/その再構成との関係を直接視覚化しようとしています。目標は、それらの関係を直感的な方法で示すことです。質問したい(下記の質問を参照):私が思いついたアイデアとプロセスがこれまでに正しいかどうか、そして関係を視覚化する前に元の信号から第1レベルの近似値を差し引くほうがよいと私が正しい場合。 最小限の例 これは、1024の値を持つPythonのECGサンプルデータを単純な1D信号として使用して、私が説明の基にした最小限の例です。pywavelets import pywt import pywt.data import numpy as np import matplotlib.pyplot as plt x = pywt.data.ecg() plt.plot(x) plt.legend(['Original signal']) 分解は、合計6レベルのSymmlet 5を使用して行われます。 w = pywt.Wavelet('sym5') plt.plot(w.dec_lo) coeffs = pywt.wavedec(x, w, level=6) (不可逆)信号の再構成は、意図的に高レベルの詳細係数を除外したときに期待どおりに機能します(信号は、便宜上、均一なxスケール[0,1]にプロットされています)。 def reconstruction_plot(yyy, **kwargs): """Plot signal vector on x [0,1] independently of amount of values it contains.""" plt.plot(np.linspace(0, …

1
なぜこのモアレパターンはこのように見えるのですか?
Matlabでメビウス変換のgifをいくつか作成していたところ、いくつかの奇妙なパターンが現れ始めました。この現象を理解するためにファイルタイプ/アルゴリズムのより深い知識が必要かどうかはわかりませんが、おそらく純粋に数学的説明があるのではないかと思いました。この画像は、市松模様のように複素平面を着色し、複素共役の逆数を取ることで反転させて得られます。以下は、指定されたズームを使用した画像の数学擬似コードです。kkk checkerboard:C→{black,white}checkerboard(z):={blackwhiteif ⌊I(z)⌋+⌊R(z)⌋≡0mod2if ⌊I(z)⌋+⌊R(z)⌋≡1mod2image={z∈C:|R(z)|,|I(z)|≤1}color:image→{black,white}color(z):=checkerboard(k/z¯¯¯)checkerboard:C→{black,white}checkerboard(z):={blackif ⌊ℑ(z)⌋+⌊ℜ(z)⌋≡0mod2whiteif ⌊ℑ(z)⌋+⌊ℜ(z)⌋≡1mod2image={z∈C:|ℜ(z)|,|ℑ(z)|≤1}color:image→{black,white}color(z):=checkerboard(k/z¯)\begin{align} &\mbox{checkerboard}:\mathbb C \to\{\mbox{black},\mbox{white}\}\\ &\mbox{checkerboard}(z):=\begin{cases} \mbox{black} & \mbox{if }\lfloor\Im(z)\rfloor+\lfloor\Re(z)\rfloor\equiv 0\mod 2\\ \mbox{white} & \mbox{if }\lfloor\Im(z)\rfloor+\lfloor\Re(z)\rfloor\equiv 1\mod 2 \end{cases}\\ &\mbox{image} = \{z\in\mathbb C:|\Re(z)|,|\Im(z)|\leq 1\}\\ &\mbox{color}:\mbox{image}\to\{\mbox{black},\mbox{white}\}\\ &\mbox{color}(z):=\mbox{checkerboard}(k/\overline{z}) \end{align} そして、、、およびの画像を次に示します。各画像の解像度はです。信号処理の経歴はありませんが、学びたいです!k = 50 k = 200 1000 × 1000k=1k=1k=1k=50k=50k=50k=200k=200k=2001000×10001000×10001000\times 1000 編集: より具体的には、モアレパターンが特定のポイントで画像の解像度と「同期」するのはなぜですか。 モアレパターンを予測できますか?

6
二重フーリエ変換を実行するための実用的なアプリケーションはありますか?…または時間領域入力の逆フーリエ変換?
数学では、関数の二重導関数または二重積分を取ることができます。二重微分モデルを実行すると、オブジェクトの加速度を見つけるなど、実際の状況が現実的な場合が多くあります。 フーリエ変換は、実数または複素数の信号を入力として受け取り、複素数信号を出力として生成するため、その出力を取得してフーリエ変換を2回適用することを妨げるものは何もありません...この?いくつかの複雑な実世界の状況をモデル化するのに役立ちますか? 同じロジックを使用して、元の時間領域入力信号の逆フーリエ変換を妨げるものは何もありません...これはこれまでに役立つでしょうか?なぜですか、なぜそうではありませんか?


2
任意の位相シフトを持つ位相シフタを構築する方法
DSPエンジニアのフレッドは、お気に入りのDSPストアに買い物に行きます。 フレッド:こんにちは、位相シフターを購入したいと思います。 店員:うーん、どういう意味? フレッド:さて、あなたは知っている、あなたのような正弦波に入れた場合x(t)=sin(ω0t)x(t)=sin⁡(ω0t)x(t)=\sin(\omega_0t)あなたが得るy(t)=sin(ω0t−θ)y(t)=sin⁡(ω0t−θ)y(t)=\sin(\omega_0t-\theta)いずれかのために、出力でω0ω0\omega_0。そしてもちろん、θθ\thetaは調整可能でなければなりません。 店員:なるほど。申し訳ありませんが、ありません。しかし、私は同じことを必要としている他の人を覚えています。彼らは常にヒルベルト変換器、2つの乗算器、および加算器を購入し、これらすべてを何らかの方法で接続して、調整可能な位相シフターを作ります。 フレッド:そうそうそう! フレッドはその男が何を話しているのか理解するふりをします。もちろん、彼はそれを行う方法を知りません。彼は男が必要だと言ったものをすべて購入し、自宅でそれを理解するかもしれないと自分で考えます。 フレッドは、店で入手したコンポーネントを使用して、調整可能な位相シフトθθ\thetaを備えた位相シフターをどのように構築できますか?


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