H=freqs(num,den,w); w=0:0.02:5; plot(w,angle(H)); 错误
时间: 2024-03-04 16:49:45 浏览: 8
在这个程序中,您需要将第一行和第二行的代码颠倒一下,即先定义“w”的范围,然后再计算“H”的值。下面是修改后的程序:
```
w=0:0.02:5;
H=freqs(num,den,w);
plot(w,angle(H));
```
这样修改后,您应该可以成功地绘制出图形了。如果还是有问题,请提供更多的错误信息,以便我更好地帮助您解决问题。
相关问题
数组索引必须为正整数或逻辑值。 出错 Untitled5 (第 19 行) plot(w,angle(H)); H=freqs(num,den,w); w=0:0.02:5; plot(w,angle(H));
这个错误信息表明您在使用MATLAB绘制图形时,出现了一个错误。具体来说,这个错误可能是由于您在使用“plot(w,angle(H))”之前没有计算“H”的值所导致的。
在第19行中,您尝试使用“plot(w,angle(H))”来绘制一个图形。但是在这之前,您没有给变量“H”赋值。因此,MATLAB不知道它应该绘制什么数据。因此,您需要先计算“H=freqs(num,den,w)”来获取数据,然后再使用“plot(w,angle(H))”来绘制数据。
此外,您还需要检查变量“w”的值是否正确,以确保它包含您想要绘制的数据的范围。如果“w”的值不正确,那么您可能会看到类似于“Index exceeds matrix dimensions”的错误信息。
h=freqs(b,a,w); mag = abs(h);phase = angle(h); subplot(2,1,1), loglog(w,mag); subplot(2,1,2), semilogx(w,phase);
这段代码的作用是进行数字滤波器的频率响应分析并绘制其幅度-频率曲线和相位-频率曲线。具体来说:
- 第一行代码计算数字滤波器的频率响应,其中b和a是数字滤波器的分子系数和分母系数向量,w是一组离散的角频率值。
- 第二行代码计算频率响应的幅度,即频率响应在复平面上的模长。
- 第三行代码计算频率响应的相位,即频率响应在复平面上的相角。
- 第四行代码绘制幅度-频率曲线,使用log-log坐标轴,即横轴和纵轴都使用对数刻度。
- 第五行代码绘制相位-频率曲线,使用semilogx坐标轴,即横轴使用对数刻度,纵轴使用线性刻度。其中subplot(2,1,1)和subplot(2,1,2)表示将画布分成两个子图,分别绘制幅度-频率曲线和相位-频率曲线。
阅读全文