Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

digitalFilter

デジタル フィルター

説明

designfilt を使用して digitalFilter オブジェクトを設計および編集します。

  • 応答タイプ resp のデジタル フィルター d を設計する場合は、designfiltd = designfilt(resp,Name,Value) の形式で使用します。名前と値の引数を使用してフィルターをさらにカスタマイズします。

  • 既存のフィルター d を編集する場合は、designfiltdesignfilt(d) の形式で使用します。

    メモ

    既存の digitalFilter オブジェクトは、この方法でのみ編集できます。それ以外の場合、このオブジェクトのプロパティは読み取り専用です。

  • digitalFilter d を使用して信号をフィルター処理するには、filterdataOut = filter(d,dataIn) の形式で使用します。入力は倍精度または単精度のベクトルです。あるいは、入力チャネルと同数の列をもつ行列です。関数 filtfiltfftfiltdigitalFilter オブジェクトと使用することもできます。

  • digitalFilter の可視化には、FVTool を使用します。

オブジェクト関数

Filtering

関数説明

fftfilt

FFT ベースのオーバーラップ加算法を使用して、digitalFilter により信号をフィルター処理する

filter

digitalFilter を使用して信号をフィルター処理する

filtfilt

digitalFilter により信号のゼロ位相フィルター処理を実行する

bandpassdigitalFilter を使用して信号をバンドパス フィルター処理し、フィルターによって生じた遅延を補正します。
bandstopdigitalFilter を使用して信号をバンドストップ フィルター処理し、フィルターによって生じた遅延を補正します。
highpassdigitalFilter を使用して信号をハイパス フィルター処理し、フィルターによって生じた遅延を補正します。
lowpassdigitalFilter を使用して信号をローパス フィルター処理し、フィルターによって生じた遅延を補正します。

フィルター解析

関数説明

double

digitalFilter の係数を倍精度にキャストする

filt2block

digitalFilter に対応する Simulink® Filter ブロックを生成する

filtord

digitalFilter のフィルター次数を返す

firtype

FIR digitalFilter のタイプ (1、2、3 または 4) を返す

freqz

digitalFilter の周波数応答を返す、またはプロットする

FVTool

フィルターの可視化ツールを開き、digitalFilter の振幅応答を表示する

grpdelay

digitalFilter の群遅延応答を返す、またはプロットする

impz

digitalFilter のインパルス応答を返す、またはプロットする

impzlength

digitalFilter のインパルス応答の実際の長さ (FIR フィルターの場合) または有効な長さ (IIR フィルターの場合) を返す

info

digitalFilter に関する情報を含む文字配列を返す

isallpass

digitalFilter がオールパスの場合に true を返す

isdouble

digitalFilter の係数が倍精度の場合に true を返す

isfir

digitalFilter が有限インパルス応答をもつ場合に true を返す

islinphase

digitalFilter が線形位相をもつ場合に true を返す

ismaxphase

digitalFilter が最大位相の場合に true を返す

isminphase

digitalFilter が最小位相の場合に true を返す

issingle

digitalFilter の係数が単精度の場合に、true を返す

isstable

digitalFilter が安定している場合に true を返す

phasedelay

digitalFilter の位相遅延応答を返す、またはプロットする

phasez

digitalFilter の (アンラップされた) 位相応答を返す、またはプロットする

single

digitalFilter の係数を単精度にキャストする

ss

digitalFilter の状態空間表現を返す

stepz

digitalFilter のステップ応答を返す、またはプロットする

tf

digitalFilter の伝達関数表現を返す

zerophase

digitalFilter のゼロ位相応答を返す、またはプロットする

zpk

digitalFilter の零点-極-ゲイン表現を返す

zplane

digitalFilter によって表現される伝達関数の極と零点を表示する

すべて折りたたむ

通過帯域周波数 35 kHz、通過帯域リップル 0.2 dB をもつ、8 次のローパス IIR フィルターを設計します。サンプル レートを 200 kHz に指定します。フィルターの振幅応答を可視化します。

lpFilt = designfilt('lowpassiir','FilterOrder',8, ...
         'PassbandFrequency',35e3,'PassbandRipple',0.2, ...
         'SampleRate',200e3);
fvtool(lpFilt)

Figure Figure 1: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Frequency (kHz), ylabel Magnitude (dB) contains 2 objects of type line.

設計したフィルターを使用して、1000 サンプルのランダム信号をフィルター処理します。

dataIn = randn(1000,1);
dataOut = filter(lpFilt,dataIn);

フィルター係数を出力して、2 次セクションとして表します。

sos = lpFilt.Coefficients
sos = 4×6

    0.2666    0.5333    0.2666    1.0000   -0.8346    0.9073
    0.1943    0.3886    0.1943    1.0000   -0.9586    0.7403
    0.1012    0.2023    0.1012    1.0000   -1.1912    0.5983
    0.0318    0.0636    0.0318    1.0000   -1.3810    0.5090

バージョン履歴

R2014a で導入