2016-09-21 10 views
0

私はこの伝達関数をmatlabに入力しようとしていますが、正の指数と負の指数の両方を持つため、どのように計算するのか分かりません。MATLABでtf()関数を使用

enter image description here

私はH = tf([1],[1 1 1 1],0.1,'variable','z^-1')をすれば、私はほとんどそれを得るが、私は一番下に正zを追加する方法を見つけ出すことはできません。私はこのHを使用して、pzmap(H)で極と零点をプロットしようとしています。

+0

を取得してキャンセルした場合、この表現zの用語は、したがって、非正力を持っている私は前に 'tf'を使ったことがないはずですが、あなたはあなたの伝達関数を簡略化することができず、代わりに 'H(z)= 1 /(z^-1 + 1 + z^-2 + z^-3 + z^-4)'を使用しますか? – Prakhar

+0

ええ、おそらく私はZを乗算しました。なぜなら、私はz変換の初心者であり、分子をZ = 0に設定することで分子をゼロにする必要があると思ったからです。 – Austin

答えて

0

負の指数を避けるために、我々はz^3で分母と分子の両方を掛けることができます。

H = tf([1 0 0 0 0],[1 1 1 1 1],0.1,'variable','z') 

それともz

H = tf([1],[1 1 1 1 1],0.1,'variable','z^-1') 
+0

私は負の指数を避けたいとは思わないが、正負の指数を組み合わせて一致させたい。投稿したH(z)は、私が得ようとしているものですが、投稿したtf()は、分母に+ z^1がないので、それを達成できません。 – Austin

+0

私は、アナリティカルな再編成をせずにこれを行うことはできません。しかし、可能ならば、 'H = tf({[1]、0}、{[1 1 1 1]、[0,1]}、0.1、 'variable'、{'z -1 '、' z '}) 'となります。私は今、MATLABへのアクセスがありません。したがって、私はこれを確認することはできません。 –

+0

ああ、私はこのエラーが表示されます:連続時間システムの場合は "変数"プロパティを文字列 's'または 'p'のいずれかに設定する必要があります。 文字列 'z'、 'q' z^-1 '、または' q^-1 'である。 – Austin

0

によってその割りあなたは

z = tf('z', 0.1) 

を作成することができます次に、必要な伝達関数を作成します。

H = z/(1 + z + z^-1 + z^-2 + z^-3) 

しかし、MATLABは自動的にHのみzなしz^-1含ま伝達関数を作るために、z=0で追加のポール・ゼロのペアを追加します。したがって、1つではなく、複数の極がz=0に表示されます。残念ながら、私はMatlabがそれをやめるのを止める解決策を見いだせませんでした。

+0

なぜか分かりませんが、これは次のようになります。H = z^7 / z^7 + z^6 + z^5 + z^4 + z^3 – Austin

0

実際には、伝達関数と呼ばれるのは、実装プロパティのためにDSP表現と呼ばれます。 zのすべてのパワーは単位遅延です。したがって、filtを使用する必要があります。ではあなたは分母から1つのzを考慮し、あなたが

H = filt(1,[1,1,1,1,1]) 
関連する問題