%PART 2 clear rng(0); %set seed for random number generator for consistent results N = 256; T = (0:N-1)/N; %make trial signal f= .5*cos(20 * pi *T) + (1/3)*cos(48*pi*T) + 0.5*randn(1, N); forigin = .5*cos(20 * pi *T) + (1/3)*cos(48*pi*T); %signal without noise for j=1:N %create central window as vector wre(j) = wrect(j-N/2); end %have the filter act on f in three steps yy = fftshift(fft(f)); %centered fft of the signal zz = fftshift(yy .* wre); %pointwise product shifted back to standard form xx = real(ifft(zz)); %inverse transform back to time domain yields filtered signal plot(T, forigin, T, xx) %compare original no-noise signal with filtered one function y = wrect(x) %function def of rectangular window if (abs(x) <= 35) y = 1; else y = 0; end end