Generating Spectrum Information file
This file stores the dictionary and the spectral sampling grid-related information. It is needed by the spectEstimation tool to estimate spectra.
How to create it
Decide the spectral dimensions you want based on its acquisition parameters. Example: for multidimensional diffusion relaxation MR data where the acquision has been done in a set of (b,TE) values, the spectral dimension can be the diffusion coefficient D and T2 relaxation.
For each spectral dimension \(p\), create a vector of sampling points and store it in
axes(p).sample. Example: For D-values, we may choose 80 logarithmically spaced points between 0.01-5 \(\mu m^2/ms\).Assign a name for the \(p\)-th spectral dimension and store it in
axes(p).name. Example:"D","T2"Assign the unit for the \(p\)-th spectral dimension and store it in
axes(p).unit. Example:"um^2/ms","ms"Assign the spacing of the sampling grid points for the \(p\)-th spectral dimension and store it in
axes(p).spacing. Can take values only among: (log,linear,arbitrary). Example: As in the previous example we have chosen logarithmically spaced point, we will put the name of this variablelog.
Construct
spectral_dimas the length of each sample vector.Example: If first spectral dimension, D has 80 grid points and second spectral dimension, T2 has 70, then
spectral_dim = [80, 70].
As, in our spectrum solver, the unknown amplitudes of the signals parameterized by these spectral grid points and their corresponding acquisition samples are estimated, we first need to construct a mapping that connects the unknown signal amplitudes to the measured data. Specifically, for a \(P\)-dimensional acquisition, where the \(p\)-th spectral dimension is discretized into \(M_p\) grid points, and with a total of \(N_a\) acquisitions, we define a tensor \(K\) of size \(N_a \times M_1 \times M_2 \times \cdots \times M_P\). This tensor encodes the forward model: it maps the spectral amplitudes to the \(N_a\) measured data points. In other words, \(K\) provides the essential link between the discretized spectral representation and the observed MR acquisitions.
General form:
\[K[i, j_1, j_2, \ldots, j_P] \;=\; \prod_{p=1}^{P} \phi\!\big(\mathrm{acq}^{(p)}_{i}, S^{(p)}_{j_p}\big),\]
where
\(\phi\!\big(\,\mathrm{acq}^{(p)}_{i},\, S^{(p)}_{j_p}\big)\) is the kernel expression depending on \(\mathrm{acq}^{(p)}\) and \(S^{(p)}\), often exponential decay.
\(i = 1,\ldots,N_a\) indexes acquisition samples (e.g., b, TE, TI, etc.).
\(j_p = 1,\ldots,M_p\) indexes samples along the \(p\)-th spectral dimension (e.g., \(T_2\), \(D\), \(T_1\), …).
\(\mathrm{acq}^{(p)} \in \mathbb{R}^{N_a}\) denotes the acquisition parameter vector associated with the \(p\)-th contrast mechanism.
\(S^{(p)} \in \mathbb{R}^{M_p}\) denotes the spectral sampling points for the \(p\)-th dimension. This is same as
axes(p).samplevector described above.
Example for diffusion–relaxation spectroscopic imaging:
\[K[i, j, k] = \exp(-b_i D_j)\;\exp\!\left(-\tfrac{TE_i}{T_{2k}}\right).\]Save the variables
axes,spectral_dim, andKin a .mat HDF5 file.Matlab example:
save('spect_infofile.mat','axes','spectral_dim','K','-v7.3');