主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

medfilt1

1次元のメディアンフィルター処理

説明

y= medfilt1 (xは3次の1次元メディアンフィルターを入力ベクトルxに適用します。この関数は両方の端点を超えた信号を0と見なします。出力yは,xと同じ長さになります。

y= medfilt1 (xnは,n次の1次元メディアンフィルターをxに適用します。

y= medfilt1 (xnblksz,昏暗的またはy= medfilt1 (xn[],昏暗的は,フィルターが動作する次元昏暗的を指定します。blkszは,下位互換性のために必要ですが無視されます。

y= medfilt1 (___nanflag填充は,前の構文の任意の入力引数を使用して,各セグメントでの値がどのように扱われるかを指定します。この構文は,信号のエッジで実行されるフィルター処理のタイプ填充も指定します。

nanflagおよび填充は,関数呼び出し内でxの後の任意の位置に配置できます。

すべて折りたたむ

100赫兹で1秒間サンプリングされる正弦波信号を生成します。ノイズをシミュレーションするため,高周波数の正弦波を追加します。

fs = 100;t = 0:1 / fs: 1;x =罪(2 *π* t * 3) + 0.25 *罪(2 *π* t * 40);

10次のメディアンフィルターを使用して,信号を滑らかにします。結果をプロットします。

y = medfilt1 (x, 10);情节(t t, x,, y)传奇(“原始”“过滤”)传说(“boxoff”

图中包含一个坐标轴。轴线包含2个线型对象。这些对象代表原始的,过滤过的。

異なる周波数の正弦波で構成される2チャネル信号を生成します。ランダムな位置にスパイクを配置します。南を使用し、欠損サンプルをランダムに追加します。再現可能な結果が必要な場合は、乱数発生器をリセットします。信号をプロットします。

rng (“默认”n = 59;x =罪(π。/ 10[15]‘* (1:n) +π/ 3)';randi spk = (2 * n, 9,1);(spk) = x (spk) * 2;x (randi (2 * n, 6,1)) =南;情节(x)

图中包含一个坐标轴。轴线包含2个线型对象。

medfilt1を既定の設定で使用して,信号をフィルター処理します。フィルター処理された信号をプロットします。既定では、フィルターは欠損サンプルを含むすべてのセグメントの中央値に NaN を代入します。

y = medfilt1 (x);情节(y)

图中包含一个坐标轴。轴线包含2个线型对象。

元の信号を転置します。関数が行に沿って動作するように指定して、再度フィルター処理を行います。中央値を計算する際には、欠損サンプルを排除します。2 番目の引数を空のままにした場合、medfilt1は既定のフィルター次数3を使用します。

y = medfilt1 (x ' [] [], 2,“omitnan”);情节(y ')

图中包含一个坐标轴。轴线包含2个线型对象。

関数は,南のみを含むセグメントに値を代入することはできません。この問題を解決するには,セグメント長を増やします。さらに,この変更によって,外れ値がより徹底的に削除されるようになります。

y = medfilt1 (x 4“omitnan”);情节(y)

图中包含一个坐标轴。轴线包含2个线型对象。

既定のゼロパディングは,関数がエッジにおける信号値を過小に推定する原因になります。縮小ウィンドウを使用して両端における中央値を計算することで,この影響が低減されます。

y = medfilt1 (x 4“omitnan”“截断”);情节(y)

图中包含一个坐标轴。轴线包含2个线型对象。

入力引数

すべて折りたたむ

入力信号。実数値のベクトル行,列,またはN次元配列として指定します。

データ型:|

1次元メディアンフィルターの次数。正の整数スカラーで指定します。

  • nが奇数の場合,y (k)x (k - (n - 1) / 2: k + (n - 1) / 2)の中央値。

  • nが偶数の場合,y (k)x (k - n / 2: k (n / 2) + 1)の中央値。この場合,medfilt1は数値を並べ替え,並べ替えたリストの中央の2つの要素の平均を取ります。

例:n= 11の場合,y (k)x(6年级:k + 5)の中央値。

例:n= 12の場合,y (k)x (k-6: k + 5)の中央値。

データ型:

フィルターを適用する次元。正の整数のスカラーで指定します。既定ではmedfilt1xの,大きさが1でない最初の次元に沿って作用します。特に,xが行列の場合,この関数では,y (:, i) = medfilt1 (x(:,我),n)となるように列がフィルター処理されます。

データ型:

の条件。“includenan”または“omitnan”で指定します。

  • “includenan”- - - - - -を含むすべてのセグメントの中央値が同様にとなるようにフィルター処理された信号を返します。

  • “omitnan”- - - - - -を含むすべてのセグメントの中央値が非値の中央値となるようにフィルター処理された信号を返します。セグメントのすべての要素がである場合,結果はになります。

端点フィルター処理。“zeropad”または“截断”として指定します。

  • “zeropad”——端点を越えた信号をゼロと見なします。

  • “截断”——信号のエッジに近づくにつれて,より小さいセグメントの中央値を計算します。

出力引数

すべて折りたたむ

フィルター処理された信号。実数値のベクトル行,列,またはN次元配列として返されます。yxと同じサイズです。

データ型:

ヒント

图像处理工具箱™ソフトウェアのライセンスがある場合は,関数medfilt2(图像处理工具箱)を使用して2次元のメディアンフィルター処理を実行できます。

参照

《数字图像处理》,第4版,霍博肯,NJ: John Wiley & Sons, 2007。

R2006aより前に導入