root/ossiedev/branches/hvolos/docs/OSSIETalkWithUSRP/OSSIETalkWithUSRP.tex @ 9575

Revision 9575, 13.1 KB (checked in by hvolos, 4 years ago)

added some waveform testing parameters

Line 
1\documentclass[10pt]{article}
2
3\usepackage[pdftex]{graphicx}
4\usepackage{listings}
5\usepackage{color}
6\usepackage[left=2cm,top=1cm,right=3cm,nohead,nofoot]{geometry}
7
8\definecolor{darkgreen}{rgb}{0,0.5,0}
9\definecolor{darkblue}{rgb}{0,0,0.5}
10
11\lstloadlanguages{bash}
12\lstset{%
13        language=bash,
14        basicstyle=\ttfamily,
15        keywordstyle=\color{darkblue}\bfseries,
16        morekeywords={chmod,cp,grep,man,mkdir,killall,ps,rm,su,sudo},
17        morecomment=[l][\color{darkgreen}]{\#!},
18        columns=fullflexible
19}
20
21\newcommand{\osfig}[2]%
22{%
23\begin{figure}[h!]
24\centering
25\includegraphics[width=300px]{#1.png}
26\caption{#2 \label{fig:#1}}
27\end{figure}
28}
29
30\newcommand{\osfigvs}[3]%
31{%
32\begin{figure}[h!]
33
34\centering
35\includegraphics[scale=#3]{#1.png}
36\caption{#2 \label{fig:#1}}
37\end{figure}
38}
39
40\newcommand{\osblock}%
41{%
42\begin{figure}[h!]
43\label{fig:block}
44\centering
45\includegraphics[width=300px]{lab_6/figures/block.png}
46\end{figure}
47}
48
49
50\newcommand{\osref}[1]%
51{%
52Figure~\ref{fig:#1}%
53}
54
55%opening
56\title{OSSIE Lab \#:The OSSIETalk Waveform}
57\author{Haris I. Volos, \textit{et al}\\
58Virginia Tech, Blacksburg, VA\\
59Developed using OSSIE 0.7.x\\
60}
61\date{July 2009}
62
63\begin{document}
64
65\maketitle
66
67\section{Acknowledgments}
68This work was supported in part by NSF award \#0520418, and would not be possible without
69the contributions of numerous students on the OSSIE team and other OSSIE users and
70developers.
71
72\section{Objective}
73The objective of this lab is to familiarize the user with the OSSIETalkUSRP waveform.
74
75\section{Version}
76This lab is for use with OSSIE version 0.7.x and the OSSIE Eclipse Feature (OEF), running on a
77computer or VMware image that uses Fedora Core 7 or Ubuntu 8.04. The following components are required: OSSIETalk, PacketResizer, Conv\_Enc, DigitalModulator, FrameAssembler, amplifier, Interpolator, USRP\_Commander, amplifier, Decimator, AutomaticGainControl, FrameSynchronizer, DigitalDemodulator, and Conv\_Dec.
78
79\section{Procedure}
80\subsection{Procedure Overview}
81\begin{enumerate}
82 \item Using OEF, build the OSSIETalkStep1 waveform.
83 \item Run nodeBooter
84 \item Run the waveform
85 \item Repeat the above for OSSIETalkStep2 and OSSIETalkUSRP.
86\end{enumerate}
87If only interested to OSSIETalkUSRP, you may skip directly to that step.
88
89\subsection{Getting Started}
90\subsection{Step 1}
91\osfigvs{blockdiagram1}{Step 1 Block Diagram}{0.6}
92\subsubsection{Overview}
93In this step the waveform will be built up to the modulator and the operation of the waveform will be tested using the Channel component.
94
95\osref{blockdiagram1} provides the block diagram of the waveform. The following components are used:
96\paragraph{OSSIETalk}
97This component performs two functions:
98\begin{enumerate}
99 \item When the user presses the ``Press to talk'' button it captures audio through the microphone, applies CVSD encoding and forwards the samples to the next component.
100\item  It accepts CVSD encoded samples and plays them through the sound card.
101\end{enumerate}
102This component can be considered as the application layer interface. It is adviced that no other program is using the sound device when this component is used. You may need to adjust the microphone mixer settings in order to capture sound properly. You may look under the recording devices settings. Also it is suggested to check the ``microphone'' boost if it is available.
103
104\paragraph{PacketResizer1}
105This component ensures that its output packets are of a fixed size. It buffers or breaks appart input packets as necessary. This is useful for ensuring predictable packet sizes in the waveform chain.
106
107\paragraph{Conv\_Enc1/Conv\_Dec1}
108These components implement convolutional enconding/decoding offering a wide range of rates. In this waveform we use a $2/3$ rate codec with a contraint lenght $K=4$. The output bits size, when the encoder finishes at the zero state,would be: $\textrm{Number of output bits}=3\times \textrm{Number of input bits} /2 +3\times 4$
109
110
111\paragraph{DigitalModulator1/DigitalDemodulator1}
112Modulates/demodulates bits/symbols into symbols/bits respectively.
113\paragraph{amplifier1}
114Multiplies the input signal by a gain number. In this waveform the gain is 0.2 in order to ensure that subsequent processing of the modulator's output does not get out of the +/-32767 range of the short int datatype used.
115
116\subsubsection{Builting the waveform}
117\begin{enumerate}
118\item Start OEF
119\item File $\rightarrow$ New $\rightarrow$ OSSIE Waveform
120\item Project name: ``OSSIETalkStep1''
121\item Add the following components in the waveform panel:OSSIETalk, PacketResizer, Conv\_Enc, DigitalModulator, FrameAssembler, amplifier,Channel, DigitalDemodulator, and Conv\_Dec
122\item Add the default\_GPP\_USRP\_node to the platform panel
123\item Expand the the node, and add all the components, one by one, the the GPP device.
124\item Set the OSSIETalk component as the assemply controler
125\item Make the following connections:
126\begin{enumerate}
127 \item OSSIETalk1.to\_radio $\rightarrow$ PacketResizer1.packet\_in
128\item PacketResizer1.packet\_out  $\rightarrow$  Conv\_Enc1.bits\_to\_Enc
129\item Conv\_Enc1.encoded\_bits $\rightarrow$ DigitalModulator1.bitsin
130\item DigitalModulator1.symbolsOut $\rightarrow$ FrameAssembler1.SymbolsIn
131\item FrameAssembler1.FrameSymbolsOut $\rightarrow$ amplifier1.datain
132\item amplifer1.dataout $\rightarrow$ Channel1.data\_in
133\item Channel1.data\_out $\rightarrow$ DigitalDemodulator1.SymbolsIn
134\item DigitalDemodulator1.DataBitsOut $\rightarrow$ Conv\_Dec1.bits\_to\_dec\_in
135\item Conv\_Dec1.decoded\_bits $\rightarrow$  OSSIETalk1.from\_radio
136\end{enumerate}
137\end{enumerate}
138\subsubsection{Component Properties}
139For each component set the listed properties.
140\paragraph{PacketResizer1}
141\begin{verbatim}
142Packet Size=256
143\end{verbatim}
144
145\paragraph{Conv\_Enc1 and Conv\_Dec1}
146\begin{verbatim}
147mode=1
148rate_index=3
149\end{verbatim}
150
151\paragraph{DigitalModulato1}
152\begin{verbatim}
153ModScheme=QPSK
154\end{verbatim}
155
156
157\paragraph{amplifier1}
158\begin{verbatim}
159I_gain=0.2
160Q_gain=0.2
161\end{verbatim}
162
163\paragraph{Channel1}
164\begin{verbatim}
165\end{verbatim}
166
167
168\paragraph{DigitalDemodulator1}
169\begin{verbatim}
170DemodScheme=QPSK
171\end{verbatim}
172\subsubsection{Waveform Testing}
173Run the waveform and press the ``Push to Talk'' button while talking at the microphone. You should hear your voice from the speakers. Note that the CVSD encoding used has an inherent distorsion. At 400000 noise power (20dB SNR) the any channel distorsion should is negligible.
174Change the noise power to 1265000 (approx. 15dB SNR), the voice should be still comprehensible.
175Change the noise power to 400000 (approx. 10dB SNR), voice will come through.
176Now change the rate\_index to the convolutional encoder/decoder to 6 (1/4), now the the voice should be comprehensible again.
177
178\subsection{Step 2}
179\osfigvs{blockdiagram2}{Step 2 Block Diagram}{0.6}
180\subsubsection{Overview}
181In this step the waveform will be built up to the FrameAssembler component (TX side) and up to the AutomaticGainControl componet for the RX side. In a few words the waveform would include all the components up to the symbol level. The next step would add pulse shaping and over-the-air operation. This step still uses the Channel component for testing the waveform's operation.
182
183\osref{blockdiagram2} provides the block diagram of the waveform. The following additional components are used:
184\paragraph{FrameAssembler1}
185Adds headers for syncronization, modulation and frame size identification. It supports four frame sizes.
186
187\paragraph{FrameSynchronizer1}
188Performs carrier recovery, symbol sychnronization and extracts the frame information added by the FrameAssembler component.
189
190\paragraph{AutomaticGainControl1}
191Automatically adjusts the input signal level amplification
192
193\begin{enumerate}
194\item Start OEF
195\item File $\rightarrow$ New $\rightarrow$ OSSIE Waveform
196\item Project name: ``OSSIETalkStep2''
197\item Add the following components in the waveform panel:OSSIETalk, PacketResizer, Conv\_Enc, DigitalModulator, FrameAssembler, amplifier, Channel, AutomaticGainControl, FrameSynchronizer, DigitalDemodulator, and Conv\_Dec
198\item Add the default\_GPP\_USRP\_node to the platform panel
199\item Expand the the node, and add all the components, one by one, the the GPP device.
200\item Set the USRPTalk as the assemply controler
201\item Make the following connections:
202\begin{enumerate}
203 \item OSSIETalk1.to\_radio $\rightarrow$ PacketResizer1.packet\_in
204\item PacketResizer1.packet\_out  $\rightarrow$  Conv\_Enc1.bits\_to\_Enc
205\item Conv\_Enc1.encoded\_bits $\rightarrow$ DigitalModulator1.bitsin
206\item DigitalModulator1.symbolsOut $\rightarrow$ FrameAssembler1.SymbolsIn
207\item FrameAssembler1.FrameSymbolsOut $\rightarrow$ amplifier1.datain
208\item amplifer1.dataout $\rightarrow$ Channel1.data\_in
209\item Channel1.data\_out $\rightarrow$ Decimator1.outData
210\item Decimator1.outData $\rightarrow$ AutomaticGainControl1.data\_in
211\item AutomaticGainControl1.data\_out $\rightarrow$ FrameSynchronizer1.IF\_in
212\item FrameSynchronizer1.symbols\_out $\rightarrow$ DigitalDemodulator1.SymbolsIn
213\item DigitalDemodulator1.DataBitsOut $\rightarrow$ Conv\_Dec1.bits\_to\_dec\_in
214\item Conv\_Dec1.decoded\_bits $\rightarrow$  OSSIETalk1.from\_radio
215\end{enumerate}
216\end{enumerate}
217\subsubsection{Component Properties}
218For each component set the listed properties. For the components that are not listed, used the properties from the previous step.
219\paragraph{FrameAssembler1}
220\begin{verbatim}
221FrameSizeOption1=512
222FrameSizeOption2=1584
223FrameSizeOption3=3168
224FrameSizeOption4=6336
225mod_type=QPSK
226FrameOptionNumber=3
227\end{verbatim}
228
229
230\paragraph{AutomaticGainControl1}
231\begin{verbatim}
232rssi_pass=1
233g_max=2000
234g_min=0.5
235k_release=0.002
236k_attack=0.01
237energy_hi=10000
238energy_lo=10000
239\end{verbatim}
240
241\paragraph{FrameSynchronizer1}
242\begin{verbatim}
243BufferSize=198
244FrameSizeOption1=512
245FrameSizeOption2=1584
246FrameSizeOption3=3168
247FrameSizeOption4=6336
248Npfb=32
249beta=0.33
250m=4
251k=2
252pulse_shape=rrcos
253\end{verbatim}
254
255\subsection{Step 3}
256\osfigvs{blockdiagram3}{Block Diagram}{0.6}
257
258\subsection{Building the waveform}
259\osfig{waveformOEF}{OEF Waveform Structure}
260%\osfig{blockdiagram}{Block Diagram}
261
262\begin{enumerate}
263\item Start OEF
264\item File $\rightarrow$ New $\rightarrow$ OSSIE Waveform
265\item Project name: ``OSSIETalkUSRP''
266\item Add the following components in the waveform panel:OSSIETalk, PacketResizer, Conv\_Enc, DigitalModulator, FrameAssembler, amplifier, Interpolator, USRP\_Commander, amplifier, Decimator, AutomaticGainControl, FrameSynchronizer, DigitalDemodulator, and Conv\_Dec
267\item Add the default\_GPP\_USRP\_node to the platform panel
268\item Expand the the node, and add all the components, one by one, the the GPP device.
269\item Set the USRP\_Commander as the assemply controler
270\item Make the following connections:
271\begin{enumerate}
272 \item OSSIETalk1.to\_radio $\rightarrow$ PacketResizer1.packet\_in
273\item PacketResizer1.packet\_out  $\rightarrow$  Conv\_Enc1.bits\_to\_Enc
274\item Conv\_Enc1.encoded\_bits $\rightarrow$ DigitalModulator1.bitsin
275\item DigitalModulator1.symbolsOut $\rightarrow$ FrameAssembler1.SymbolsIn
276\item FrameAssembler1.FrameSymbolsOut $\rightarrow$ amplifier1.datain
277\item amplifer1.dataout $\rightarrow$ Interpolator1.inData
278\item Interpolator1.outData  $\rightarrow$ USRP1.TX\_Data
279\item USRP\_Commander1.TX\_Control  $\rightarrow$  USRP1.TX\_Control
280\item USRP\_Commander1.RX\_Control  $\rightarrow$  USRP1.RX\_Control
281\item amplifier2.dataIn  $\rightarrow$  USRP1.RX\_Data\_1
282\item amplifier2.dataOut $\rightarrow$ Decimator1.inData
283\item Decimator1.outData $\rightarrow$ AutomaticGainControl1.data\_in
284\item AutomaticGainControl1.data\_out $\rightarrow$ FrameSynchronizer1.IF\_in
285\item FrameSynchronizer1.symbols\_out $\rightarrow$ DigitalDemodulator1.SymbolsIn
286\item DigitalDemodulator1.DataBitsOut $\rightarrow$ Conv\_Dec1.bits\_to\_dec\_in
287\item Conv\_Dec1.decoded\_bits $\rightarrow$  OSSIETalk1.from\_radio
288\end{enumerate}
289\end{enumerate}
290\subsubsection{Component Properties}
291For each component set the listed properties.
292\paragraph{PacketResizer1}
293\begin{verbatim}
294Packet Size=256
295\end{verbatim}
296
297\paragraph{Conv\_Enc1 and Conv\_Dec1}
298\begin{verbatim}
299mode=1
300rate_index=3
301\end{verbatim}
302
303\paragraph{DigitalModulato1}
304\begin{verbatim}
305ModScheme=QPSK
306\end{verbatim}
307
308\paragraph{FrameAssembler1}
309\begin{verbatim}
310FrameSizeOption1=512
311FrameSizeOption2=1584
312FrameSizeOption3=3168
313FrameSizeOption4=6336
314mod_type=QPSK
315FrameOptionNumber=3
316\end{verbatim}
317
318\paragraph{amplifier1}
319\begin{verbatim}
320I_gain=0.2
321Q_gain=0.2
322\end{verbatim}
323
324\paragraph{Interpolator1}
325\begin{verbatim}
326beta=0.33
327m=4
328pulse_shape=rrcos
329InterpFactor(k)=8
330\end{verbatim}
331
332\paragraph{USRP\_Commander1}
333\begin{verbatim}
334rx_start=1
335tx_start=1
336rx_gain=1
337rx_size=2048
338rx_decim=256
339tx_interp=512
340tx_freq=462.5625e6
341rx_freq=462.5625e6
342\end{verbatim}
343
344\paragraph{amplifer2}
345\begin{verbatim}
346I_gain=1
347Q_gain=-1
348\end{verbatim}
349
350\paragraph{Decimator1}
351\begin{verbatim}
352Filter Type=IIR
353DecimateBy=4
354\end{verbatim}
355
356\paragraph{AutomaticGainControl1}
357\begin{verbatim}
358rssi_pass=1
359g_max=2000
360g_min=0.5
361k_release=0.002
362k_attack=0.01
363energy_hi=10000
364energy_lo=10000
365\end{verbatim}
366
367\paragraph{FrameSynchronizer1}
368\begin{verbatim}
369BufferSize=198
370FrameSizeOption1=512
371FrameSizeOption2=1584
372FrameSizeOption3=3168
373FrameSizeOption4=6336
374Npfb=32
375beta=0.33
376m=4
377k=2
378pulse_shape=rrcos
379\end{verbatim}
380
381\paragraph{DigitalDemodulator1}
382\begin{verbatim}
383DemodScheme=QPSK
384\end{verbatim}
385\end{document}
Note: See TracBrowser for help on using the browser.