Proper method for generating Channel coefficients in MATLAB
Complex channel coefficient is just a way to represent the independent real coefficients. You just need to generate h = [h_0, h_1, h_2] = [hR_0, hR_1, hR_2] + 1i * [hI_0, hI_1, hI_2]. The independence/correlation between coefficients depend on your model. And if I were not wrong, the number of element of h is the order of your MA model.
The idea behind complex representation is that if the orthogonal set of vector space of baseband signal of bandwidth $[0,W]$ is $\left\lbrace \phi_k(t) \right\rbrace$, the orthogonal set of vector space of passband signal $[f_c-W,f_c+W]$ is $\left\lbrace \phi_k(t) \cos(2\pi f_ct), \phi_k(t) \sin(2\pi f_ct) \right\rbrace$. More details can be found at Read chapter 2.
Furthermore, as real signals have symmetric spectrum, it is convenient to represent these signals by its Baseband Equivalent versions. Thus, a complex representation is used.


So, if you work in the baseband version of signal, channel coefficients are generally complex.

The continuos time white noise is a model of infinite-dimensional signal. When you project this signal to the orthogonal set to obtain the discrete time noise samples, you follow the dimension of the orthogonal set, thus the baseband noise samples are generally complex.

The input data can be complex or real depending on how you want to use available dimensions.

After all, yes, you can process your signal as you have written, regardless real or complex assumptions.

for k = 2:N y(k) = x(k) + 0.6*x(k-1) + 0.3*x(k-2);