Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ngscopeclient/scopehal-docs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 6462d7497bcb
Choose a base ref
...
head repository: ngscopeclient/scopehal-docs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3bf8f1240fb9
Choose a head ref
  • 1 commit
  • 2 files changed
  • 1 contributor

Commits on Dec 13, 2020

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    3bf8f12 View commit details
Showing with 46 additions and 0 deletions.
  1. BIN images/filters/channel-emulation.png
  2. +46 −0 section-decodes.tex
Binary file added images/filters/channel-emulation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
46 changes: 46 additions & 0 deletions section-decodes.tex
Original file line number Diff line number Diff line change
@@ -471,6 +471,52 @@ \subsection{Output Signal}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak
\section{Channel Emulation}
\label{filter:channelemu}

This filter models the effects of applying an arbitrary channel, described via one or more 2-port S-parameter files, to
a waveform. Fig. \ref{filter_channelemu} shows the result of passing a 1.25 Gbps serial data pattern through a 10x
oscilloscope probe with approximately 500 MHz bandwidth. The ISI, attenuation, and phase shift introduced by the
channel can all be seen.

Only the forward path (S21) is considered in the current implementation of this filter; it is assumed that any
reflected power is absorbed by terminations at the transmitter. Channels with significant return loss reflecting off
the transmitter may not be modeled accurately.

The channel model works in the frequency domain. An FFT is performed on the input, then each complex point is
scaled by the interpolated S21 magnitude and rotated by the S21 phase, then an inverse FFT is used to transform the
signal back into the time domain. The group delay of the channel is estimated and samples are discarded from the
beginning of the waveform to prevent causality violations.

\begin{figure}[h]
\centering
\includegraphics[width=16cm]{images/filters/channel-emulation.png}
\caption{Example of channel emulation on a serial data stream}
\label{filter_channelemu}
\end{figure}

\subsection{Inputs}

\begin{tabularx}{16cm}{llX}
\thickhline
\textbf{Signal name} & \textbf{Type} & \textbf{Description} \\
\thickhline
din & Analog & Input waveform \\
\thickhline
\end{tabularx}

\subsection{Parameters}

\begin{tabularx}{16cm}{llX}
\thickhline
\textbf{Parameter name} & \textbf{Type} & \textbf{Description} \\
\thickhline
S-Parameters & Filename vector & List of S-parameter files describing the channel\\
\thickhline
\end{tabularx}

\subsection{Output Signal}

This filter outputs an analog waveform with the same timebase as the input, with the emulated channel applied.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagebreak