Professional Documents
Culture Documents
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
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
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
-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
-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
-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
-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
-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
-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