PgfPlots - 绘制匹配滤波器的半对数

PgfPlots - 绘制匹配滤波器的半对数

我尝试绘制匹配滤波器的频率响应,其响应定义为:

H(f) =在此处输入图片描述

由于 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}

在此处输入图片描述

相关内容