最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Window Function

ウィンドウの計算と入力信号への適用

ライブラリ

信号処理

dspsigops

説明

Window Function ブロックはウィンドウの計算と入力信号への適用の両方またはいずれかを行います。入力信号は行列または N 次元配列にすることができます。

操作モード

Window Function ブロックには、[Operation] パラメーターを使って選択できる 3 つの操作モードがあります。各モードで、ブロックは最初に M 離散点で [Window type] パラメーターで指定されたウィンドウをサンプリングして、ウィンドウ ベクトル w を作成します。操作モードは次のようになります。

  • Apply window to input

    このモードでは、ブロックは M 行 1 列のウィンドウ ベクトル w を計算して入力に適用します。出力 y の次元は、常に入力と同じです。

    入力が M 行 N 列の行列 u の場合、ウィンドウは入力行列 u の各 N チャネルで要素単位で乗算されます。これは、次の MATLAB® コードと等価です。

    y = repmat(w,1,N) .* u								% Equivalent MATLAB code
    

    ウィンドウは常に最初の次元に適用されます。

    y(i,j,...,k)=w(i)*u(i,j,...,k)       i=1,...,M,  j=1,...,N,  ...,  k=1,...,P

    長さ M の方向性をもたないベクトル入力は M 行 1 列の行列として扱われます。

  • Generate window

    このモードでは、ブロックは [ウィンドウの長さ] パラメーターで指定された長さ M の方向性をもたないウィンドウ ベクトル w を生成します。このモードでは、In 端子は無効になっています。

  • Generate and apply window

    このモードでは、ブロックは M 行 1 列のウィンドウ ベクトル w を生成して入力に適用します。ブロックは次の 2 つの出力を生成します。

    • Out 端子では、ブロックは入力と同じ次元をもつ乗算の結果 y を生成します。

    • Win 端子では、ブロックは M 行 1 列のウィンドウ ベクトル w を生成します。

    入力が M 行 N 列の行列 u の場合、ウィンドウは入力行列 u の各 N チャネルで要素単位で乗算されます。これは、次の MATLAB コードと等価です。

    y = repmat(w,1,N) .* u								% Equivalent MATLAB code
    

    ウィンドウは常に最初の次元に適用されます。

    y(i,j,...,k)=w(i)*u(i,j,...,k)       i=1,...,M,  j=1,...,N,  ...,  k=1,...,P

    長さ M の 1 次元ベクトル入力は M 行 1 列の行列として扱われます。

ウィンドウ タイプ

次の表は、使用可能なウィンドウ タイプの一覧です。ウィンドウ関数の詳細については、Signal Processing Toolbox™ ドキュメンテーションを参照してください。

ウィンドウ タイプ説明

Bartlett

バートレット ウィンドウを計算します。

w = bartlett(M)

Blackman

ブラックマン ウィンドウを計算します。

w = blackman(M)

Boxcar

箱型ウィンドウを計算します。

w = rectwin(M)

Chebyshev

チェビシェフ ウィンドウを阻止帯域リップル R で計算します。

w = chebwin(M,R)

Hamming

ハミング ウィンドウを計算します。

w = hamming(M)

Hann

ハン ウィンドウ (ハニング ウィンドウとも呼ばれる) を計算します。

w = hann(M)

Hanning

旧式です。このウィンドウ タイプは古いモデルとの互換性目的でのみ含まれています。可能な限り、[Hanning] ではなく [Hann][Window type] を使用してください。

Kaiser

カイザー ウィンドウをカイザー パラメーター [Beta] で計算します。

w = kaiser(M,beta)

Taylor

テイラー ウィンドウを計算します。

w = taylorwin(M)

Triang

三角ウィンドウを計算します。

w = triang(M)

User Defined

[Window function name] パラメーター usrwin のエントリで指定されたユーザー定義のウィンドウ関数を計算します。

w = usrwin(M) % Window takes no extra parameters
w = usrwin(M,x1,...,xn) % Window takes extra 
parameters {x1 ... xn}

ウィンドウのサンプリング

一般的なコサイン ウィンドウ ([Blackman][Hamming][Hann] および [Hanning]) では、ウィンドウ サンプルが周期的に計算されるか、対称的に計算されるかが [Sampling] パラメーターによって決定されます。たとえば、[Sampling][Symmetric] に設定されている場合、長さ M のハミング ウィンドウは次のように計算されます。

w = hamming(M)					% Symmetric (aperiodic) window

[Sampling] が [Periodic] に設定されている場合、同じウィンドウは次のように計算されます。

w = hamming(M+1)					% Periodic (asymmetric) window
w = w(1:M)

固定小数点データ型

次の図は、3 つの各操作モードについて、Window Function ブロック内で固定小数点信号に使用されるデータ型を示しています。

ブロックのダイアログ ボックスでウィンドウ、乗算出力および出力データ型を設定できます。詳細については、ダイアログ ボックスの節を参照してください。

次のモデルは Window Function ブロックを使用してハミング ウィンドウを生成し、3 次元の入力配列に適用します。

この例では、Window Function ブロックの [Operation] モードを [Generate and apply window] に設定し、Win 端子でウィンドウ ベクトル Window、および Out 端子で乗算の結果 simout という 2 つの出力がブロックで生成されるようにします。

MATLAB コマンド ラインで ex_windowfunction_ref と入力してモデルを開き、実行します。

  • 入力配列の最初の次元の長さは 10 となるため、Window Function ブロックは長さが 10 のハミング ウィンドウ ベクトルを生成して出力します。Window Function ブロックで生成されたウィンドウ ベクトルを表示するには、MATLAB コマンド ラインで Window と入力します。

  • 乗算の結果を表示するには、MATLAB コマンド ラインで simout と入力します。

ダイアログ ボックス

Window Function ブロック ダイアログの [メイン] ペインは次のように表示されます。

Operation

操作モードで説明されているように、ブロックの演算を指定します。ブロックの端子の構成は、このパラメーターの設定に一致するように更新されます。

Window type

ウィンドウ タイプに記載されているように、適用するウィンドウ タイプを指定します。シミュレーションでのみ調整可能 (Simulink)です。

Sampling

一般的なコサイン ウィンドウのウィンドウ サンプリングを指定します。このパラメーターは、[Window type] パラメーターで [Blackman][Hamming][Hann] または [Hanning] を選択した場合にのみ表示されます。シミュレーションでのみ調整可能 (Simulink)です。

Sample mode

[Generate Window] モードの場合に、ブロックのサンプル モードに [Continuous] または [Discrete] を指定します。[Apply window to output] および [Generate and apply window] モードでは、ブロックはその駆動ブロックからサンプル時間を継承します。したがって、このパラメーターは、[Operation] パラメーターで [Generate window] を選択した場合にのみ表示されます。

Sample time

[Generate window] および [Discrete] モードの場合に、ブロックのサンプル時間を指定します。[Apply window to output] および [Generate and apply window] モードでは、ブロックはその駆動ブロックからサンプル時間を継承します。このパラメーターは、[Sample mode] パラメーターで [Discrete] を選択した場合にのみ表示されます。

Window length

適用するウィンドウの長さを指定します。このパラメーターは、[Operation] パラメーターで [Generate window] を選択した場合にのみ表示されます。そうでない場合は、ウィンドウ ベクトルの長さは入力の最初の次元の長さに一致するように計算されます。

Stopband attenuation in dB

阻止帯域の減衰量のレベル Rs をデシベル単位で指定します。このパラメーターは、[Window type] パラメーターで [Chebyshev] を選択した場合にのみ表示されます。シミュレーションでのみ調整可能 (Simulink)です。

Beta

[Kaiser] ウィンドウ β パラメーターを指定します。β が上昇するとメインローブが広がり、ウィンドウの周波数振幅応答でのウィンドウのサイドローブの振幅が減少します。このパラメーターは、[Window type] パラメーターで [Kaiser] を選択した場合にのみ表示されます。シミュレーションでのみ調整可能 (Simulink)です。

Number of sidelobes

サイドローブの数をゼロより大きいスカラー整数値で指定します。このパラメーターは、[Window type] パラメーターで [Taylor] を選択した場合にのみ表示されます。

Maximum sidelobe level relative to mainlobe (dB)

メインローブに対するサイドローブの最大レベルをデシベル単位で指定します。このパラメーターはゼロ以下のスカラーでなければなりません。この既定値 –30 は、メインローブのピークから 30 dB 低い位置にピークがあるサイドローブを生成します。このパラメーターは、[Window type] パラメーターで [Taylor] を選択した場合にのみ表示されます。

Window function name

ブロックで計算されるユーザー定義のウィンドウ関数の名前を指定します。このパラメーターは、[Window type] パラメーターで [User defined] を選択した場合にのみ表示されます。

Specify additional arguments to the hamming function

ユーザー定義ウィンドウでウィンドウの長さ以外のパラメーターが必要な場合、[Cell array of additional arguments] パラメーターを有効にするためにオンにします。このパラメーターは、[Window type] パラメーターで [User defined] を選択した場合にのみ表示されます。

Cell array of additional arguments

ユーザー定義ウィンドウ関数でウィンドウの長さ以外に必要とされる追加パラメーターを指定します。このパラメーターは、[Specify additional arguments to the hamming function] パラメーターを選択した場合にのみ使用できます。エントリは cell 配列でなければなりません。

Window Function ブロック ダイアログの [データ型] ペインは次の節で説明されています。

ウィンドウのみを生成するモードのパラメーター

ウィンドウを適用するモードのパラメーター

ウィンドウのみを生成するモードのパラメーター

Window Function ブロック ダイアログの [データ型] ペインは、[Operation] パラメーターが [Generate window] に設定されている場合、次のように表示されます。

Window

ウィンドウのデータ型を次のいずれかの方法で指定します。

  • リストから [double] または [single] を選択する。

  • [Fixed-point] を選択し、ウィンドウのデータ型とスケーリングを [Signed][Word length][Set fraction length in output to] および [Fraction length] の各パラメーターで指定する。

  • [User-defined] を選択し、ウィンドウのデータ型とスケーリングを [User-defined data type][Set fraction length in output to] および [Fraction length] の各パラメーターで指定する。

  • [Inherit via back propagation] を選択し、ウィンドウのデータ型とスケーリングを次のブロックに一致するように設定する。

Signed

選択すると、符号付き固定小数点信号を出力します。それ以外の場合は、信号は符号なしになります。

Word length

固定小数点のウィンドウ データ型の語長をビット数で指定します。このパラメーターは、[Window] パラメーターで [Fixed-point] を選択した場合にのみ表示されます。

User-defined data type

組み込みまたは固定小数点のデータ型を指定します。固定小数点のデータ型の指定には、Fixed-Point Designer™ の関数 sfixufixsintuintsfrac および ufrac を使用できます。このパラメーターは、[Window] パラメーターで [User-defined] を選択した場合にのみ表示されます。

Set fraction length in output to

固定小数点のウィンドウ データ型のスケーリングを、次の 2 つのどちらかの方法で指定します。

  • [Best precision] を選択すると、出力信号が可能な限り最高の精度となるよう、自動的にウィンドウのデータ型のスケーリングが行われます。

  • [User-defined] を選択し、[Fraction length] パラメーターでウィンドウのデータ型のスケーリングを指定します。

このパラメーターは、[Window] パラメーターで [Fixed-point] または [User-defined] を選択し、固定小数点データ型をウィンドウのデータ型に指定した場合にのみ表示されます。

Fraction length

固定小数点のウィンドウ データ型の小数部の長さをビット数で指定します。このパラメーターは、[Window] パラメーターで [Fixed-point] または [User-defined] を選択し、[Set fraction length in output to] パラメーターで [User-defined] を選択した場合にのみ表示されます。

ウィンドウを適用するモードのパラメーター

Window Function ブロック ダイアログの [データ型] ペインは、[Operation] パラメーターが [Apply window to input] または [Generate and apply window] に設定されている場合、次のように表示されます。

丸めモード

固定小数点演算の丸めモードを選択します。

ウィンドウ ベクトル w はこのパラメーターに従わず、常に [Nearest] に丸めます。

メモ

[丸めモード][オーバーフロー モード] の設定は、次の両方の条件が存在する場合、数値結果には影響しません。

  • [乗算出力][内部ルールによる継承] である。

  • [出力][乗算出力と同じ] である

これらのデータ型設定を使用すると、ブロックは完全精度モードで効率的に動作します。

オーバーフロー モード

固定小数点演算のオーバーフロー モードを選択します。

ウィンドウ ベクトル w はこのパラメーターに従わず、常に飽和しています。

Window

ウィンドウ ベクトル w の語長と小数部の長さの指定方法を選択します。

[Same word length as input] を選択すると、ウィンドウ ベクトルの要素の語長は入力の語長と同じになります。小数部の長さは、可能な限り最高の精度に自動的に設定されます。

[Specify word length] を選択すると、ウィンドウ ベクトルの要素の語長をビット数で入力できます。小数部の長さは、可能な限り最高の精度に自動的に設定されます。

[2 進小数点スケーリング] を選択すると、ウィンドウ ベクトルの要素の語長と小数部の長さをビット数で入力できます。

[勾配とバイアスのスケーリング] を選択すると、ウィンドウ ベクトルの要素の語長 (ビット数) と勾配を入力できます。このブロックでは、勾配が 2 のべき乗でバイアスが 0 でなければなりません。

ウィンドウ ベクトルは [Rounding mode] パラメーターと [Overflow mode] パラメーターには従わず、常に飽和して、[Nearest] に丸められます。

乗算出力

このパラメーターを使用して、乗算出力の語長と小数部の長さの指定方法を指定します。

  • [内部ルールによる継承] を選択すると、乗算出力の語長と小数部の長さが自動的に計算されます。内部ルールの使用時に乗算出力の語長と小数部の長さを計算する方法の詳細については、Inherit via Internal Ruleを参照してください。

  • [入力と同じ] を選択すると、これらの特性はブロックへの入力の特性と一致します。

  • [2 進小数点スケーリング] を選択すると、乗算出力の語長と小数部の長さをビット数で入力できます。

  • [勾配とバイアスのスケーリング] を選択すると、乗算出力の語長 (ビット数) と勾配を入力できます。このブロックでは、勾配が 2 のべき乗でバイアスが 0 でなければなりません。

出力

ブロック出力の語長と小数部の長さの指定方法を選択します。

  • [乗算出力と同じ] を選択すると、これらの特性は乗算出力の特性と一致します。

  • [入力と同じ] を選択すると、これらの特性はブロックへの入力の特性と一致します。

  • [2 進小数点スケーリング] を選択すると、出力の語長と小数部の長さをビット数で入力できます。

  • [勾配とバイアスのスケーリング] を選択すると、出力の語長 (ビット数) と勾配を入力できます。このブロックでは、勾配が 2 のべき乗でバイアスが 0 でなければなりません。

固定小数点ツールによる変更に対してデータ型の設定をロックする

ブロック マスクで指定するデータ型が固定小数点ツールによってオーバーライドされないようにするには、このパラメーターを選択します。

サポートされているデータ型

端子サポートされているデータ型

入力

  • 倍精度浮動小数点

  • 単精度浮動小数点

  • 固定小数点 (符号付きのみ)

  • 8、16、32 ビット符号付き整数

出力

  • 倍精度浮動小数点

  • 単精度浮動小数点

  • 固定小数点 (符号付きのみ)

  • 8、16、32 ビット符号付き整数

Win

  • 倍精度浮動小数点

  • 単精度浮動小数点

  • 固定小数点

  • 8、16、32 ビット整数

拡張機能

参考

関数

ブロック

R2006a より前に導入