信号処理

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

1
信号の平滑化/データストリームのバンプの検出
(編集:この質問は、生のWAVからのバイナリ磁気ストリップカードデータの抽出から続きます) これが私の信号です(上の行)と基本的なIIRフィルターが適用されています(下の行) (編集:私のタスクは、信号をバイナリ0(周波数F)とバイナリ1(周波数2F)に分割することです-これがF2Fと呼ばれる理由です。したがって、誤ったピークが発生しないように処理する必要があります。スクリーンショットはそれを些細に見えるようにします、二重ピークを取得する潜在的な問題があり、実際のピーク間の谷で偽陽性を取得する可能性もあります。) 私の質問は、この信号を平滑化するために利用できる方法は何ですか?IIRは私の最善の策ですか? 私は少なくとも3つの可能性を見ることができます: IIR y [n] = 0.9 * y [n-1] + 0.1 * x [n]ここで、x <0の場合、y [x] = 0 移動/ウィンドウ平均-面積1.0のベル曲線を周囲に配置し、両側をw = 10サンプルと統合し、bellSmooth(x)= integral [xw、x + w] {bell(k).samp(k)} dk 予想される周波数とFFTを決定する/高次のビンを削除する/逆FFT 私は自分の質問に答えたかもしれませんが、おそらくこれは不完全であり、間違った用語を使用していると確信しています。また、私は長所と短所を実際に予測することはできません。最後の方法は、基本的な信号周波数の知識を必要とするため、あまり魅力的ではありません。しかし、2番目の方法も同様です。適切なウィンドウの長さを選択する必要があります。 他の方法はありますか?
11 filters  noise 

1
F2F信号からのノイズの除去
(この質問は、生のWAVからのバイナリ磁気ストリップカードデータの抽出に関連しています) クレジットカードの磁気ストリップからバイナリシーケンスを抽出しています。 ご覧のとおり、信号は1か所ではっきりと劣化しています。また、画像の左側に小さな劣化があります。 IIRを使用するだけで(つまり、)、平滑化されますが、結果の信号は数学的に滑らかではありません。信号を2、3回微分すると、ノイズは復讐で戻ってきます。Xout=0.9Xoutlast+0.1XinXout=0.9Xoutlast+0.1XinX_{\rm out} = 0.9X_{\rm out_{last}} + 0.1X_{\rm in} 私の質問は、デリバティブがきれいになるような方法でノイズを取り除くことはできますか? もしそうなら、どうですか? 編集:ここにいくつかの破損した波のクローズアップがあります: 編集(2): 私が検討しているいくつかのアプローチ: 最初に、損傷したセクターのいずれかの側で信号のテイラー近似を行い、近似をブレンドすることができます。 次に、FFT、高周波成分の除去、FFTの逆変換を行うことができます。では、2つ目のアプローチを試してみましょう...
11 fft  noise 

2
Photoshopの「白黒」調整レイヤーの背後にあるアルゴリズムは何ですか?
フォトショップの「白黒」調整レイヤーの背後にあるアルゴリズムについて誰かが説明できますか? 画像から赤/マゼンタではないピクセルを強調するアプリケーション(パーセントのような構成可能な許容誤差を使用)をC ++を使用して再現する必要があり、このリソースは私が期待する動作を示しました。 それでも再現できませんでしたが、手がかりを見つけました。 各ピクセルは、最大2つのコントロール、1つの加算(RGB)と1つの減算(CMY)によって定義されます。

1
Aウェイトの適用
特定の信号のラウドネスを計算したいのですが、このスレッドに出くわしました。A-Weightingの側面について少し混乱しています。画像を投稿することはできませんが、このサイトには必要な計算式があると思います。(Wa = 10log ...) 私が理解していないのは、実際にプログラムでそれを使用する方法です。f頻度を表す場合、値は一定のままであるため、おそらく値をハードコードできます。その場合、Waサンプル値にどのように適用し、どの値を使用しますか?パワースペクトルを計算してWINDOW_SIZE/2値を取得し、周波数帯域の各値に関連する事前計算された値を掛けWaますか、それとも間違った方法ですか?前もって感謝します。
11 algorithms  audio 

1
バーバラは誰ですか(テスト画像)
近年、画像解析の仕事を始め、バーバラとレナの画像を使用しています。早い段階で、レナの画像を取り巻く興味深い歴史に気づき、疑問に思いました:バーバラとは誰で、どこで画像が撮影されましたか? 多くの人がアレンゲルショの研究室またはマルコシュミットの(現在は機能しなくなった)テスト画像データベースを引用しています。しかし、これは私には少し不満です。
11 image 

2
画像の再構成:位相とマグニチュード
図1.(c)は、MAGNITUDEスペクトルのみから再構成されたテスト画像を示しています。低頻度ピクセルの強度値は、高頻度ピクセルよりも比較的多いと言えます。 図1.(d)は、PHASEスペクトルのみから再構成されたテスト画像を示しています。高頻度(エッジ、ライン)ピクセルの強度値は、低頻度ピクセルよりも比較的多いと言えます。 強度の変化(または交換)のこの魔法の矛盾が、MAGNITUDEスペクトルのみから再構築されたテストイメージとPHASEスペクトルのみから再構築されたテストイメージの間に存在するのはなぜですか? clc; clear all; close all; i1=imread('C:\Users\Admin\Desktop\rough\Capture1.png'); i1=rgb2gray(i1); f1=fftn(i1); mag1=abs(f1); s=log(1+fftshift(f1)); phase1=angle(f1); r1=ifftshift(ifftn(mag1)); r2=ifftn(exp(1i*phase1)); figure,imshow(i1); figure,imshow(s,[]); figure,imshow(uint8(r1)); figure,imshow(r2,[]); r2=histeq(r2); r3=histeq(uint8(r2)); figure,imshow(r2); figure,imshow(r3);

3
最も一般的な現代の画像セグメンテーション技術
私は画像セグメンテーションテクニックについていくつか読んでいて、現代の最先端のセグメンテーションアルゴリズムについて疑問に思っていました。 「必読」である現在のセグメンテーション手法、つまり現在コミュニティで最も一般的に使用されているものは何ですか?どの技術に接触し、最も効果的かつ有用であると思いましたか(そしてどのアプリケーションについて)?

9
単位ステップシーケンス
この質問は私のもう1つの私の質問に関連しています。ここで、単位ステップシーケンスの離散時間フーリエ変換(DTFT)の導出を求めます。派生物の検索中に、驚くほど簡単なものを見つけました。BA Shenoiのこの本の138ページで初めて見ました。私はまた、mathematics.SEでこの答えに出くわしました。u[n]u[n]u[n] 引数は短く単純なので、便宜上ここで繰り返します。 単位ステップシーケンスは、u [ n ] = f [ n ] + 1として記述できます。 、 f[n]={ 1u[n]=f[n]+12(1)(1)u[n]=f[n]+12u[n]=f[n]+\frac12\tag{1} 明らかに、 F[N]-、F[N-1]=δ[N] の両面の両方にDTFTを適用する(3)が得られる Fを(ω)(1-E-Jω)=1 ここで、F(ω)は、f[n]のDTFTです。(4)私たちが得ます f[n]={12,n≥0−12,n&lt;0(2)(2)f[n]={12,n≥0−12,n&lt;0f[n]=\begin{cases}\frac12,\quad n\ge 0\\-\frac12,\quad n<0\end{cases}\tag{2}f[n]−f[n−1]=δ[n](3)(3)f[n]−f[n−1]=δ[n]f[n]-f[n-1]=\delta[n]\tag{3}(3)(3)(3)F(ω)(1−e−jω)=1(4)(4)F(ω)(1−e−jω)=1F(\omega)\left(1-e^{-j\omega}\right)=1\tag{4}F(ω)F(ω)F(\omega)f[n]f[n]f[n](4)(4)(4) から(5)及び(1)我々はDTFTのために取得U[N]U(ω)=F(ω)+πδ(ω)=1F(ω)=11−e−jω(5)(5)F(ω)=11−e−jωF(\omega)=\frac{1}{1-e^{-j\omega}}\tag{5}(5)(5)(5)(1)(1)(1)u[n]u[n]u[n] どこで使用したDTFT{1}=2πδ(ω)、-π≤ω&lt;π。U(ω)=F(ω)+πδ(ω)=11−e−jω+πδ(ω),−π≤ω&lt;π(6)(6)U(ω)=F(ω)+πδ(ω)=11−e−jω+πδ(ω),−π≤ω&lt;πU(\omega)=F(\omega)+\pi\delta(\omega)=\frac{1}{1-e^{-j\omega}}+\pi\delta(\omega),\quad -\pi\le\omega <\pi\tag{6}DTFT{1}=2πδ(ω)DTFT{1}=2πδ(ω)\text{DTFT}\{1\}=2\pi\delta(\omega)−π≤ω&lt;π−π≤ω&lt;π-\pi\le\omega <\pi Eq。u [ n ]の DTFTは間違いなく正しいです。ただし、派生には欠陥があります。(6)(6)(6)u[n]u[n]u[n] 問題は、上記の派生の欠陥を見つけて説明することです。 回答の前にスポイラータグを付けてください&gt;!。

3
一様確率変数を使用してガウス確率変数を実装する
平均と分散を指定すると、ガウスランダム値を返すC ++関数を記述しようとしています。 とのrand()間の乱数を返すライブラリ関数があります。には固定値はありませんが、少なくともになることが保証されています。そのPDFは均一です。0RAND_MAXRAND_MAX215−1215−12^{15}-1 これrand()をガウス変数に変換するために、中心極限定理を使用しています。私が正確にやっていることは、rand()ユーザーが指定した時間を呼び出し、それらの戻り値を合計して、その平均をユーザー指定の平均にシフトすることです。 上記のプロットでは、ガウスランダムジェネレーターを回呼び出し、戻り値の頻度をプロットしました。ご覧のとおり、他の多くのランダムな値の合計によって作成されるため、その分散は非常に大きくなります。10710710^7 これは、ガウスPDFと指定された平均値を持つガウス変数を正常に返します。ただし、問題はその分散です。分散をユーザー指定の値に変更する方法がわからないので、この時点で立ち往生しています。 これは私のコードです(現時点では不完全です。パラメータ「Variance」は無視されます): template &lt;class T&gt; T Random::GetGaussian(T Mean /*= 0*/, T Variance /*= 1*/) { T MeanOfSum = NUM_GAUSSIAN_SUMS / static_cast&lt;T&gt;(2); T Rand = 0; for (uint64_t i=0; i&lt;NUM_GAUSSIAN_SUMS; i++) { Rand += static_cast&lt;T&gt;(rand()) / RAND_MAX; } return Rand - (MeanOfSum - Mean); } それNUM_GAUSSIAN_SUMSが100で、RAND_MAX32767 …
11 random 

3
波の周波数と周期の決定
冷蔵庫から温度データを収集しています。データは波のように見えます。波の周期と周波数を決定したいと思います(これにより、冷蔵庫の変更が影響を与えるかどうかを測定できます)。 私はRを使用しており、データにFFTを使用する必要があると思いますが、そこからどこに行くべきかわかりません。私はRと信号分析に非常に慣れていないので、どんな助けでも大歓迎です! ここに私が生み出している波があります: これまでのRコードは次のとおりです。 require(graphics) library(DBI) library(RSQLite) drv &lt;- dbDriver("SQLite") conn &lt;- dbConnect(drv, dbname = "s.sqlite3") query &lt;- function(con, query) { rs &lt;- dbSendQuery(con, query) data &lt;- fetch(rs, n = -1) dbClearResult(rs) data } box &lt;- query(conn, " SELECT id, humidity / 10.0 as humidity, temp / 10.0 as temp, …
11 frequency  wave 

3
歪み補償フィルターの作成方法
複雑なミキサー、CICデシメーター、およびFIR補償/デシメーションフィルターで構成されるチャネライザーを作成しています。最終的なFIRフィルターは、必要に応じて、複数のフィルターとして実装できます。 私の質問は、CICフィルターの非常に平坦でない周波数応答を補償するようにフィルターを設計するにはどうすればよいですか?CICの応答の逆数を計算して必要な周波数応答を作成し、それを逆FFTに通してインパルス応答を取得しますか? ご覧のとおり、私の特定の問題はCICフィルターに関連していますが、私の質問は、どのような種類の歪み補償フィルターを作成するかということです。 御時間ありがとうございます。

4
ボコーダーのプログラミング
"Songify"のような自分のボコーダーシンセサイザーをプログラムしたいのですが、ボコーダーアルゴリズムの単純なアルゴリズムが見つかりません。多分あなたはボコーダーがどのように機能するかについての情報を探す場所を説明したり教えたりすることができます。

1
スパース性の正確な尺度は何ですか?
私は現在、圧縮センシングと信号、具体的には画像のスパース表現に取り組んでいます。 「スパース性の定義とは何ですか?」という質問をよく受けます。「信号のほとんどの要素がゼロまたはゼロに近い場合、フーリエやウェーブレットなどのドメインでは、この信号はその基準でスパースです。」しかし、この定義には常に問題があります。「ほとんどの要素はどういう意味ですか?90パーセントですか?80パーセントですか?92.86パーセントですか!」ここで私の質問が発生しますが、スパース性の正確な、つまり数値的な定義はありますか?
11 sparsity 

2
AMDFをピッチ抽出に使用する場合の低基本波への対処方法
私は、Average Magnitude Difference Functionを使用して、準周期的なオーディオ信号の基本周波数を推定しています。AMDFは次のように定義されます Dn=1N−n∑k=nN−1|Sk−Sk−n|Dn=1N−n∑k=nN−1|Sk−Sk−n| D_n = \frac{1}{N-n}\sum_{k=n}^{N-1}|S_k - S_{k-n}| ここで、は信号の長さです。この関数は、信号がその周期に等しい量だけシフトされたときに最小値を示します。NNN これは私がピッチを抽出するために使用しているコードです(Matlabで): a = amdf(f); a = a/max(a); [p l] = findpeaks(-a, 'minpeakprominence', 0.6); pitch = round(sample_freq/l(1); ただし、私は基本周波数が非常に低いオーディオ信号を扱っています。 結果として、ピッチが2倍になる問題が発生します。検出された最小値は、信号の周期の半分(つまり、第2高調波)に対応します。 最初のピークだけでなく、最大のピークを抽出しようとしましたが、この問題が残る場合があります。低ファンダメンタルズに対処するために、コードやAMDF関数、あるいはその両方をどのように改善できますか?

1
カルマンフィルター-ノイズ共分散行列の理解
カルマンフィルターフレームワークにおけるノイズ共分散行列の重要性は何ですか? 私が言及しているのは: プロセスノイズ共分散行列Q、および 測定ノイズ共分散行列R いつでもステップt。 これらの行列をどのように解釈しますか?彼らは何を表していますか?彼らは、ある観測のノイズが状態ベクトルの別の観測のノイズに対してどのように変化するかについて話しますか?

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