https:///astrobaki/index.php?title=SpeadConventions&feed=atom&action=historySpeadConventions - Revision history2022-09-24T17:08:28ZRevision history for this page on the wikiMediaWiki 1.35.1Aparsons: Created page with '<latex> \begin{document} \section{Synthesis Array Conventions} \subsection{Reserved Options} \subsubsection{Instance ID} In order to support sub-arrays, we need a means to idenâ€¦'2010-03-31T20:58:24Z<p>Created page with '<latex> \begin{document} \section{Synthesis Array Conventions} \subsection{Reserved Options} \subsubsection{Instance ID} In order to support sub-arrays, we need a means to idenâ€¦'</p>
<p><b>New page</b></p><div><latex><br />
\begin{document}<br />
\section{Synthesis Array Conventions}<br />
\subsection{Reserved Options}<br />
<br />
\subsubsection{Instance ID}<br />
<br />
In order to support sub-arrays, we need a means to identify to which instance of an instrument this packet belongs. Further, since larger instruments consist of multiple processing engines, this field provides a means of labelling the source engine (required for reassembling packetised correlator output in the correct order, for example).<br />
<br />
It is subdivided into two 24-bit fields: the MSB 24-bits represent the instrument instance and the second 24-bits represent the engine instance ID of instrument subgroup. The significance of this field will change depending on the instrument. <br />
<br />
For example, this entire option will always be zero for a system consisting of a single-board, single-antenna spectrometer. For more complex instruments, this option will be used to indicate that the stream belongs to a particular beam or correlator subgroup. For example, a beamformer might consist of ten FPGAs, each one outputting a subset of frequencies and capable of forming two beams. The first 24-bit field could then range [0 1] and the second field [0 1 2 3 4 5 6 7 8 9].<br />
<br />
\subsubsection{Timestamp and Timestamp Scale Factor}<br />
<br />
This field timestamps all data for the correlator, beamformer,<br />
spectrometer and other KAT DBE instruments. This field was designed to be easily generated on FPGA instruments. The product<br />
of the timestamp multiplied by the timestamp scale factor<br />
represents the number of ADC samples acquired. <br />
<br />
$$ Samples\_acquired = Timestamp * Timestamp\_scale\_factor$$<br />
<br />
A zero acquired sample count corresponds to the time at which the system was last <br />
synchronised to a 1PPS signal. The last synchronisation time<br />
is reported in the metadata fields IDs 15 and 16 in real-time seconds since the Unix epoch.<br />
<br />
$$ Time_{current} = Time_{sync} * {Samples\_acquired\over Clock_{adc}} $$<br />
<br />
If data is integrated (eg correlator or spectrometer), then<br />
this value will represent the time that the accumulation began<br />
(the time of the ADC sample of the first channel in the first<br />
spectrum of the accumulation)\footnote{This places an upper bound<br />
on the scale factor of the number of samples processed per accumulation, <br />
while the lower bound is 1.}.<br />
<br />
\subsubsection{Previous Packet Data Error Counter}<br />
<br />
If non-zero, indicates the number of accumulations that were<br />
not performed due to a failure. For example, if the user<br />
requested 1000 integrations, but only 891 were performed,<br />
this field's value would be $1000-891=109$. This applies to<br />
the PREVIOUS packet's data from this engine (ie you need to<br />
match the instance ID field). Omitting this option is equivalent<br />
to a zero error count.<br />
<br />
\subsubsection{Quantisation Scalar (X and Y Polarisation, Real and Imaginary)}<br />
<br />
Most instruments perform quantisation before accumulation (eg,<br />
packetised correlator and beamerformer: 4 bits). Digital gain<br />
control is implemented before quantisation to ensure correct bit<br />
selection. The value in this field indicates the level of gain<br />
applied. Gains are not necessarily linear. Values are unit-less<br />
and are specified per-frequency channel, per input. The gains<br />
are complex, having a real and imaginary component. The system's<br />
amplitude response should be recalibrated if this value changes.<br />
<br />
The 48-bit field is subdivided as follows:<br />
<br />
\begin{table}<br />
\begin{tabular}{|r|l|}<br />
\hline<br />
\emph{Number of bits} & \emph{Representation} \\<br />
\hline<br />
(MSB) 16 & Input number \\<br />
16 & Frequency channel \\<br />
(LSB) 16 & Digital gain \\<br />
\hline<br />
\end{tabular}<br />
\end{table}<br />
<br />
\subsubsection{Phase slope and Phase offset}<br />
<br />
LSB 32-bit values indicating current phase slope and offset for a given polarisation. Timestamps will accompany these updates.<br />
<br />
\subsubsection{FFT Shift pattern}<br />
<br />
Indicates if a divide-by-2 was done between butterfly stages<br />
in the FFT. LSB is last FFT stage, with every higher bit<br />
representing the previous FFT stage. Only the \emph{FFT Length}<br />
LSBs are valid. This is an internal DBE parameter and should<br />
be constant.<br />
\begin{table}<br />
\begin{tabular}{|r|l|}<br />
\hline<br />
\emph{Number of bits} & \emph{Representation} \\<br />
\hline<br />
(MSB) 16 & Input number\\<br />
1 & Polarisation (X=0, 1=Y)\\<br />
(LSB) 31 & FFT shift pattern\\<br />
\hline<br />
\end{tabular}<br />
\end{table}<br />
\subsubsection{X Engine Accumulation Length}<br />
<br />
Represents the accumulation which takes place within the X<br />
engine (packetised correlator specific). This places a lower<br />
limit on the integration time as well as sets the granularity<br />
of the accumulation period.<br />
<br />
\subsubsection{F Engine Packet Payload Length}<br />
<br />
Should be equal to X engine accumulation length (packetised<br />
correlator specific).<br />
<br />
\subsubsection{Processing engine clock rate}<br />
<br />
The clock rate of the X engines and B engines. This value is<br />
an estimate. These run asynchronously to the F engines and<br />
should be clocked at a higher rate to ensure buffers don't<br />
overflow. For POCO, this should be $sample\_clk/4$.<br />
\begin{table}<br />
\begin{tabular}{|r|l|}<br />
\hline<br />
\emph{Number of bits} & \emph{Representation} \\<br />
\hline<br />
(MSB) 16 & Board number \\<br />
(LSB) 32 & Clock speed (Hz) \\<br />
\hline<br />
\end{tabular}<br />
\end{table}<br />
\subsubsection{ADC overflow status}<br />
<br />
This field indicates that an overflow occurred on said ADC<br />
(lsb set) at time indicated by field ID 42. Assume that<br />
overflow continued until another update is received for this<br />
ADC (lsb cleared).<br />
\begin{table}<br />
\begin{tabular}{|r|l|}<br />
\hline<br />
\emph{Number of bits} & \emph{Representation} \\<br />
\hline<br />
(MSB) 16 & ADC Input number \\<br />
1 & Polarisation (X=0, 1=Y) \\<br />
31 & Reserved. Ignore. \\<br />
(LSB) 1 & ADC overflow occurred on this input. \\<br />
\hline<br />
\end{tabular}<br />
\end{table}<br />
\subsubsection{Center frequencies, bandwidth, ADC sample rates}<br />
<br />
These frequencies are given in integer Hz, with an optional fractional<br />
component in femto-Hz. If no optional fractional component is<br />
given, assume it to be zero.<br />
\end{document}<br />
</latex></div>Aparsons