EE511 FALL 2012

INTRODUCTION TO COMMUNICATION SYSTEMS

 

12-12-2012

 

SYLLABUS

 

HOME WORK AND CLASS SCHEDULE

 

LECTURE NOTES

 

Lecture 1: Narrowband and Wideband Signals

Lecture 2: Signal Functions

Lecture 2B: Energy and Power

Lecture 3: Fourier Transform

Lecture 4: Functions of Fourier Transforms

Lecture 5: Fourier Series

Lecture 6: PSD and Autocorrelation

Lecture 7: Linear Time-Invariant Systems

Lecture 7B: Hilbert Transform

Lecture 8: Filter Design

Lecture 8B: Nodal analysis

Lecture 9: Discrete Fourier Transform

Lecture 10: Sampling Theory

Lecture 11: Natural Sampling

Lecture 12: Flat Top Sampling and Summary

Lecture 13: Double Sideband Suppressed Carrier (DSBSC) modulation

Lecture 14: AM modulation

Lecture 15: SSB

Lecture 16: Super Heterodyne Receiver

Lecture 17: Vestigal Sideband

Lecture 18: SSB with Weavers Method

Lecture 19: FM and PM modulation

Lecture 20: FM Stereo

Lecture 21: Simple AM/FM demodulation

Lecture 22: Phase Locked Loop

Lecture 22B: Costas Receiver

Lecture 23: Pulse Width Modulation

Lecture 24: Integrate and Dump

Lecture 25: Delta Modulation

Lecture 26: Time Division Multiplexing

Lecture 27: Baseband Digital Data and Binary Modulation

Lecture 28: Review of Probability

Lecture 29: Matched Filter

Lecture 30: Signal Space

 

NEW SUPPLEMENTAL HOMEWORK AND VISUALIZATIONS

V2: AM Modulation using the Final Project Simulation Architecture. Instructions, AM_createBsize.m, AM_modulator.m, AM_demodulator.m, BgenV2.m, channelV2.m, bitcheckV2.m

Supporting functions: binarize.m, irect.m, lp_butterworth_oN_dft.m

HW3 Supplement: Nodal Analysis of Band Pass Filter

For the HW3 supplement, don’t use the values in the pdf document, or compare with “filteral”. Instead, use fo=40Khz, Q=10, Ao= -1 and C=0.001 microfarads

V3: DSBSC Modulation using Simulation Architecture: Instructions, DSBSC_createBsize.m, DSBSC_modulator.m, DSBSC_demodulator.m, BgenV3.m, channelV3.m, bitcheckV3.m

Supporting functions: binarize.m, irect.m, lp_butterworth_oN_dft.m

V4: FM Modulation using Simulation Architecture: Instructions, FM_createBsize.m, FM_modulator.m, FM_demodulator.m, BgenV4.m, channelV4.m, bitcheckV4.m

Supporting functions: binarize.m, irect.m, lp_butterworth_oN_dft.m, bp_butterworth_oN_dft.m

V5: Direct Sequence Spread Spectrum (DSSS) Modulation using Simulation Architecture: Instructions, DSSS_createBsize.m, DSSS_modulator.m, DSSS_demodulator.m,DSSS_dsssKeygenV5.m, BgenV5.m, channelV5.m, bitcheckV5.m

Supporting functions: binarize.m, irect.m, lp_butterworth_oN_dft.m, bp_butterworth_oN_dft.m, GenDsssKeys.m

GROUP PERFORMANCE FOR V4

AfanBenNikky                   Nbits=65536

MinghaoW_V4                  Nbits=65536

DNZ                                       Nbits=65536

AisforAwesomeV4          Nbits=4096

MattNeal                             Nbits=4096

ZW                                         Nbits=4096

vc                                            Nbits=4096

GROUP PERFORMANCE FOR V5

AfanBenNikky                   Nbits=131072                     Afan Memon, Ben Reyes, Nkiruka Uzuegbunam

MinghaoW_V5                  Nbits=131072                     Minghao Wang

DNZ                                       Nbits=8192                         David Smith, Zach Burns

AisforAwesomeV5          Nbits=8192                         Joe Walbourn, Josh Cook, Matt Neal, Melody Burkhart

ZW                                         Nbits= 4096                        Wei Zhu

V8: Comparison of AM, DSBSC, FM, and DSSS modulation techniques. Use the following naming conventions where Group is your group name: Group_AM, Group_SB, Group_FM and Group_SS. Instructions: There are 4 parts of the HW/V8 which are worth 25% each. The parts are the AM, DSBSC, FM and DSSS modulation and demodulation. Each part must result in 0 bit error and you must stay with the associated modulation technique. But you may use any demodulation technique you want as long as it is not accessing the original bit sequence. You can assume as before that the demodulator knows where the bit centers are but does not know the bit values. As in V4 and V5, just send your *.m files. The team with the most bits without error in each part will receive full credit for that part. Bit rates below the maximum will receive points less than the 25% for each part of V8. The instructor programs as well as supporting functions are: BgenV8.m, channelV8.m, bitcheckV8.m

Supporting functions: binarize.m, irect.m, lp_butterworth_oN_dft.m, bp_butterworth_oN_dft.m

Results: 11-12-2012:

Performance is the sum of the 4 components, each is weighted by a=25/maximum

Group Name

AM

DSBSC

FM

DSSS

Performance

AfanBenNikky

8320

65550

21840

2048

90

AisforAwesome

8192

65536

4096

2048

77

DNZ

8192

40960

36864

2048

90

Minghao

4095

65536

32768

2048

84

ZW

9 errors

65536

34816

2048

74

VC            

73 errors

65536

1 error

2048

50

Maximum

8320

65550

36864

2048

100

 

PROJECTS

 

Project A: Flat Top Sampling Model, counts ¼ of the final project. That is your whole project grade counts 20% where 15%=final project and 5% is this project A

 

FINAL PROJECT RESULTS

 

Group Name

N bits

PERFORMANCE

Date/Time

Score

AfanBenNikky

(Afan Memon, Ben Reyes, Nkiruka Uzuegbunam)

1344

WINNER

121212-6:17pm

100

AisforAwesome

(Joe Walbourn, Josh Cook, Matt Neal, Melody Burkhart)

1342

SECOND PLACE

121212-7:12pm

100

DNZ

(David Smith, Zach Burns)

1024

FOURTH PLACE

121212-2:38pm

88

Minghao

(Minghao, Wei Zhu, Weixi Ma)

1280

THIRD PLACE

121212-2:48pm

98

Maximum

1344

100

Baseline EE511

512

LAST

 

70

A = 30/(maxBits - 512), B = 70 - A x 512, Score = A x Nbits +B

A=0.0361, B=51.5168

 

SCORING:

This is a competitive format so the scoring is based on a dynamic scale. The score is  SCORE = A * Nbit + B where A and B are determined from the following two equations:

100 = A * Nbmax + B

70 = A * 512 + B

where Nbmax is the highest number of bits transmitted and received without error. The baseline ran at 512 bits.

 

PROTOCOL for FINAL PROJECT

 

Student sends the bit matrix size, modulator and demodulator m files to instructor. All the files sent to the instructor have the "groupname" as a prefix so the instructor can keep the track of the individual group m files and data.

1.      BIT MATRIX SIZE (student sends this to instructor): The student is ranked by the total number of bits that can be transmitted through the channel. The bit matrix is 2 dimensional. It has a length Nbit (column dimension) and a width of Nseq (row dimension). These values, named "Nbit" and "Nseq", along with a character string containing "groupname", they are stored in a file called "groupname_Bsize.mat." An example m file is

 

groupname_createBsize.m

 

Group sends instructor this m file to initiate test.

2.      BIT MATRIX (instructor generates this based on groupnameBsize values): The bit matrix is generated and stored in a file called groupname_B.mat and the matrix is called B. A sample code that will generate a Nseq x Nbit bit matrix B is

 

Bgen12.m

 

I will use Bgen to generate a random sequence of bits of the size specified by the student in "groupnameBsize.mat."

3.      MODULATOR (student sends the modulator m file to the instructor): A modulator m file by the name

 

groupname_modulator.m

 

will be sent to the instructor. Its input is the file named "groupname_B.mat." The program will create a 1 x N real vector "s" and a Nseq x N, bit check matrix, called "Bcheck." The signal vector will be stored in "groupname_signal.mat" and the bit check matrix is stored in "groupname_Bcheck.mat."  The length is N=1048576=131072*8. The Bcheck matrix (Nseq x N) has 3 element values +1 for a bit value of "1" to be present, -1 for a bit value of  "0" to be present and 0 for "don't care."

4.      CHANNEL (instructor will run this program,

 

channel12.m

 

on vector s). The channel will do two things, lowpass filter and then add noise. The signal vector s0 is convolved with the Butterworth low pass filter of order 8 and fc=(N/32), yielding a bandlimited signal vector s. It also has a bandpass componet centered at f0=N/8. The noise is based on the value sigma=0.1*(max(s)-min(s)) and is generated by w=sigma*randn(1,N). The noisy vector is sn=s+w. The output of the channel will be a real one dimensional vector, "r", of size 1xN. This r vector will be stored in groupname_r.mat.

5.      DEMODULATOR/BINARIZER (student sends the demodulator.m file to the instructor): A demodulator file by the name

 

groupname_demodulator.m

 

will be sent to the instructor. Its input file is groupname_r.mat.  Its output will be a Nseq x N real matrix. Each row of the matrix will represent the demodulated and binarized bit stream defined in B. This output will be stored in "Bs" and saved to the file groupname_Bs.mat. NOTE: The demodulator should also binarize the signals in Bs to have values of either 1 or 0.

6.      BIT CHECK (instructor will run bitcheck

 

bitcheck12.m

 

to test the students data for errors): The instructor will run a program that will input the groupname_B.mat file, groupname_Bcheck.mat file and the groupname_Bs.mat file. The program will go to each value of 1 or -1 in the Bcheck matrix and see if the associated element in the Bs matrix is (1) if Bcheck is 1, then Bs value must be 1 (above 0.5), (2) if Bcheck is -1, then Bs must be 0 (below 0.5). For each element of Bcheck that is 0 (between -0.5 and +0.5) the associated value in Bs is ignored. The resulting values will be verified with the B matrix. To be acceptable, there must not be any errors in either the number of ones and zeros or the specific bit values when compared to B.  The results will be posted on the web.

 

Additional m files include:

 

binarize.m

irect.m

lp_butterworth_oN_dft.m

bp_butterworth_oN_dft.m

 

FAQs MATLAB:

 

Where is a manual for MATLAB? Try the library first. Most students only use the manual in the very beginning of their MATLAB experience. Once into it, the language is intuitive enough and there are enough sample M files that learning MATLAB is somewhat self-sustaining without manuals. Type "matlab" to execute intepreter, "help ?" to see listing of operators, "help" for listing of functions, "who" to see active variables, "what" for listing of M files and always use "clear" to start over again.

How do you initialize the dimension of a variable? One way is to initialize its values by zeros(M,N) or ones(M,N). Ex: A=zeros(10,8) is a 10 x 8 matrix of zeroes. Another function is "ones" which works the same way as "zeros". Another method is nested loop, ie., 1:5 loops from 1 to 5 so A(1:5)=3:7 will store the values 3 to 7 in the first 5 elements of A.

 

OLD SUPPLEMENTAL HOMEWORK AND VISUALIZATIONS

 

V2 DATA (ABLIST12.M)

V2 DSSS Description

Additional Problem HW 3: Nodal Analysis of BPF

V6 ISI Instructions

V7 Mixer and DSBSC Description