Dc Assignment

Post on 23-Oct-2014

124 views 1 download

Tags:

Transcript of Dc Assignment

Sampling and Reconstruction

BHUVANESH V -1MS09EC021

L R VINOD – 1MS09EC047 DEEPAK V K-1MS09EC025

ADITYA NAYAK-1MS09EC007 AJIT KRISHNA -1MS09EC008

Q) WRITE A MATLAB CODE TO SAMPLE A GIVEN ANALOG SIGNAL x(t)=A*cos(2*pi*f*t) AND TO OBTAIN A RECONSTRUCTED WAVEFORM USING LOW PASS FILTER . MEASURE THE DIFFERENCE B/W THE ORIGINAL AND RECONSTRUCTED SIGNAL . CONSIDER BOTH THE CASES WITH AND WITHOUT ALIASING EFFECT .

Algorithm for sampling:1)    Obtain analog signal.2)    Enter the max frequency (FM) and sampling frequency (FS).3)    Set sampling frequency (FS) either 2 times greater than or less than or equal to max frequency FM and sample analog signal.

The frequency domain representation of the signal is then displayed.We can observe the anti-aliasing or aliasing effect.

Algorithm for reconstruction:1)    Magnitude of each sample of the signal is individually multiplied to a SINC function.2)    The SINC function of each sample is added to the reconstructed signal at its respected position in time.

If the signal has been sampled properly we observe the reconstructed signal being the same as original, else aliasing is observed. For the ease of programming time axis has been normalized with respect to sampling period.

MATLAB CODE

CASE 1) : WITHOUT ALIASING EFFECT [ FS>2*FM]

%creating "analog" signal%clears all variablesclcclear allclose allt=0:.1:20;N=21;FM=400; %maximum frequency of the i/p signal FS=2000; %sampling frequency x=0.5*cos(2*pi*(FM/FS)*t);figure(1);

subplot(2,1,1);plot(t,x); %plot of original signaltitle('Original signal')xlabel('t');ylabel('x(t)'); subplot(2,1,2);x_samples=x(1:10:201); %gets 21 samples of x.stem(x_samples,'filled'); %stem of sampled sequencetitle('Sampled signal')xlabel('n');ylabel('x(n)');axis([0 20 -0.5 0.5]); %i/p and sampled signal in freq domainfigure(2);X=fft(x); %discrete fourier transform of i/p sequenceXmag=abs(X); %absolute value of original sequencefhz=t.*(FS/N); %converting time domain to freq domainsubplot(2,1,1);plot(fhz(1:N/2),Xmag(1:N/2));%plot of original seq in freq domainxlabel('frequency(Hz)');ylabel('Amplitude');title('i/p signal in frequency domain');grid; X_samples=fft(x_samples); %discrete fourier transform of sampled sequenceX_mag=abs(X_samples); %absolute value of sampled sequencefhz=t.*(FS/N); %converting time domain to freq domainsubplot(2,1,2);plot(fhz(1:N/2),X_mag(1:N/2));%plot of sampled seq in freq domainxlabel('frequency(Hz)');ylabel('Amplitude');

title('sampled signal in frequency domain');grid; %creating dialog box with explanationsl1=[blanks(10),'Sample by sample reconstruction.'];l2='Blue dots: Input samples.';l3='Blue curve: reconstructed signal.';l4='Red curve: contribution to output sample from current sample.';l5='Press any key to update with 1 iteration.';l6='(You can keep this window open while watching the reconstruction)';information ={l1,'',l2,l3,l4,'',l5,'',l6}; %starting reconstruction processfigure(3);messagebox=msgbox(information,'Information','help');subplot(2,1,2);plot(t,x,'black');hold on;plot([0 20],[0 0],'black'); %plot of original signalhold off;xlabel('t');ylabel('x(t)');title('Original signal');grid; x_recon=0; %initializing x_reconsubplot(2,1,1);for k=0:length(x_samples)-1 stem(0:length(x_samples)-1,x_samples,'filled'); %plotting discrete seq %of sample by sample reconstruction if k==length(x_samples)-1 title('Reconstruction finished'); else title('Sample by sample reconstruction'); end grid on;

l=k:-.1:-20+k; x_recon=x_recon+x_samples(k+1)*sinc(l); axis([0 20 -0.5 0.5]); hold; plot(t,x_samples(k+1)*sinc(l),'r') plot(t,x_recon); %plotting the reconstruction seq hold off; waitforbuttonpress; end%Reconstructed signal in freq domainfigure(4);X_recon=fft(x_recon); %discrete fourier transform of reconstructed sequenceX_Mag=abs(X_recon); %absolute value of reconstructed sequencefhz=t.*(FS/N); %converting time domain to freq domainsubplot(2,1,1);plot(fhz(1:N/2),X_Mag(1:N/2)); %plot of reconstructed seq in freq domainxlabel('frequency(Hz)');ylabel('Amplitude');title('reconstructed signal in frequency domain');grid;%i/p signal in freq domainX=fft(x); %discrete fourier transform of i/p sequenceXmag=abs(X); %absolute value of original sequencefhz=t.*(FS/N); %converting time domain to freq domainsubplot(2,1,2);plot(fhz(1:N/2),Xmag(1:N/2)); %plot of original seq in freq domainxlabel('frequency(Hz)');ylabel('Amplitude');title('i/p signal in frequency domain');grid;

OUTPUT :

N =21

FM = 400

FS = 2000

FIGURE (1)

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Original signal

t

x(t)

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sampled signal

n

x(n)

FIGURE(2)

0 10 20 30 40 50 60 70 80 900

20

40

60

frequency(Hz)

Am

plit

ude

i/p signal in frequency domain

0 10 20 30 40 50 60 70 80 900

2

4

6

frequency(Hz)

Am

plit

ude

sampled signal in frequency domain

MESSAGE BOX

FIGURE (3) (SAMPLE BY SAMPLE RECONSTRUCTION)

>AT FIRST SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT FIFTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT EIGHTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT ELEVENTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT FIFTEENTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT EIGHTEENTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT 20th SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Reconstruction finished

FIGURE (4)

0 10 20 30 40 50 60 70 80 900

20

40

60

frequency(Hz)

Am

plitu

de

reconstructed signal in frequency domain

0 10 20 30 40 50 60 70 80 900

20

40

60

frequency(Hz)

Am

plitu

de

i/p signal in frequency domain

*From the above graph we can observe that the reconstructed signal obtained in

frequency domain is same as that of the i/p signal in frequency domain . Hence the amplitude and frequencies are perfectly

matching in both the plots . The difference between the reconstructed signal and the original signal is

almost zero .

CASE 2) : WITHALIASING EFFECT [ FS>2*FM]

%creating "analog" signal%clears all variablesclcclear allclose allt=0:.1:20;N=21;FM=400; %maximum frequency of the i/p signal FS=700; %sampling frequency x=0.5*cos(2*pi*(FM/FS)*t);figure(1);subplot(2,1,1);plot(t,x); %plot of original signaltitle('Original signal')xlabel('t');ylabel('x(t)'); subplot(2,1,2);x_samples=x(1:10:201); %gets 21 samples of x.stem(x_samples,'filled'); %stem of sampled sequencetitle('Sampled signal')xlabel('n');ylabel('x(n)');axis([0 20 -0.5 0.5]); %i/p and sampled signal in freq domainfigure(2);X=fft(x); %discrete fourier transform of i/p sequence

Xmag=abs(X); %absolute value of original sequencefhz=t.*(FS/N); %converting time domain to freq domainsubplot(2,1,1);plot(fhz(1:N/2),Xmag(1:N/2));%plot of original seq in freq domainxlabel('frequency(Hz)');ylabel('Amplitude');title('i/p signal in frequency domain');grid; X_samples=fft(x_samples); %discrete fourier transform of sampled sequenceX_mag=abs(X_samples); %absolute value of sampled sequencefhz=t.*(FS/N); %converting time domain to freq domainsubplot(2,1,2);plot(fhz(1:N/2),X_mag(1:N/2));%plot of sampled seq in freq domainxlabel('frequency(Hz)');ylabel('Amplitude');title('sampled signal in frequency domain');grid; %creating dialog box with explanationsl1=[blanks(10),'Sample by sample reconstruction.'];l2='Blue dots: Input samples.';l3='Blue curve: reconstructed signal.';l4='Red curve: contribution to output sample from current sample.';l5='Press any key to update with 1 iteration.';l6='(You can keep this window open while watching the reconstruction)';information ={l1,'',l2,l3,l4,'',l5,'',l6}; %starting reconstruction processfigure(3);messagebox=msgbox(information,'Information','help');subplot(2,1,2);

plot(t,x,'black');hold on;plot([0 20],[0 0],'black'); %plot of original signalhold off;xlabel('t');ylabel('x(t)');title('Original signal');grid; x_recon=0; %initializing x_reconsubplot(2,1,1);for k=0:length(x_samples)-1 stem(0:length(x_samples)-1,x_samples,'filled'); %plotting discrete seq %of sample by sample reconstruction if k==length(x_samples)-1 title('Reconstruction finished'); else title('Sample by sample reconstruction'); end grid on; l=k:-.1:-20+k; x_recon=x_recon+x_samples(k+1)*sinc(l); axis([0 20 -0.5 0.5]); hold; plot(t,x_samples(k+1)*sinc(l),'r') plot(t,x_recon); %plotting the reconstruction seq hold off; waitforbuttonpress; end%Reconstructed signal in freq domainfigure(4);X_recon=fft(x_recon); %discrete fourier transform of reconstructed sequenceX_Mag=abs(X_recon); %absolute value of reconstructed sequencefhz=t.*(FS/N); %converting time domain to freq domain

subplot(2,1,1);plot(fhz(1:N/2),X_Mag(1:N/2)); %plot of reconstructed seq in freq domainxlabel('frequency(Hz)');ylabel('Amplitude');title('reconstructed signal in frequency domain');grid;%i/p signal in freq domain

X=fft(x); %discrete fourier transform of i/p sequenceXmag=abs(X); %absolute value of original sequencefhz=t.*(FS/N); %converting time domain to freq domainsubplot(2,1,2);plot(fhz(1:N/2),Xmag(1:N/2)); %plot of original seq in freq domainxlabel('frequency(Hz)');ylabel('Amplitude');title('i/p signal in frequency domain');grid;

OUTPUT :

N =21

FM = 400

FS = 700

FIGURE (1)

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Original signal

t

x(t

)

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sampled signal

n

x(n

)

FIGURE(2)

0 5 10 15 20 25 30 350

2

4

6

frequency(Hz)

Am

plitu

dei/p signal in frequency domain

0 5 10 15 20 25 30 350

2

4

6

frequency(Hz)

Am

plitu

de

sampled signal in frequency domain

MESSAGE BOX

FIGURE (3) (SAMPLE BY SAMPLE RECONSTRUCTION)

>AT FIRST SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT FIFTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT EIGHTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT ELEVENTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT FIFTEENTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT EIGHTEENTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT 20th SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Reconstruction finished

FIGURE (4)

0 5 10 15 20 25 30 350

10

20

30

40

frequency(Hz)

Am

plitu

de

reconstructed signal in frequency domain

0 5 10 15 20 25 30 350

2

4

6

frequency(Hz)

Am

plitu

de

i/p signal in frequency domain

*From the above graph we can observe that the reconstructed signal obtained in

frequency domain is not same as that of the i/p signal in frequency domain . Hence the amplitude and frequencies are

not perfectly matching in both the plots . The difference between the reconstructed signal and the original signal is :

1) At frequency of 10 hz : amplitude of original signal is 1.009 and amplitude of reconstructed signal is 1.644 . Therefore the difference is of .645

2) At frequency of 20 hz : amplitude of original signal is 2.121 and amplitude of reconstructed signal is 5.26 . Therefore the difference is of 3.139

3) At frequency of 30 hz : amplitude of original signal is 5.725 and amplitude of reconstructed signal is 37.93 . Therefore the difference is of 32.205

CASE 3) : FS=2*FM

%creating "analog" signal%clears all variablesclcclear allclose allt=0:.1:20;N=21;FM=400; %maximum frequency of the i/p signal FS=800; %sampling frequency x=0.5*cos(2*pi*(FM/FS)*t);figure(1);subplot(2,1,1);plot(t,x); %plot of original signaltitle('Original signal')xlabel('t');ylabel('x(t)'); subplot(2,1,2);x_samples=x(1:10:201); %gets 21 samples of x.stem(x_samples,'filled'); %stem of sampled sequencetitle('Sampled signal')xlabel('n');ylabel('x(n)');

axis([0 20 -0.5 0.5]); %i/p and sampled signal in freq domainfigure(2);X=fft(x); %discrete fourier transform of i/p sequenceXmag=abs(X); %absolute value of original sequencefhz=t.*(FS/N); %converting time domain to freq domainsubplot(2,1,1);plot(fhz(1:N/2),Xmag(1:N/2));%plot of original seq in freq domainxlabel('frequency(Hz)');ylabel('Amplitude');title('i/p signal in frequency domain');grid; X_samples=fft(x_samples); %discrete fourier transform of sampled sequenceX_mag=abs(X_samples); %absolute value of sampled sequencefhz=t.*(FS/N); %converting time domain to freq domainsubplot(2,1,2);plot(fhz(1:N/2),X_mag(1:N/2));%plot of sampled seq in freq domainxlabel('frequency(Hz)');ylabel('Amplitude');title('sampled signal in frequency domain');grid; %creating dialog box with explanationsl1=[blanks(10),'Sample by sample reconstruction.'];l2='Blue dots: Input samples.';l3='Blue curve: reconstructed signal.';l4='Red curve: contribution to output sample from current sample.';l5='Press any key to update with 1 iteration.';l6='(You can keep this window open while watching the reconstruction)';

information ={l1,'',l2,l3,l4,'',l5,'',l6}; %starting reconstruction processfigure(3);messagebox=msgbox(information,'Information','help');subplot(2,1,2);plot(t,x,'black');hold on;plot([0 20],[0 0],'black'); %plot of original signalhold off;xlabel('t');ylabel('x(t)');title('Original signal');grid; x_recon=0; %initializing x_reconsubplot(2,1,1);for k=0:length(x_samples)-1 stem(0:length(x_samples)-1,x_samples,'filled'); %plotting discrete seq %of sample by sample reconstruction if k==length(x_samples)-1 title('Reconstruction finished'); else title('Sample by sample reconstruction'); end grid on; l=k:-.1:-20+k; x_recon=x_recon+x_samples(k+1)*sinc(l); axis([0 20 -0.5 0.5]); hold; plot(t,x_samples(k+1)*sinc(l),'r') plot(t,x_recon); %plotting the reconstruction seq hold off; waitforbuttonpress; end%Reconstructed signal in freq domainfigure(4);

X_recon=fft(x_recon); %discrete fourier transform of reconstructed sequenceX_Mag=abs(X_recon); %absolute value of reconstructed sequencefhz=t.*(FS/N); %converting time domain to freq domainsubplot(2,1,1);plot(fhz(1:N/2),X_Mag(1:N/2)); %plot of reconstructed seq in freq domainxlabel('frequency(Hz)');ylabel('Amplitude');title('reconstructed signal in frequency domain');grid;%i/p signal in freq domain

X=fft(x); %discrete fourier transform of i/p sequenceXmag=abs(X); %absolute value of original sequencefhz=t.*(FS/N); %converting time domain to freq domainsubplot(2,1,2);plot(fhz(1:N/2),Xmag(1:N/2)); %plot of original seq in freq domainxlabel('frequency(Hz)');ylabel('Amplitude');title('i/p signal in frequency domain');grid;

OUTPUT :

N =21

FM = 400

FS = 800

FIGURE (1)

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Original signal

t

x(t

)

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sampled signal

n

x(n

)

FIGURE(2)

0 5 10 15 20 25 30 350

1

2

3

frequency(Hz)

Am

plitu

de

i/p signal in frequency domain

0 5 10 15 20 25 30 350.5

1

1.5

2

2.5

frequency(Hz)

Am

plitu

de

sampled signal in frequency domain

MESSAGE BOX

FIGURE (3) (SAMPLE BY SAMPLE RECONSTRUCTION)

>AT FIRST SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT FIFTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT EIGHTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT ELEVENTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT FIFTEENTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT EIGHTEENTH SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t

)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Sample by sample reconstruction

>AT 20th SAMPLE

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5

t

x(t)

Original signal

0 2 4 6 8 10 12 14 16 18 20-0.5

0

0.5Reconstruction finished

FIGURE (4)

0 5 10 15 20 25 30 352

4

6

8

10

frequency(Hz)

Am

plitu

de

reconstructed signal in frequency domain

0 5 10 15 20 25 30 350

1

2

3

frequency(Hz)

Am

plitu

de

i/p signal in frequency domain

*From the above graph we can observe that the reconstructed signal obtained in

frequency domain is not exactly same as that of the i/p signal in frequency domain . Hence the amplitude and frequencies

are not perfectly matching in both the plots . The difference between the reconstructed signal and the original signal is :

1) At frequency of 10 hz : amplitude of original signal is 0.5397 and amplitude of reconstructed signal is 3.09. Therefore the difference is of 2.5503

2) At frequency of 20 hz : amplitude of original signal is 0.6718 and amplitude of reconstructed signal is3.713. Therefore the difference is of 3.0412

3) At frequency of 30 hz : amplitude of original signal is 1.261 and amplitude of reconstructed signal is 5.996 . Therefore the difference is of 4.735