Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

freqsamp

仕様オブジェクトから、実数または複素数の周波数サンプリング FIR フィルターを設計

構文

hd = design(d,'freqsamp')
hd = design(...,'FilterStructure',structure)
hd = design(...,'Window',window)

説明

hd = design(d,'freqsamp') では、フィルター仕様オブジェクト d によって指定される周波数サンプリング フィルターが設計されます。

hd = design(...,'FilterStructure',structure) は、structure 入力引数によって指定したフィルター構造体をもつフィルターを返します。structure は以下のフィルター構造体のいずれかになり、既定の設定は dffir です。

構造体

結果のフィルターの説明

dffir

直接型 FIR

dffirt

転置直接型 FIR フィルター

dfsymfir

対称直接型 FIR フィルター

dfasymfir

非対称直接型 FIR フィルター

fftfir

高速フーリエ変換 FIR フィルター

hd = design(...,'Window',window) は、window で指定したウィンドウを使用してフィルターを設計します。入力引数 window には次のいずれかを使用できます。

  • 一重引用符に囲まれたウィンドウ名。たとえば、'bartlett' または 'hamming'を使用してください。使用可能なすべてのウィンドウの一覧については、window を参照してください。

  • window 関数を参照する関数ハンドル。関数 window が複数の入力を要求する場合は、cell 配列を使用して引数を格納します。最初の例では、cell 配列入力引数を示します。

  • ウィンドウ ベクトル。

すべて折りたたむ

任意の振幅応答をもつ FIR フィルターを設計します。

最初に、応答が 3 つのセクションをもつ実数フィルターを生成します。

  • 低周波数用の正弦波応答セクション

  • 中間周波数用の区分的線形応答セクション

  • 高周波数用の 2 次応答セクション

b1 = 0:0.01:0.18;
a1 = 0.5+sin(2*pi*7.5*b1)/4;

b2 = [0.2 0.38 0.4 0.55 0.562 0.585 0.6 0.78];
a2 = [0.5 2.3 1 1 -0.2 -0.2 1 1];

b3 = [0.79:0.01:1];
a3 = 0.2+18*(1-b3).^2;

f = [b1 b2 b3];
a = [a1 a2 a3];
n = 300;

β = 50 のカイザー ウィンドウを使用してフィルターを設計します。

d = fdesign.arbmag('n,f,a',n,f,a);
hd = design(d,'freqsamp','Window',{@kaiser,50});
fvtool(hd)

Figure Figure 1: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Magnitude (dB) contains 2 objects of type line.

任意振幅の複素 FIR フィルターを設計します。ベクトル f には周波数の位置が含まれています。ベクトル a には、f で指定した位置における目的のフィルター応答値が含まれています。設計には箱型ウィンドウを使用します。

f = [-1 -0.93443 -0.86885 -0.80328 -0.7377 -0.67213 -0.60656 -0.54098 ...
    -0.47541 -0.40984 -0.34426 -0.27869 -0.21311 -0.14754 -0.081967 ...
    -0.016393 0.04918 0.11475 0.18033 0.2459 0.31148 0.37705 0.44262 ... 
    0.5082 0.57377 0.63934 0.70492 0.77049 0.83607 0.90164 1];

a = [0.0095848 0.021972 0.047249 0.099869 0.23119 0.57569 0.94032 ... 
    0.98084 0.99707 0.99565 0.9958 0.99899 0.99402 0.99978 ...
    0.99995 0.99733 0.99731 0.96979 0.94936 0.8196 0.28502 ...
    0.065469 0.0044517 0.018164 0.023305 0.02397 0.023141 0.021341 ...
    0.019364 0.017379 0.016061];
n = 48;

d = fdesign.arbmag('n,f,a',n,f,a);
hdc = design(d,'freqsamp','Window','rectwin');
fvtool(hdc)

Figure Figure 2: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Magnitude (dB) contains 2 objects of type line.

FVTool に、-1 ~ 1 の hdc に対する応答が正規化周波数で表示されます。これは、フィルターの伝達関数が 0 の周囲で対称でないためです。フィルターのフーリエ変換は共役対称性を示さないため、design は複素数値フィルターを返します。

バージョン履歴

R2009a で導入

参考

アプリ

関数