How to Implement and Minimize Maximum Likelihood Expression in MATLAB
OK, let's see if I can answer this now.

The original log likelihood expression is
$$
L(\mathbf{y} | \mathbf{\Theta}) = -\frac{N}{2} \ln (2\pi \sigma^2_w) - \frac{1}{2\sigma^2_w} \sum_{n=0}^{N-1} ( y_n - \mathbf{h}^T \mathbf{z}_n)^2
$$
where $y_n, n=0,1,\ldots,N-1$ are the known noisy measurements, $\mathbf{h}$ are your (unknown) filter coefficients and $\mathbf{z}_n$ are the known random inputs to your filter.Here $\mathbf{\Theta}$ is just your unknown $\mathbf{h}$ coefficients if that is all that is to be estimated.

So, the way to calculate it is just (in R) as:

N &lt;- 256
h_true &lt;- c(1, 0.45, -0.2)    
z &lt;- rnorm(N,0,1)
hz &lt;- filter(z,h_true)
sigma_w &lt;- 1

y &lt;- hz + rnorm(N,0,sigma_w)

llh &lt;- -N/2*log(2*pi*sigma_w*sigma_w) - 1/(2*sigma_w*sigma_w)*sum((y-hz)^2)


Now, to your question:


  Question 1: I am stuck in implementation in the step. How do I plot the curve and show at which value of $H$ the curve reaches its maximum value?


Well, that's a little hard because your log likelihood is a multi-dimensional plot (four dimensional in your specific case -- one for each coefficient and one for the value of the log likelihood).

So you need to plot llh on three dimensions H_est(:,1),  H_est(:,2), and  H_est(:,3)  and then the value. You might want to just look at plot3(H_est(:,1), H_est(:,2), llh) (or something that approximate this).