Main Content

double

デジタル フィルターの係数を倍精度にキャスト

説明

f2 = double(f1) は、デジタル フィルター f1 の係数を倍精度にキャストし、その係数を含む新しいデジタル フィルター f2 を返します。

すべて折りたたむ

designfilt を使用して 5 次の FIR ローパス フィルターを設計します。正規化された通過帯域周波数 0.2π ラジアン/サンプルおよび正規化された阻止帯域周波数 0.55π ラジアン/サンプルを指定します。

フィルターを単精度にキャストしてから、倍精度にキャストしなおします。各フィルターの最初の係数を表示します。

format long
d = designfilt('lowpassfir','FilterOrder',5, ...
               'PassbandFrequency',0.2,'StopbandFrequency', 0.55);
e = single(d);
f = double(e);

coed = d.Coefficients(1)
coed = 
   0.003947882145754

coee = e.Coefficients(1)
coee = single
   0.0039479

coef = f.Coefficients(1)
coef = 
   0.003947881981730

フィルター係数の単精度量子化の影響を倍精度で解析する場合は、double を使用します。

入力引数

すべて折りたたむ

単精度のデジタル フィルター。digitalFilter オブジェクトで指定します。周波数応答指定に基づくデジタル フィルターを生成するには、関数 designfilt を使用し、関数 single でそれを単精度にキャストします。

例: f1= single(designfilt('lowpassfir','FilterOrder',3,'HalfPowerFrequency',0.5)) は、正規化された 3 dB の周波数 0.5π ラジアン/サンプルを単精度にキャストした 3 次のバタワース フィルターを指定します。

出力引数

すべて折りたたむ

倍精度のデジタル フィルター。digitalFilter オブジェクトとして返されます。

バージョン履歴

R2014a で導入