1

Matlabで簡単なシミュレーションを実行しようとしています。ランダム信号xとフィルター伝達関数があります。フィルタ機能の適切な使用法は何ですか?

x = rand(100,1);
syms z;
Pnum = (1-0.1*z^-1); 
Pdenum = (1-0.9*z^-1);

y = filter(Pnum, Pdenum, x); 

これはエラーをスローします

「タイプ'sym'の入力引数の未定義関数'filter'。」

z変数について不平を言っていることを理解しています。どうすれば解決できますか?

4

1 に答える 1

2

filterコマンドは、シンボリックデータ型を取得するようには構築されていません。生のフィルター係数を入力として受け取ります。定義しようとしているように見えるのは、b係数がである差分方程式です。。

b = [1 0.1];

係数は

a = [1 0.9];

次に、次のように信号をフィルタリングできます

y = filter(b,a,x)

freqzコマンドは、これがゲインのある奇妙なハイパスフィルターであることを示しています。。

freqz(b,a)

ここに画像の説明を入力してください

これはあなたが達成しようとしていることですか?

係数を逆にすると

b = [1 0.9];
a = [1 0.1];

...ある程度のゲインを持つローパスフィルターができあがります

freqz(b,a)

ここに画像の説明を入力してください

于 2012-04-26T22:33:32.607 に答える