Vous êtes sur la page 1sur 18

RAJEEV GANDHI MEMORIAL COLLEGE OF ENGG AND TECH, NANDYAL

M.Tech (Digital Systems Computer Electronics)-II SEM


SIGNAL PROCESSING LABORATORY
LIST OF EXPERIMENTS:
1. Program to generate and plot various basis and trigonometric sequences
2. Program to find the convolution of given sequence with and without using buil
t-
in functions and to plot the convolved sequence
3. Program to find the correlation of given sequences with and without using
built-in functions and to plot the correlated sequence
4. Program to simulate the given system and to plot its frequency response and
verify its stability described either by differential equations or by system
fuction
5. Program to verify the properties(symmetry properties) of Fourier Transform
6. Program to verify Multirate Processing concepts of given signal (decimation/
interpolation)
7. Program to design the following I I R filter (using BW & CB approximation)
i. LPF
ii. HPF
iii. BPF
iv. BSF
For the given specifications and plot its frequency response
8. Program to design various FIR filters using
a) Rectangular window
b) Hamming window
c) Hanning window
d) Blackman window
e) Kaiser window
For the given specifications and plot its frequency response
9. Program to design MR filters using Fourier series method
10. Program to find the power spectral density of given signal and to plot .

1.a. Addition of two sine waves


N=21;
n=0:1:N-1;
x=sin(.1*pi*n)+sin(.2*pi*n);
stem(n,x);
xlabel('n');
ylabel('x');
title('addition of two sine wave sequences');

1.b.Program for the generation of circle


theta=linspace(0,2*pi,100);
x=cos(theta);
y=sin(theta);
subplot(2,3,2);
plot(x,y,'go');axis('equal');
xlabel('x(n)');ylabel('y(n)');
title('circle');
OUTPUT OF CIRCLE:
1.c.Program for the generation of impulse signal
t=-2:1:2;
y=[zeros(1,2) ones(1,1) zeros(1,2)];
subplot(2,3,1);stem(t,y);ylabel ('---------ï €Amplitude ');
xlabel('-------ï € normalised frequency ');
Output of impulse signal

1.d.Program for the generation of ramp signal


n1=input('enter the length of ramp sequence');
t=0:n1;
y=t;
subplot(2,3,3);stem(t,t);ylabel('----ï €Amplitude');
xlabel('-ï €normalised frequency');

1.e.Program for the generation of step signal


N=input('enter the length of the sequence');
x=ones(1,N);
n=0:1:N-1;
subplot(2,2,1);
stem(n,x);ylabel('Amplitude-->');
xlabel('-------> normalised frequency');
RESULT:
input sequence:21

1.f.Program for the generation of sine waveform


t=0:.01:pi;
y=sin(2*pi*t);
subplot(2,1,1);stem (t,y);ylabel('-----ï €Amplitude ');
xlabel('----ï € normalised frequency ');

Output of sine waveform

1.g.Program for the generation of exponential signal


n2=input('enter the length of exponential sequence');
t=0:n2;
a=input('enter the a value');
y=exp(a*t);
subplot(2,2,4);stem(t,y);ylabel('Amplitude-->'); xlabel('------ï € normalised freq
uency');
RESULT:
enter the length of exponential sequence5
enter the a value2

2.a.Convolution
x=input('enter the 1st sequence');
h=input('enter the 2nd sequence');
y=conv2(x,h);
subplot(3,1,1);
stem(x);
ylabel('amplitude');
xlabel('(a)n');
subplot(3,1,2);
stem(h);
ylabel('amplitude');
xlabel('(b)n');
subplot(3,1,3);
stem(y);
ylabel('amplitude');
xlabel('(c)n');
disp(y)

Result:
enter the 1st sequence[3 4 5 6]
enter the 2nd sequence[3 4 5 6]
9 24 46 76 73 60 36

2.b.CIRCULAR CONVOLUTION
x1=input('enter the seq1')
x2=input('enter the seq2')
l1=length(x1)
l2=length(x2)
n1=0:1:l1-1
subplot(3,1,1)
stem(n1,x1)
xlabel('time index')
ylabel('amplitude')
title('first sequence')
n2=0:1:12-1
subplot(3,1,2)
%stem(n2,x2)
xlabel('time index')
ylabel('amplitude')
title('second sequence')
N=max(l1,l2)
y=conv2(x1,x2,N)
N=max(l1,l2)
n3=0:1:N-1
subplot(3,1,3)
stem(n3,y)
xlabel('time index')
ylabel('amplitude')
title('circular convolution')
CIRCULAR CONVOLUTION FUNCTION FILE
function[y]=conv2(x1,x2,N)
l1=length(x1)
l2=length(x2)
N=max(l1,l2)
if(N<max(l1,l2))
error('N must be >=max(l1,l2)')
end
x1=[x1,zeros(1,N-l1)]
x2=[x2,zeros(1,N-l2)]
%circular shift of sequence 2
m=[0:1:N-1]
M=mod(-m,N)
x2=x2(M+1)
H=zeros(N,N)
for n=1:1:N
m=n-1
p=0:1:N-1
q=mod(p-m,N)
xm=x2(q+1)
H(n,:)=xm
end
%matrix convolution
y=x1*H'
OUTPUT RESULT
enter the seq1[1 2 2 1]
x1 =
1 2 2 1
enter the seq2[1 2 2 1]
x2 =
1 2 2 1
l1 =
4
l2 =
4
n1 =
0 1 2 3
n2 =
Columns 1 through 10
0 1 2 3 4 5 6 7 8 9
Columns 11 through 12
10 11
N =
4
y =
4 8 8 4
8 16 16 8
8 16 16 8
4 8 8 4

N =
4
n3 =
0 1 2 3

3.CROSS CORRELATION
x=input('enter the 1st sequence');
h=input('enter the 2nd sequence');
y=xcorr(x,h);
subplot(3,1,1);
stem(x);
ylabel('amplitude');
xlabel('(a)n');
subplot(3,1,2);
stem(h);
ylabel('amplitude');
xlabel('(b)n');
subplot(3,1,3);
stem(fliplr(y));
ylabel('amplitude');
xlabel('(c)n');
disp('The resultant is');y
Result:
enter the 1st sequence[3 4 5 6]
enter the 2nd sequence[3 4 5 6]
The resultant is
4.Frequency response of a given system
b=[1 , .9];
a=[1 ,.4];
w=0:.01:pi;
[h]=freqz(b,a,w);
subplot(2,1,1);
plot(w/pi,abs(h));xlabel('freq');ylabel('mag');
subplot(2,1,2);
plot(w/pi,angle(h));
xlabel('freq');ylabel('phase');

5.a.FFT
x=input('enter the sequence');
n=input('enter the length of fft');
y=fft(x,n);
stem(y);axis([-5 30 -10 10]);ylabel('imaginery axis-->');
xlabel('real axis-->');
Result:
enter the sequence[2 3 4 5 6]
enter the length of fft8

5.b. Program for computing discrete fourier transform (Stable)


clear all;
close all;
b=input('enter the denominator coeffcients of the filter');
k=poly2rc(b);
knew=fliplr(k);
s=all(abs(knew),1);
if(s==1)
disp(' "stable system" ');
else
disp (' "Nonstable system" ');
end

RESULT
enter the denominator coeffcients of the filter[1 -1 5]
"stable system"
6.a. PROGRAM FOR DECIMATE FUNCTION
t=0:0.03:2;
x=cos(4*pi*t);
y=decimate(x,2);
t1=decimate(t,2);
subplot(2,1,1);
stem(t,x,'fill');
title('undecimated plot');
subplot(2,1,2);
stem(t1,y,'fill');
title('Decimated plot');
RESULT:

6.b. PROGRAM FOR INTERPOLE FUNCTION


t=0:0.03:2;
x=cos(4*pi*t);
y=interp(x,2);
t1=interp(t,2);
subplot(2,1,1);
stem(t,x,'fill');
title('actual plot');
subplot(2,1,2);
stem(t1,y,'fill');
title('interped plot');
RESULT

7. I I R FILTER (USING BW &CB)


i. LPF
ii. HPF
iii. BPF
iv. BSF
i. LOW PASS FILTER (BW):
rp=input ('enter the passband ripple');
rs =input ('enter the stopband ripple');
wp = input('enter the passbond frequency');
ws = input('enter the stopbond frequency');
fs = input('enter the sampling frequency');
w1 = 2 * wp/fs;
w2 = 2 * ws / fs ;
[n, wn] = buttord(w1,w2,rp,rs,'s');
[z,p,k] = butter(n,wn);
[b,a] =zp2tf(z,p,k);
[b,a] = butter (n,wn,'s');
w = 0:.01:pi;
[h,om] = freqs(b,a,w);
m= 20*log10(abs(h));
an=angle(h);
subplot(2,1,1);plot(om/pi,m);
ylabel('Gain in db--->');xlabel('(a) Normalised frequency--->');
subplot(2,1,2);plot(om/pi,an);
xlabel ('(b) Normalised frequency-->');
ylabel ('phase in radians --->');
RESULT:
enter the passband ripple0.15
enter the stopband ripple60
enter the passbond frequency1500
enter the stopbond frequency3000
enter the sampling frequency7000

ii. HIGH PASS FILTER (BW):


rp=input ('enter the passband ripple');
rs =input ('enter the stopband ripple');
wp = input('enter the passbond frequency');
ws = input('enter the stopbond frequency');
fs = input('enter the sampling frequency');
w1 = 2 * wp/fs;
w2 = 2 * ws / fs ;
[n, wn] = buttord(w1,w2,rp,rs,'s');
[b,a] = butter (n,wn,'high','s');
w = 0:.01:pi;
[h,om] = freqs(b,a,w);
m= 20*log10(abs(h));
an=angle(h);
subplot(2,1,1);plot(om/pi,m);
ylabel('Gain in db--->');xlabel('(a) Normalised frequency (hpf)--->');
subplot(2,1,2);plot(om/pi,an);
xlabel ('(b) Normalised frequency(hpf)-->');
ylabel ('phase in radians --->');

RESULT
enter the passband ripple0.2
enter the stopband ripple40
enter the passbond frequency2000
enter the stopbond frequency3500
enter the sampling frequency8000

iii. BANDPASS FILTER(BW):


rp=input ('enter the passband ripple');
rs =input ('enter the stopband ripple');
wp = input('enter the passbond frequency');
ws = input('enter the stopbond frequency');
fs = input('enter the sampling frequency');
w1 = 2 * wp/fs;
w2 = 2 * ws / fs ;
[n] = buttord(w1,w2,rp,rs,'s');
wn=[w1 w2];
[b,a] = butter (n,wn,'bandpass','s');
w = 0:.01:pi;
[h,om] = freqs(b,a,w);
m= 20*log10(abs(h));
an=angle(h);
subplot(2,1,1);plot(om/pi,m);
ylabel('Gain in db--->');xlabel('(a) Normalised frequency (bpf)--->');
subplot(2,1,2);plot(om/pi,an);
xlabel ('(b) Normalised frequency(bpf)-->');
ylabel ('phase in radians --->');

RESULT
enter the passband ripple0.36
enter the stopband ripple36
enter the passbond frequency1500
enter the stopbond frequency2000
enter the sampling frequency6000

iv. BANDSTOP FILTER(BW):


rp=input ('enter the passband ripple');
rs =input ('enter the stopband ripple');
wp = input('enter the passbond frequency');
ws = input('enter the stopbond frequency');
fs = input('enter the sampling frequency');
w1 = 2 * wp/fs;
w2 = 2 * ws / fs ;
[n] = buttord(w1,w2,rp,rs,'s');
wn=[w1 w2];
[b,a] = butter(n,wn,'stop','s');
w = 0:.01:pi;
[h,om] = freqs(b,a,w);
m= 20*log10(abs(h));
an=angle(h);
subplot(2,1,1);plot(om/pi,m);
ylabel('Gain in db--->');xlabel('(a) Normalised frequency (bs)--->');
subplot(2,1,2);plot(om/pi,an);
xlabel ('(b) Normalised frequency(bs)-->');
ylabel ('phase in radians --->');
RESULT:
enter the passband ripple0.28
enter the stopband ripple28
enter the passbond frequency1000
enter the stopbond frequency1400
enter the sampling frequency5000

i. LOW PASS FILTER (CB):


rp=input ('enter the passband ripple..');
rs =input ('enter the stopband ripple..');
wp = input('enter the passbond frequency..');
ws = input('enter the stopbond frequency..');
fs = input('enter the sampling frequency..');
w1 = 2 * wp/fs;
w2 = 2 * ws / fs ;
[n, wn] = cheb1ord(w1,w2,rp,rs,'s');
[b,a] = cheby1(n,rp,wn,'s');
w = 0:.01:pi;
[h,om] = freqs(b,a,w);
m= 20*log10(abs(h));
an=angle(h);
subplot(2,1,1);plot(om/pi,m);
ylabel('Gain in db--->');xlabel('(a) Normalised frequency--->');
subplot(2,1,2);plot(om/pi,an);
xlabel ('(b) Normalised frequency-->');
ylabel ('phase in radians --->');
RESULT:
enter the passband rippleâ ¦0.23
enter the stopband rippleâ ¦.47
enter the passbond frequencyâ ¦1300
enter the stopbond frequencyâ ¦1550
enter the sampling frequencyâ ¦7800

ii. HIGH PASS FILTER(CB):


rp=input ('enter the passband ripple..');
rs =input ('enter the stopband ripple..');
wp = input('enter the passbond frequency..');
ws = input('enter the stopbond frequency..');
fs = input('enter the sampling frequency..');
w1 = 2 * wp/fs;
w2 = 2 * ws / fs ;
[n, wn] = cheb1ord(w1,w2,rp,rs,'s');
[b,a] = cheby1(n,rp,wn,'high','s');
w = 0:.01:pi;
[h,om] = freqs(b,a,w);
m= 20*log10(abs(h));
an=angle(h);
subplot(2,1,1);plot(om/pi,m);
ylabel('Gain in db--->');xlabel('(a) Normalised frequency--->');
subplot(2,1,2);plot(om/pi,an);
xlabel ('(b) Normalised frequency-->');
ylabel ('phase in radians --->');
RESULT
enter the passband ripple...29
enter the stopband ripple..29
enter the passbond frequency..900
enter the stopbond frequency..1300
enter the sampling frequency..7500

iii. BANDPASS FILTER(CB):


rp=input ('enter the passband ripple..');
rs =input ('enter the stopband ripple..');
wp = input('enter the passbond frequency..');
ws = input('enter the stopbond frequency..');
fs = input('enter the sampling frequency..');
w1 = 2 * wp/fs;
w2 = 2 * ws / fs ;
[n] = cheb1ord(w1,w2,rp,rs,'s');
wn=[w1 w2];
[b,a]= cheby1(n,rp,wn,'bandpass','s');
w = 0:.01:pi;
[h,om] = freqs(b,a,w);
m= 20*log10(abs(h));
an=angle(h);
subplot(2,1,1);plot(om/pi,m);
ylabel('Gain in db--->');xlabel('(a) Normalised frequency--->');
subplot(2,1,2);plot(om/pi,an);
xlabel ('(b) Normalised frequency-->');
ylabel ('phase in radians --->');
RESULT
enter the passband ripple.. 0.3
enter the stopband ripple.. 40
enter the passbond frequency.. 1400
enter the stopbond frequency.. 2000
enter the sampling frequency.. 5000

iv. BANDSTOP FILTER(CB):


rp=input ('enter the passband ripple..');
rs =input ('enter the stopband ripple..');
wp = input('enter the passbond frequency..');
ws = input('enter the stopbond frequency..');
fs = input('enter the sampling frequency..');
w1 = 2 * wp/fs;
w2 = 2 * ws / fs ;
[n] = cheb1ord(w1,w2,rp,rs,'s');
wn=[w1 w2];
[b,a]= cheby1(n,rp,wn,'stop','s');
w = 0:.01:pi;
[h,om] = freqs(b,a,w);
m= 20*log10(abs(h));
an=angle(h);
subplot(2,1,1);plot(om/pi,m);
ylabel('Gain in db--->');xlabel('(a) Normalised frequency--->');
subplot(2,1,2);plot(om/pi,an);
xlabel ('(b) Normalised frequency-->');
ylabel ('phase in radians --->');
RESULT
enter the passband ripple.. 0.15
enter the stopband ripple.. 30
enter the passbond frequency.. 2000
enter the stopbond frequency.. 2400
enter the sampling frequency.. 7000

8.FIR FILTERS USING


i. Rectangular Window
ii. Hamming Window
iii. Hanning window
iv. Blackman Window
v. Kaiser Window
I. FIR FILTERS LPF, HPF, BPF, BSF USING RECTANGULAR WINDOW
rp=input ('enter the passband ripple..');
rs =input ('enter the stopband ripple..');
fp = input('enter the passbond frequency..');
fs = input('enter the stopbond frequency..');
f = input('enter the sampling frequency..');
wp=2*fp/f;
ws=2*fs/f;
num=-20*log10(sqrt(rp*rs))-13;
dem=14.6*(fs-fp)/f;
n=ceil(num/dem);
n1=n+1;
if(rem(n,2)~=0)
n1=n;
n=n-1;
end
y=boxcar(n1);
%lowpass filter
b=fir1(n,wp,y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,1);
plot(o/pi,m);
Ylabel('gain in db--->');
Xlabel('(a) normalised freq--->');
%high pass filter
b=fir1(n,wp,'high',y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,2);
plot(o/pi,m);
Ylabel('gain in db---->');
Xlabel('(b)normalised freq ------>');
%band pass filter
wn=[wp,ws];
b=fir1(n,wn,y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,3);
plot(o/pi,m);
Ylabel('gain in db ----->');
Xlabel('(c)normalised freq ---->');
%bandstop filter
b=fir1(n,wn,'stop',y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,4);
plot(o/pi,m);
Ylabel('gain in db------->');
Xlabel('(d) normalised freq------>');
RESULT:
enter the passband ripple..0.05
enter the stopband ripple.. 0.04
enter the passbond frequency.. 1500
enter the stopbond frequency.. 2000
enter the sampling frequency.. 9000

ii.FIR FILTERS LPF,HPF,BPF,BSF USING HAMMING WINDOW


rp=input('enter the pass band ripple');
rs=input('enter the stop band ripple');
fp=input('enter the pass freq');
fs=input('enter the stop freq');
f=input('enter the sampling freq');
wp=2*fp/f;ws=2*fs/f;
num=-20*log10(sqrt(rp*rs))-13;
dem=14.6*(fs-fp)/f;
n=ceil(num/dem);
n1=n+1;
if(rem(n,2)~=0)
n1=n;n=n-1;
end
y=hamming(n1);
%LOW PASSS FILTER
b=fir1(n,wp,y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,1);plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(a)normalised frequency------>');
%HIGH PASS FILTER
b=fir1(n,wp,'high',y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,2);plot(o/pi,m);grid
ylabel('gain in db---->');
xlabel('(b)normalised frequency------>');
%BAND PASS FILTER
wn=[wp ws];
b=fir1(n,wn,y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,3);plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(c)normalised frequency------>');
%BAND STOP FILTER
b=fir1(n,wn,'stop',y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,4);
plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(d) normalised frequency------>');

RESULT
enter the pass band ripple0.02
enter the stop band ripple0.01
enter the pass freq1200
enter the stop freq1700
enter the sampling freq9000

iii.FIR FILTERS LPF,HPF,BPF,BSF USING HANNING WINDOW


rp=input('enter the pass band ripple');
rs=input('enter the stop band ripple');
fp=input('enter the pass freq');
fs=input('enter the stop freq');
f=input('enter the sampling freq');
wp=2*fp/f;ws=2*fs/f;
num=-20*log10(sqrt(rp*rs))-13;
dem=14.6*(fs-fp)/f;
n=ceil(num/dem);
n1=n+1;
if(rem(n,2)~=0)
n1=n;n=n-1;
end
y=hanning(n1);
%LOW PASSS FILTER
b=fir1(n,wp,y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,1);plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(a)normalised frequency------>');
%HIGH PASS FILTER
b=fir1(n,wp,'high',y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,2);plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(b)normalised frequency------>');
%BAND PASS FILTER
wn=[wp ws];
b=fir1(n,wn,y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,3);plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(c)normalised frequency------>');
%BAND STOP FILTER
b=fir1(n,wn,'stop',y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,4);
plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(d) normalised frequency------>');
RESULT
enter the pass band ripple0.03
enter the stop band ripple0.01
enter the pass freq1400
enter the stop freq2000
enter the sampling freq8000

iv.FIR FILTERS LPF,HPF,BPF,BSF USING BLACKMAN WINDOW


rp=input('enter the pass band ripple');
rs=input('enter the stop band ripple');
fp=input('enter the pass freq');
fs=input('enter the stop freq');
f=input('enter the sampling freq');
wp=2*fp/f;ws=2*fs/f;
num=-20*log10(sqrt(rp*rs))-13;
dem=14.6*(fs-fp)/f;
n=ceil(num/dem);
n1=n+1;
if(rem(n,2)~=0)
n1=n;n=n-1;
end
y=blackman(n1);
%LOW PASSS FILTER
b=fir1(n,wp,y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,1);plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(a)normalised frequency------>');
%HIGH PASS FILTER
b=fir1(n,wp,'high',y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,2);plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(b)normalised frequency------>');
%BAND PASS FILTER
wn=[wp ws];
b=fir1(n,wn,y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,3);plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(c)normalised frequency------>');
%BAND STOP FILTER
b=fir1(n,wn,'stop',y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,4);
plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(d) normalised frequency------>');
RESULT
enter the pass band ripple0.03
enter the stop band ripple0.01
enter the pass freq2000 enter the stop freq2500
enter the sampling freq7000

V.FIR FILTERS LPF, HPF, BPF, BSF USING KAISER WINDOW


rp=input('enter the pass band ripple');
rs=input('enter the stop band ripple');
fp=input('enter the pass freq');
fs=input('enter the stop freq');
f=input('enter the sampling freq');
beta=input('enter the beta value');
wp=2*fp/f;ws=2*fs/f;
num=-20*log10(sqrt(rp*rs))-13;
dem=14.6*(fs-fp)/f;
n=ceil(num/dem);
n1=n+1;
if(rem(n,2)~=0)
n1=n;
n=n-1;
end
y=kaiser(n1,beta);
%LOW PASSS FILTER
b=fir1(n,wp,y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,1);plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(a)normalised frequency------>');
%HIGH PASS FILTER
b=fir1(n,wp,'high',y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,2);plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(b)normalised frequency------>');
%BAND PASS FILTER
wn=[wp ws];
b=fir1(n,wn,y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,3);plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(c)normalised frequency------>');
%BAND STOP FILTER
b=fir1(n,wn,'stop',y);
[h,o]=freqz(b,1,256);
m=20*log10(abs(h));
subplot(2,2,4);
plot(o/pi,m);
ylabel('gain in db---->');
xlabel('(d) normalised frequency------>');
RESULT
enter the pass band ripple 0.02
enter the stop band ripple 0.01
enter the pass freq 1000
enter the stop freq 1500
enter the sampling freq 10000
enter the beta value 5.8

9.PROGRAM TO DESIGN MR FILTERS USING FS METHOD


fs=20;
f=[2,4];
a=[1 0];
Rp=0.1;
Rs=40;
%calculate allowable deviation of ripple
dp=1-10^(-Rp/20);
ds=10^(-Rs/20);
dev=[dp ds];
%calculate order of the filter
[n,Wn,beta,ftype]=kaiserord(f,a,dev,fs);
Result using FS method:--

10.Power spectrum estimate using MATLAB


n=input('enter the length of the sequence')
window=hamming(n);
nfft=input('length of the FFT');
fs=input('sampling frequency');
n=0:1:n-1;
%signal sum of two sinusoids and random noise
x=cos(2*.1*pi*n/fs)+sin(2*.4*pi*n/fs)+0.01*randn(size(n));
subplot(2,1,1),plot(n,x)
xlabel('n'),ylabel('x(n)')
[pxx,f]=periodogram(x,window,nfft,fs)
subplot(2,1,2)
plot(f/fs,10*log10(pxx));grid
xlabel('\omega/\pi'),ylabel('power spectrum')
Result:--
enter the length of the sequence4
n =
4
length of the FFT4
sampling frequency1000
pxx =
0.0024
0.0016
0.0000
f =
0
250.0000
500.0000

Vous aimerez peut-être aussi