MATLAB: How can i use legend command when i am using hold on for plotting graphs? in the plot i want to use legend command to indicate the color for respective plot that is black for low pass,blue for high pass,green for power complementary,red for all pas

proper usage of legend to relate the respective plots and colors when hold on is present

k = input('Number of frequency points = '); %%256
w = 0:pi/k:pi;
alpha=0.3
num=((1-alpha)/2)*[1 1]
den=[1 -alpha]
hlp=freqz(num,den,w)
num1=((1+alpha)/2)*[1 -1]
den1=[1 -alpha]
hhp=freqz(num1,den1,w)
figure
subplot(2,1,1)
plot(w/pi, abs(hlp),'k','LineWidth', 2);hold on
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Amplitude', 'FontSize', 12, 'FontWeight', 'Bold')
title('|H(\omega)|', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
legend ('low pass','high pass','all pass','Location', 'Northwest')
set(legend,'FontSize',7);
subplot(2,1,2)
plot(w/pi, angle(hlp),'k', 'LineWidth', 2);hold on;
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Phase, radians', 'FontSize', 12, 'FontWeight', 'Bold')
title('\angle H(\omega)', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
% legend (ax2,'hlp','hhp','all_pass','Location', 'Northwest')
% set(legend,'FontSize',7);
subplot(2,1,1)
plot(w/pi, abs(hhp), 'LineWidth', 2);hold on
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Amplitude', 'FontSize', 12, 'FontWeight', 'Bold')
title('|H(\omega)|', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
subplot(2,1,2)
plot(w/pi, angle(hhp), 'LineWidth', 2);hold on;
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Phase, radians', 'FontSize', 12, 'FontWeight', 'Bold')
title('\angle H(\omega)', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
all_pass=abs(hlp+hhp)
%figure
subplot(2,1,1)
plot(w/pi, abs(all_pass),'r', 'LineWidth', 2);hold on
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Amplitude', 'FontSize', 12, 'FontWeight', 'Bold')
title('|H(\omega)|', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
subplot(2,1,2)
plot(w/pi, angle(all_pass),'r', 'LineWidth', 2);hold on;
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Phase, radians', 'FontSize', 12, 'FontWeight', 'Bold')
title('\angle H(\omega)', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
%%power complentary
powr=(abs(hhp).^2)+(abs(hlp).^2)
figure
subplot(2,1,1)
plot(w/pi, abs(hlp),'k', 'LineWidth', 2);hold on;
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Amplitude', 'FontSize', 12, 'FontWeight', 'Bold')
title('|H(\omega)|','FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
legend ('hlp','hhp','powr','Location', 'Northwest')
set(legend,'FontSize',7);
subplot(2,1,2)
plot(w/pi, angle(hlp),'k', 'LineWidth', 2);hold on;
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Phase, radians', 'FontSize', 12, 'FontWeight', 'Bold')
title('\angle H(\omega)', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
legend ('hlp','hhp','powr','Location', 'Northwest')
set(legend,'FontSize',7);
subplot(2,1,1)
plot(w/pi, abs(hhp), 'LineWidth', 2);hold on
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Amplitude', 'FontSize', 12, 'FontWeight', 'Bold')
title('|H(\omega)|', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
subplot(2,1,2)
plot(w/pi, angle(hhp), 'LineWidth', 2);hold on;
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Phase, radians', 'FontSize', 12, 'FontWeight', 'Bold')
title('\angle H(\omega)', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
subplot(2,1,1)
plot(w/pi, abs(powr),'g', 'LineWidth', 2);hold on
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Amplitude', 'FontSize', 12, 'FontWeight', 'Bold')
title('|H(\omega)|', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
subplot(2,1,2)
plot(w/pi, angle(powr),'g', 'LineWidth', 2);hold on;
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Phase, radians', 'FontSize', 12, 'FontWeight', 'Bold')
title('\angle H(\omega)', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')

Best Answer

Use the legend function after the three plots
close all
k = input('Number of frequency points = '); %%256
w = 0:pi/k:pi;
alpha=0.3
num=((1-alpha)/2)*[1 1]
den=[1 -alpha]
hlp=freqz(num,den,w)
num1=((1+alpha)/2)*[1 -1]
den1=[1 -alpha]
hhp=freqz(num1,den1,w)
figure
subplot(2,1,1)
plot(w/pi, abs(hlp),'k','LineWidth', 2);hold on
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Amplitude', 'FontSize', 12, 'FontWeight', 'Bold')
title('|H(\omega)|', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
plot(w/pi, abs(hhp), 'LineWidth', 2);hold on
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Amplitude', 'FontSize', 12, 'FontWeight', 'Bold')
title('|H(\omega)|', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
plot(w/pi, abs(all_pass),'r', 'LineWidth', 2);hold on
grid on;
xlabel('\omega/\pi', 'FontSize', 12, 'FontWeight', 'Bold')
ylabel('Amplitude', 'FontSize', 12, 'FontWeight', 'Bold')
title('|H(\omega)|', 'FontSize', 12, 'FontWeight', 'Bold')
set(gca, 'FontSize', 14, 'FontWeight', 'Bold')
legend ('low pass','high pass','all pass','Location', 'Northwest')
set(legend,'FontSize',7);