fcfwrite
フィルター係数を含むファイルの書き込み
構文
fcfwrite(h)
fcfwrite(h,filename)
fcfwrite(...,'fmt')
説明
fcfwrite(h) は、選択したフォルダーまたは MATLAB® の現在の作業フォルダーにフィルター係数の ASCII ファイルを書き込みます。h には、単一のフィルター オブジェクトまたはフィルター オブジェクトのベクトルを指定できます。fcfwrite の実行時、[.FCF ファイルにフィルター係数をエクスポート] ダイアログ ボックスが開き、出力ファイルのファイル名を割り当てることができます。このダイアログで保存先フォルダーも選択できます。
既定のファイル名は untitled.fcf です。DSP System Toolbox™ ソフトウェアがある場合、fcfwrite(h) を使用して、マルチレート フィルター、適応フィルター、および離散時間フィルターのフィルター係数ファイルを書き込むことができます。
fcfwrite(h,filename) は、MATLAB の現在の作業フォルダー内の filename という名前のテキスト ファイルにフィルター係数と一般情報を書き込み、確認と変更のために MATLAB エディターでファイルを開きます。
filename にファイル拡張子が含まれていない場合、fcfwrite は拡張子 fcf を filename に追加します。
fcfwrite(...,'fmt') は、入力引数 fmt で指定された形式でフィルター係数を書き込みます。fmt の有効な値は、フィルター係数に応じて、16 進数表現に対しては hex、10 進数表現に対しては dec、バイナリ表現に対しては bin です。
例
fcfwrite のデモとして、コマンド ラインで固定小数点 IIR フィルターを作成し、フィルター係数を iirfilter.fcf という名前のファイルに書き込みます。
d=fdesign.lowpass; hd=design(d,'butter'); set(hd,'arithmetic','fixed'); fcfwrite(hd,'iirfilter.fcf');
MATLAB エディターに表示される fcfwrite の出力を次に示します。ここでは示していませんが、指定したファイル名 iirfilter.fcf といくつかのコメントがファイルの上部に表示されます。
%
%
% Coefficient Format: Decimal
%
% Discrete-Time IIR Filter (real)
% -------------------------------
% Filter Structure : Direct-Form II, Second-Order
% Sections
% Number of Sections : 13
% Stable : Yes
% Linear Phase : No
% Arithmetic : fixed
% Numerator : s16,13 -> [-4 4)
% Denominator : s16,14 -> [-2 2)
% Scale Values : s16,14 -> [-2 2)
% Input : s16,15 -> [-1 1)
% Section Input : s16,8 -> [-128 128)
% Section Output : s16,10 -> [-32 32)
% Output : s16,10 -> [-32 32)
% State : s16,15 -> [-1 1)
% Numerator Prod : s32,28 -> [-8 8)
% Denominator Prod : s32,29 -> [-4 4)
% Numerator Accum : s40,28 -> [-2048 2048)
% Denominator Accum : s40,29 -> [-1024 1024)
% Round Mode : convergent
% Overflow Mode : wrap
% Cast Before Sum : true
SOS matrix:
1 2 1 1 -0.22222900390625 0.88262939453125
1 2 1 1 -0.19903564453125 0.68621826171875
1 2 1 1 -0.18060302734375 0.5303955078125
1 2 1 1 -0.1658935546875 0.40570068359375
1 2 1 1 -0.154052734375 0.305419921875
1 2 1 1 -0.14453125 0.22479248046875
1 2 1 1 -0.136962890625 0.16015625
1 2 1 1 -0.13092041015625 0.10906982421875
1 2 1 1 -0.126220703125 0.06939697265625
1 2 1 1 -0.12274169921875 0.0399169921875
1 2 1 1 -0.12030029296875 0.01947021484375
1 2 1 1 -0.118896484375 0.0074462890625
1 1 0 1 -0.0592041015625 0
Scale Values:
0.41510009765625
0.371826171875
0.33746337890625
0.3099365234375
0.287841796875
0.27008056640625
0.25579833984375
0.2445068359375
0.23577880859375
0.22930908203125
0.22479248046875
0.22216796875
0.47039794921875
1 2 つ以上のフィルターを 1 つのファイルに書き出すには、フィルターをベクトルとして fcfwrite に指定します。
fcfwrite([hd hd1 hd2])
バージョン履歴
R2011a で導入