Wireless Communications with GNU SDR. Writing a signal processing block As mentioned earlier, the signal.

Slides:



Advertisements
Similar presentations
Lecture 7: Basis Functions & Fourier Series
Advertisements

Image Enhancement in the Frequency Domain (2)
GG 313 Lecture 25 Transform Pairs and Convolution 11/22/05.
Leo Lam © Signals and Systems EE235. Transformers Leo Lam ©
11/15/2006 Ch 7 System Consideration- Paul Lin 1 ECET 307 Analog Networks Signal Processing Ch 7 System Considerations 1 of 3 Fall 2006
Review of Frequency Domain
EE-2027 SaS 06-07, L11 1/12 Lecture 11: Fourier Transform Properties and Examples 3. Basis functions (3 lectures): Concept of basis function. Fourier series.
Lecture 4: Linear Systems and Convolution
EECS 20 Chapter 8 Part 21 Frequency Response Last time we Revisited formal definitions of linearity and time-invariance Found an eigenfunction for linear.
Sampling, Reconstruction, and Elementary Digital Filters R.C. Maher ECEN4002/5002 DSP Laboratory Spring 2002.
Lecture 14: Laplace Transform Properties
APPLICATIONS OF FOURIER REPRESENTATIONS TO
Lecture 9: Fourier Transform Properties and Examples
Lecture 6: Linear Systems and Convolution
Leo Lam © Signals and Systems EE235 Lecture 27.
Leo Lam © Signals and Systems EE235. Leo Lam © Fourier Transform Q: What did the Fourier transform of the arbitrary signal say to.
The sampling of continuous-time signals is an important topic It is required by many important technologies such as: Digital Communication Systems ( Wireless.
1 Signals & Systems Spring 2009 Week 3 Instructor: Mariam Shafqat UET Taxila.
EE3010 SaS, L7 1/19 Lecture 7: Linear Systems and Convolution Specific objectives for today: We’re looking at continuous time signals and systems Understand.
Time-Domain Representations of LTI Systems
Time Domain Representation of Linear Time Invariant (LTI).
Wireless PHY: Modulation and Demodulation Y. Richard Yang 09/11/2012.
CS 179: GPU Computing Lecture 3 / Homework 1. Recap Adding two arrays… a close look – Memory: Separate memory space, cudaMalloc(), cudaMemcpy(), … – Processing:
1 Functions 1 Parameter, 1 Return-Value 1. The problem 2. Recall the layout 3. Create the definition 4. "Flow" of data 5. Testing 6. Projects 1 and 2.
CISE315 SaS, L171/16 Lecture 8: Basis Functions & Fourier Series 3. Basis functions: Concept of basis function. Fourier series representation of time functions.
(Lecture #08)1 Digital Signal Processing Lecture# 8 Chapter 5.
Chapter 6 Digital Filter Structures
Lecture 24: CT Fourier Transform
Wireless Communication with GNU SDR. A simplified wireless communication scheme.
ECE 4710: Lecture #6 1 Bandlimited Signals  Bandlimited waveforms have non-zero spectral components only within a finite frequency range  Waveform is.
Signals & systems Ch.3 Fourier Transform of Signals and LTI System 5/30/2016.
Fourier Analysis of Discrete-Time Systems
BYST CPE200 - W2003: LTI System 79 CPE200 Signals and Systems Chapter 2: Linear Time-Invariant Systems.
ECE 4710: Lecture #5 1 Linear Systems Linear System Input Signal x(t) Output Signal y(t) h(t)  H( f ) Voltage Spectrum (via FT) AutoCorrelation Function.
Course Outline (Tentative) Fundamental Concepts of Signals and Systems Signals Systems Linear Time-Invariant (LTI) Systems Convolution integral and sum.
Chapter 2. Signals and Linear Systems
Physical Layer Continued. Review Discussed how to design the communication scheme depending on the physical mediums – pulling voltage up and down for.
EEE 503 Digital Signal Processing Lecture #2 : EEE 503 Digital Signal Processing Lecture #2 : Discrete-Time Signals & Systems Dr. Panuthat Boonpramuk Department.
ES97H Biomedical Signal Processing
SURF 2015 lecture: Jun 24, 2015 Koji Arai – LIGO Laboratory / Caltech LIGO-G v1.
Course Outline (Tentative) Fundamental Concepts of Signals and Systems Signals Systems Linear Time-Invariant (LTI) Systems Convolution integral and sum.
Linear filtering based on the DFT
11 Lecture 2 Signals and Systems (II) Principles of Communications Fall 2008 NCTU EE Tzu-Hsien Sang.
Lecture 5 – 6 Z - Transform By Dileep Kumar.
Signals and Systems Analysis NET 351 Instructor: Dr. Amer El-Khairy د. عامر الخيري.
ECE 8443 – Pattern Recognition ECE 3163 – Signals and Systems Objectives: Frequency Response Response of a Sinusoid DT MA Filter Filter Design DT WMA Filter.
Signals and Systems Lecture #6 EE3010_Lecture6Al-Dhaifallah_Term3321.
EEE Chapter 6 Random Processes and LTI Huseyin Bilgekul EEE 461 Communication Systems II Department of Electrical and Electronic Engineering Eastern.
Eeng360 1 Chapter 2 Linear Systems Topics:  Review of Linear Systems Linear Time-Invariant Systems Impulse Response Transfer Functions Distortionless.
Description and Analysis of Systems Chapter 3. 03/06/06M. J. Roberts - All Rights Reserved2 Systems Systems have inputs and outputs Systems accept excitation.
Chapter 2. Signals and Linear Systems
ENEE 322: Continuous-Time Fourier Transform (Chapter 4)
Leo Lam © Signals and Systems EE235 Lecture 26.
Math for CS Fourier Transforms
بسم الله الرحمن الرحيم Digital Signal Processing Lecture 14 FFT-Radix-2 Decimation in Frequency And Radix -4 Algorithm University of Khartoum Department.
Time Domain Representations of Linear Time-Invariant Systems
Lecture 7: Basis Functions & Fourier Series
Signals & systems Ch.3 Fourier Transform of Signals and LTI System
Digital Signal Processing
Lecture 12 Linearity & Time-Invariance Convolution
Signals and Systems EE235 Lecture 26 Leo Lam ©
Description and Analysis of Systems
4.1 DFT In practice the Fourier components of data are obtained by digital computation rather than by analog processing. The analog values have to be.
UNIT V Linear Time Invariant Discrete-Time Systems
Advanced Digital Signal Processing
Chapter 2 Linear Systems
HKN ECE 210 Exam 3 Review Session
Signals and Systems Revision Lecture 1
Lecture 4: Linear Systems and Convolution
Carrier Phase Tracking, Timing Synchronization, Equalization
Presentation transcript:

Wireless Communications with GNU SDR

Writing a signal processing block As mentioned earlier, the signal processing is carried out by the signal processing blocks. The signal processing blocks are written in C++. Each block has input ports and output ports. A block is fed with input data and will spit out output data. Multiple blocks are connected by the flow graph. Each block runs *in parallel* supported by threads. So keep in mind that you are writing a parallel program! There is a central scheduler which sets up buffers between the blocks and determines how much data each block should consume. Each block should also tell the scheduler how much data it has produced. It is the central scheduler’s job to keep the flow running without stalling. But you need to tell the scheduler the correct information.

SPB Any block is directly or indirectly derived from the gr_block class. To specify the input/output ports: – gr_io_signature_sptr d_input_signature; – gr_io_signature_sptr d_output_signature; Smart pointer is used to make sure that ojbect it points to is automatically deleted – gr_io_signature_sptr

SPB The core of a block: Does the real work -- The central scheduler calls it every once a while, tell it the maximum number of output items it can produce in noutput_items, tell it how many items are available at each input ports in array ninput_items, provides pointers to the arrays of input items in input_items which the function can read, and provides pointers to arrays of output items which it can write to. The returned value is the actual number of items produced to the output ports. Must be the same for each output port. Can be less than noutput_items. At the end of the function, tell the central scheduler how many items consumed from each input port. Can be different.

Compile and Install After writing the SPB, you need to compile it and install it and make it callable from Python. Here are the rules. First, you need to organize your directory as (just copy everything from an existing block and modify!)

SPB Then, you need to write a.i file to tell SWIG, the Simplified Wrapper and Interface Generator to generate the interface callable by Python. The.i file is very small and normally you don’t have to do a lot with it except change the class names to the one you are currently using (the details in the online tutorial.) Then you need to modify Makefile.am, also just to update some names (the details in the online tutorial) Then you need to modify configure.ac at the top directory, only two lines (the details in the online tutorial)

SPB Then, run these commands. If your code is right everything should be fine.

Linear System In signal processing, for most of the times, we deal with linear systems. h(t) x(t) y(t) A linear system is a system such that T[ax_1(t) + bx_2(t)] = aT[x_1(t)] + bT[x_2(t)]. Suppose T[x(t)]=y(t). A linear system is “time invariant” if T[x(t-\tau)] = y(t- \tau).

Digital Signal Processing In fact, most of the signal processing is done digitally. For example, the sender reads the bits, process the bits into digital waveforms, and send it out.

Impulse Response A digital linear time invariant system can be FULLY described by its “impulse response.” It is usually written as h[n], which is the output of the system when the input is \delta[n], which is 1 when n=0 and 0 for all other values of n.

Impulse Response The reason is, all signals can be represented as linear combinations of \delta[n]: – x[n]=\sum_{k=-\infty}^{\infty} x_k \delta[k], where x_k is a number equal to x[k]. – We really didn’t do anything here… – But, recall the definition of a linear time invariant (LTI) system, we can write the output as y[n] = \sum_ {k=-\infty}^{\infty} x_k h[n-k] – This is the KEY expression called “convolution.” You need to understand this to understand lots of other things.

Example The digital low pass filter. Consider the simplest one (the one we discussed in the last lecture) – average recent samples. – y[n]={x[n]+x[n-1]}/2 – Intuitively, it should average out some sudden changes. – h[0]=h[1]=1/2.

The Simple Low Pass Filter The simple low pass filter, what does it do in the frequency domain? To do this, we consider DFT (Digital Fourier Transformation) defined as: H(j)= \sum_{n=0}^{N-1} h[n] e^{-j n 2\pi/ N}, where N is the number of non-zero points of h[n]. It’s basically the same as the continuous FT. \sum_{n=0}^{N-1} h[n] e^{-j n 2 \pi/ N} is just to take a sample on a certain frequency from the time domain signal, cause all other frequency components are going to be 0. If the sample time is T, H(j) represents the signal strength at frequency j/NT. (e^{-j n 2 \pi/ N} repeats every N/j samples. So, in continuous time, it repeats every NT/j seconds.)

DFT So, the DFT of the simple low pass filter can be calculated. DFT_h(j) = 1/2[1+e^{-2j \pi / N}].

Convolution and Frequency

The RRC Filter The LPF we used is called the “root raised cosine” filter. Check pulse-shaping/ pulse-shaping/

Why use RC The problem is that the baseband waveform is generated but you have to take samples at the receiver side to determine the bits. If using some arbitrary LPF, the signal shape is arbitrary and the samples you take for y[n] will have interferences from y[n-1], y[n-2], …, y[n+1], y[n+2]… So you want to use LPF such that all other non-relevant samples have 0 influence on the current sample. The Raised Cosine Filter satisfies this constraint Root means that the sender and receiver will each do half of it.

Carrier Phase Tracking

Sample Time