SVD_SSM_AutoTh

Automatic thresholding of the Spatial Similarity Matrix for SVD-filtering of ultrasound data
63 Downloads
Updated 13 Sep 2023

View License

J. Baranger, J. Aguet, O. Villemain, Fast Thresholding of SVD Clutter Filter Using the Spatial Similarity Matrix and a Sum-Table Algorithm. IEEE Transactions on Ultrasonics, Ferroelectrics, and Frequency Control. 70, 821–830 (2023).
==== OVERVIEW
svd_ssm_auto_th: Automatic thresholding of the Spatial Similarity Matrix for SVD-filtering of ultrasound data
returns the blood subspace boundaries [bloodLowTh,bloodHighTh]
[bloodLowTh,bloodHighTh] = SVD_SSM_AutoTh(SSM); % Most common case
[bloodLowTh,bloodHighTh] = SVD_SSM_AutoTh(SSM,'minRankTissue',10,'minRankBlood',10); % Add constraints on subspace dims
==== DESCRIPTION
---- The Spatial Similarity Matrix ----
If IQ is a [nz,nx,nt] matrix of ultrasound data, and IQr its reshaped Casoratti form [nz x nz,nt], then
the spatial singular vectors (U), singular values (S) and singular vector (V) are given by [U,S,V] = svd(IQr,0); [1]
The Spatial Similarity Matrix (SSM) is defined as the correlation matrix of the spatial vectors enveloppe. [2]
SSM = corr(abs(U));
---- Fitting squares to the SSM -------
The SSM usually exhibits several subspaces with correlation value. Typically the tissue-related subspaces appears as a
first square of high correlation values in the top left corner ofthe SSM. The blood-related subspace appears as a
second square, juxtaposed to this first square along the diagonal of the SSM.
To find the threshold between these two subspaces, the SSM is compared with all possible combination of two juxtaposed
squares of 1s surrounded by 0s, defining a "square base" parametrized by two thresholds th1 and th2. [3]
Example of square-base element for th1=3, th2=4 and nt=10, squareBase(th1,th2):
th1 th2
V V
1 1 1 0 0 0 0 0 0 0 ^
1 1 1 0 0 0 0 0 0 0 |
1 1 1 0 0 0 0 0 0 0 |
0 0 0 1 1 1 1 0 0 0 |
0 0 0 1 1 1 1 0 0 0 nt
0 0 0 1 1 1 1 0 0 0 |
0 0 0 1 1 1 1 0 0 0 |
0 0 0 0 0 0 0 0 0 0 |
0 0 0 0 0 0 0 0 0 0 v
<------- nt ------>
For each pair (th1,th2), with th2>th1, the correlation of the SSM with squareBase(th1,th2) is computed, defining the
CHI_N matrix:
CHI_N(th1,th2) = corr2( SSM, squareBase(th1,th2));
The "naive" computation of CHI_N is extremely time-consuming. To avoid redundant calculation, this functions uses
a fast sum-table approach [4-5].
---- REFERENCES -----------------------
>>SVD clutter filtering:
[1]Demené et al, Spatiotemporal Clutter Filtering of Ultrafast Ultrasound Data Highly Increases Doppler and fUltrasound
Sensitivity. IEEE Trans. Med. Imaging. 34, 22712285 (2015).
>>Spatial Similarity Matrix:
[2]Baranger et al, Adaptive Spatiotemporal SVD Clutter Filtering for Ultrafast Doppler Imaging Using Similarity of
Spatial Singular Vectors. IEEE Trans. Med. Imaging. 37, 15741586 (2018).
[3]Arnal et al, In vivo real-time cavitation imaging in moving organs. Phys. Med. Biol. 62, 843857 (2017).
>>sum-table Algorithm:
[4]Luo et al, A fast normalized cross-correlation calculation method for motion estimation.
IEEE Trans. Ultrason. Ferroelectr. Freq. Control. 57, 13471357 (2010).
[5]M. C. Chang, C. S. Fuh, H. Y. Chen, Fast search algorithms for industrial inspection.
Int. J. Pattern Recognit. Artif. Intell. 15, 675690 (2001).
==== EXAMPLES
[bloodLowTh,bloodHighTh] = SVD_SSM_AutoTh(SSM);
[bloodLowTh,bloodHighTh] = SVD_SSM_AutoTh(SSM,'minRankTissue',10,'minRankBlood',10);
[bloodLowTh,bloodHighTh] = SVD_SSM_AutoTh(SSM,'minRankTissue',10,'maxRankTissue',100,'minRankBlood',10,'maxRankBlood',600);%
==== LOGS
2023-05-27 - Initial upload
==== CITATION
Programmed by Jerome BARANGER on 01/09/2022
Please cite as:
J. Baranger, J. Aguet, O. Villemain, Fast Thresholding of SVD Clutter Filter Using the Spatial Similarity Matrix and a Sum-Table Algorithm. IEEE Transactions on Ultrasonics, Ferroelectrics, and Frequency Control. 70, 821–830 (2023).
DOI: 10.1109/TUFFC.2023.3289235

Cite As

Jérôme Baranger (2024). SVD_SSM_AutoTh (https://www.mathworks.com/matlabcentral/fileexchange/130139-svd_ssm_autoth), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2019a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.2

Descritption update

1.0.1

Add article references (DOI: 10.1109/TUFFC.2023.3289235)

1.0.0