信号処理のための関数

MATLABには,信号処理に関連した関数が多数用意されている.ここではそのうちのいくつかについて説明する.
conv
2つのベクトルのたたみこみを計算する関数.

[3 4 -1]と[3 1 6 2]のたたみこみを計算してyに出力する.
y(1)=3×3 = 9
y(2)=3×1 + 4×3 = 15
y(3)=3×6 + 4×1 + (-1)×3 = 19
y(4)=3×2 + 4×6 + (-1)×1 = 29
y(5)= 4×2 + (-1)×6 = 2
y(6)= (-1)×2 = -2

入力
      A=[3 4 -1];
      B=[3 1 6 2];
      y=conv(A,B)
      
出力
      ans =
           9  15  19  29  2  -2 
      
filter
入力ベクトルXに対してフィルタリングを行った結果をyに出力する.フィルタは次のような差分方程式の係数ベクトルとして与える.
A(1)×y(n) =           -A(2)×y(n-1)-A(3)×y(n-2)- ... -A(na+1)×y(n-na)
            +B(1)×x(n)+B(2)×x(n-1)+B(3)x×(n-2)+ ... +B(nb+1)×x(n-nb)
      
入力
      A=[1 -0.5];
      B=[0.5];
      x=[1 zeros(1,10)];
      y=filter(B,A,x)
      
出力
    y =

      Columns 1 through 7 

      0.5000    0.2500    0.1250    0.0625    0.0313    0.0156    0.0078

      Columns 8 through 11 

      0.0039    0.0020    0.0010    0.0005
      
freqz
ディジタルフィルタの周波数応答を出力する.フィルタの係数ベクトルはfilterと同様に与える.

入力
      A=[1 -0.5];
      B=[0.5];
      W=-pi:0.01:pi;
      H=freqz(B,A,W);
      magH=abs(H);
      plot(W,magH);
      
出力
振幅特性のグラフが表示される.

Hは複素数のベクトルである.ここではabsを用いて振幅特性を表示している.


[back]
kawamata@mk.ecei.tohoku.ac.jp
Last modified: Thu Apr 20 13:13:27 JST 2000