Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试在 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 变量。我应该如何解决它?
过滤器命令不是为采用符号数据类型而构建的。它将原始滤波器系数作为输入。您试图定义的是一个差分方程,其中 b 系数是 。.
b = [1 0.1];
和 a 系数是
a = [1 0.9];
然后您可以按如下方式过滤信号
y = filter(b,a,x)
freqz 命令显示这是一个带有一些增益的奇怪高通滤波器。.
freqz(b,a)
这是你想要达到的目标吗?
如果你反转系数,那么
b = [1 0.9]; a = [1 0.1];
...您最终会得到一个具有一定增益的低通滤波器