matlab - Wolfram Alpha 和 MATLAB 以不同方式绘制传递函数

标签 matlab filter wolframalpha

我正在尝试获取简单 180° 相移全通滤波器的数字 IIR 滤波器的滤波器系数,传递函数为:(1+s)/(1-s)

这就是 Wolfram 给我的: Bode Plot in Wolfram

这是我从 MATLAB 得到的结果: Bode Plot in MATLAB

我的代码是:

clc; clear; close all;
z = [-1];                  %zeros
p = [1];                   %poles
k = 1;                     %gain
[num,den] = zp2tf(z,p,k);  %convert zero-pole into numerator denominator
freqz(num,den);            %bode plot

我想在 MATLAB 中获得与在 Wolfram Alpha 中相同的绘图,以使用 fvtool 获得滤波器系数,以便我可以用 C 编写滤波器。因此,我的问题是如何设法转换将传递函数转换为正确的格式,以便 MATLAB 能够像 Wolfram Alpha 一样绘制相同的图?我做错了什么?

最佳答案

你的问题是你正在混合概念

freqz 用于基于 z 的离散频率变换,而您正在使用基于 s 的连续拉普拉斯变换。这些显然不是同一件事。

只需使用连续变换的函数即可。

z = [-1];                  %zeros
p = [1];                   %poles
k = 1;                     %gain
[num,den] = zp2tf(z,p,k);  %convert zero-pole into numerator denominator
my_filter=tf(num,den);
bode(my_filter);

关于matlab - Wolfram Alpha 和 MATLAB 以不同方式绘制传递函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67399265/

相关文章:

wordpress - 将特色图像添加到 wp_nav_menu 项目

matlab - 一元减号只是改变符号吗?

plot - 使用 -nodisplay -nodesktop -nosplash 打印 Matlab 图

php - 这个 Blade 卫生是否正常工作(双花括号与三花括号)?

java - android Wolfram alpha 异常下载网址

c++ - gnu 科学图书馆 (GSL) 三次多项式结果差异

python - Sympy 和 Wolframalpha 给出不同的结果

特定范围内向量的 MATLAB 绘图

matlab - 使用 Matlab 求解矩阵形式的 DDE

date - kendo ui grid数据源过滤日期格式