我尝试绘制匹配滤波器的频率响应,其响应定义为:
由于 x (=f) 从非常大的负值到非常大的正值,并且 y (=H(f)) 仅在 0 到 1 之间运行,我使用了 Pgfplots Semilogxaxis。我的代码如下所示:
\begin{tikzpicture}
\begin{semilogxaxis}[xlabel=Frequency, ylabel=Gain, xmin=1, xmax=20000, ymin=0, ymax=2]
\addplot[domain=1:1e4,color=red] {((2*pi*x)^2 + 10^6)/(11(2*pi*x)^2 + 10^6 + 10^4)};
\end{semilogxaxis}
\end{tikzpicture}
我收到下一条错误信息:
! Package PGF Math Error: You've asked me to divide '195.000000000' by '0.0', but I cannot divide any number by '0.0'.
我在这里绞尽了脑汁,但就是想不通哪里到底是除以 0。
尽管如此,如果有人有更好的想法我应该如何在 Latex 中绘制这个函数,我会爱听到它,因为我已经坐在这里太长时间了......
谢谢。
答案1
正如杰克所评论的那样。*
缺少乘法。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{semilogxaxis}[xlabel=Frequency, ylabel=Gain, xmin=1, xmax=20000, ymin=0, ymax=2]
\addplot[domain=1:1e4,color=red]
{((2*pi*x)^2 + 10^6)/(11*(2*pi*x)^2 + 10^6 + 10^4)};
% ^
% This `*' was missing |
\end{semilogxaxis}
\end{tikzpicture}
\end{document}
我还将使用关闭的自动调整尺寸功能enlarge x limits
以及smooth
曲线。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{semilogxaxis}[
enlarge x limits=false,
xlabel=Frequency,
ylabel=Gain]
\addplot[domain=1:1e4,red,smooth]
{((2*pi*x)^2 + 10^6)/(11*(2*pi*x)^2 + 10^6 + 10^4)};
\end{semilogxaxis}
\end{tikzpicture}
\end{document}