A Software Defined Radio Implementation for Voice Transmission over Wireless Ad-hoc Networks Jason Tran SURF-IT 2009 Fellow Mentors: Dr. Homayoun Yousefi’zadeh Dr. Hamid Jafarkhani Graduate Student: Ala Khalifeh Introduction – Most radios today can only serve as one kind of radio. • Cell phones cell phones • Walkie talkies walkie talkies • FM Transmitter FM Receiver – Imagine a radio that can be programmed. – The Software Defined Radio (SDR) • Example: Gobi - Qualcomm’s SDR can switch between EVDO (Verizon/Sprint) and HSDPA (AT&T) My SURF-IT Research • We’ve implemented a voice transmission scheme over a software defined radio platform using the Universal Software Radio Peripheral (USRP) programmed by GNU Radio. • The goal of this project was to optimize voice transmission using voice codecs and forward error correction (FEC). These will be discussed in more detail later. Motivation/Definitions • Why Reprogram the Walkie Talkie? • Fundamentally we are going from Analog -> Digital (like our new TV broadcasts). • Three Advantages: – Efficient: less data is needed to be sent (compression) – Reliable: digital can overcome errors/noise – Flexible: no needed extra hardware to change signals which could save money Analog vs. Digital What’s the Difference?! Converting to Digital (aka Sampling) • We only care about information at certain points. • Information is now “discrete” or “digital”, but still transmitted in analog. Our Software Defined Radio (SDR) • Our SDR = GNU Radio on Linux (Software) + Laptop USRP + • GNU Radio is an open source Linux software used to program the USRP. • The USRP consists of digital to analog converters and a radio frequency front-end that sends the data over the air. Network Modes Intranet (Infrastructure) Ad-Hoc The Project (Streaming Voice) • We stream by packetizing a certain amount of data. – For example 6000Bytes or 6KBytes 1500Bytes 1500 Bytes 1500 Bytes 1500 Bytes • Two usual transport protocols used for streaming are transmission control protocol (TCP) and user datagram protocol (UDP). – TCP: sends a packet and waits for acknowledgement before sending another – UDP: continuously sends without acknowledgement Transmission Diagram Transmission Errors • Two types we are concerned about: – Packet Erasures (late or lost packets) – Bit errors • Bit Errors (flipped or unknown bits) – Packets [3 byte example(8 bits per byte)] 10101001|00010100|10101010 Regular Packet 10x010x1|x0010x00|10x010x0 Packet with Errors One Byte Error Handling • Voice Codec: Speex (data compression) – Uses less bandwidth and reduces packet erasures – Variable Bitrate and Echo Cancellation • Forward Error Correction (FEC): Reed Solomon Codes – Creates redundant bits: • Received “000” is seen as “0” • Received “010” is seen as “0” “110” is seen as “1” “011” is seen as “1” • With these, we’re able to optimize voice streaming. Additional and Future Work • This project is one part of a larger project of delivering multimedia content in real-time (voice, audio, video) and non-real time (HTTP and FTP) on a Mobile Ad-hoc Network (MANET). Applications • Mobile ad-hoc networks (MANETs) can establish a network where there is no infrastructure – Military (Joint Tactical Radio System (JTRS) ) – Emergencies – Medical • SDRs enable“cognitive” radios – Self-adjusting radios Thank You! Thank you SURF-IT and UROP coordinators! Questions? Future Work and Applications • Other current applications include cellular GSM base station, GPS receiver, FM transmitter/receiver, digital television decoder, and passive radar. Metrics for Measuring Transmission Performance • Packet Loss/Throughput • Perceptual Evaluation of Speech Quality – Family of standards for a test methodology of evaluating speech quality. – Compare speech before and after transmission. – Mean Opinion Score (MOS) • Packet Delay Variation – Jitter – IP Packet Delay Variation for IP Performance Metrics (IPPM) Performance Analysis • We know what link speed we will choose (1Mbps) • In real life, we’ll have a lot of background traffic. • We want to measure performance of voice stream under different network before and after using error handling schemes (encoder/FEC). • Experiment setup: Measure voice transmission from computer 1 to computer 2. Computer 1 Computer 2 Voice Transmission Computer 3 Background Traffic (200/400/600/800kbps) Throughput vs. Raw Bitrate Packet Error Rate (PER) vs. Raw Bitrate Mean Opinion Score Mean Opinion Score (0-5) 5 4.5 4 3.5 MOS 3 2.5 MOS 2 1.5 1 0.5 0 0 100 200 300 400 500 600 Background Traffic (kbps) 700 800 900 1000 1100 End to End Delay Avg Delay vs Background Traffic 7500 7000 6500 6000 5500 Avg Delay (ms) 5000 4500 4000 Series1 3500 3000 2500 2000 1500 1000 500 0 0 100 200 300 400 500 600 Background Traffic 700 800 900 1000 1100 Jitter Avg Jitter vs. Background Traffic 1400 1300 1200 1100 1000 Avg Jitter (ms) 900 800 700 Series1 600 500 400 300 200 100 0 0 100 200 300 400 500 600 Background Traffic (kbps) 700 800 900 1000 1100 Networking and the OSI Model Linux Reed Solomon Codes GNU Radio USRP