Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Cargando en…3
×
1 de 38

Simulating communication systems with MATLAB: An introduction

64

Compartir

Descargar para leer sin conexión

Download related MATLAB codes from http://www.freewebs.com/acwebpage/Resources/Codes_Comm_PPT.zip

Libros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo

Audiolibros relacionados

Gratis con una prueba de 30 días de Scribd

Ver todo

Simulating communication systems with MATLAB: An introduction

  1. 1. Simulating Communication Systems with MATLAB : An Introduction Aniruddha Chandra ECE Department, NIT Durgapur, WB, India. aniruddha.chandra@ieee.org September 23, 2010 NIT DGP Student Branch
  2. 2. Presentation Outline Sep. 23, 2010  Objective of the Lecture  Expected Background  Simulating Analog Communication Systems Amplitude Modulation (AM)  Simulating Digital Communication Systems Binary Phase Shift Keying (BPSK) A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 2
  3. 3. Presentation Outline Sep. 23, 2010  Objective of the Lecture  Expected Background  Simulating Analog Communication Systems Amplitude Modulation (AM)  Simulating Digital Communication Systems Binary Phase Shift Keying (BPSK) A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 3
  4. 4. Objective of the Lecture Sep. 23, 2010 After the Lecture … You’ll be able to  Write your own Matlab Script  Make a Analog/ Digital Communication Link  Compare your Results with Theoretical Values A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 4
  5. 5. Presentation Outline Sep. 23, 2010  Objective of the Lecture  Expected Background  Simulating Analog Communication Systems Amplitude Modulation (AM)  Simulating Digital Communication Systems Binary Phase Shift Keying (BPSK) A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 5
  6. 6. Expected Background Sep. 23, 2010 I assume that …You understand  Basic MATLAB Operations (function, matrix)  Basics of Communication (modulation)  Performance Metrics (BER) A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 6
  7. 7. Presentation Outline Sep. 23, 2010  Objective of the Lecture  Expected Background  Simulating Analog Communication Systems Amplitude Modulation (AM)  Simulating Digital Communication Systems Binary Phase Shift Keying (BPSK) A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 7
  8. 8. Analog Communication Systems Sep. 23, 2010 Source Modulator Channel Destination Demodulator A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 8
  9. 9. Simulate a Source Sep. 23, 2010 Source Modulator Channel Destination Demodulator  Produces message signal … e.g. a simple Sine wave A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 9
  10. 10. Simulate a Source Sep. 23, 2010 Generate message signal (simple sine wave) m( t ) = Vm sin ( 2πf mt )  Define time instants (1000 sample points) tmin = 0; tmax = 10^(-3); step = (tmax-tmin)/1000; t = tmin:step:tmax;  Define amplitude and frequency (initial phase is zero) Vm = 1; % Amplitude fm = 2*10^3; % Frequency  Construct the Signal m = Vm*sin(2*pi*fm*t);  View the Signal plot(t,m,'r'); A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 10
  11. 11. Simulate a Source Sep. 23, 2010 Complete MATLAB Script [Prog1.m] tmin = 0; tmax = 10^(-3); step = (tmax-tmin)/1000; t = tmin:step:tmax; fm = 2*10^3; Vm = 1; m = Vm*sin(2*pi*fm*t); plot(t,m,'r'); A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 11
  12. 12. Simulate a Source Sep. 23, 2010 A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 12
  13. 13. Simulate a Source Sep. 23, 2010 Assignment #1 [Prog2.m], [Prog3.m]  What happens if there is an initial phase? phi_deg = 45; phi_rad = phi_deg*pi/180; m = Vm*sin(2*pi*fm*t+phi_rad);  What happens if the message is not sinusoidal? tmin = 0; tmax = 1; step = (tmax-tmin)/1000; t = tmin:step:tmax; f = 2; m = sawtooth(2*pi*f*t); plot(t,m,'r'); A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 13
  14. 14. Simulate Modulation Sep. 23, 2010 Source Modulator Channel Destination Demodulator  Built-in functions are available (ammod, amdemod etc.)  WYSIWYG?? No A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 14
  15. 15. Amplitude Modulation Sep. 23, 2010 Simulate with built-in functions [Prog4.m] fs = 8000; % Sampling rate is 8000 samples per second fc = 300; % Carrier frequency in Hz t = [0:0.1*fs]'/fs; % Sampling times for 0.1 second m = sin(20*pi*t); % Representation of the signal v = ammod(m,fc,fs); % Modulate m to produce v figure(1) subplot(2,1,1); plot(t,m); % Plot m on top subplot(2,1,2); plot(t,v); % Plot v below mr = amdemod(v,fc,fs); % Demodulate v to produce m figure(2); subplot(2,1,1); plot(t,m); % Plot m on top subplot(2,1,2); plot(t,mr); % Plot mr below Source: Introduction to Communications Toolbox in MATLAB 7.6.0 (R2008) by Amit Degada Available: http://amitdegada.weebly.com/download.html A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 15
  16. 16. Amplitude Modulation Sep. 23, 2010 A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 16
  17. 17. Amplitude Modulation Sep. 23, 2010 A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 17
  18. 18. Amplitude Modulation Sep. 23, 2010 Don’t have the feel??? …. Try this  Define message signal, m( t ) = Vm sin ( 2πf m t ) (as done earlier) tmin = 0; tmax = 10^(-3); step = (tmax-tmin)/1000; t = tmin:step:tmax; Vm = 1; fm = 2*10^3; m = Vm*sin(2*pi*fm*t);  Define carrier, c( t ) = Vc sin ( 2πf c t ) Vc = 2; % Amplitude fc = 10^4; % Frequency c = Vc*sin(2*pi*fc*t); % Carrier signal A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 18
  19. 19. Amplitude Modulation Sep. 23, 2010 Continued ….  Vm   Modulate the Signal, v( t ) = Vc 1 + sin ( 2πf mt )  sin ( 2πf c t )  Vc  v = (1+m/Vc).*c; % DSB-FC modulation  View Modulated Wave plot(t,v); % Modulated Wave hold on; plot(t,Vc*(1+m/Vc),'r:'); % Upper Envelope hold on; plot(t,-Vc*(1+m/Vc),'r:'); % Lower Envelope hold off ; A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 19
  20. 20. Amplitude Modulation Sep. 23, 2010 Complete MATLAB Script [Prog5.m] clear all; close all; clc; tmin = 0; tmax = 10^(-3); step = (tmax-tmin)/1000; t = tmin:step:tmax; % Time Vm = 1; Vc = 2; % Amplitude fm = 2*10^3; fc = 10^4; % Frequency m = Vm*sin(2*pi*fm*t); % Message c = Vc*sin(2*pi*fc*t); % Carrier v = (1+m/Vc).*c; % Modulated Wave plot(t,v); hold on; plot(t,Vc*(1+m/Vc),'r:'); hold on; % Upper Envelope plot(t,-Vc*(1+m/Vc),'r:'); hold off % Lower Envelope A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 20
  21. 21. Amplitude Modulation Sep. 23, 2010 A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 21
  22. 22. Amplitude Modulation Sep. 23, 2010 Assignment #2 [Prog6.m]  How to view effect of changing modulation index? tmin = 0; tmax = 10^(-3); step = (tmax-tmin)/1000; t = tmin:step:tmax; Vm = 1; mu = 1.5; Vc = Vm/mu; fm = 2*10^3; fc = 10^4; m = Vm*sin(2*pi*fm*t); c = Vc*sin(2*pi*fc*t); v = (1+m/Vc).*c; plot(t,v); hold on; plot(t,Vc*(1+m/Vc),'r:'); hold on; plot(t,-Vc*(1+m/Vc),'r:'); hold off A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 22
  23. 23. Amplitude Modulation Sep. 23, 2010 Assignment #2 (Contd…) [Prog7.m]  How to simulate DSB-SC modulation? tmin = 0; tmax = 10^(-3); step = (tmax-tmin)/1000; t = tmin:step:tmax; Vm = 2; Vc = 1; fm = 2*10^3; fc = 10^4; m = Vm*sin(2*pi*fm*t); c = Vc*sin(2*pi*fc*t); v = m.*c; plot(t,v); hold on; plot(t,m,'r:'); hold on; plot(t,-m,'r:'); hold off A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 23
  24. 24. Demodulation Sep. 23, 2010 Demodulate DSB-SC with filter [Prog8.m] clear all; close all; clc; tmin = 0; tmax = 1; step = (tmax-tmin)/(10^3); t = tmin:step:tmax; Vm = 2; Vc = 1; fm = 2; fc = 10^2; m = Vm*sin(2*pi*fm*t); c = Vc*sin(2*pi*fc*t); v = m.*c; r = v.*c; [b a] = butter(1,0.01); mr = filter(b,a,r); figure(1) subplot(2,1,1); plot(t,m); subplot(2,1,2); plot(t,mr); A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 24
  25. 25. Demodulation Sep. 23, 2010 A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 25
  26. 26. Demodulation Sep. 23, 2010 Ideal Demodulation of DSB-SC [Prog9.m] clear all; close all; clc; fs = 10^5; N = 10^5; t = 1/fs:1/fs:N/fs; fm = 2; fc = 10^3; m = sin(2*pi*fm*t); c = sin(2*pi*fc*t); v = m.*c; r = zeros(1,N); n =f s/fc; for k = 1:fc mr((k-1)*n+1:k*n) = 2*v((k-1)*n+1:k*n)*c((k-1)*n+1:k*n)'/n; end figure(1) subplot(2,1,1); plot(t,m); subplot(2,1,2); plot(t,mr); A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 26
  27. 27. Demodulation Sep. 23, 2010 A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 27
  28. 28. Analog Communication Systems Sep. 23, 2010 Source Modulator Channel Destination Demodulator  Introduces noise … Additive White Gaussian Noise A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 28
  29. 29. Simulate Channel Sep. 23, 2010 Introducing AWGN [Prog10.m] fs = 10^5; N = 10^5; t = 1/fs:1/fs:N/fs; fm = 2; fc = 10^3; m = sin(2*pi*fm*t); c = sin(2*pi*fc*t); v = m.*c; SNRdB = 10; SNR = 10^(SNRdB/10); vn = var(v)/SNR; n = sqrt(vn)*randn(1,N); v = v + n; r=zeros(1,N); n=fs/fc; for k=1:fc mr((k-1)*n+1:k*n)=2*v((k-1)*n+1:k*n)*c((k-1)*n+1:k*n)'/n; end figure(1) subplot(2,1,1); plot(t,m); subplot(2,1,2); plot(t,mr); axis([0 1 -1 1]) A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 29
  30. 30. Simulate Channel Sep. 23, 2010 A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 30
  31. 31. Presentation Outline Sep. 23, 2010  Objective of the Lecture  Expected Background  Simulating Analog Communication Systems Amplitude Modulation (AM)  Simulating Digital Communication Systems Binary Phase Shift Keying (BPSK) A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 31
  32. 32. Digital Communication Systems Sep. 23, 2010 Source Modulator Channel Destination Demodulator A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 32
  33. 33. Simulate BPSK Sep. 23, 2010 Simulation [Prog11.m] %This program simulates BER of BPSK in AWGN channel% clear all; close all; clc; num_bit=100000; %Signal length max_run=20; %Maximum number of iterations for a single SNR Eb=1; %Bit energy SNRdB=0:1:9; %Signal to Noise Ratio (in dB) SNR=10.^(SNRdB/10); hand=waitbar(0,'Please Wait....'); for count=1:length(SNR) %Beginning of loop for different SNR avgError=0; No=Eb/SNR(count); %Calculate noise power from SNR A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 33
  34. 34. Simulate BPSK Sep. 23, 2010 Simulation (Contd.) [Prog11.m] for run_time=1:max_run %Beginning of loop for different runs waitbar((((count-1)*max_run)+run_time-1)/(length(SNRdB)*max_run)); Error=0; data=randint(1,num_bit); %Generate binary data source s=2*data-1; %Baseband BPSK modulation N=sqrt(No/2)*randn(1,num_bit); %Generate AWGN Y=s+N; %Received Signal for k=1:num_bit %Decision device taking hard decision and deciding error if ((Y(k)>0 && data(k)==0)||(Y(k)<0 && data(k)==1)) Error=Error+1; end end Error=Error/num_bit; %Calculate error/bit avgError=avgError+Error; %Calculate error/bit for different runs end %Termination of loop for different runs A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 34
  35. 35. Simulate BPSK Sep. 23, 2010 Simulation (Contd.) [Prog11.m] BER_sim(count)=avgError/max_run; %Calculate BER for a particular SNR end %Termination of loop for different SNR BER_th=(1/2)*erfc(sqrt(SNR)); %Calculate analytical BER close(hand); semilogy(SNRdB,BER_th,'k'); %Plot BER hold on semilogy(SNRdB,BER_sim,'k*'); legend('Theoretical','Simulation',3); axis([min(SNRdB) max(SNRdB) 10^(-5) 1]); hold off A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 35
  36. 36. Simulate BPSK Sep. 23, 2010 A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 36
  37. 37. References Sep. 23, 2010 [1] http://www.mathworks.com/matlabcentral/ [2] http://www.freewebs.com/acwebpage/teaching.htm [3] B.P. Lathi and Z. Ding, Modern Digital and Analog Communication Systems, Oxford University Press, International 4th edition, 2010. [4] J.G. Proakis, M. Salehi, and G. Bauch, Contemporary Communication Systems using MATLAB, Thomson/ CL- Engineering, 2nd edition, 2003. A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 37
  38. 38. Sep. 23, 2010 Thank You! Questions??? aniruddha.chandra@ieee.org A. Chandra, ECE Deptt., NITD Simulating Communication Systems with MATLAB 38

×