A = DiagonalMatrix[ConstantArray[-1, 2 n]] +
ConstantArray[-1, {2 n, 2 n}];
B = SparseArray[{{i_, i_} -> 1, {i_, j_} /; i - j > 0 -> 1}, {2 n,
2 n}];
Y = Transpose[B];
W = ConstantArray[0, {2 n, 2 n}];
mat = Normal@
SparseArray[{{i_, i_} -> a, {i_, j_} /; i - j == 1 ->
b, {i_, j_} /; j - i == 1 -> y, {i_, j_} /; Abs[i - j] > 1 ->
z}, {2 n - 2, 2 n - 2}];
Q = SparseArray[
ArrayFlatten[mat /. {a -> A, b -> B, y -> Y, z -> W}]];