信号処理

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

1
離散(逆)Haar(2D)変換の実装
合成すると常に恒等演算が行われるように、Haar変換とその逆の実装に興味があります。私の入力は、指定された範囲内の離散的な序数です。Haar変換の出力も、同様に離散的な序数(または固定小数点)の数値にする必要があります。 私は、入力信号が範囲内に均一に分散されたサンプルで構成されている場合に基づいて作業しました 0..(2n−1)0..(2n−1)0..(2^n-1) そして、私の変換された信号もそうです、そしてそれで、原則として、私の元の信号は逆ハールによって完全に再現されるべきです。 私は、GNU Octaveを使用してこの(Matlab)実装に手を加えました。 http://people.sc.fsu.edu/~jburkardt/m_src/haar/haar.html これは倍精度値を使用します...変換された表現を元の状態空間と同じ状態空間に合わせるために、round()を使用して変換されたデータの離散表現を確立するように強制します。当然のことながら、逆変換の出力に対して再びround()を使用する必要があることがわかりました。 round(haar_2d_inverse(round(haar_2d(signal))))がほとんどの信号値の恒等関数ではないことは、おそらく驚くことではありません...事例では、通常、再構成された信号-ほぼ対称に見え(少数の再構成されたサンプルで+1または-1)、これはnの選択にほとんど依存しないようです。 私が知りたいのは、順序サンプルで機能するhaar_2dおよびhaar_2d_inverseの「より良い」実装があるかどうかです。異常は、Haar実装自体の結果なのか、中間段階でround()を適用した方法なのでしょうか?後者の場合、丸める前にスケーリングしてこれを修正できますか?

1
FFTベースのフィルタリング方法は、リアルタイムアルゴリズムに本質的なレイテンシを追加しますか?
現在のオーディオ処理アプリケーションでは、IIRフィルターを使用して完全に時間領域で作業しています。これにより、3つまたは4つのサンプルのオーディオバッファーを使用でき、そのフレーム内に何らかの形式のオーディオ出力があることを保証できます。 FIRベースのフィルターに切り替えた場合(この質問で概説されているようにフィルターのリンギング時間を短縮するため)、処理効率を維持するためにFFTベースのオーバーラップ加算手法を使用する必要があるでしょう。ご覧のように、変換を行う前に、FFTフレームバッファーにサンプルを入力する必要があります。これにより、FFTの計算に使用されるサンプルの数に比例して、アルゴリズムに固有のレイテンシが追加されます。私はトリックを逃していますか?

1
音声圧縮-LPCでは、線形予測フィルターは一般的なレベルでどのように機能しますか?
こんにちは、私はマルチメディアシステムコースを受講しており、火曜日の試験の準備をしています。一般的なレベルでLPC圧縮について理解しようとしていますが、線形予測フィルター部分で何が起こっているのか問題があります。これはこれまでのところ私の理解です: LPCは、アナログ信号をデジタル化し、セグメントに分割することによって機能します。各セグメントについて、信号の主要な特徴を決定し、これらを可能な限り正確にエンコードしようとします。主な機能は、信号のピッチ(つまり、基本的なフォルマント周波数)、信号のラウドネス、および音声が有声か無声かです。声道励起パラメータと呼ばれるパラメータも決定され、声道モデルで使用されて、音を生成した声道の状態をより適切にモデル化します。このデータはネットワークを介して渡され、受信側でデコードされます。信号のピッチは有声または無声シンセサイザーへの入力として使用され、ラウドネスデータはこの結果の信号の振幅をブーストするために使用されます。 私のノートでは、声道モデルは線形予測フィルターを使用し、n番目のサンプルは、前のpサンプルとシンセサイザーからのエラー項の線形結合であると述べています。 これは、エンコーダーとデコーダーの両方で最後のpサンプルの移動平均を維持することを意味しますか?エンコーダでこの平均信号と実際の信号の差に対応するデータのみを送信するようにするには、 なぜこれらの以前のサンプルの線形結合なのですか?私の理解では、音のラウドネス、周波数、有声/無声の性質を抽出し、実際の信号と予測信号との差ができるだけ小さくなるようにそれらを選択することにより、これらの声道励起パラメータを生成します。確かに、これらの前のサンプルの平均が次のサンプルのより良い指標になるでしょうか? あなたがそれらを指摘することができれば私の理解に穴があればそれは素晴らしいでしょう!前もって感謝します!

1
時間ドメインだけでなく、時間-周波数ドメインの一致フィルター。冗長、またはそれ以上?
信号があり、その中にいくつかのパルスが存在するとします。パルスは単純なトーンです。あなたはパルスの持続時間と形を知っています。(パルスが2、3サイクルで構成され、それに対してこれらのすべてのサイクルがハミングウィンドウで乗算されると仮定します。したがって、最終的なパルスは以下の青いプロットのようになります。 私たちが知らないのはその頻度です。(その周波数は以内であることがわかっています)。±100 Hz±100 Hz\pm 100\textrm{ Hz} 質問は: 時間周波数領域でパルスの2次元バージョンを使用して、信号の絶対振幅スペクトログラムの一致フィルタリングを実行しますか?例)、既知のパルスのエンベロープに対して、時間領域で? ] 2 * TFドメイン方式の場合、以下を想定します。 STFT分析。 予想されるパルス長に等しい分析ウィンドウを使用しています。 重複の割合:何を望んでも、この場合は重要ではないと思います。 一方で、何もないから情報を作成することはできないため、時間-周波数空間に問題を持ち込むことは冗長に思えますが、一方で、時間-周波数空間に入ると、おそらく、パルスによく一致する2次元フィルターを作成するか、時間領域の一致フィルタリングの場合に無視されていない(おそらく?)他のバンドからのノイズを無視しますか? 私の最大の混乱点は、TFドメインへの移行に固有に、(使用する分析ウィンドウの選択に基づいて)時間と周波数の両方のローカライズのあいまいさがあるということです。対照的に、時間領域では、時間のローカリゼーションは確実です。どのように-またはなぜ- いくつかの時間-周波数のあいまいさの共存のために時間配置のあいまいさを取り除けば役立つでしょうか?見ていません。100%100%100\%100%100%100\% 編集: 問題を見て別の方法は、この言い換えている:ときに 1がでフィルタリング試合したいと思うだけで、時間領域(時のあいまいさ、合同TF-ドメインでそれをやって対、周波数の曖昧さを)、 (x%時間のあいまいさ、(1-x)%頻度のあいまいさ)。0%0%0\%100%100%100\% 幅広い質問がありましたが、最初にこれに分類しました。

3
時間領域でのゼロパディングの感覚
ラドン変換に関連するタスクがあります。DFTによるリサンプリングを使用するサブタスクが含まれています。 長さ515ピクセルの非周期的な離散化信号(図1)(たとえば、ピクセルのストリング)を考えてみましょう。私のリサンプリングの実装では、次の手順が含まれています。 循環左シフト(図2)。 信号の長さが2 ^ nになるように、中心にゼロを追加します(この場合、1024-515 = 509のゼロを追加する必要があります)(図3)。 この信号からDFTを取得します(図4)。 循環右シフト。(低周波数を中心にシフトするため)(図5) 図1 図2 図3 図4 図5 主な質問: なぜ信号の循環シフトを実行し、中心に正確にゼロを追加する必要があるのですか?(私はこれが信号を周期的にしたと仮定しました)ゼロパディングは補間DFTスペクトルを作ります、それは正しいですか?(私は尋ねました、そしてそれはかなりそうではないことを誰かが言います)多分誰かはゼロパディングの後で信号で何が起こるかを簡単な方法で説明することができます。 Matlabでいくつかの実験を行ったところ、他の一連のアクションでは必要な結果が得られないことがわかりました。 次の2つのケースを考えてみましょう。 a)(この正しいバリアント)非周期的な離散化された信号(たとえば、ピクセルの文字列)があります。これは、左に循環シフトされ、中央にゼロが埋められた後、これからDFTが取得され、シフトバックされます。 b)非周期的な離散化された信号(たとえば、ピクセルの設定された文字列)があり、左から右にゼロが埋められ、これからDFTが取得されます。 これらのDFTスペクトルの違いは何ですか? 私はいくつかの本を読みましたが、このゼロパディングのケースの答えは見つかりませんでした。これは自分の経験だけで見つけられるようです。 本の答え: AC KakおよびMalcolm Slaney、コンピュータ断層撮影イメージングの原則、工業および応用数学学会、25ページ、2001年

2
楕円を2Dデータに合わせる方法
次のような連続した、おそらく凹状の形状に対する楕円の「最適な」適合を見つけたいのですが。 何を試しましたか? 私は1つがメジャーとマイナーの軸の方向に割り当てることができると思った座標にピクセル値をマッピングすることにより、楕円の、平均減算、およびPCAから最大2個の固有ベクトルを節約します。は方向を見つけるのにかなりうまくいくようです:a⃗ 、b⃗ a→,b→\vec a, \vec b 私の問題は、これら2つのベクトルの長さを決定することです。ここでは、PCAの固有値からを使用しました。これは長さを過小評価しているようです。をどのように判断できますか 、およびまたは、代わりに楕円をこれらの形状に最適化しますか?λ−−√1λ1\sqrt \lambda_1 λ−−√2λ2\sqrt \lambda_2|a⃗ ||a→||\vec a||b⃗ ||b→||\vec b|

3
エイリアシングの効果を示す
サンプリング中に信号からエイリアシングを削除するためにナイキストレートを使用しない場合、信号はどのように見えますか? 信号が正弦波で、周波数が500 Hz、振幅が2であると仮定します。 signal = 2*cos(2*pi*500*t) それをサンプリングし(t = nTs、Ts =サンプリング周期、nはサンプル数を表す)、MATLABのsubplotコマンドを使用して、サンプリングされた信号を異なるサンプリング周期でプロットすると、サンプリングされた信号のエイリアシングをどのように識別できますか? 2つの信号をプロットしたサンプルコードは次のとおりです。1つはナイキストレートで、もう1つはナイキストレート未満です。 A = 2; Fmax = 10; Fs = 2*Fmax; n = 0:1/Fs:1; Cont = A*sin(2*pi*(Fmax/Fs)*n); Cont1 = A*sin(2*pi*(Fmax/18)*n); subplot(2,1,1) stem(n,Cont) hold on stem(n,Cont1) そしてここに波形があります: エイリアシングを特定できませんでした。ナイキストレートを使用しなかった場合、信号にどのように影響しましたか?

3
画像の非長方形部分のFFT
ノイズ低減のために画像にFFTを実行する必要がありますが、問題は画像全体ではなく中央の円のみが必要なことです。境界線は固定リグであるため、表示されるものには興味がありませんが、FFTの結果に影響を与えます。 円形の部分を切り取ってFFTに使用する方法はありますか?黒の背景を使用すると、背景と画像データの間のエッジに大きな影響が出ることに注意してください。
7 fft 

3
フーリエ変換を一般化する方法は?
フーリエ変換は信号を受け取り、それを一連の正弦波と余弦波に分割します。 私は言いました、機能のいくつか他のセットに信号を分割することは可能ことになっていること。私の質問は、次のとおりです。 これを機能させるには、使用する関数のセットに特定のプロパティが必要だと思います。(たとえば、元の信号のすべての情報をキャプチャするには、「十分な」さまざまな関数が必要です。)関数のセットが適切であるかどうかをどのように判断しますか?そして、実際の分割はどのように行うのですか?

1
周波数が連続的に減少する波が、その長さの半分を超えて周波数を増加し始めるのはなぜですか?
周波数が連続的に減少する波(正弦波または方形波)をプログラムで生成しようとしています。これを行うには、開始周波数を単純に掛けて、値が減少するようにします。これは、所定の時間スパンの中間ステップで、1から0に線形的に変化します。ちょうど半分の時間帯に、周波数が再び増加し始めたことを見て(聞いて)戸惑いました。頻度の値を確認しましたが、問題ありません。私は波の最初の「半分」しか使用できませんが、私が経験していることを理解することは素晴らしいことです。助けてくれてありがとう!ありがとう
7 frequency  wave 

2
周波数スペクトルをシフトするには?
-X MHzから+ X MHzの範囲のスペクトルがあるとします。ゼロ成分を中央(0 Hz)にシフトして、スペクトルの周波数誤差を修正する必要があります。 出力(周波数スペクトル)がFFTを介して計算される場合、私が知る限り、「回転因子」(または係数、複雑なデータの正弦波および余弦波の場合)を調整することによってスペクトルを移動できます。 サイズ1024 FFT(ビンインデックス0〜1023)の場合、ビン番号511に0 Hz成分が存在する必要があります。ただし、周波数誤差の可能性があるため、0 hz成分は実際にはビン510にある可能性があります。 私はこれについて多くの情報を見つけることができないようです。助けてくれてありがとう。 編集:質問の間違い。

1
既知の信号の効率的な周波数オフセット推定
私の受信機が、非常に単純な(トーン)から複雑な(変調された既知のデータシーケンス(PSK / QAM / OFDMなど))までの既知のデータ信号を受信するとします。周波数オフセットのか​​なり正確な推定値を得る最も計算効率の良い方法は何ですか?

2
事前に間引かれたストリーミングオーディオのエイリアシングを最小限に抑えるローパスフィルターの設計
PCMファイルにローパスフィルターを適用する必要があります。FIRフィルター、IIR(butterworth-chebyshev ..)フィルターなど、いくつかの方法がありますが、高速フーリエ変換を適用し、より高い周波数を除去することが理想的なフィルターに最も近い方法のようです。 最速で理想的なフィルタリング方法に最も近いものは何ですか? サウンドのサンプリングレートを変更する前のアンチエイリアスに必要です。(Fcutoff = Fs / 2)そして、1秒のブロックごとに適用されます。データ。主な要件は、サンプルレートを変更した後、新しいオーディオ品質が元のオーディオ品質に可能な限り近いことです。(騒々しくない。) ありがとう。
7 filters  audio 

2
チェビシェフフィルターを適用するにはどうすればよいですか?
脳とコンピューターのインターフェースについての論文を読んだ。この論文では、著者らは「各信号はカットオフ周波数が0.1および10 Hzであり、高カットオフ周波数に従って間引かれている8次バンドパスチェビシェフI型フィルターでフィルター処理されている」と報告しています。私はこのフィルターをscipyで設計しようとしました: import scipy.signal as signal signal.cheby1(8,0.05,[0.1,10.0],btype='band',analog=0,output='ba') 結果は: Warning: invalid value encountered in sqrt (array([ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]), array([ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan])) …

1
フォンはラウドネスとどのように関係していますか?
まったく同じ信号が2つの.wavファイルに保存されているとしましょう。そして、関数を使用して各ファイルを処理し、1つのファイルが他のファイルよりも20 フォン大きいことが確認されたとします。その関数がこれを計算する方法を無視しましょう。 これは、1つのファイルが他のファイルよりも約4倍大きいことを意味しますか? 2つの信号のホーンの違いをラウドネスの違いに関連付けるには、どの公式を使用できますか? -10 phons = 0.5 0 phons = 1 10 phons = 2

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