ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

polyscale

多項式の根のスケーリング

構文

b = polyscale(a,alpha)

説明

b = polyscale(a,alpha) では、z 平面で多項式の根がスケーリングされます。ここで、a は多項式の係数を含むベクトルで、alpha はスケーリング ファクターです。

alpha[0 1] の範囲の実数の場合、a の根は z 平面内で原点に向かう半径方向にスケーリングされます。alpha に複素数を設定すると、根の位置を任意に変更できます。

すべて折りたたむ

方程式 の解を多項式の根として表します。複素平面に根をプロットします。

pp = [1 0 0 0 0 0 0 -1];
zplane(pp,1)

p の根を単位円の内外にスケーリングします。結果をプロットします。

hold on

for sc = [1:-0.2:0.2 1.2 1.4];
    b = polyscale(pp,sc);
    plot(roots(b),'o')
end

axis([-1 1 -1 1]*1.5)

hold off

でサンプリングされた音声信号を読み込みます。ファイルには、「MATLAB®」という単語を発声している女性の録音音声が含まれています。

load mtlb

12 次の自己回帰多項式を使用して、この信号の 100 サンプルのセクションをモデル化します。

Ao = lpc(mtlb(1000:1100),12);
Ax = polyscale(Ao,0.85);

自己回帰多項式の根を 0.85 でスケーリングすることによって、信号の帯域幅拡張を実行します。モデルの零点、極および周波数応答をプロットします。

subplot(2,2,1)
zplane(1,Ao)
title('Original')

subplot(2,2,3)
zplane(1,Ax)
title('Flattened')

subplot(1,2,2)
[ho,w] = freqz(1,Ao);
[hx,w] = freqz(1,Ax);
plot(w/pi,abs([ho hx]))
legend('Original','Flattened')

ヒント

自己回帰多項式の中の根の半径を小さくすること、周波数応答のスペクトル ピークの帯域幅が拡張されます (平坦になります)。この演算は、多くの場合帯域幅拡張と呼ばれます。

参考

|

R2006a より前に導入