メインコンテンツ

polyscale

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

    説明

    b = polyscale(a,alpha) は、z 平面で多項式の根をスケーリングします。ここで、a は多項式の係数を格納し、alpha はスケーリング ファクターです。polyscale 関数は、スケーリングされた多項式係数 b を返します。

    すべて折りたたむ

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

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

    Figure contains an axes object. The axes object with title Pole-Zero Plot, xlabel Real Part, ylabel Imaginary Part contains 4 objects of type line, text. One or more of the lines displays its values using only markers

    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

    Figure contains an axes object. The axes object with title Pole-Zero Plot, xlabel Real Part, ylabel Imaginary Part contains 11 objects of type line, text. One or more of the lines displays its values using only markers

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

    load mtlb

    12 次の自己回帰多項式を使用して、この信号の 100 サンプルのセクションをモデル化します。自己回帰多項式の根を 0.85 でスケーリングすることによって、信号の帯域幅拡張を実行します。

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

    モデルの零点、極および周波数応答をプロットします。

    tiledlayout(2,2)
    nexttile(1)
    zplane(1,Ao)
    title("Original")
    
    nexttile(3)
    zplane(1,Ax)
    title("Flattened")
    
    nexttile([2 1])
    [ho,w] = freqz(1,Ao);
    [hx,w] = freqz(1,Ax);
    plot(w/pi,abs([ho hx]))
    legend("Original","Flattened")

    Figure contains 3 axes objects. Axes object 1 with title Original, xlabel Real Part, ylabel Imaginary Part contains 4 objects of type line, text. One or more of the lines displays its values using only markers Axes object 2 with title Flattened, xlabel Real Part, ylabel Imaginary Part contains 4 objects of type line, text. One or more of the lines displays its values using only markers Axes object 3 contains 2 objects of type line. These objects represent Original, Flattened.

    入力引数

    すべて折りたたむ

    入力多項式係数。行ベクトルまたは行列として指定します。a を行列として指定した場合、polyscale は各行を入力多項式係数から成る独立したベクトルとして扱います。

    データ型: single | double
    複素数のサポート: あり

    スケーリング係数。スカラーまたはベクトルとして指定します。alpha を行ベクトルとして指定した場合、alpha には a の行と同じ数の要素が含まれていなければなりません。

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
    複素数のサポート: あり

    出力引数

    すべて折りたたむ

    スケーリングされた多項式係数。行ベクトルとして返されるか、サイズとデータ型が a と同じ行列として返されます。

    ヒント

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

    バージョン履歴

    R2006a より前に導入

    参考

    |