Main Content

Window Function

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

  • Window Function block

ライブラリ:
DSP System Toolbox / Signal Operations

説明

Window Function ブロックには 3 つの操作モードがあり、ウィンドウの適用、ウィンドウの計算、またはウィンドウの計算と入力信号への適用が可能です。モードは [Operation] パラメーターで選択できます。各モードで、ブロックは最初に [ウィンドウのタイプ] パラメーターで指定されたウィンドウをサンプリングして、ウィンドウ ベクトル w を作成します。

端子

入力

すべて展開する

入力信号。ベクトル、行列、または N 次元配列として指定します。入力が固定小数点の場合、符号付きの入力のみが認められます。

この端子は、[Operation][Apply window to input] または [Generate and apply window] に設定した場合にのみ有効になります。

この端子は、[Operation][Apply window to input] に設定した場合は名前なしになります。

データ型: single | double | int8 | int16 | int32 | fixed point

出力

すべて展開する

出力信号。ベクトル、行列、または N 次元配列として返されます。

[Out] 端子は、[Operation] を次に設定した場合にのみ有効になります。

  • Apply window to input –– ブロックは M 行 1 列のウィンドウ ベクトル w を計算し、それを M 行 N 列の入力に適用します。ここで、M は入力信号の行数です。

  • Generate and apply window –– ブロックは M 行 1 列のウィンドウ ベクトル w を生成して入力に適用します。

出力信号の次元は入力信号と同じです。詳細については、Operationを参照してください。

データ型: single | double | int8 | int16 | int32 | fixed point

ウィンドウの出力。ベクトルとして返されます。[Operation][Apply window to input] または [Generate and apply window] に設定した場合、ウィンドウ ベクトルは入力信号の行数と同じ長さ長さになります。[Operation][Generate window] に設定した場合、ウィンドウ ベクトルの長さは [ウィンドウの長さ] パラメーターによって決まります。

データ型: single | double | int8 | int16 | int32 | fixed point

パラメーター

すべて展開する

メイン

Window Function ブロックには、[Operation] パラメーターを使って選択できる 3 つの操作モードがあります。各モードで、ブロックは最初に M 離散点で [ウィンドウのタイプ] パラメーターで指定されたウィンドウをサンプリングして、ウィンドウ ベクトル 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 列のベクトルとして扱われます。

次の表は、使用可能なウィンドウ タイプの一覧です。

ウィンドウ タイプ説明

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] ではなく [ハン][ウィンドウのタイプ] を使用してください。

Kaiser

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

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}

一般的なコサイン ウィンドウのウィンドウ サンプリングを指定します。

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

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

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

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

シミュレーションでのみ調整可能 (Simulink)です。

依存関係

このパラメーターは、[ウィンドウのタイプ] パラメーターで [ブラックマン][ハミング][ハン] または [Hanning] を選択した場合にのみ表示されます。

[Generate window] モードの場合に、ブロックのサンプル モードに [連続] または [離散] を指定します。[Apply window to input] および [Generate and apply window] モードでは、ブロックはその駆動ブロックからサンプル モードを継承します。

依存関係

このパラメーターは、[Operation] パラメーターで [Generate window] を選択した場合にのみ表示されます。

[Operation][Generate window] に設定し、[サンプル モード][離散] に設定した場合に、ブロックのサンプル時間を指定します。[操作][Apply window to input] および [Generate and apply window] に設定した場合、ブロックはその駆動ブロックからサンプル時間を継承します。

依存関係

このパラメーターは、[サンプル モード][離散] に設定した場合にのみ表示されます。

適用するウィンドウの長さを指定します。

依存関係

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

阻止帯域の減衰量のレベル Rs をデシベル単位で指定します。

シミュレーションでのみ調整可能 (Simulink)です。

依存関係

このパラメーターは、[ウィンドウのタイプ] パラメーターで [チェビシェフ] を選択した場合にのみ表示されます。

[カイザー] ウィンドウ β パラメーターを指定します。β が上昇するとメインローブが広がり、ウィンドウの周波数振幅応答でのウィンドウのサイドローブの振幅が減少します。

シミュレーションでのみ調整可能 (Simulink)です。

依存関係

このパラメーターは、[ウィンドウのタイプ] パラメーターで [カイザー] を選択した場合にのみ表示されます。

サイドローブの数をゼロより大きいスカラー整数値で指定します。

依存関係

このパラメーターは、[ウィンドウのタイプ] パラメーターで [テイラー] を選択した場合にのみ表示されます。

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

依存関係

このパラメーターは、[ウィンドウのタイプ] パラメーターで [テイラー] を選択した場合にのみ表示されます。

ブロックで計算されるユーザー定義のウィンドウ関数の名前を指定します。カスタム ウィンドウ関数から返される出力ウィンドウ ベクトルのデータ型は double でなければなりません。

依存関係

このパラメーターは、[ウィンドウのタイプ] パラメーターで [ユーザー定義] を選択した場合にのみ表示されます。

ユーザー定義ウィンドウでウィンドウの長さ以外のパラメーターが必要な場合、[Cell array of additional arguments] パラメーターを有効にするためにオンにします。

依存関係

このパラメーターは、[ウィンドウのタイプ] パラメーターで [ユーザー定義] を選択した場合にのみ表示されます。

ユーザー定義ウィンドウ関数でウィンドウの長さ以外に必要とされる追加パラメーターを指定します。

依存関係

このパラメーターは、[Specify additional arguments to the hamming function] パラメーターを選択した場合にのみ使用できます。エントリは cell 配列でなければなりません。

データ型

[メイン] タブの [Operation] パラメーターを [Generate window] に設定した場合、次のパラメーターが表示されます。

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

  • double

  • single

  • 固定小数点 –– ウィンドウのデータ型とスケーリングを [符号付き][語長][出力での小数部の長さを次に設定] および [小数部の長さ] の各パラメーターで指定します。

  • ユーザー定義 –– ウィンドウのデータ型とスケーリングを [User-defined data type][出力での小数部の長さを次に設定] および [小数部の長さ] の各パラメーターで指定します。

  • 逆伝播による継承 –– ウィンドウのデータ型とスケーリングを次のブロックに一致するように設定します。

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

依存関係

このパラメーターは、[ウィンドウのデータ型][Fixed-point] に設定した場合にのみ表示されます。

固定小数点のウィンドウ データ型の語長をビット数で指定します。

依存関係

このパラメーターは、[ウィンドウのデータ型][Fixed-point] に設定した場合にのみ表示されます。

組み込みまたは固定小数点のデータ型を指定します。固定小数点のデータ型の指定には、関数 fixdt (Simulink) を使用できます。

依存関係

このパラメーターは、[ウィンドウのデータ型][User-defined] に設定した場合にのみ表示されます。

次のいずれかの方法を使用して、固定小数点のウィンドウ データ型のスケーリングを指定します。

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

  • [ユーザー定義] を選択し、[小数部の長さ] パラメーターでウィンドウのデータ型のスケーリングを指定します。

依存関係

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

固定小数点のウィンドウ データ型の小数部の長さをビット数で指定します。

依存関係

このパラメーターは、[ウィンドウのデータ型][Fixed-point] または [User-defined] に設定し、[出力での小数部の長さを次に設定][User-defined] に設定した場合にのみ表示されます。

[メイン] タブの [Operation] パラメーターを [Apply window to input] または [Generate and apply window] に設定した場合、次のパラメーターが表示されます。

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

ウィンドウ ベクトル w はこのパラメーターに従いません。常に [最も近い正の整数方向] に丸めます。

メモ

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

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

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

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

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

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

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

次を選択する場合:

  • 入力と同じ語長 –– ウィンドウ ベクトルの要素の語長は入力の語長と同じになります。小数部の長さは、可能な限り最高の精度に自動的に設定されます。

  • 語長の指定 –– ウィンドウ ベクトルの要素の語長をビット数で入力できます。小数部の長さは、可能な限り最高の精度に自動的に設定されます。

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

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

ウィンドウ ベクトルは [丸めモード] パラメーターと [オーバーフロー モード] パラメーターには従いません。常に飽和して、[最も近い正の整数方向] に丸められます。

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

次を選択する場合:

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

  • 入力と同じ –– これらの特性はブロックへの入力の特性と一致します。

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

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

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

次を選択する場合:

  • 乗算出力と同じ –– これらの特性は乗算出力の特性と一致します。

  • 入力と同じ –– これらの特性はブロックへの入力の特性と一致します。

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

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

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

ブロックの特性

データ型

double | fixed point | integer | single

直達

いいえ

多次元信号

いいえ

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

拡張機能

バージョン履歴

R2006a より前に導入

参考

関数

ブロック