You are on page 1of 1

clear all;

clc;
N=input('enter no.of samples to be taken ');
f1=input('enter frequency f1 ');
f2=input('enter frequency f2 ');
fs=input('enter sampling frequency');
x=sin(2*pi*f1*[1:N]/fs)+sin(2*pi*f2*[1:N]/fs);
y=x+5*rand(1,N);
x1=abs(fft(x).*fft(x));
y1=abs(fft(y).*fft(y));
l=input('length of a segment');
k=floor(N/l);
z1=zeros(1,l);
%Bartlett periodogram
for i=1:k
z(i,:)=y(l*(i-1)+1:l*i);
z1=z1+abs(fft(z(i,:)).*fft(z(i,:)));
end
%welsh periodogram
z2=zeros(1,l);
D=input('enter offset');
for i=1:floor((N-l)/(l-D)+1)
z11(i,:)=x((l-D)*(i-1)+1:(l-D)*(i-1)+l);
z2=z2+abs(fft(z11(i,:)).*fft(z11(i,:)));
end
figure(1)
subplot(221);plot([1:N]*fs/N,20*log(x1));title('Signal spectrum');xlabel('no.of
samples n');ylabel('Amplitude');
subplot(222);plot([1:N]*fs/N,20*log(y1));title('Noisy signal spectrum');xlabel('
no.of samples k');ylabel('Amplitude');
subplot(223);plot([1:l]*fs/l,20*log(z1));title('Bartlett periodogram');xlabel('n
o.of samples k');ylabel('Amplitude');
subplot(224);plot([1:l]*fs/l,20*log(z2));title('Welsch periodogram');xlabel('no.
of samples k');ylabel('Amplitude');

You might also like