N = 2^14; f = [0:N-1]/N - 0.5; L = 39; b = remez(L-1,[0.1 0.9],[1 1],'Hilbert'); c = zeros(N,1); c(1:L-((L+1)/2)+1) = b((L+1)/2:L); c(N-(L-1)/2 + 1:N) = b(1:(L-1)/2); B = fftshift(fft(c,N)); beta = 2.629; D=(L-1)/2; h = (2/pi)*kaiser(L,beta).'.*sin(pi*[-D:D]/2).^2./[-D:-1,1,1:D]; c = zeros(N,1); c(1:L-((L+1)/2)+1) = h((L+1)/2:L); c(N-(L-1)/2 + 1:N) = h(1:(L-1)/2); H = fftshift(fft(c,N)); subplot(311); plot([0:L-1],[b.',h.']); xlabel('Sample Index','FontSize',16); ylabel('Amplitude','FontSize',16); set(gca,'FontSize',16); title('Hilbert Transformer Impulse Response','FontSize',16); legend('Parks-McClellan','Kaiser Window',-1); grid on; subplot(312); plot(f,abs([B,H])); ylabel('Magnitude (linear)','FontSize',16); xlabel('Frequency [Cycles/Sample]','FontSize',16); legend('Parks-McClellan','Kaiser Window',-1); set(gca,'FontSize',16); grid on; subplot(313); plot(f,180*unwrap(angle([B,H]))); ylabel('Phase (degrees)','FontSize',16); xlabel('Frequency [Cycles/Sample]','FontSize',16); legend('Parks-McClellan','Kaiser Window',-1); set(gca,'FontSize',16); grid on;