タグ付けされた質問 「lowpass-filter」

ローパスフィルターは、低周波数信号を通過させるが、カットオフ周波数より高い周波数の信号を減衰させる電子フィルターです。

1
Pythonの初心者向けのローパスフィルターとFFT
私は信号処理、特にFFTが初めてなので、ここで正しいことをしているかどうかはわかりませんが、結果に少し混乱しています。 離散的な実関数(測定データ)があり、その上にローパスフィルターを設定したい。選択するツールは、numpyパッケージを備えたPythonです。私はこの手順に従います: 私の関数のfftを計算する 高周波を遮断 逆fftを実行します 私が使用しているコードは次のとおりです。 import numpy as np sampling_length = 15.0*60.0 # measured every 15 minutes Fs = 1.0/sampling_length ls = range(len(data)) # data contains the function freq = np.fft.fftfreq(len(data), d = sampling_length) fft = np.fft.fft(data) x = freq[:len(data)/2] for i in range(len(x)): if x[i] > 0.005: # …

5
Pythonでサンプリングされた信号のローパスフィルタを書く方法は?
1 ns(1e-9秒)ごとにサンプリングした信号があり、たとえば1e4ポイントがあります。この信号から高周波をフィルタリングする必要があります。10 MHzより高い周波数をフィルタリングする必要があるとしましょう。カットオフ周波数より低い周波数では、信号は変更されずに渡されます。これは、カットオフ周波数より低い周波数ではフィルターのゲインが1になることを意味します。フィルター次数を指定できるようにしたいと思います。つまり、カットオフ周波数後の1次フィルターには20 db / decadeの勾配(電源ロールオフ)があり、カットオフ周波数後の2次フィルターには40 db / decの勾配があります。コードの高性能が重要です。

4
ローパス/ハイパスフィルタリングの物理的な解釈は何ですか?
画像/信号処理のコンテキストでは、たとえば4つのサンプルがあり、それらの4つのサンプルの平均を取る場合、結果サンプルはローパスフィルター処理された出力サンプルであることがわかります。これは、画像処理のコンテキストに非常に関連しています。次に、ハイパスフィルタリングを意味する操作とは、最大4つのサンプルを見つけてそれを出力サンプルとすること、または他の数学的操作が平均化がローパスフィルタリングを意味するため、ハイパスフィルタリングを意味することです。

2
ピークデータを減らすだけでローパスフィルターをかけるにはどうすればよいですか?
これらの制約/品質メトリックを使用して、ローパスフィルターしたい2D画像があります。 画像に光を「追加」できないため、結果の各ピクセルは入力の対応するピクセル以下でなければなりません。 ローパスカットオフ周波数は、実験するためのパラメーターである必要があります このフィルターを繰り返し適用しても、結果が大きく変わることはありません。 このアルゴリズムの実行にかかる時間(5MPixイメージの場合は5分が妥当と思われる) 除去される光の量を最小限に抑えます。 以下は、私が試したいくつかのアプローチとその欠点です。 通常のガウスフィルター。次に、制約1に準拠するように結果をプルダウンします。これは最初の3ポイントに非常によく適合しますが、必要以上に多くの光を減らします。 「上」の放物線を「低」点と「下」の放物線の間に合わせて滑らかにします。これは1Dでうまく機能しますが、最初に水平に適用し、次に垂直に適用すると2Dで悪い結果になります。時間がかかりますが、私のアプリケーションにとってはそれほど長くはありません。ただし、このフィルターを繰り返し適用すると、結果が大幅に変わります。(1D)入力が完全な「下向き」放物線である場合(これはフィルタリングしないでください)、開始/終了にある2つの「上向き」放物線に置き換えられます。 最適なパラメーターを見つけるために、2Dの「基本」関数と線形解法の他の形式を使用します。これは現在のところアイデアであり、まだ実装/テストされていません。 私の信号処理の経験領域はほとんど画像処理のみであるため、信号処理の他の分野で活躍する専門家の意見を取り入れて、この問題の代替案を見つけたいと考えています。 更新2011/08/18 現在の反応に基づいて、典型的な入力のグラフと、最初に説明した3つのアプローチの結果とこれまでに受け取った提案を追加することで、物事をもう少し明確にすることにしました。比較しやすいように、これらの例では1Dフィルタリングのみを使用しました。 入力データ: ガウスフィルター +要件(1)に準拠するようにダウンさせます。 それを下げると、右側で不必要な減光が生じることがわかります。 放物線 私が考える限り、これは非常に優れています。悲しいことに、最初に水平方向を適用してから垂直方向に適用しても、2Dに完全には変換されません。この場合、浮動小数点解像度で近似放物線を評価できることもわかります。これは小さな利点ですが、絶対に必要というわけではありません。 グレースケールエロージョン rwongからの提案に基づいて、グレースケールエロージョンを試しました。「適合」放物線と同じ放物線形状の構造要素を使用しました。結果はほぼまったく同じなので、これは有望に見えます。ただし、まだいくつかの問題があります。1.構造化要素が「十分な大きさ」ではありませんでした(すでに801ピクセルの幅でした)1.「上向き」放物線しかありません。次へ。 中央値フィルタリング 完全を期すためにのみ含まれていますが、実際に必要なものではありません。 生データ 生の入力データ+さまざまなpythonコマンドをpastebinに貼り付けたため、同じデータを試すこともできます。 http://pastebin.com/ASnJ9M0p

2
高域通過信号は、信号から低域通過信号を引いたものと同じですか?
私の質問は、信号をハイパスしたい場合、信号をローパスして信号から減算することと同じですか?理論的には同じですか?実質的に同じですか? (googleとdsp.stackexchangeの両方で)検索しましたが、矛盾する答えが見つかりました。私は信号で遊んでいますが、ここに結果があります。私はそれをあまり理解できません。これは、4秒ごとに1回サンプリング周波数を持つ信号です。0.8 mHz〜1 mHzの遷移帯域を持つデジタルローパスフィルターを設計し、信号をフィルター処理しました。次に、同じ遷移帯域を持つハイパスフィルターを設計し、信号をフィルター処理しました。結果は次のとおりです。 この最初の画像は、元の信号を黒で、ローパス信号を青で示しています。それらはほぼ重なり合っていますが、完全ではありません。赤い曲線は、信号から信号の真上にあるハイパス信号を引いたものです。 この2番目の画像は、何が起こっているかを示すためにズームインした最初の画像です。ここでは、明らかに2つが同じではないことがわかります。私の質問はなぜですか?それは2つのフィルターをどのように実装したかに関するものですか、それとも私の実装とは独立した理論的なものですか?フィルターの設計についてはあまり知りませんが、直感に反することで有名です。これをすべて再現する完全なMATLABコードを次に示します。filtfiltコマンドを使用して、位相遅延を解消しています。ただし、ここで指摘するもう1つの点は、フィルターが正規化されていないことです。sum(Hd.Numerator)を実行すると、ローパスで0.9930、ハイパスで0.007が得られます。これを説明する方法がわかりません。係数の合計が1にならないため、出力を何らかの方法でスケーリングする必要がありますか?このスケーリングはこれと何か関係がありますか? close all clear all clc data = dlmread('data.txt'); Fs = 0.25; % Sampling Frequency N = 2674; % Order Fpass = 0.8/1000; % Passband Frequency Fstop = 1/1000; % Stopband Frequency Wpass = 1; % Passband Weight Wstop = 1; % Stopband Weight dens …

2
フィルタリングと多項式回帰平滑化の違いは?
古典的なローパスフィルタリング(IIRまたはFIRを使用)と、局所化されたN次多項式回帰および/または補間(アップサンプリングの場合)による「平滑化」、特にNが1より大きい場合の違いただし、回帰近似で使用されるローカルのポイント数よりも少ない。

1
なぜ
私はこれがシンプルだが悪いローパスフィルターであることを発見しました: y(n )= x (n )+ x (n − 1 )y(n)=x(n)+x(n−1)y(n) = x(n) + x(n-1) ただし、なぜローパスフィルターなのか理解できません。そのカットオフ周波数は何ですか?

3
フィルター全般に関するドキュメント
この質問はすでにStackOverflowに投稿しています。私はここでより良い答えに行くための提案を得ました。 質問をより簡潔にするために、デジタルフィルターの概要に興味があります。 しかし、最初に私は誰かがこのフィルターを説明するいくつかのリソース(Androidで使用されます)を私に指摘できれば満足します: http://gitorious.org/rowboat/frameworks-base/blobs/671a6ff4be11b3e2d8eb017e0c7a78e6133fb2b8/services/sensorservice/SecondOrderLowPassFilter.cpp 私が興味を持っているのは、フィルターのパラメーターを選択する方法です。何も考えずにコピーできますが、使う前に基本的な考え方や考え方を理解しておくべきだと思います。 おかげで、 ユリウス

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

2
私のLPターンドHPフィルター出力でこのsincは何をしていますか?
信号をLPフィルター処理し、元のフィルターから出力を差し引くことにより、信号をHPフィルター処理しようとしています。LPフィルター処理された信号を取得するために、16,000サンプルの信号に対して3次バタワースフィルターを使用して逆方向にフィルター処理しました。カットオフ周波数は、250 Hzで0.5 Hzでした。ウィンドウは使用されませんでした。 最初の85%程度のサンプルでは、​​このメソッドの出力は実際にHPフィルターされた信号と完全にオーバーラップしているようです。ただし、出力の最後には、sincのような疑わしい現象があります。 何が原因ですか? この方法を実現するために何を変更できますか? 以下は、2つの信号を重ねたものです。青いものはHPフィルター処理され、赤いものは減算によって得られます。 これはサンプルごとの絶対差です。それらが完全に等しくなることはありません。最小の差は8e-12です。値の87%が0.01未満です。 H(z)H(z)H(z)

4
移動平均は欠落したデータポイントをどのように処理する必要がありますか?
ユーザーの体重を日ごとに平均化するプログラムを書いています。5ポイントの移動平均を使用する予定です(当日、前2日と後2日)。場合によっては、データポイントが1〜2日間失われます。これらのケースは通常どのように処理されますか? (もし私が使えるより良いローパスフィルターがあれば、私は提案が大好きです)

3
ノイズの多い音声信号からメッセージをフィルタリングする
非常にノイズの多いオーディオファイル(.wav)に隠されたメッセージを解読しようとしています(低ドローンが追加されたホワイトノイズだと思います)。メッセージは6桁の数字です。騒音についてこれ以上詳しく知りません。 私はローパスフィルターを使用して、高周波数のほとんどを排除すると数字が聞こえるようになることを期待しましたが、低ドローンを十分に取り除くことができず、声を十分に聞くことができません。私の試みは次のとおりでした(採用された機能freq_space_low_pass_filterは最後に含まれています): [data, SampleRate, NbitsPerSample]=wavread('noisy_msg6.wav'); y=data(:,1); % we will work only with one channel in this demo N=length(y); %number of sample points t=( (1:N)*1/SampleRate ).'; % time spacing is 1/SampleRate and we want column vector Y=fft(y); spectrum_freq=fourier_frequencies(SampleRate, N); Freq3db=100; [spectrum_filtered,g_vs_freq]=freq_space_low_pass_filter(Y, SampleRate, Freq3db); y_filtered=ifft(spectrum_filtered); y_filtered=real(y_filtered); wavwrite(y_filtered/(0.1+max(y_filtered)), SampleRate, NbitsPerSample, 'noisy_msg6_filtered.wav'); %%%%%%%%down sampling%%%%%%%% …

2
ストリーミングオーディオのフィルタリング
103データポイント()のようなものが与えられると、DFTは103周波数値を返します。次に、高周波のフィルタリングなどを行うには、DFTの高周波値をゼロに設定し、逆DFTを実行して、高周波のない元の信号を表す103データポイントを取得します。N=103N=103N=103 これは、103のすべてのデータポイントを一度に与えた場合、私には意味があります。しかし、かなり大きいオーディオWAVファイルのストリーミングについてはどうでしょう(たとえば、)。高周波をフィルタリングしたい場合は、10 5ポイントのデータ全体について説明したアプローチが論理的に理にかなっています。しかし、再生のためにWAVファイルをストリーミングする場合、これは妥当ではありません。オーディオファイルのストリーミング再生を高周波フィルター処理するにはどうすればよいですか?N=105N=105N=10^510510510^5

2
short int(16ビットPCM)サンプルのローパスフィルタリング
16ビットPCMサンプルとして与えられたオーディオを処理するソフトウェアを書いています。処理の最初の段階では、特定の周波数範囲(特定のカットオフ周波数より上)のエネルギー(または総変動)を計算します。 私が現在行っていることは、元の信号のエネルギーからローパスフィルター処理された信号のエネルギーを差し引くことです。多くの処理が整数サンペルを浮動小数点表現に変換することに専念していることがわかりました。 だから私の質問は、整数サンプルを浮動小数点に変換せずにフィルタリングするための技術はありますか?

2
なぜHannまたはBartlettウィンドウを使用するのですか?
ローパスFIRフィルターを設計していて、バートレット、ハン、ハミングの3つのウィンドウのいずれかを使用したいとします。オッペンハイムとシェーファーの離散時間信号処理、第2版、p。471:} 3つすべてが同じ遷移帯域幅を提供します:ここで、はフィルターの次数であり、十分に大きいと見なされます。Δ ω =8個のπNΔω=8πN\Delta\omega=\frac{8\pi}{N}NNN ただし、オーバーシュート(としましょう)はウィンドウごとに異なり、次の不等式が成り立ちます。δδ\delta δHa m m i n g&lt;δHa n n&lt;δB のR のT L E T TδHaメートルメートル私んg&lt;δHaんん&lt;δBartlett\delta_{Hamming}<\delta_{Hann}<\delta_{Bartlett} したがって、ハミングウィンドウを使用すると、最小のオーバーシュートと、幅遷移バンドが得られます。他の2つのウィンドウのいずれかを使用する場合、遷移帯域の幅は同じですが、オーバーシュートが増加します。ΔのωΔω\Delta\omega これは、ハミングウィンドウがハミングウィンドウよりも優れているため、ハンウィンドウまたはバートレットウィンドウを使用するケースはないと考えます。これは、1つのアスペクト()を改善し、別のアスペクト()。δδ\deltaΔωΔω\Delta\omega 問題は、ハミングウィンドウを常に使用できるのに、なぜ誰かがハンウィンドウまたはバートレットウィンドウを選択するのかということです。

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