2012-04-26 217 views
1

我想在Matlab中執行一個簡單的仿真。 我有一個隨機信號x和一個濾波器傳遞函數。過濾器功能的正確用法是什麼?濾波函數的用法Matlab

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

y = filter(Pnum, Pdenum, x); 

這引發錯誤

「用於類型 '符號' 的輸入參數中未定義的函數 '過濾器'」。

據我所知,它是抱怨z變量。我應該如何解決它?

回答

2

filter命令不構建爲採用符號數據類型。它將原始濾波器係數作爲輸入。看起來你試圖定義的是一個差異方程,其中的b係數是。 。

b = [1 0.1]; 

和一個係數

a = [1 0.9]; 

,那麼你可以過濾信號如下

y = filter(b,a,x) 

的freqz命令表明這是一些增益奇怪的高通濾波器。 。

freqz(b,a) 

enter image description here

這是你要實現的目標是什麼?

如果顛倒的係數,以便

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

...你結束了一個低通濾波器具有一定的增益

freqz(b,a) 

enter image description here

+0

這些只是我的第一步驟dsp/matlab地面,向前邁進一步,解決我的任務:)非常感謝您的澄清。 – SneakyMummin 2012-04-27 00:11:19

+0

很高興把你推向正確的方向。祝你好運 – learnvst 2012-04-27 00:14:23