matlab_butterfilter.txt

来自「基于matlab的低通滤波器代码」· 文本 代码 · 共 57 行

TXT
57
字号
Fs  = 500;
Fn  = Fs/2;
Fco = 150;

filtdes = fdesign.lowpass('n,fc', 32, Fco, Fs);
Hd = butter(filtdes);
Hd = convert(Hd, 'df1sos');

fvtool(Hd, 'Fs', Fs, 'FrequencyScale', 'log');



Hd.arithmetic            = 'fixed';
Hd.InputWordLength       = 12;
Hd.InputFracLength       = 7;
Hd.OutputWordLength      = 12;
Hd.OutputMode            = 'SpecifyPrecision';
Hd.OutputFracLength      = 7;
Hd.CoeffWordLength       = 12;
Hd.AccumWordLength       = 20;
Hd.NumStateWordLength    = 20;
Hd.DenStateWordLength    = 20;
Hd.CastBeforeSum         = false;
Hd.RoundMode             = 'round';
Hd.OverflowMode          = 'wrap';

fvtool(Hd, 'Fs', Fs, 'FrequencyScale', 'log');







Hd.CoeffWordLength = 16;
fvtool(Hd, 'Fs', Fs, 'FrequencyScale', 'log');
axis([0 1.0 -1 1]);






scales = Hd.scalevalues .* 2^Hd.InputFracLength
% Now scale the filter using the frequency domain infinity norm.
scale(Hd,'Linf');
% After scaling, the scale value are all one in this case.
scales = Hd.scalevalues





workingdir = tempname;
generatehdl(Hd,'Name', 'hdlbutter', 'TargetLanguage', 'VHDL',...
            'TargetDirectory', workingdir);
edit(fullfile(workingdir, 'hdlbutter.vhd'));

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?