From 9097a83afa46e13d5545d437f81613efb34315a6 Mon Sep 17 00:00:00 2001 From: Jan David Mol <mol@astron.nl> Date: Sun, 30 Jan 2011 13:45:30 +0000 Subject: [PATCH] bug 1362: paper update --- .gitattributes | 2 + doc/papers/2011/europar/Makefile | 5 +- .../2011/europar/dispersed-signal-data-2.sh | 40 ++++++++ doc/papers/2011/europar/dispersed-signal.jgr | 93 ++++++++++++++++++ doc/papers/2011/europar/lofar.pdf | Bin 3996271 -> 4006400 bytes doc/papers/2011/europar/lofar.tex | 18 +++- 6 files changed, 153 insertions(+), 5 deletions(-) create mode 100755 doc/papers/2011/europar/dispersed-signal-data-2.sh create mode 100644 doc/papers/2011/europar/dispersed-signal.jgr diff --git a/.gitattributes b/.gitattributes index bac69065a19..42aa792159d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2592,6 +2592,8 @@ doc/papers/2011/europar/Makefile -text doc/papers/2011/europar/coherent-dedispersion.jgr -text doc/papers/2011/europar/colinear.fig -text doc/papers/2011/europar/delay.fig -text +doc/papers/2011/europar/dispersed-signal-data-2.sh -text +doc/papers/2011/europar/dispersed-signal.jgr -text doc/papers/2011/europar/execution_times.jgr -text doc/papers/2011/europar/llncs.cls -text doc/papers/2011/europar/llncs2e.zip -text diff --git a/doc/papers/2011/europar/Makefile b/doc/papers/2011/europar/Makefile index df209b77415..c2a9d7160b4 100644 --- a/doc/papers/2011/europar/Makefile +++ b/doc/papers/2011/europar/Makefile @@ -4,7 +4,7 @@ BIB_SOURCES = lofar.bib FIG_SOURCES = delay.fig lofar-stations.fig -JGR_SOURCES = stations-beams.jgr execution_times.jgr coherent-dedispersion.jgr +JGR_SOURCES = stations-beams.jgr execution_times.jgr coherent-dedispersion.jgr dispersed-signal.jgr JPG_SOURCES = @@ -68,3 +68,6 @@ lpr:: lofar.ps clean:: rm -f $(GEN_FILES) + +dispersed-signal.pdf: dispersed-signal-data-2.sh + diff --git a/doc/papers/2011/europar/dispersed-signal-data-2.sh b/doc/papers/2011/europar/dispersed-signal-data-2.sh new file mode 100755 index 00000000000..fb926119444 --- /dev/null +++ b/doc/papers/2011/europar/dispersed-signal-data-2.sh @@ -0,0 +1,40 @@ +#!/bin/sh +LINE=$1 + +if [ "$LINE" = "" ] +then + LINE=0 +fi + + +SB=`echo "$LINE/16/5+200" | bc -l` + +DM=13.76517 +kDM=4148.808000 +V1=`echo "(512+200)*200/1024" | bc -l` +V2=`echo "(512+$SB)*200/1024" | bc -l` +DT=`echo "1000*$kDM*$DM*(1/($V1*$V1)-1/($V2*$V2))" | bc -l` + +RAISE=$LINE +SHIFT=$DT + +if [ "$2" = "noshift" ] +then + SHIFT=0 +fi + +N=0 + +for j in `seq 1 8` +do + for i in \ + 0.0774172 0.03210746 -0.0445541 0.00610412 -0.0319828 0.02593199 \ + 0.07882975 -0.04888158 0.01236247 -0.02991732 -0.02594422 0.03068228 \ + 0.39840362 0.70129715 0.81479671 0.62009142 0.48787918 0.41444714 \ + 0.49326743 0.53368318 0.46734203 0.24543242 0.15654414 + do + echo "-0.3 + $N/23 * 1.88 - $SHIFT" | bc -l + echo "$i+$RAISE" | bc -l + N=$((N+1)) + done +done diff --git a/doc/papers/2011/europar/dispersed-signal.jgr b/doc/papers/2011/europar/dispersed-signal.jgr new file mode 100644 index 00000000000..51da2bc66a1 --- /dev/null +++ b/doc/papers/2011/europar/dispersed-signal.jgr @@ -0,0 +1,93 @@ +newgraph + clip + xaxis + label : Time (ms) + min 0 + max 4 + size 2 + mhash 5 + no_auto_hash_labels + shell : seq 0 2 | awk '{ printf "hash_label at %d : %.2f\n",2*$1,$1 * 1.88; }' + yaxis + label : Frequency (MHz) + hash 0 + min -0.2 + size 2 + shell : seq 0 3 | awk '{ f = (512 + 200 + $1 * 1/16/3)*200/1024; printf "hash_label at %d : %.3f\n",$1,f; }' + +newline + color 0 0 1 + linethickness 2.0 + linetype solid + pts + shell : ./dispersed-signal-data-2.sh 0 + +newline + color 0 0 1 + linethickness 2.0 + linetype solid + pts + shell : ./dispersed-signal-data-2.sh 1 + +newline + color 0 0 1 + linethickness 2.0 + linetype solid + pts + shell : ./dispersed-signal-data-2.sh 2 + +newline + color 0 0 1 + linethickness 2.0 + linetype solid + pts + shell : ./dispersed-signal-data-2.sh 3 + +newgraph + x_translate 2.5 + + clip + xaxis + label : Time (ms) + min 0 + max 4 + size 2 + mhash 5 + no_auto_hash_labels + shell : seq 0 2 | awk '{ printf "hash_label at %d : %.2f\n",2*$1,$1 * 1.88; }' + yaxis + label : Frequency (MHz) + hash 0 + min -0.2 + size 2 + shell : seq 0 3 | awk '{ f = (512 + 200 + $1 * 1/16/3)*200/1024; printf "hash_label at %d : %.3f\n",$1,f; }' + nodraw + +newline + color 1 0 0 + linethickness 2.0 + linetype solid + pts + shell : ./dispersed-signal-data-2.sh 0 noshift + +newline + color 1 0 0 + linethickness 2.0 + linetype solid + pts + shell : ./dispersed-signal-data-2.sh 1 noshift + +newline + color 1 0 0 + linethickness 2.0 + linetype solid + pts + shell : ./dispersed-signal-data-2.sh 2 noshift + +newline + color 1 0 0 + linethickness 2.0 + linetype solid + pts + shell : ./dispersed-signal-data-2.sh 3 noshift + diff --git a/doc/papers/2011/europar/lofar.pdf b/doc/papers/2011/europar/lofar.pdf index f18f8ff6e0a00f87bd7537526a1a683f8379f801..16b8a995b9ebca62ea6be6ac4d045f57336b2228 100644 GIT binary patch delta 19287 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 av8be?C^d}>=m=v&V{>*cRaIAiH!c9D3sheK delta 10058 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%0DEXI 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 a`T7O<IyrOFHhNle@ob#Cck7wybN)ZYb_<{Y diff --git a/doc/papers/2011/europar/lofar.tex b/doc/papers/2011/europar/lofar.tex index 7cb899fa092..5249c58a207 100644 --- a/doc/papers/2011/europar/lofar.tex +++ b/doc/papers/2011/europar/lofar.tex @@ -211,17 +211,27 @@ The beamformer transforms chunks representing station data into chunks represent \subsection{Channel-level Dedispersion} -Another major component in the pulsar-observation pipeline is real-time dedispersion. Since light of a high frequency travels faster through the interstellar medium than light of a lower frequency, the arrival time of a pulse differs for different wave lengths. To combine data from multiple frequency channels, the channels must be aligned (shifted in time). Otherwise, the pulse will be smeared or even overlap with the next pulse, causing many details to be lost. This process, called \emph{dedispersion}, is done by post-processing software that runs after the observation has finished. However, to observe at the lowest frequencies, or to observe fast-rotating millisecond pulsars, dedispersion must also be performed \emph{within\/} a channel, since our channels (typically 12~KHz) are too wide to ignore dispersion. +Another major component in the pulsar-observation pipeline is real-time dedispersion. Since light of a high frequency travels faster through the interstellar medium than light of a lower frequency, the arrival time of a pulse differs for different wave lengths. To combine data from multiple frequency channels, the channels must be aligned (shifted in time). Otherwise, the pulse will be smeared or even overlap with the next pulse, causing many details to be lost. This process, called \emph{dedispersion}, is done by post-processing software that runs after the observation has finished. However, to observe at the lowest frequencies, or to observe fast-rotating millisecond pulsars, dedispersion must also be performed \emph{within\/} a channel, since our channels (typically 12~KHz) are too wide to ignore dispersion (see Figure \ref{fig:dispersed-signal}). \begin{figure}[ht] -\includegraphics[width=0.5\textwidth]{coherent-dedispersion.pdf} +\begin{minipage}[t]{0.60\textwidth} +\center +\includegraphics[width=\textwidth]{dispersed-signal.pdf} +\caption{Pulse arrival times within a 12 kHz channel before (left) and after (right) channel-level dedispersion.} +\label{fig:dispersed-signal} +\end{minipage} +\hfill +\begin{minipage}[t]{0.35\textwidth} +\center +\includegraphics[width=\textwidth]{coherent-dedispersion.pdf} +\caption{Pulse profiles with and without channel-level dedispersion.} \label{fig:dedispersion-result} -\caption{Pulse profiles of pulsar J0034-0534, with and without channel-level dedispersion.} +\end{minipage} \end{figure} Dedispersion is performed in the frequency domain, effectively by doing a 4K~Fourier transform (FFT) that splits a 12~KHz channel into 3~Hz subchannels. The phases of the observed samples are corrected by applying a Chirp function~\cite{...}, i.e., by multiplication with precomputed, subchannel-dependent, complex weights. These multiplications are programmed in assembly, to reduce the computational costs. A backward FFT is done to revert to 12~KHz channels. -Figure~\ref{fig:dedispersion-result} shows the effectiveness of channel-level dedispersion, where we observed pulsar J0034-0534 with a pulse period of 1.88~ms. By applying dedispersion, the effective time resolution is improved from 0.51~ms to 0.082~ms, revealing a narrower, more detailed pulse and a better signal-to-noise ratio. Dedispersion thus contributes significantly to the data quality, but it also comes at a significant computational cost due to the two FFTs it requires. It demonstrates the power of using a \emph{software\/} telescope: the pipeline component was implemented, verified, and optimized in only one month time. +Figure~\ref{fig:dedispersion-result} shows the effectiveness of channel-level dedispersion, where we observed pulsar J0034-0534 with a pulse period of 1.88~ms. By applying dedispersion, the effective time resolution is improved from 0.51~ms to 0.082~ms, revealing a more detailed pulse and a better signal-to-noise ratio. Dedispersion thus contributes significantly to the data quality, but it also comes at a significant computational cost due to the two FFTs it requires. It demonstrates the power of using a \emph{software\/} telescope: the pipeline component was implemented, verified, and optimized in only one month time. \subsection{Second All-to-all Exchange} -- GitLab