240 likes | 480 Views
Source Encode r. Channel Encoder. Digital Modulator. Source. Channel. Digital Demodulator. Sink. Source Decoder. Channel Decoder. Digital Communications. Digital Comm Functional Blocks. Source coding converts message to bits; compression Remove redundancy from data source
E N D
Source Encode r Channel Encoder Digital Modulator Source Channel Digital Demodulator Sink Source Decoder Channel Decoder Digital Communications EE682L: Lectures 2 and 3
Digital Comm Functional Blocks • Source coding converts message to bits; compression • Remove redundancy from data source • E.g., Huffman codes; Limpel-Ziv; RAR; gzip; winzip • Trade-off: improve data transfer rate with increased complexity • Channel coding provides error protection • Insert structured redundancy to allow for “spell-checking” • E.g., BCH block codes; trellis codes • Trade-off: reduce data bit rate for improved error rate • Modulation maps bits to waveform suitable for the channel • Baseband symbols may represent one or more bits • Modulate symbols to IF and RF frequencies • Choice affects complexity required at the receiver • Can use SNR to increase data rate EE682L: Lectures 2 and 3
EE682L Modem • Source text data on PC: file or typed • Channel 915 MHz wireless, …and… • Sink display of text data on PC Given: To be determined: • Source coding? Need/Cost/benefit of compression • Channel coding? Need/Cost/benefit of FEC • Modulation? Waveform to antenna Affects receiver complexity EE682L: Lectures 2 and 3
Communication Resources • Channel Bandwidth • Spectral efficiency: bits/second/Hz • Transmit Power • Watts • Received signal-to-noise ratio • Complexity • Hardware cost • Processing cycles • Delay EE682L: Lectures 2 and 3
Shannon Capacity: Example • Telephone lines: signals bandlimited to 3300 Hz • Typical SNR: • ITU Modem at 33.6 kbps • Approximately 11 bits per Hz • ITU standards, V.34 etc, adjust data rate to adapt to the channel (i.e., the phone line SNR) EE682L: Lectures 2 and 3
r(t) s(t) h(t) n(t) Channel Model • Typical stationary channel model • Additive noise • Time-invariant, linear filtering • Flat channel: Gain and phase • Frequency selective channel: frequency varying gain and phase + EE682L: Lectures 2 and 3
Channel Measurements • Frequency response • Impulse response • Shows delay spread and effect of symbols on neighbors • Transmit broadband signal whose autocorrelation approximates the delta function (Kassami sequences) • Measure signal to noise ratio • Send and receive pairs of tones to measure non-linearities EE682L: Lectures 2 and 3
Channel: example time frequency EE682L: Lectures 2 and 3
Example: Channel EE682L: Lectures 2 and 3
Source Encoding • Convert source to bits • Transducer, quantizer • Compression • Entropy (a measure of randomness) of source gives limit to compression [Shannon, 1948] • Example codes • Huffman (1949 OSU alumnus) • Limpel-Ziv: gzip, RAR, winzip • Morse code • Matlab: relevant commands • Double, dec2bin, reshape, char, bin2dec EE682L: Lectures 2 and 3
Matlab Conversions: Example message = 'ab c'; mdec = double(message); mbin = dec2bin(message,7) mbin = 1100001 a 1100010 b 0100000 [space] 1100011 c ASCII printable characters: 32-38, 40-126 EE682L: Lectures 2 and 3
Example, continued message = 'ab c';N=4; mdec = double(message); mbin = dec2bin(message,7); mbin = reshape(mbin',1,7*N)'; %convert array row-by-row to one long string recbin=reshape(mbin,7,N)'; % received binary; convert back to array, 7 bits each row recdec=bin2dec(recbin); % convert binary to decimal receive = char(recdec)‘ %convert decimal ASCII to charater receive = ab c Round trip EE682L: Lectures 2 and 3
Channel Codes • Forward error correction (FEC) codes insert structured redundancy to allow for ‘spell-checking’ • English example: • We havk nothong to fexr but flar itsslf. • (n,k) Block codes • Map k source bits to block of n bits (“rate” k/n) • Reduces data rate by k/n • Easy to implement and decode [Proakis, pp. 447-450] • Longer blocks (larger n,k) allow higher rate and better error correction at cost of delay and computational complexity EE682L: Lectures 2 and 3
Example: (7,4) block code Information bits Code word 0000 0000000 1000 1000110 0100 0100101 1100 1100011 0010 0010011 1010 1010101 0110 0110110 1110 1110000 0001 0001111 1001 1001001 0101 0101010 1101 1101100 0011 0011100 1011 1011010 0111 0111001 1111 1111111 Generator matrix Only 2^k valid code words among 2^n words of length n (here, 16 of 128). EE682L: Lectures 2 and 3
Example: (7,4) block code Information bits Code word distance 1000011 received 0000 0000000 3 1000 1000110 2 0100 0100101 4 1100 1100011 1 0010 0010011 2 1010 1010101 3 0110 0110110 5 1110 1110000 4 0001 0001111 3 1001 1001001 2 0101 0101010 4 1101 1101100 5 0011 0011100 6 1011 1011010 3 0111 0111001 5 1111 1111111 4 Closest among 2^k valid code words This (7,4,1) code has minimum distance 3 and can correct 1 error. EE682L: Lectures 2 and 3
FEC: further information • To randomize the occurrences of multiple errors (“burst”), shuffle, or “interleave”, the bits before coding and transmission. • Two basic classes of codes • Block codes • Trellis codes • Starting points for more information and free-ware • Proakis textbook, on reserve SEL • Web links available at EE682 course web page • http://www.eleceng.ohio-state.edu/~potter/EE682/ EE682L: Lectures 2 and 3
Memoryless Modulation • Quadrature Amplitude Modulation (QAM) EE682L: Lectures 2 and 3
QAM Special Cases • Pulse Amplitude Modulation: use amplitude only • Example: EE682L: Lectures 2 and 3
QAM Special Cases • Phase Shift Keying (PSK): use phase only • Example: BPSK EE682L: Lectures 2 and 3
QAM Special Cases • Phase Shift Keying (PSK): use phase only • Example: QPSK EE682L: Lectures 2 and 3
Symbol Constellations • Represent symbols by polar plot of BPSK 8QPSK 16QAM EE682L: Lectures 2 and 3
Frequency Shift Keying (FSK) • Represent symbols by different frequencies • Choose integer number of cycles per symbol 4/T 2/T 1 0 1 EE682L: Lectures 2 and 3
Pulse Shaping, g(t) • Chosen to control the transmit power spectrum • Rectangular pulse: sinc function in frequency • Root raised cosine: suppressed frequency side lobes • May have pulse extend beyond symbol duration EE682L: Lectures 2 and 3
Example Matlab Code %list of complex QAM constellation points x = symbols; %symbol period of N samples x_up = reshape([x;zeros(N-1,length(x))],1,N*length(x)); %convolve symbols with pulse shape trans = conv(x_up,pulse_shape); % sample index (time) n=[0:length(trans)-1]; % upcovert to carrier frequency trans_mod = real(exp(j*2*pi*fc*n).*trans); EE682L: Lectures 2 and 3