You are on page 1of 29

1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0

100

200

300

400

500

600

11/17/11 5:06 PM

C:\Users\dkarpur\Documents\MATLAB\hw91a.m

order = 100;
cutoff = 1/2;
freq = [0 cutoff/2 cutoff 1];
amp = [1 0.5 0 0];
samp_seq = fir2(order, freq, amp);
h1 = freqz(samp_seq);
h1mag = abs(h1);
figure(1);
plot(h1mag);

1 of 1

11/16/11 2:58 PM

C:\Users\dkarpur\Documents\MATLAB\hw93a.m

clear all;
clc;
order = 128;
cutoff = 1/2;
freq = [0 cutoff/2 cutoff 1];
amp = [1 0.5 0 0];
samp_seq = fir2(order, freq, amp);
h=freqz(samp_seq,1,100);
hmag = abs(h);
figure(1);
plot(hmag);
samp_seq1 = [samp_seq; zeros(1,length(samp_seq))];
newdata =samp_seq1(:);
h1=freqz(newdata,1,100);
hmag1 = abs(h1);
display(hmag1);
figure(2);
plot(hmag1);
title('when L=2');
samp_seq2 = [samp_seq; zeros(2,length(samp_seq))];
newdata1 =samp_seq2(:);
h2=freqz(newdata1,1,100);
hmag2 = abs(h2);
display(hmag2);
figure(3);
plot(hmag2);
title('when L=3');
samp_seq3 = [samp_seq; zeros(3,length(samp_seq))];
newdata2 =samp_seq3(:);
h3=freqz(newdata2,1,100);
hmag3 = abs(h3);
display(hmag3);
figure(4);
plot(hmag3);
title('when L=4');

1 of 1

when L=4
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0

10

20

30

40

50

60

70

80

90

100

when L=3
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0

10

20

30

40

50

60

70

80

90

100

when L=2
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0

10

20

30

40

50

60

70

80

90

100

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0

10

20

30

40

50

60

70

80

90

100

11/16/11 3:02 PM

C:\Users\dkarpur\Documents\MATLAB\hw93c.m

c = firpmord( [1500 3000], [1 0], [0.001 0.01], 10000, 'cell');


b = firpm(c{:});
figure(1);
plot(b);
b1 = [b; zeros(1,length(b))];
newdata =b1(:);
h1=freqz(newdata,1,100);
hmag1 = abs(h1);
display(hmag1);
figure(2);
plot(hmag1);
title('Afer interploation' );

1 of 1

Afer interploation
1.4

1.2

0.8

0.6

0.4

0.2

10

20

30

40

50

60

70

80

90

100

11/16/11 3:19 PM

C:\Users\dkarpur\Documents\MATLAB\hw93c.m

clc;
clear all;
c = firpmord( [1500 3000], [1 0], [0.001 0.01], 10000, 'cell');
b = firpm(c{:});
figure(1);
plot(b);
b1 = [b; zeros(1,length(b))];
newdata =b1(:);
h1=freqz(newdata,1,100);
hmag1 = abs(h1);
figure(2);
plot(hmag1);
title('Afer interploation' );
order = 128;
cutoff = 1/2;
freq = [0 cutoff/2 cutoff 1];
amp = [1 0.5 0 0];
samp_seq = fir2(order, freq, amp);
h=freqz(samp_seq,1,100);
hmag = abs(h);
t = filter(hmag1,1,hmag);
figure(3);
plot(t);
title('filtered upsampled sequence' );

1 of 1

filtered upsampled sequence


18

16

14

12

10

10

20

30

40

50

60

70

80

90

100

Afer interploation
1.4

1.2

0.8

0.6

0.4

0.2

10

20

30

40

50

60

70

80

90

100

11/16/11 4:46 PM

C:\Users\dkarpur\Documents\MATLAB\hw94a.m

clc;
clear all;
M = 100;
Fpass = 45;
Fstop = 50;
delta_p = 0.1;
delta_s = 0.001;
Fs = 10000;
[N_H,Fo,Ao,w] = firpmord( [Fpass Fstop], [1 0], [delta_p delta_s], Fs);
display(N_H);
h = firpm(N_H,Fo,Ao,w);
fvtool(h);
%figure(1);
%plot(c);
M1 = 10; M2 = 10;
F0 = Fs;
F1 = F0/M1;
F2 = F1/M2;
% First Filter
Fpass1 = Fpass;
Fstop1 = F1 - Fstop;
delta_p1 = delta_p/2;
delta_s1 = delta_s;
[N_H1,Fo1,Ao1,w1] = firpmord([Fpass1 Fstop1], [1 0], ...
[delta_p1 delta_s1], F0);
h1 = firpm(N_H1,Fo1,Ao1,w1);
display(N_H1);
% Second Filter
Fpass2 = Fpass;
Fstop2 = F2 - Fstop;
delta_p2 = delta_p/2;
delta_s2 = delta_s;
[N_H2,Fo2,Ao2,w2] = firpmord([Fpass2 Fstop2], [1 0], ...
[delta_p2 delta_s2], F1);
h2 = firpm(N_H2,Fo2,Ao2,w2);
fvtool(h2);
display(N_H2);
%third stage
M3 = 25; M4 = 2; M5=2;
F3 = Fs;
F4 = F3/M3;
F5 = F4/M4;
F6 = F5/M5;
% First Filter
Fpass3 = Fpass;
Fstop3 = F4 - Fstop;
delta_p3 = delta_p/3;
delta_s3 = delta_s;
[N_H3,Fo3,Ao3,w3] = firpmord([Fpass3 Fstop3], [1 0], ...
[delta_p3 delta_s3], F3);
h3 = firpm(N_H3,Fo3,Ao3,w3);

1 of 2

11/16/11 4:46 PM

C:\Users\dkarpur\Documents\MATLAB\hw94a.m

display(N_H3);
% Second Filter
Fpass4 = Fpass;
Fstop4 = F5 - Fstop;
delta_p4 = delta_p/3;
delta_s4 = delta_s;
[N_H4,Fo4,Ao4,w4] = firpmord([Fpass4 Fstop4], [1 0], ...
[delta_p4 delta_s4], F3);
h4 = firpm(N_H4,Fo4,Ao4,w4);
display(N_H4);
% Third Filter
Fpass5 = Fpass;
Fstop5 = F6 - Fstop;
delta_p5 = delta_p/3;
delta_s5 = delta_s;
[N_H5,Fo5,Ao5,w5] = firpmord([Fpass5 Fstop5], [1 0], ...
[delta_p5 delta_s5], F3);
h5 = firpm(N_H5,Fo5,Ao5,w5);
fvtool(h5);
display(N_H5);

2 of 2

Phase Response for three stages


0

-10

Phase (radians)

-20

-30

-40

-50

-60

-70
0

0.1

0.2

0.3

0.4
0.5
0.6
Normalized Frequency ( rad/sample)

0.7

0.8

0.9

Magnitude Response (dB)

-10

Magnitude (dB)

-20

-30

-40

-50

-60

-70
0

0.1

0.2

0.3

0.4
0.5
0.6
Normalized Frequency ( rad/sample)

0.7

0.8

0.9

Phase Response for two stage


0

-10

Phase (radians)

-20

-30

-40

-50

-60

0.1

0.2

0.3

0.4
0.5
0.6
Normalized Frequency ( rad/sample)

0.7

0.8

0.9

Magnitude Response (dB)

-10

Magnitude (dB)

-20

-30

-40

-50

-60

-70
0

0.1

0.2

0.3

0.4
0.5
0.6
Normalized Frequency ( rad/sample)

0.7

0.8

0.9

Phase Response for single stage


0

-10

Phase (radians)

-20

-30

-40

-50

0.1

0.2

0.3

0.4
0.5
0.6
Normalized Frequency ( rad/sample)

0.7

0.8

0.9

Magnitude Response (dB)

-10

Magnitude (dB)

-20

-30

-40

-50

-60

-70

0.1

0.2

0.3

0.4
0.5
0.6
Normalized Frequency ( rad/sample)

0.7

0.8

0.9

1.5

0.5

-0.5

-1

-1.5

-2
0

200

400

600

800

1000

1200

2.5

1.5

0.5

-0.5

-1

-1.5

-2

-2.5
0

200

400

600

800

1000

1200

1.5

0.5

-0.5

-1

-1.5

-2
0

200

400

600

800

1000

1200

1.5

0.5

-0.5

-1

-1.5

-2
0

200

400

600

800

1000

1200

1.5

0.5

-0.5

-1

-1.5

-2
0

200

400

600

800

1000

1200

2.5

1.5

0.5

-0.5

-1

-1.5

-2

-2.5
0

200

400

600

800

1000

1200

11/17/11 7:24 AM

C:\Users\dkarpur\Documents\MATLAB\hw95d.m

clc;
clear all;
N=20;
Wn = 0.413;
b = fir1(N,Wn);
ntaps = 65;
f = [0.0 0.9 0.95 1.0];
mag = [ 1.0 1.0 0.7071 0.0];
bt = fir2(ntaps, f, mag);
n1 = length(bt);
len1 = 256 - n1 + 1;
%
% Generate the input sample sequence.
%
data = 5*[zeros(1, 24) ones(1, 48) zeros(1, 48) -1*ones(1, 48) zeros(1,23)];
y = conv(bt, data);
%display(y);
h1 = [0.001 0.0041 -0.0483 0.2999 0.0755 0.007 -0.005];
h2 = [-0.0028 0.0211 -0.0587 0.4134 -0.0587 0.0211 -0.0028];
h3 = [-0.0055 0.007 0.0755 0.2999 -0.0483 0.0041 0.001];
y1 = filter(h1,1,y);
b1 = [y1; zeros(3,length(y1))];
newdata =b1(:);
figure(1);
stem(newdata);
y2 = filter(h2,1,y);
b2 = [y2; zeros(3,length(y2))];
newdata1 =b2(:);
figure(2);
stem(newdata1);
y3 = filter(h3,1,y);
b3 = [y3; zeros(3,length(y3))];
newdata2 =b3(:);
figure(3);
stem(newdata2);
%using convolution
x=y;
v1 = [x; zeros(3,length(x))];
newdata3 =v1(:);
yf = conv(b, newdata3);
p1 = b(1, 1:3:end);
p2 = b(1, 2:3:end);
p3 = b(1, 3:3:end);
r1 = conv(p1, x);
r2 = conv(p2, x);
r3 = conv(p3, x);
n3 = length(r1); n4 = length(yf);
s1 = zeros(1,n4);
s2 = s1; s3 = s1;

1 of 2

11/17/11 7:24 AM
n5 = 3*length(r1);
s1(1,1:3:n5) = r1;
t1 = s1(1:1024);
t1 = fliplr(t1');
figure(4);
stem(t1);
s2(1,2:3:n5) = r2;
t2 = s2(1:1024);
t2 = t2';
figure(5);
stem(t2);
s3(1,3:3:n5) = r3;
t3 = s3(1:1024);
t3 = t3';
figure(6);
stem(t3);
err1 = t1-newdata;
figure(7);
stem(err1);
err2 = t2-newdata1;
serr3 = t3-newdata2;

C:\Users\dkarpur\Documents\MATLAB\hw95d.m

2 of 2

11/17/11 7:33 AM

C:\Users\dkarpur\Documents\MATLAB\hw95a.m

clc;
N=20;
Wn = 0.413;
b = fir1(N,Wn);
display(b);
figure(1);
plot(b);
ntaps = 65;
f = [0.0 0.9 0.95 1.0];
mag = [ 1.0 1.0 0.7071 0.0];
bt = fir2(ntaps, f, mag);
n1 = length(bt);
len1 = 256 - n1 + 1;
%
% Generate the input sample sequence.
%
data = 5*[zeros(1, 24) ones(1, 48) zeros(1, 48) -1*ones(1, 48) zeros(1,23)];
y = conv(bt, data);
%display(y);
x=y;
%n2 = 3*length(x);
%v1 = zeros(1, n2);
%v1(1, 1:3:end) = x;
v1 = [x; zeros(3,length(x))];
newdata =v1(:);
y1 = conv(b, newdata);
b1 = b(1, 1:3:end);
b2 = b(1, 2:3:end);
b3 = b(1, 3:3:end);
r1 = conv(b1, x);
r2 = conv(b2, x);
r3 = conv(b3, x);
n3 = length(r1); n4 = length(y1);
s1 = zeros(1,n4);
s2 = s1; s3 = s1;
n5 = 3*length(r1);
s1(1,1:3:n5) = r1;
figure(1);
stem(s1(1:1024));
s2(1,2:3:n5) = r2;
figure(2);
stem(s2(1:1024));
s3(1,3:3:n5) = r3;
figure(3);
stem(s3(1:1024));

1 of 1

You might also like