Main Content

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 は拡張子 fcffilename に追加します。

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