Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.1.0 - 日本語


remezb

振幅応答のミニマックス近似

呼び出し手順

[an]=remezb(nc,fg,ds,wt)

引数

nc

余弦関数の数

fg

[0,.5)の範囲の周波数点のグリッド

ds

グリッドfgの指定する振幅

wt

グリッドfgの誤差の重み関数

an

余弦フィルタ係数

説明

周波数領域振幅応答のミニマックス近似. この近似は,n=0,1,...,ncとして h = sum[a(n)*cos(wn)] の形式となります. 以下のコマンドによりFIR, 線形位相フィルタを 関数の出力から得ることができます.

hn(1:nc-1)=an(nc:-1:2)/2;
hn(nc)=an(1);
hn(nc+1:2*nc-1)=an(2:nc)/2;

// Choose the number of cosine functions and create a dense grid
// in [0,.24) and [.26,.5)
nc=21;ngrid=nc*16;
fg=.24*(0:ngrid/2-1)/(ngrid/2-1);
fg(ngrid/2+1:ngrid)=fg(1:ngrid/2)+.26*ones(1:ngrid/2);

// Specify a low pass filter magnitude for the desired response
ds(1:ngrid/2)=ones(1:ngrid/2);
ds(ngrid/2+1:ngrid)=zeros(1:ngrid/2);

// Specify a uniform weighting function
wt=ones(fg);

// Run remezb
an=remezb(nc,fg,ds,wt)

// Make a linear phase FIR filter
hn(1:nc-1)=an(nc:-1:2)/2;
hn(nc)=an(1);
hn(nc+1:2*nc-1)=an(2:nc)/2;

// Plot the filter's magnitude response
plot(.5*(0:255)/256,frmag(hn,256));

// Choose the number of cosine functions and create a dense grid in [0,.5)
nc=21; ngrid=nc*16;
fg=.5*(0:(ngrid-1))/ngrid;

// Specify a triangular shaped magnitude for the desired response
ds(1:ngrid/2)=(0:ngrid/2-1)/(ngrid/2-1);
ds(ngrid/2+1:ngrid)=ds(ngrid/2:-1:1);

// Specify a uniform weighting function
wt=ones(fg);

// Run remezb
an=remezb(nc,fg,ds,wt)

// Make a linear phase FIR filter
hn(1:nc-1)=an(nc:-1:2)/2;
hn(nc)=an(1);
hn(nc+1:2*nc-1)=an(2:nc)/2;

// Plot the filter's magnitude response
plot(.5*(0:255)/256,frmag(hn,256));

参照

  • eqfir — FIRフィルタのミニマックス近似
Report an issue
<< remez Filters sgolay >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon May 22 12:43:10 CEST 2023