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 で導入