タグ付けされた質問 「smoothing」

信号またはデータセットを平滑化すると、データが近似され、パターンが明らかになり、ノイズ、微細構造、および急速に変化する現象が排除されます。

5
信号を平滑化するこの単純な方法に専門用語はありますか?
まず、DSPを初めて使用し、実際の教育を受けていませんが、オーディオビジュアライゼーションプログラムを開発しており、一般的な周波数スペクトルビジュアライゼーションのように、FFTアレイを垂直バーとして表現しています。 私が抱えていた問題は、FFT値を直接マッピングしただけでは、オーディオ信号値の変化が速すぎて、心地よい視覚的な出力が得られないことでした。 したがって、結果を「滑らかにする」ために値に単純な関数を適用します。 // pseudo-code delta = fftValue - smoothedFftValue; smoothedFftValue += delta * 0.2; // 0.2 is arbitrary - the lower the number, the more "smoothing" つまり、現在の値を取得して最後の値と比較し、最後の値にそのデルタの一部を追加しています。結果は次のようになります。 だから私の質問は: これは、用語がすでに存在する、確立されたパターンまたは機能ですか?そうですか、用語は何ですか?上記の「スムージング」を使用していますが、これはDSPに特有の何かを意味し、正しくない可能性があることを認識しています。それ以外は、ボリュームエンベロープに関連しているように見えましたが、まったく同じではありませんでした。 これを解決するためのより良いアプローチやさらなる研究はありますか? これが馬鹿げた質問であれば、時間と謝罪に感謝します(他の議論を読んで、私の知識は平均よりもはるかに低いことを認識しています)。

4
シャープな遷移を維持しながら信号のノイズを除去するためのトリックの袋
この質問は、Signal Processing Stack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 これは信号に依存することがわかっていますが、新しいノイズの多い信号に直面すると、急激な遷移を維持しながら信号をノイズ除去しようとするトリックのバッグは何ですか(たとえば、あらゆる種類の単純な平均化、つまりガウスとの畳み込みがなくなります)。私はしばしばこの質問に直面し、自分が何をしようとしているかわからないように感じます(スプライン以外にも、適切な鋭い移行を真剣に打ち倒すことができます)。 PSサイドノートとして、ウェーブレットを使用した良い方法を知っているなら、それが何であるかを教えてください。彼らはこの分野で多くの可能性を秘めているように思えますが、90年代には論文の方法がうまくいくことを示唆する十分な引用がある論文がいくつかありますが、介在年。確かにそれ以降、いくつかの方法は一般的に「最初に試すこと」であることが判明しました。

5
等間隔ではないデータ用のSavitzky-Golay平滑化フィルター
100Hzで測定される信号があり、この信号にSavitzky-Golay平滑化フィルターを適用する必要があります。ただし、綿密な検査では、信号は完全に一定の速度で測定されず、測定間のデルタは9.7〜10.3 msの範囲です。 等間隔ではないデータにSavitzky-Golayフィルターを使用する方法はありますか?他に適用できる方法はありますか?

3
Savitzky–GolayフィルターとIIRまたはFIR線形フィルター
従来のIIR / FIRフィルター(高周波数の振動を除去するためのローパス)、たとえば移動平均、 またはSavitzky-Golayフィルター エンベロープ信号などの信号を平滑化するのに便利です。 Savitzky-Golayフィルターが古典的なローパスよりも興味深いアプリケーションはどれですか? 標準フィルターとの違いは何ですか?標準フィルターと比較して何が追加されますか? 入力データに適応しますか? 一時的な保存に適していますか? 「移動平均または別のFIRローパスの代わりにSGフィルターを使用しましょう!これとこれとこれで...」と決めたエンジニアリングの状況にあったことがありますか?次に、この質問はあなたのためです!


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''

1
2つのスペクトル間のサブピクセルシフトを直接比較し、信頼できるエラーを取得
同じ天体の2つのスペクトルがあります。重要な質問はこれです:これらのスペクトル間の相対的なシフトを計算して、そのシフトで正確なエラーを取得するにはどうすればよいですか? まだ私と一緒にいるなら、もう少し詳しく。各スペクトルは、x値(波長)、y値(光束)、および誤差を持つ配列になります。波長シフトはサブピクセルになります。ピクセルが等間隔に配置されており、スペクトル全体に適用される波長シフトが1つだけであると仮定します。したがって、最終的な答えは、0.35 +/- 0.25ピクセルのようなものになります。 2つのスペクトルは、簡単にモデル化できない(そして周期的ではない)かなり複雑な吸収特性(ディップ)によって区切られた、多くの特徴のない連続体になります。2つのスペクトルを直接比較する方法を見つけたいのですが。 すべての人の最初の本能は相互相関を行うことですが、サブピクセルシフトを使用すると、スペクトル間を補間する必要があります(最初にスムージングすることによって?)。また、エラーが正しくなるには厄介なようです。 私の現在のアプローチは、ガウスカーネルとのたたみ込みによってデータを平滑化し、平滑化された結果をスプライン化し、2つのスプライン化されたスペクトルを比較することですが、信頼できません(特にエラー)。 これを正しく行う方法を誰かが知っていますか? これは、0.4ピクセルだけシフトされた2つのおもちゃのスペクトル(toy1.asciiおよびtoy2.asciiで書き出されます)を生成する短いpythonプログラムです。このおもちゃのモデルは単純なガウス機能を使用していますが、実際のデータは単純なモデルでは適合できないと想定しています。 import numpy as np import random as ra import scipy.signal as ss arraysize = 1000 fluxlevel = 100.0 noise = 2.0 signal_std = 15.0 signal_depth = 40.0 gaussian = lambda x: np.exp(-(mu-x)**2/ (2 * signal_std)) mu = 500.1 np.savetxt('toy1.ascii', zip(np.arange(arraysize), np.array([ra.normalvariate(fluxlevel, …

1
Savitzky Golayフィルターを使用して、離散的にサンプリングされた1D信号の(サンプル間の)極大値を見つけるにはどうすればよいですか?
私は地震信号y(i)を持っています: ここで私は1つの最大値を見つけました:i = 152.54、y = 222.29手動で、それを赤でプロットしました。 すべての最大値を自動的に検索したい。 Savitzky Golay Filter(SGF)を使用して、信号とその導関数の両方の平滑化された推定値を見つけることができ、SGFの利点の1つは、他のフィルターよりも優れた最小値と最大値を維持できることです。これは私の使用に最適に聞こえます。 SGF係数を生成するMatlabスクリプトを見つけました。 これを使用して、導関数の4次のSGF係数を見つけました。小さなMatlabスクリプトをコーディングしました 微分係数の4次SGF係数で信号をたたみ込むことにより、信号の微分係数を求めます 導関数が符号を変更するサンプルのペア(i、i + 1)を見つける iとi + 1の間の線形補間によって導関数のゼロクロッシングを見つけます 脚本: function [maxX,maxY] = findLocalMax(y) % Kernel for 4th order Savitzky-Golay filter for finding derivative: d4 = [0.0724 -0.1195 -0.1625 -0.1061 0 0.1061 0.1625 0.1195 -0.0724]; dy = conv(y,d4,'same'); % derivative …

1
大きいステップとの差を使用して信号の平滑化された微分を計算する=長方形ウィンドウでのたたみ込み
私はでサンプリングされた信号有しここで、i = 0..N-1。信号の1次導関数を求めたい:f '(t)。Δt:fi(ti=iΔt)Δt:fi(ti=iΔt)\Delta t: fi(ti=i\Delta t) 私の最初の考えは、これを中心的な違いによって推定することでした: f′(ti)=f(ti+1)−f(ti−1)2Δtf′(ti)=f(ti+1)−f(ti−1)2Δtf'(t_i) =\frac{f(t_{i+1})−f(t_{i−1})}{2\Delta t} ただし、信号には高周波ノイズが多く、f 'が急激に変動する可能性があります。私は、Hannなどのウィンドウ関数とのたたみ込みによって信号を平滑化し、その差から導関数を見つけるのが適切だと思います。 同僚は、微分の平滑化された推定値を見つけるより速い方法を提案しました:2n個のサンプルで中心差を使用します。ここで、n >> 1です。 f′(ti)=f(ti+n)−f(ti−n)2nΔtf′(ti)=f(ti+n)−f(ti−n)2nΔtf'(t_i) =\frac{f(t_{i+n})−f(t_{i−n})}{2n\Delta t} もちろん、これは最初にウィンドウ関数でたたみ込むよりも計算的に高速ですが、それは良い解決策ですか? 合計を計算する場合: S=2Δt[f′(ti−n+1)+f′(ti−n+2)+..+f′(ti+n−1)]S=2Δt[f′(ti−n+1)+f′(ti−n+2)+..+f′(ti+n−1)]S=2\Delta t[f'(t_{i-n+1})+f'(t_{i-n+2})+..+f'(t_{i+n-1})] ΔtΔt\Delta t S=f(ti−n+2)−f(ti−n)+f(ti−n+3)−f(ti−n+2)+..+f(ti+n)−f(ti+n−2)S=f(ti−n+2)−f(ti−n)+f(ti−n+3)−f(ti−n+2)+..+f(ti+n)−f(ti+n−2)S=f(t_{i-n+2})-f(t_{i-n})+f(t_{i-n+3})-f(t_{i-n+2})+..+f(t_{i+n})-f(t_{i+n-2}) 2つを除くすべての条件がキャンセルされます。 S=f(ti+n)−f(ti−n)=2nΔtf′(ti)S=f(ti+n)−f(ti−n)=2nΔtf′(ti)S=f(t_{i+n})-f(t_{i-n})=2n\Delta tf'(t_i) したがって: f′(ti)=1n[f′(ti−n+1)+f′(ti−n+2)+..+f′(ti+n−1)]f′(ti)=1n[f′(ti−n+1)+f′(ti−n+2)+..+f′(ti+n−1)]f'(t_i)=\frac{1}{n}[f'(t_{i-n+1})+f'(t_{i-n+2})+..+f'(t_{i+n-1})] したがって、2n個のサンプルの中央差を取ることは、最初にサイズ2n-2の長方形のウィンドウで畳み込み、次に+/- 1個のサンプルの中央差を取ることと同じです。 長方形のウィンドウで滑らかにするのはどのくらい「悪い」のでしょうか。 FFTを取得すると、「リンギング」が発生しますが、FFTを取得する必要はありません。 どんな答えも事前にありがとう!

2
平滑化用IIRフィルター(ローパスフィルター)
平滑化にIIRフィルターを使用しています y[n]=ax[n]+(1−a)y[n−1]y[n]=ax[n]+(1−a)y[n−1]y[n] = ax[n]+(1-a)y[n-1] 私の質問は、別のIIRフィルターを追加した場合、それはIIRフィルターの2次になりますか?そうでない場合、それを何と呼ぶことができますか? 私の2番目のフィルターは y2[n]=ay[n]+(1−a)y2[n−1]y2[n]=ay[n]+(1−a)y2[n−1]y_2[n] = ay[n] + (1-a)y_2[n-1]

4
高品質ノイズ除去に使用される凸最適化問題の解決
この質問に対する最高投票数の回答は、鋭い遷移を維持しながら信号のノイズを除去するには、 目的関数を最小化します。 |x−y|2+b|f(y)||x−y|2+b|f(y)| |x-y|^2 + b|f(y)| ここで、xxxはノイズの多い信号、yyyはノイズ除去された信号、bbbは正則化パラメーター、|f(y)||f(y)||f(y)|いくつかのL1標準ペナルティです。ノイズ除去は、この最適化問題の解yyyを見つけることによって行われ、bbbはノイズレベルに依存します。 しかしながら、特に信号が例えば1000万サンプルの長さである場合、それが非常に高次元の空間における問題であるので、実際にそれをどのようにして達成することができるかを示すものはありません。実際には、この種の問題はどのようにして大きな信号に対して計算で解決されますか?

1
1 / nオクターブスムージング
FFTで取得した周波数応答を考慮して、1 / nオクターブ平滑化を適用します。どのフィルターを使用する必要がありますか?たぶん誰かが良い参考文献(この件に関する論文や本)を指摘するかもしれません。
8 fft  audio  smoothing 

1
この方程式はどのように平滑化に対応していますか?
データの平滑化について教えてください。これは、ここに投稿された私の以前の質問のフォローアップです。特に、関数を平滑化する方法を彼が言っているJunuxxによるトップの回答は次のとおりです。f(x )f(x)f(x) f』[ t ] = 0.1 f[ t − 1 ] + 0.8 f[ t ] + 0.1 f[ t + 1 ]f′[t]=0.1f[t−1]+0.8f[t]+0.1f[t+1] f'[t] = 0.1 f[t-1] + 0.8 f[t] + 0.1 f[t+1] ここで、すべてのポイントについて、そのポイントとその2つの隣接ポイントの加重平均を取り、と呼ばれる平滑化バージョンを取得していることがわかります。f[ x ]f[x]f[x]f[ t ]f[t]f[t]f』[ t ]f′[t]f'[t] 音声強調に関する論文では、 y[ i ] = a [ i ] …

1
「アンサンブル平均化…動的な変更を追跡できません」?
本はこれを指数平均を導入する動機として主張しています: アンサンブル平均化の欠点は、結果の推定が、観測された信号で発生する動的な変化を追跡できないことです。 -L.SörnmoおよびP. Laguna、心臓および神経アプリケーションにおける生体電気信号処理 著者は、確率過程のすべての観測値を平均化することを指すために、アンサンブル平均化という用語を使用しているようです。移動平均を維持するようにこのメソッドを変更する、つまり過去のみを平均化するnnn それらすべての代わりに観察は非常に手元にあるようです。 このような移動平均スムーザーは、指数平均スムーザーと同様に、観測されている確率過程の変化を追跡できます。これは、著者が言及している動的機能の違いですか、それとも深い違いを見逃しましたか? Yensemble,N(z)Yexponential,α(z)=1N(z0+z−1+z−2+⋯+z−(N−1))X(z)=α1−(1−α)z−1X(z)Yensemble,N(z)=1N(z0+z−1+z−2+⋯+z−(N−1))X(z)Yexponential,α(z)=α1−(1−α)z−1X(z) \begin{align} Y_{\mathrm{ensemble,}N}(z) &= \frac{1}{N}\left(z^{0}+z^{-1}+z^{-2}+\cdots+z^{-(N-1)}\right)X(z) \\ Y_{\mathrm{exponential},\alpha}(z) &= \frac{\alpha}{1-(1-\alpha) z^{-1}}X(z) \end{align}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.