3

我想以类似于维基百科的“切比雪夫滤波器”页面上的零极点图的方式绘制滤波器的频域响应:http ://en.wikipedia.org/wiki/File:Chebyshev_Type_I_Filter_s- Plane_Response_(8th_Order).svg。特别是,我想要将图沿 Y 轴切成两半,并使切口突出以表示频率响应。

到目前为止,我已经设法得到这个:

可以看到制成的接缝,但并不突出,就像新焊接的一样。我希望你能理解这个意思,因为我现在找不到更好的解释。

现在,到目前为止,我所拥有的 wxMaxima 的 draw3d() 函数是这样的:

draw3d(logx=false,logy=false,logz=true,
enhanced3d=false,line_width=2,color=red,explicit(cabs(Hs(x+%i*y)),x,-0.01,0,y,-3,3),
enhanced3d=[z**.5,x,y,z],palette=gray,proportional_axes=xy,
/* cbrange=[0.05,100.95], */ view=[0,0],yv_grid=101,xu_grid=101,
explicit(cabs(Hs(x+%i*y)),x,-1,0,y,-3,3))$

其中 Hs(s) 已在前面定义,例如:

Hs(s):=0.0248655/((s+0.210329)*(s^2+0.12999*s+0.521695)*(s^2+0.340319*s+0.22661))$

我不知道如何使频率响应突出,打印顺序似乎无关紧要。有谁知道它是否可以完成,如果可以,怎么做?

4

1 回答 1

3

我不知道如何使用 maxima 来实现,但这里是一个仅使用 gnuplot 的解决方案。这使用+伪文件名为 x=0 和splot. 复数用括号指定{x,y},即i = {0,1}

set terminal pngcairo size 1000,800
set output 'chebyshev.png'

N = 501
set isosamples N
set samples N
set pm3d interpolate 3,3

set palette gray
set cbrange [*:10]
set xrange [-1:0]
set yrange [-3:3]

set logscale z
set autoscale zfix

set view 120,278
unset key
set grid

Hs(s) = 0.0248655/((s+0.210329)*(s**2+0.12999*s+0.521695)*(s**2+0.340319*s+0.22661))

splot abs(Hs(x+{0,1}*y)) w pm3d, \
      '+' using (y = ($0/(N-1.0) * 6 - 3), 0):(y):(abs(Hs({0,1}*y))) w l lw 3

4.6.3 的结果是:

在此处输入图像描述

于 2014-03-17T09:18:57.207 回答