# Coherence.m

Coherence selection function - keeps only the specified coherence orders in the state vector. Syntax:

    rho=coherence(spin_system,rho,spec)


Arguments:

    rho  -  a state vector or a bookshelf stack of state vectors

    spec -  a cell array containing the specification of
which coherences to keep on which spins


Examples of coherence specification:

    rho=coherence(spin_system,rho,{{'13C',[1 -1]},{'1H',-1}})


this command keeps all states that simultaneously have coherence order 1 or -1 in the 13C subspace, and coherence order -1 in the 1H subspace.

    rho=coherence(spin_system,rho,{{3,0},{5,-1}})


this command keeps all states that simultaneously have coherence order 0 on spin number 3, and coherence order -1 on spin number 5.

This function is useful as a replacement for gradients and phase cycles because coherence order filtering can be accomplished analytically, by just picking out the required coherence orders and zeroing everything else. Because projection quantum number information is required, this function only works with sphten-liouv formalism.

Revision 3142, authors: Ilya Kuprov, Luke Edwards