{"id":1099,"date":"2025-05-16T18:48:24","date_gmt":"2025-05-16T18:48:24","guid":{"rendered":"https:\/\/smartdata.ece.ufl.edu\/?p=1099"},"modified":"2026-04-07T13:09:38","modified_gmt":"2026-04-07T13:09:38","slug":"sparse-wavenumber-analysis-swa","status":"publish","type":"post","link":"https:\/\/smartdata.ece.ufl.edu\/index.php\/2025\/05\/16\/sparse-wavenumber-analysis-swa\/","title":{"rendered":"Sparse Wavenumber Analysis (SWA) Repository"},"content":{"rendered":"\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-nowrap is-layout-flex wp-container-core-buttons-is-layout-2256e7f1 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-50 is-style-fill\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/doi.org\/10.24433\/CO.2630229.v1\">Get the Code (Code Ocean)<\/a><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p><strong>Sparse Wavenumber Analysis (SWA)<\/strong> is a signal processing algorithm designed to extract high-resolution wavenumber information from spatial wavefield measurements\u2014especially when that data is <strong>sparse<\/strong>, <strong>noisy<\/strong>, or <strong>irregularly sampled<\/strong>. Developed by <strong>Dr. Joel B. Harley<\/strong> and collaborators, SWA enables researchers and engineers to analyze wave propagation with unprecedented clarity, even in situations where traditional Fourier-based methods fall short.<\/p>\n\n\n\n<p>This CodeOcean capsule contains a complete, reproducible implementation of the SWA algorithm, based on the foundational work in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Joel B. Harley,\u00a0Jos\u00e9 M. F. Moura; Sparse recovery of the multimodal and dispersive characteristics of Lamb waves.\u00a0<em><em>J. Acoust. Soc. Am.<\/em><\/em>\u00a01 May 2013; 133 (5): 2732\u20132745.\u00a0<a href=\"https:\/\/doi.org\/10.1121\/1.4799805\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/doi.org\/10.1121\/1.4799805<\/a>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83c\udf0a What Does SWA Do?<\/h3>\n\n\n\n<p>Wavenumber analysis describes how energy propagates through a medium as a function of spatial frequency. Traditional methods (like the 2D spatial Fourier transform) require <strong>uniform, dense sampling<\/strong>, which is often impractical in real-world sensing scenarios. SWA, by contrast, reconstructs the wavenumber spectrum using <strong>sparse recovery techniques<\/strong>, allowing meaningful analysis from <strong>far fewer measurements<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83e\udde0 Key Ideas<\/h3>\n\n\n\n<p>At the heart of SWA is the assumption that the wavefield can be modeled as a <strong>sparse superposition of plane waves<\/strong>. Mathematically, the spatial wavefield <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/smartdata.ece.ufl.edu\/wp-content\/ql-cache\/quicklatex.com-46f14a3dca0c56c6cbac4b670dc9f60d_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#117;&#40;&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#114;&#125;&#41;\" title=\"Rendered by QuickLaTeX.com\" height=\"19\" width=\"31\" style=\"vertical-align: -5px;\"\/> is expressed as: <p class=\"ql-center-displayed-equation\" style=\"line-height: 52px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/smartdata.ece.ufl.edu\/wp-content\/ql-cache\/quicklatex.com-e4c646c87138ea0288eb2acdaa420473_l3.png\" height=\"52\" width=\"146\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91;&#32;&#117;&#40;&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#114;&#125;&#41;&#32;&#92;&#97;&#112;&#112;&#114;&#111;&#120;&#32;&#92;&#115;&#117;&#109;&#95;&#123;&#110;&#61;&#49;&#125;&#94;&#78;&#32;&#97;&#95;&#110;&#32;&#101;&#94;&#123;&#106;&#32;&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#107;&#125;&#95;&#110;&#32;&#92;&#99;&#100;&#111;&#116;&#32;&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#114;&#125;&#125;&#32;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n\n\n\n<p>Here:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/smartdata.ece.ufl.edu\/wp-content\/ql-cache\/quicklatex.com-8ee76704502b48acf187a293a1cf910f_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#114;&#125;&#32;&#92;&#105;&#110;&#32;&#92;&#109;&#97;&#116;&#104;&#98;&#98;&#123;&#82;&#125;&#94;&#50;\" title=\"Rendered by QuickLaTeX.com\" height=\"16\" width=\"50\" style=\"vertical-align: -1px;\"\/> is a spatial coordinate,<\/li>\n\n\n\n<li><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/smartdata.ece.ufl.edu\/wp-content\/ql-cache\/quicklatex.com-8abc79768a3bc8aa665fb32fe304a2b7_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#107;&#125;&#95;&#110;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"19\" style=\"vertical-align: -3px;\"\/>\u200b is a candidate wavenumber vector,<\/li>\n\n\n\n<li>ana_nan\u200b is the complex amplitude,<\/li>\n\n\n\n<li>and <strong>only a few<\/strong> ana_nan\u200b&#8217;s are nonzero \u2014 i.e., the spectrum is sparse.<\/li>\n<\/ul>\n\n\n\n<p>Given a measurement vector <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/smartdata.ece.ufl.edu\/wp-content\/ql-cache\/quicklatex.com-3818773d55ab7e8be9afbd41dc6c63eb_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#121;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"11\" style=\"vertical-align: -4px;\"\/> of the wavefield at limited spatial locations, the SWA problem becomes: <p class=\"ql-center-displayed-equation\" style=\"line-height: 25px;\"><span class=\"ql-right-eqno\"> &nbsp; <\/span><span class=\"ql-left-eqno\"> &nbsp; <\/span><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/smartdata.ece.ufl.edu\/wp-content\/ql-cache\/quicklatex.com-f21284b4b922e04ee60d9c8ae7c44a34_l3.png\" height=\"25\" width=\"271\" class=\"ql-img-displayed-equation quicklatex-auto-format\" alt=\"&#92;&#91;&#32;&#92;&#109;&#105;&#110;&#95;&#123;&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#97;&#125;&#125;&#32;&#92;&#124;&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#97;&#125;&#92;&#124;&#95;&#49;&#32;&#92;&#113;&#117;&#97;&#100;&#32;&#92;&#116;&#101;&#120;&#116;&#123;&#115;&#117;&#98;&#106;&#101;&#99;&#116;&#32;&#116;&#111;&#125;&#32;&#92;&#113;&#117;&#97;&#100;&#32;&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#121;&#125;&#32;&#61;&#32;&#92;&#80;&#104;&#105;&#32;&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#97;&#125;&#32;&#43;&#32;&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#110;&#125;&#32;&#92;&#93;\" title=\"Rendered by QuickLaTeX.com\"\/><\/p><\/p>\n\n\n\n<p>Where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/smartdata.ece.ufl.edu\/wp-content\/ql-cache\/quicklatex.com-21f36758b04341c7980aa18b13ced720_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#80;&#104;&#105;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"12\" style=\"vertical-align: 0px;\"\/> is a dictionary matrix built from sampled plane waves <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/smartdata.ece.ufl.edu\/wp-content\/ql-cache\/quicklatex.com-3c2f7ab376e14311838fc93d4d4699b3_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#101;&#94;&#123;&#106;&#32;&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#107;&#125;&#95;&#110;&#32;&#92;&#99;&#100;&#111;&#116;&#32;&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#114;&#125;&#95;&#109;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"52\" style=\"vertical-align: 0px;\"\/>,<\/li>\n\n\n\n<li><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/smartdata.ece.ufl.edu\/wp-content\/ql-cache\/quicklatex.com-262f2b064422e0639fd9e7d5e7cf039f_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#110;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"8\" width=\"11\" style=\"vertical-align: 0px;\"\/> is measurement noise,<\/li>\n\n\n\n<li>and the <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/smartdata.ece.ufl.edu\/wp-content\/ql-cache\/quicklatex.com-8962172b47547b0410e3b7ba70cba434_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#101;&#108;&#108;&#95;&#49;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"13\" style=\"vertical-align: -3px;\"\/>\u200b-norm promotes sparsity in <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/smartdata.ece.ufl.edu\/wp-content\/ql-cache\/quicklatex.com-0bc0761bf3231f53cdab0d92b2a39533_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#92;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#97;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"9\" width=\"10\" style=\"vertical-align: -1px;\"\/>.<\/li>\n<\/ul>\n\n\n\n<p>This formulation casts the problem into the well-established framework of <strong>compressive sensing<\/strong>. Various solvers can be used (e.g., basis pursuit, LASSO, Bayesian compressive sensing), many of which are included or linked in this capsule.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sparse Wavenumber Analysis (SWA) is a signal processing algorithm designed to extract high-resolution wavenumber information from spatial wavefield measurements\u2014especially when that data is sparse, noisy, or irregularly sampled. Developed by Dr. Joel B. Harley and collaborators, SWA enables researchers and engineers to analyze wave propagation with unprecedented clarity, even in situations where traditional Fourier-based methods fall short.<\/p>\n<p>This CodeOcean capsule contains a complete, reproducible implementation of the SWA algorithm, based on the foundational work in:<\/p>\n<p>This CodeOcean capsule contains a complete, reproducible implementation of the SWA algorithm, based on the foundational work in:<\/p>\n","protected":false},"author":1,"featured_media":812,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[16,14,13],"class_list":["post-1099","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-resources","tag-linear-algebra","tag-nondestructive-testing","tag-structural-health-monitoring"],"_links":{"self":[{"href":"https:\/\/smartdata.ece.ufl.edu\/index.php\/wp-json\/wp\/v2\/posts\/1099","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smartdata.ece.ufl.edu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smartdata.ece.ufl.edu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smartdata.ece.ufl.edu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smartdata.ece.ufl.edu\/index.php\/wp-json\/wp\/v2\/comments?post=1099"}],"version-history":[{"count":11,"href":"https:\/\/smartdata.ece.ufl.edu\/index.php\/wp-json\/wp\/v2\/posts\/1099\/revisions"}],"predecessor-version":[{"id":1288,"href":"https:\/\/smartdata.ece.ufl.edu\/index.php\/wp-json\/wp\/v2\/posts\/1099\/revisions\/1288"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/smartdata.ece.ufl.edu\/index.php\/wp-json\/wp\/v2\/media\/812"}],"wp:attachment":[{"href":"https:\/\/smartdata.ece.ufl.edu\/index.php\/wp-json\/wp\/v2\/media?parent=1099"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smartdata.ece.ufl.edu\/index.php\/wp-json\/wp\/v2\/categories?post=1099"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smartdata.ece.ufl.edu\/index.php\/wp-json\/wp\/v2\/tags?post=1099"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}