MATLABでFilter2を使用してローパスフィルターを作成する方法

著者: Laura McKinney
作成日: 1 4月 2021
更新日: 17 11月 2024
Anonim
【電気回路】みんな知ってる!フィルタの種類と特徴 #50
ビデオ: 【電気回路】みんな知ってる!フィルタの種類と特徴 #50

コンテンツ

MATLABは、信号を詳細に解析し処理するために使用できるプログラミングツールです。一次元または数次元で信号を処理する際の一般的な操作は、高周波ノイズの除去です。ローパスフィルタは、定義により、信号から特定の値を超える周波数を除去するように設計されています。 MATLABでfilter2()関数を使用することは、そのようなフィルタを実装するための1つの方法です。


説明書

MATLABのfilter2()関数を使用すると、ローパスフィルターを実装できます。 (Hemera Technologies / AbleStock.com / Getty Images)
  1. データをMATLABにインポートします。多くの場合、フィルタ処理が必要な信号はバイナリ形式で保存されているため、インポートするにはfread()などの低レベルの入出力関数が必要です。ただし、MATLABには最も一般的な形式のイメージのインポーターが含まれています。

    my_data = fread(file_handle、n_samples、data_type); my_image = imread( 'my_image_file.tif'、 'TIFF');

  2. filter2()関数で処理する前に、データを2次元配列に変換してください。これを行うには、reshape()関数を使用して1次元のバイナリ配列を配列に変換するか、シリーズからイメージを選択します。 squeeze()関数を使用して、3次元以上の配列の一部を選択してシングルトン次元を削除します。

    my_image = reshape(my_data、width、height); my_other_image = squeeze(my_image_series(:、:image_number));

  3. フィルタを描画し、その結果を2次元配列Hに格納します。一般に、ローパスフィルタはfspecial()関数で作成できる「ガウスウィンドウ」を使用します。フィルタは特殊なsptool信号処理関数()を使って設計することもできます。 wvtool()関数を使うことであなたのフィルタウィンドウの周波数応答を見ることができます。コード例では、Hは標準偏差ガウスウィンドウ10を含む24 x 24の配列です。


    H = fspecial( 'gaussian'、[24 24]、10); wvtool(H);

  4. filter2()によって実装された2次元畳み込みアルゴリズムを使用してフィルタリングを実行します。デフォルトでは、filter2()の結果は入力データセットと同じ次元を持ちます。

    my_filtered_data = filter2(my_data、H);

パン酵母は生地を成長させるために使用されます。それがなければ、パンは完全には焼けず、平らな外観になります。この酵母はほとんどの市場で購入することができます。あなたが自宅に酵母を持っていないか、それを購入する方法がない場合は、しかし、あなたはポテトを使用して酵母を作ることができます。この変動はパスタを成長させ、市場で購入された製品と同様の結果を生み出すでしょう。 あなた自身の酵母を作る (Marti...

ドアの周りのゴムを掃除する必要があるため、冷蔵庫を開くたびに恥ずかしい思いをすることがあります。作業のためにそれらをクリーンアップするように思えるかもしれませんが、一部の製品ではこの作業は非常に簡単になり、素晴らしい結果が得られます。あなたの冷蔵庫からゴム製のドアをきれいにする方法を見つけるために読んでください。 適切な製品を使えば、冷蔵庫からゴムをきれいにするのが簡単になります。 (PhotoO...

お勧めします