OFDM, Mobile Software Development Framework - PowerPoint PPT Presentation

Loading...

PPT – OFDM, Mobile Software Development Framework PowerPoint presentation | free to download - id: 6bb8f2-ZmM0N



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

OFDM, Mobile Software Development Framework

Description:

OFDM, Mobile Software Development Framework 9/27/2012 Y. Richard Yang * – PowerPoint PPT presentation

Number of Views:21
Avg rating:3.0/5.0
Date added: 10 August 2019
Slides: 98
Provided by: YangRich6
Learn more at: http://zoo.cs.yale.edu
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: OFDM, Mobile Software Development Framework


1
OFDM, Mobile Software Development Framework
9/27/2012 Y. Richard Yang
2
Admin.
  • Homework 2 to be posted by Friday
  • Start to think about project

3
Recap
  • Inter-Symbol Interference (ISI)
  • Handle band limit ISI
  • Handle multipath ISI
  • Viterbi
  • problems Its complexity grows exponentially
    with D (the number of multipaths taps relative
    to the symbol time)
  • Q how to reduce D?

4
OFDM Basic Idea
  • Uses multiple carriers modulation (MCM)
  • each carrier (called a subcarrier) uses a low
    symbol rate
  • for N parallel subcarriers, the symbol time can
    be N times longer
  • spread symbols across multiple subcarriers
  • also gains frequency diversity

5
Benefit of Symbol Rate on ISI
6
Multiple Carrier Modulation
7
Multiple Carrier Modulation (MCM) Problem
  • Despite wave shaping, there can be leak from one
    subcarrier to another subcarrier
  • Conventional design guard bands to avoid
    interference among subcarriers
  • Guard band wastes spectrum

j
i
8
Objective Avoid subcarrier interference
  • Interference of subcarrier i on subcarrier j
  • Assume no pulse wave shaping, matched filter

j
i
Condition for the interference to be always 0?
9
Objective Avoid subcarrier interference
if integer number of cycles in 0, T
cycles in T is T f gt T f integer
10
OFDM Key Idea Orthogonal Subcarriers
  • Each subcarrier frequency is chosen so that an
    integral number of cycles in a symbol period,
    i.e.,
  • subcarrier freq k 1/T

They do not need to have the same phase, so long
integral number of cycles in symbol time T !
11
OFDM Modulation
12
Orthogonal Frequency Division Multiplexing
  • OFDM allows overlapping subcarriers frequencies

http//www1.linksys.com/products/images/ofdm.gif
802.11a
13
OFDM Implementation
  • Take N symbols and place one symbol on each
    subcarrier (freq.)
  • Q complexity of the implementation strategy?

Freq0
FreqN-1
14
OFDM Implementation Issue
  • Hardware implementation can be expensive if we
    use one oscillator for each subcarrier
  • Software implementation requires N
    multiplications per time output gt N2 multi. per
    N outputs

Freq0
FreqN-1
15
OFDM Key Idea 2
  • Assume N outputs per symbol time T, fsc1/T
  • Consider data as coefficients in the frequency
    domain, use inverse Fourier transform to generate
    time-domain sequence

16
OFDM Implementation FFT
17
OFDM Implementation
  • Parallel data streams are used as inputs to an
    IFFT
  • IFFT does multiplexing and modulation in one step
    !

18
Guard Interval Removing ISI
  • Orthogonal subcarriers remove inter-carrier
    interference
  • Slow symbol rate reduces inter-symbol
    interference, but may still have ISI
  • Basic idea of GI skip the first part damaged
    signal

More details Chap. 13.1.4 Gast
19
OFDM Guard Interval
http//www.dsplog.com/2008/02/17/cylcic-prefix-in-
orthogonal-frequency-division-multiplexing/
20
OFDM Implementation
http//proquest.safaribooksonline.com/0596100523?t
ocviewtrue
21
OFDM in 802.11a
  • Subcarrier frequency spacing 312.5KHz
  • 1/312.5KHz 3.2us
  • 64 samples FFT
  • 16 samples Guard Interval

http//standards.ieee.org/getieee802/download/802.
11a-1999.pdf
22
Other Multipath Techniques
  • There are other techniques to handle multipath
    such as Rake Receiver
  • See backup slides for some details

23
Summary of PHY
24
Wireless PHY
PHY
http//setemagali.com/2009/10/12/climbing-the-moun
tain-everyday/
25
Big Picture
Applications
Wireless/Mobile Application Development Framework
Foundational Services Communications, Location,
Service Discovery, UI/Media, Power Management,
Security
26
Overview
  • Mobile/Wireless software development framework
    for mobile wireless applications is a quite large
    topic
  • We have already seen Gnuradio as an example
    framework
  • We will cover more examples
  • TinyOS, J2ME, Android, IOS
  • Approach for designing/evaluating each software
    development framework
  • Focus on the key concepts introduced by each
    framework

27
Outline
  • Admin and recap
  • Mobile/wireless development framework
  • GNURadio

28
GNURadio Design Objective
  • A software development toolkit that provides
    signal processing blocks to implement
    software-defined radio systems.

29
Outline
  • Admin and recap
  • Mobile/wireless development framework
  • GNURadio
  • Hardware setting

30
GNURadio Hardware Arch
Hardware Frontend
Host Computer
RF Frontend (Daugtherboard)
ADC/DAC and Digital Frontend (USRP)
GNU Radio Software
http//mobiledevices.kom.aau.dk/fileadmin/mobilede
vices/teaching/software_testing/Gnu_radio_lecture.
pdf
31
Outline
  • Admin and recap
  • Mobile/wireless development framework
  • GNURadio
  • Hardware setting
  • Software concepts

32
Basic Software Concepts
  • Block
  • Flow graph

33
Basic Software Concepts
  • http//gnuradio.org/doc/doxygen/classgr__block.htm
    l
  • gr_basic_block (name, in/out signature, msg
    queue)
  • gr_block (Leaf block key functions
    forecast/general_work)
  • Example http//www.gnu.org/software/gnuradio/doc/
    howto-write-a-block.html
  • gr_hier_block2 (container block key functions
    connect/disconnect/lock/unlock)
  • gr_top_block (flow graph start/stop/wait)

34
Software/Execution Model
  • Software model
  • Python
  • Application management (e.g., GUI)
  • Flow graph construction
  • Non-streaming code (e.g., MAC-layer)
  • C
  • Signal processing blocks
  • Certain routines also coded in assembly
  • Execution model
  • Python thread for each top_block

Python Application development Flow graph
construction
C Signal processing blocks
Discussion benefits/issues of the hybrid
software structure?
35
Summary GNURadio
  • Interesting/key software design techniques you
    learned from GNURadio?

36
Outline
  • Admin and recap
  • Mobile/wireless development framework
  • GNURadio
  • Hardware setting
  • Software concepts
  • TinyOS

37
Design Goal
  • A free and open source component based operating
    system and platform targeting wireless sensor
    networks (WSNs)
  • Example app
  • Environment monitoring, e.g.,
  • measure temperature, lighting values/events
  • periodically transmit measurements/events to a
    base station
  • forward data for other nodes that are out of
    range of the base station

http//www.tinyos.net/tinyos-1.x/doc/tutorial/
38
Hardware
  • Assembled from off-the-shelf components
  • 4Mhz, 8bit MCU (ATMEL)
  • 512 bytes RAM, 8KB ROM
  • Devices
  • serial Port
  • temperature sensor light sensor
  • 900Mhz Radio (RF monolithics)
  • 10-100 ft. range
  • LED outputs

1.5 x 1.5
39
Schematic Diagram of a Mote
40
Outline
  • Admin and recap
  • Mobile/wireless development framework
  • GNURadio
  • Hardware setting
  • Software concepts
  • TinyOS
  • Hardware setting
  • Software concepts

41
Requirements on Software Dev. Framework
  • Flexible configuration of attached devices
  • Small foot print
  • devices have limited memory and power resources

42
TinyOS Software Concept
  • TinyOS Generate customized OS application for
    each given scenario
  • support one application at a time but flexible
    reprogramming

43
Schematic Diagram
44
TinyOS Software Concepts
  • A TinyOS consists of one or more components
    linked together
  • software components motivated by hardware
    component
  • Each component specifies that
  • it provides some interfaces
  • allows other components to control it
  • also uses some interfaces
  • control other components

45
Interface
  • An interface declares
  • a set of functions called commands that provider
    must implement
  • another set of functions called events that the
    interface user must implement

A uses interfaces I1 and I2
I2
I1
commands
events
commands
events
B provides I1
C provides I2
C provides I3
46
Interface Examples
StdControl.nc interface StdControl   command
result_t init()   command result_t start()  
command result_t stop()
Timer.nc interface Timer command result_t
start( char type, uint32_t interval)  
command result_t stop()   event result_t
fired()
ADC.nc interface ADC async command result_t
getdata()   async command result_t
getContinuousData()   event result_t
dataReady(uint 16_t data)
47
TinyOS Component Implementation
  • Component contains
  • commands and event handlers
  • can invoke lower level commands, but cannot block
  • frame (storage)
  • statically allocated, fixed size to know memory
    requirement and avoid overhead of dynamic
    allocation

Component
Internal State
Commands
Events
48
Linking Components
  • Two types of components
  • modules individual components
  • configurations assemble components together,
    connecting interfaces (objects) used by
    components to interfaces (objects) provided by
    others

49
Example Application
  • A simple TinyOS application which periodically
    reads in the light intensity value, computes a
    moving average, displays it on the LED

See SenseTaskM.nc SenseTask.nc
50
Running tinyOS Program
  • make mica
  • ncc -o main.exe -targetmica SenseTask.nc
  • avr-objcopy --output-targetsrec main.exe
    main.srec
  • Use uisp to install

51
TinyOS Execution Model
  • Concurrency model only two threads
  • long running tasks that can be interrupted by
    hardware event handlers
  • Tasks perform the primary computation work
  • commands and event handlers post tasks
  • call lower level commands
  • signal higher level events
  • schedule other tasks within a component
  • Each task is atomic with respect to other tasks
  • run to completion, but can be preempted by events
  • the task scheduler is a simple FIFO scheduler

52
A More Complete Sample Application
  • Sensor network monitoring
  • monitor temperature and light conditions
  • periodically transmit measurements to a base
    station
  • sensors can forward data for other sensors that
    are out of range of the base station
  • dynamically determine the correct routing
    topology for the network

53
Internal Component Graph
54
Message Send Transition
  • Total propagation delay up the 5 layer radio
    communication stack is about 80 instructions

55
Evaluation Storage
Component Name Code Size (bytes) Data Size (bytes)
Routing AM_dispatch AM_temperature AM_light AM RADIO_packet RADIO_byte RFM Light Temp UART UART_packet I2C 88 40 78 146 356 334 810 310 84 64 196 314 198 0 0 32 8 40 40 8 1 1 1 1 40 8
Processor_init TinyOS scheduler C runtime 172 178 82 30 16 0
Total 3450 226
  • Scheduler only occupies 178 bytes
  • Complete application only requires 3 KB of
    instruction memory and 226 bytes of data (less
    than 50 of the 512 bytes available)
  • Only processor_init, TinyOS scheduler, and C
    runtime are required

56
Evaluation Timing
Operations Cost (cycles) Time (µs) Normalized to byte copy
Byte copy 8 2 1
Post an Event Call a Command Post a task to scheduler Context switch overhead 10 10 46 51 2.5 2.5 11.5 12.75 1.25 1.25 6 6
Interrupt (hardware cost) 9 2.25 1
Interrupt (software cost) 71 17.75 9
57
Summary TinyOS
ADC.nc interface ADC async command result_t
getdata()   async command result_t
getContinuousData()   event result_t
dataReady(uint 16_t data)
  • Components
  • provide commands and require callback hooks for
    event-driven programming
  • Configurations
  • Link components
  • TinyOS
  • an app (configuration) at a time, linking only
    necessary components
  • Two threads exec
  • one for event
  • one for task

configuration SenseTask // this module does
not provide any interfaces implementation
components Main, SenseTaskM, LedsC, TimerC,
DemoSensorC as Sensor Main.StdControl -gt
TimerC Main.StdControl -gt Sensor
Main.StdControl -gt SenseTaskM
SenseTaskM.Timer -gt TimerC.Timerunique("Timer")
SenseTaskM.ADC -gt Sensor SenseTaskM.Leds -gt
LedsC
58
Discussion Compare TinyOS/GNURadio
  • What are some similar software concepts?
  • What are some differences?

59
Discussion
  • Can we use GNURadio/TinyOS for writing mobile
    applications for mobile phones, or in other
    words, what are missing?

60
Java2 Micro Edition (J2ME)
61
Outline
  • Admin and recap
  • Mobile/wireless development framework
  • GNURadio
  • TinyOS
  • J2ME

62
Java Platforms
  • Java2 is divided into three platforms
  • J2EE (Java2 Enterprise Edition)
  • business applications
  • J2SE (Java2 Standard Edition)
  • general applications
  • J2ME (Java2 Micro Edition)
  • small devices such as mobile phone, PDA, car
    navigation
  • Oracles claims on Java on mobile devices
  • http//www.java.com/en/about/

63
J2ME Basic Concepts Versioning
  • To accommodate heterogeneous mobile devices,
    define configurations and profiles
  • A configuration provides fundamental services for
    a broad category of devices (e.g., lang, io,
    util)
  • A profile supports higher-level services common
    to a more specific class of devices or market
    (e.g., life cycle, GUI)
  • An optional package adds specialized services
    that are useful on devices of many kinds, but not
    necessary on all of them

http//developers.sun.com/techtopics/mobility/gets
tart/articles/survey/
64
J2ME
128-512K mem 16-32 bit proc
Upto 2M mem 32 bit proc
65
Example J2ME Configurations
  • Connected Limited Device Configuration (CLDC)
  • 160 KB to 512 KB of total memory available
  • 16-bit or 32-bit processor
  • low power consumption and often operating with
    battery power
  • connectivity with limited bandwidth
  • examples cell phones, certain PDAs
  • Connected Device Configuration (CDC)
  • 2 MB or more memory for Java platform
  • 32-bit processor
  • high bandwidth network connection, most often
    using TCP/IP
  • examples set-top boxes, certain PDAs

66
CLDC Available Packages
  • java.lang
  • java.util
  • java.io
  • javax.microedition.io

67
CLDC Classes
  • Boolean
  • Byte
  • Character
  • Class
  • Integer
  • Long
  • Math
  • Object
  • Runnable
  • Runtime
  • Short
  • String
  • StringBuffer
  • System
  • Thread
  • Throwable
  • ByteArrayOutputStream
  • ByteArrayInputStream
  • DataOuput
  • DataInput
  • DataInputStream
  • DataOutputStream
  • InputStream
  • InputStreamReader
  • OutputStream
  • OutputStreamWriter
  • PrintStream
  • Reader
  • Writer
  • Calendar
  • Date
  • Enumeration
  • Hashtable
  • Random
  • Stack
  • TimeZone
  • Vector

java.lang
java.util
java.io
68
Example J2ME Profiles
  • Mobile Information Device Profile (MIDP)
  • GUI, multimedia and game functionality,
    end-to-end security, and greater networked
    connectivity
  • mobile phones and entry level PDAs
  • Foundation Profile
  • set of Java APIs that support resource-constrained
    devices without a standards-based GUI system
  • Personal Profile
  • Full set of AWT APIs, including support for
    applets and Xlets
  • CDC Foundation Profile Personal Profile for
    high-end PDA

69
Mobile Phone Framework
70
MIDP Hardware
  • Memory (added to CLDC memory)
  • 128 KB non-volatile for MIDP components
  • 8 KB non-volatile for application persistent data
  • 32 KB volatile for KVM
  • Display
  • screen 96x54
  • display depth 1-bit
  • pixel shape (aspect ratio) 11

71
MIDP Hardware
  • Input (one or more)
  • one-handed keyboard (ITU-T phone keypad)
  • two-handed keyboard (QWERTY keyboard)
  • or touch screen
  • Networking
  • two-way
  • wireless
  • possibly intermittent
  • limited bandwidth

72
MIDP Packages
  • javax.microedition.lcdui.game
  • javax.microedition.media
  • javax.microedition.media.control
  • javax.microedition.pki
  • java.io
  • java.lang
  • java.util
  • javax.microedition.io
  • javax.microedition.lcdui
  • javax.microedition.rms
  • javax.microedition.midlet

addition in version 2.0
version 1.0
73
MIDP Technology Stack
74
MIDlet
  • GUI based
  • Each MIDP has one instance of Display
  • Display.getDisplay(this) to get the manager
  • At any instance of time at most one Displayable
    object can be shown on the display device and
    interact with user
  • display.setCurrent(ltDisplayable objectgt)

75
MIDlet
  • An MIDP application is called a MIDlet
  • similar to the J2SE applet
  • A MIDlet moves from state to state in the
    lifecycle, as indicated
  • start acquire resources and start executing
  • pause release resources and become quiescent
    (wait)
  • destroy release all resources, destroy threads,
    and end all activity

pauseApp
startApp
destroyApp
destroyApp
76
MIDP Visual Display
  • Each MIDP has one instance of Display
  • Display.getDisplay(this) to get the manager
  • At any instance of time at most one Displayable
    object can be shown on the display device and
    interact with user
  • display.setCurrent(ltDisplayable objectgt)

77
MIDP Visual Display
  • Displayable
  • Canvas
  • GameCanvas
  • Screen
  • Alert, List, TextBox, Form
  • Form can contain multiple form items for
    organization
  • Labels, Image Items, String Items, Text Fields,
    Date Fields, Gauges, Choice Groups

78
MIDP User Interaction
  • Displayable objects can declare commands and
    declare a command listener
  • addCommand(Command cmd)
  • addCommandListener()
  • Command(ltlabelgt, lttypegt, ltprioritygt)
  • Type BACK, CANCEL, EXIT, HELP, ITEM, OK, SCREEN,
    and STOP

79
HelloWorldMIDlet.java
import javax.microedition.midlet. import
javax.microedition.lcdui. public class
HelloWorldMIDlet extends MIDlet implemen
ts CommandListener private Command
exitCommand private Display display private
TextBox t public HelloWorldMIDlet()
display Display.getDisplay(this) exitCom
mand new Command("Exit", Command.EXIT, 2) t
new TextBox(CS434", "Hello World!", 256,
0) t.addCommand(exitCommand) t.setCommandL
istener(this) public void startApp()
display.setCurrent(t) public void pauseApp()
public void destroyApp(boolean
unconditional) public void
commandAction(Command c, Displayable s) if
(c exitCommand) destroyApp(false) no
tifyDestroyed()
80
MIDP Persistent State
  • Record store defined in javax.microedition.rms
  • Record store identified by name
  • static String listRecordStores()
  • recordStore RecordStore.openRecordStore("scores"
    , true)
  • recordId addRecord(byte data, int offset,
    int numBytes)
  • getRecord(int recordId)

81
Summary J2ME
  • Scale down a popular programming environment to
    ease learning
  • Use virtual machines to mask device heterogeneity
  • Use configuration/profiling to handle device
    heterogeneity and avoid using lowest common
    denominator
  • MIDLet to manage app life cycle
  • Displayable to visual display, commands and
    provides command listener
  • Introduce persistent record store

82
Windows .NET Compact Framework
  • Similar to J2ME
  • Scales down a popular programming environment to
    ease learning
  • the .NET CF is a subset of the full .NET
    framework with some additions
  • designed for resource constrained devices
  • 1,400 classes for .NET CF vs. 8,000 for full
  • 27 UI controls for .NET CF vs. 52 for full
  • 1.5 MB for .NET CF vs. 30 MB for full
  • Uses versioning to avoid using lowest common
    denominator
  • pocket PC
  • pocket PC phone version
  • smart phone version
  • Uses virtual machines to mask device
    heterogeneity
  • programming languages compile to MSIL
  • MSIL is JIT compiled on the device
  • MSIL code is smaller than native executables
  • MSIL allows your code to be processor independent

83
Andriod
http//developer.android.com/index.html
84
Android Features
  • Linux kernel as foundation
  • Java based framework (J2SE not J2ME)
  • Dalvik Virtual machine
  • Nice features
  • Touch screen, accelerometer, compass, microphone,
    camera, GPS,
  • GSM, EDGE, and 3G networks, WiFi, Bluetooth, Near
    field communications
  • Media, SQLite, WebKit, SSL
  • Location-based service, map (Google API)

85
Andriod
86
Activity
  • A single, focused thing that the user can do.
  • Interaction with users creating a window to
    place UI views
  • full-screen windows, floating windows, embedded
    inside of another activity

87
  • Android Activity Life cycle

88
View
  • A view component is a building block for user
    interface components.
  • Widget Toolbox
  • TextView, EditText, Button, Form, TimePicker
  • ListView
  • Layout
  • Positions of controls
  • LinearLayout, Relativelayout

http//developer.android.com/guide/tutorials/views
/index.htm
89
Rake Receiver
90
Multipath Diversity Rake Receiver
  • Instead of considering delay spread as an issue,
    use multipath signals to recover the original
    signal
  • Used in IS-95 CDMA, 3G CDMA, and 802.11
  • Invented by Price and Green in 1958
  • R. Price and P. E. Green, "A communication
    technique for multipath channels," Proc. of the
    IRE, pp. 555--570, 1958

91
Multipath Diversity Rake Receiver
LOS pulse
multipath pulses
  • Use several "sub-receivers" each delayed slightly
    to tune in to the individual multipath components
  • Each component is decoded independently, but at a
    later stage combined
  • this could very well result in higher SNR in a
    multipath environment than in a "clean"
    environment

92
Rake Receiver Blocks
Correlator
Combiner
Finger 1
Finger 2
Finger 3
93
Rake Receiver Matched Filter
  • Impulse response measurement
  • Tracks and monitors peaks with a measurement rate
    depending on speeds of mobile station and on
    propagation environment
  • Allocate fingers largest peaks to RAKE fingers

94
Rake Receiver Combiner
  • The weighting coefficients are based on the
    power or the SNR from each correlator output
  • If the power or SNR is small out of a particular
    finger, it will be assigned a smaller weight

95
Discussion
  • What are major considerations in designing a
    software environment for mobile wireless
    applications for mobile devices?

96
Mobile Programming Requirements
  • Handle heterogeneous devices/configurations
  • Be extremely efficiency on using resources
    (memory, battery, )
  • Easy programming for event-driven programming

97
Comparison PAH95
MCM is OFDM
About PowerShow.com