function [ Y,H, sigma_2,A,B,C ] = Observation( theta_1,theta_2,theta_3,gain,V,F,S,SNR,My,Mz)

[~,Q] = size(V);
[Nt,T] = size(F);
[P,P0] = size(S);

A = steering_matrix_UPA(My,Mz,theta_1);
B = steering_matrix_ULA(Nt,theta_2);
C = steering_matrix_tao(P0,theta_3);
Y = ktensor(gain,V.'*A,F.'*B ,S*C);
Y = tensor(Y); 
H = ktensor(gain,A,B,S*C);
H = tensor(H);
sigma_2 = norm(Y)^2*10^(-SNR/10)/(Q*T*P);
N = sqrt(sigma_2/2)*(randn(Q,T,P)+1j*randn(Q,T,P));
N = tensor(N);
Y = Y+N;

A = V.'*A;
B = F.'*B;
C = S*C*diag(gain);

[A,lambdaA] = normalization_column(A);
[B,lambdaB] = normalization_column(B);
[C,lambdaC] = normalization_column(C);
C=C*diag(lambdaA)*diag(lambdaB)*diag(lambdaC);

end