python
%% Code for Lab2 of CEC 411 % JHL 9/2/15 % See Lab2 handouts for requirements clear all; close all; PRINT = 1; %% Parameter definitions % Definitions of common parameters R_DS = 10; % Ratio of dense and sparse sampling N_D = 2000; % D stands for dense sampling---for continuous waveform N_S = N_D / R_DS; % S stands for sparse sampling---for sampling display S_COE = 4; % Sampling rate coefficient frqCrr = 2500; % Carrier frequency % Definitions for AM parameters ampAmp = 0.5; % Amplitude of the AM modulating signal frqAmp = 320; % Frequency of the AM modulating signal phiAmp = pi/3; phiCrr = pi/3; % Definitions for FM parameters frqMod = 100; % Frequency of the FM modulating signal frqBdw = 1000; % Bandwidth % Definitions of variables for sampling rate and display sampRateD = S_COE*R_DS*frqCrr; % Sampling rate for dense sampling sampRateS = S_COE*frqCrr; % Sampling rate for sparse sampling sampTimesD = (0:N_D-1)'/sampRateD; % Sampling times for dense sampling sampTimesS = (0:N_S-1)'/sampRateS; % Sampling times for sparse sampling dispFrqsD = (-N_D/2 : N_D/2-1)'; % Frequencies for spectrum display---dense dispFrqsD = dispFrqsD * sampRateD / N_D; dispFrqsS = (-N_S/2 : N_S/2-1)'; % Frequencies for spectrum display---sparse dispFrqsS = dispFrqsS * sampRateS / N_S; %% AM signal ampD = 1 + ampAmp*cos(2*pi*frqAmp*sampTimesD + phiAmp); ampS = 1 + ampAmp*cos(2*pi*frqAmp*sampTimesS + phiAmp); carD = cos(2*pi*frqCrr*sampTimesD + phiCrr); carS = cos(2*pi*frqCrr*sampTimesS + phiCrr); amSigD = ampD .* carD; amSigS = ampS .* carS; figure(1); subplot(311); plot(sampTimesD, amSigD, 'b', sampTimesS, amSigS, 'or', sampTimesD, ampD, '--k'); axis([0 sampTimesD(end) -2 +2]); xlabel('Time (Sec)'); ylabel('Waveform'); subplot(312); ampSigFdD = fft(amSigD); % FD spectrum of the AM signal ampSigAbs = abs(fftshift(ampSigFdD)); stem(dispFrqsD, ampSigAbs, 'b'); axis([dispFrqsD(1) dispFrqsD(end) 0 max(ampSigAbs)*1.2]); xlabel('Freq (Hz)'); ylabel('Spectrum'); subplot(313); ampSigFdS = fft(amSigS); % FD spectrum of the AM signal ampSigAbs = abs(fftshift(ampSigFdS)); stem(dispFrqsS, ampSigAbs, 'r'); axis([dispFrqsS(1) dispFrqsS(end) 0 max(ampSigAbs)*1.2]); xlabel('Freq (Hz)'); ylabel('Spectrum'); if PRINT == 1, print('-depsc2', '../figs/fig1.eps'); end %% FM signal phaseD = frqBdw*cos(2*pi*frqMod*sampTimesD)/frqMod; phaseS = frqBdw*cos(2*pi*frqMod*sampTimesS)/frqMod; fmSigD = cos(2*pi*frqCrr*sampTimesD + phaseD); fmSigS = cos(2*pi*frqCrr*sampTimesS + phaseS); figure(2); subplot(311); plot(sampTimesD, fmSigD, 'b', sampTimesS, fmSigS, 'or'); axis([0 sampTimesD(end) -1.5 +1.5]); xlabel('Time (Sec)'); ylabel('Waveform'); subplot(312); ampSigFdD = fft(fmSigD); % FD spectrum of the FM signal ampSigAbs = abs(fftshift(ampSigFdD)); stem(dispFrqsD, ampSigAbs, 'b'); axis([dispFrqsD(1) dispFrqsD(end) 0 max(ampSigAbs)*1.2]); xlabel('Freq (Hz)'); ylabel('Spectrum'); subplot(313); ampSigFdS = fft(fmSigS); % FD spectrum of the FM signal ampSigAbs = abs(fftshift(ampSigFdS)); stem(dispFrqsS, ampSigAbs, 'r'); axis([dispFrqsS(1) dispFrqsS(end) 0 max(ampSigAbs)*1.2]); xlabel('Freq (Hz)'); ylabel('Spectrum'); if PRINT == 1, print('-depsc2', '../figs/fig2.eps'); end