matlab中select,[轉載]MATLAB閾值獲取函數ddencmp、thselect、wbmpen和w

crit(t)

wdcbm的調用格式有以下兩種:

(1)[THR,NKEEP]=wdcbm(C,L,ALPHA);

(2)[THR,NKEEP]=wdcbm(C,L,ALPHA,M);

函數wdcbm是使用Birge-Massart算法獲取一維小波變換的閾值。返回值THR是與尺度無關的閾值,NKEEP是系數的個數。[C,L]是要進行壓縮或消噪的信號在j=length(L)-2層的分解結構;LAPHA和M必須是大于1的實數;THR是關于j的向量,THR(i)是第i層的閾值;NKEEP也是關于j的向量,NKEEP(i)是第i層的系數個數。一般壓縮時ALPHA取1.5,去噪時ALPHA取3.

2.信號的閾值去噪

MATLAB中實現信號的閾值去噪的函數有wden、wdencmp、wthresh、wthcoef、wpthcoef以及wpdencmp。下面對它們的用法作簡單的介紹。

函數wden的調用格式有以下兩種:

(1)[XD,CXD,LXD]=wden(X,TPTR,SORH,SCAL,N,'wname')

(2)[XD,CXD,LXD]=wden(C,L,TPTR,SORH,SCAL,N,'wname')

函數wden用于一維信號的自動消噪。X為原始信號,[C,L]為信號的小波分解,N為小波分解的層數。

THR為閾值選擇規則:

*TPTR='rigrsure',自適應閾值選擇使用Stein的無偏風險估計原理。

*TPTR='heursure',使用啟發式閾值選擇。

*TPTR='sqtwolog',閾值等于sqrt(2*log(length(X))).

*TPTR='minimaxi',用極大極小原理選擇閾值。

SORH是軟閾值或硬閾值的選擇(分別對應's'和'h')。

SCAL指所使用的閾值是否需要重新調整,包含下面三種:

*SCAL='one' 不調整;

*SCAL='sln' 根據第一層的系數進行噪聲層的估計來調整閾值。

*SCAL='mln' 根據不同的噪聲估計來調整閾值。

XD為消噪后的信號,[CXD,LXD]為消噪后信號的小波分解結構。格式(1)返回對信號X經過N層分解后的小波系數進行閾值處理后的消噪信號XD和信號XD的小波分解結構[CXD,LXD]。格式(2)返回參數與格式(1)相同,但其結構是由直接對信號的小波分解結構[C,L]進行閾值處理得到的。

函數wdencmp的調用格式有以下三種:

(1)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('gbl',X,'wname',N,THTR,SORH,KEEPAPP);

(2)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('lvd',X,'wname',N,THTR,SORH);

(3)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('lvd',C,L,'wname',N,THTR,SORH);

函數wdencmp用于一維或二維信號的消噪或壓縮。wname是所用的小波函數,gbl(global的縮寫)表示每一層都采用同一個閾值進行處理,lvd表示每層采用不同的閾值進行處理,N表示小波分解的層數,THR為閾值向量,對于格式(2)和(3)每層都要求有一個閾值,因此閾值向量THR的長度為N,SORH表示選擇軟閾值或硬閾值(分別取值為's'和'h'),參數KEEPAPP取值為1時,則低頻系數不進行閾值量化,反之,低頻系數要進行閾值量化。XC是要進行消噪或壓縮的信號,[CXC,LXC]是XC的小波分解結構,PERF0和PERFL2是恢復或壓縮L^2的范數百分比。如果[C,L]是X的小波分解結構,則PERFL2=100*(CXC向量的范數/C向量的范數)^2;如果X是一維信號,小波wname是一個正交小波,則PERFL2=100||XC||^2/||X||^2。

函數wthresh的調用格式如下:

Y=wthresh(X,SORH,T)

Y=wthresh(X,SORH,T)

返回輸入向量或矩陣X經過軟閾值(如果SORH='s')或硬閾值(如果SORH='h')處理后的信號。T是閾值。

Y=wthresh(X,'s',T)返回的是Y=SIG(X)*(|X|-T)+,即把信號的絕對值與閾值進行比較,小于或等于閾值的點變為零,大于閾值的點為該點值與閾值的差值。

Y=wthresh(X,'h',T)返回的是Y=X*1(|X|>T),即把信號的絕對值和閾值進行比較,小于或等于閾值的點變為零,大于閾值的點保持不變。一般來說,用硬閾值處理后的信號比用軟閾值處理后的信號更粗糙。

函數wthcoef的調用格式下面四種:

(1)NC=wthcoef('d',C,L,N,P)

(2)NC=wthcoef('d',C,L,N)

(3)NC=wthcoef('a',C,L)

(4)NC=wthcoef('t',C,L,N,T,SORH)

函數wthcoef用于一維信號小波系數的閾值處理。

格式(1)返回小波分解結構[C,L]經向量N和P定義的壓縮率處理后的新的小波分解向量NC,[NC,L]構成一個新的小波分解結構。N包含被壓縮的細節向量,P是把較小系數置0的百分比信息的向量。N和P的長度必須相同,向量N必須滿足1<=N(i)<=length(L)-2。

格式(2)返回小波分解結構[C,L]經過向量N中指定的細節系數置0后的小波分解向量NC。

格式(3)返回小波分解結構[C,L]經過近似系數置0后的小波分解向量NC。

格式(4)返回小波分解結構[C,L]經過將向量N作閾值處理后的小波分解向量NC。如果SORH=’s‘,則為軟閾值;如果SORH='h'則為硬閾值。N包含細節的尺度向量,T是N相對應的閾值向量。N和T的長度必須相等。

函數wpdencmp的調用格式有以下兩種:

(1)[XD,TREED,PERF0,PERFL2]=wpdencmp(X,SORH,N,'wname',CRIT,PAR,KEEPAPP)

(2)[XD,TREED,PERF0,PERFL2]=wpdencmp(TREE,SORH,CRIT,PAR,KEEPAPP)

函數wpdencmp用于使用小波包變換進行信號的壓縮或去噪。

格式(1)返回輸入信號X(一維或二維)的去噪或壓縮后的信號XD。輸出參數TREED是XD的最佳小波包分解樹;PERFL2和PERF0是恢復和壓縮L2的能量百分比。PERFL2=100*(X的小波包系數范數/X的小波包系數)^2;如果X是一維信號,小波wname是一個正交小波,則PERFL2=100*||XD||^2/||X||^2。SORH的取值為's'或'h',表示的是軟閾值或硬閾值。

輸入參數N是小波包的分解層數,wname是包含小波名的字符串。函數使用由字符串CRIT定義的熵和閾值參數PAR實現最佳分解。如果KEEPAPP=1,則近似信號的小波系數不進行閾值量化;否則,進行閾值量化。

格式(2)與格式(1)的輸出參數相同,輸入選項也相同,只是它從信號的小波包分解樹TREE進行去噪或壓縮。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271784.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271784.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271784.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用Redis讓單號從001遞增

最近項目遇到一個需求&#xff0c;單號從001開始遞增 下面用到了redis處理 代碼如下&#xff1a; public String getId() {String key "providerManager";Long incr getIncr(key);if (incr 0) {incr getIncr(key);//從001開始}DecimalFormat df new DecimalF…

硬件知識:直接拔掉USB移動硬盤會對硬盤造成影響嗎?

大家在網上經常可以看到直接拔掉移動硬盤會損壞硬盤的文章。如果說突然拔掉硬盤會造成丟失數據我還有一點相信&#xff0c;但是說會造成損壞硬盤感覺就會有些疑問了。難道USB設備在開始設計時&#xff0c;沒有考慮到熱插拔這個動作&#xff1f; 移動硬盤在通電工作時&#xff0…

php多個構造方法,php多構造器的實例代碼

本節內容&#xff1a;php多構造器的類在php編程中&#xff0c;實例化一個類時&#xff0c;需要根據構造方法的參數個數進行初始化不用的內容&#xff0c;類似php函數或方法的可選參數。來看例子&#xff1a;復制代碼 代碼示例:/*** php 多構造器的類* by www.jbxue.com*/class …

硬件:顯示器接口DP、HDMI、VGA、DVI有什么區別?

??作者主頁&#xff1a;IT技術分享社區 ??作者簡介&#xff1a;大家好,我是IT技術分享社區的博主&#xff0c;從事C#、Java開發九年&#xff0c;對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽&#xff1a; 數據庫領域優質創作者&#x1f3c6;&#x…

判斷2個list中是否有相同的數據(相交)Collections.disjoint

比較兩個集合中是否有相同的元素&#xff0c;發現Collections類下的disjoint方法可以處理 Collections.disjoint() 代碼如下: List<Integer> list3 new ArrayList<>(); list3.add(1); list3.add(1); list3.add(6); List<Integer> list4 new ArrayList<…

java 復雜驗證碼生成,java驗證碼生成種

java驗證碼生成類package cn.edu.pdsu.action;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.util.Random;import javax.imageio.ImageIO;import javax.servlet.ServletOutputStream;import javax.se…

電腦硬件:藍屏的常見解決方案

我們在使用電腦的時候經常會遇到電腦藍屏的故障&#xff0c;這個可以算是電腦故障最頻繁出現的一個了&#xff0c;今天給大家介紹一下電腦藍屏常見的處理辦法&#xff0c;希望能給大家帶來一些 幫助&#xff01; 1、電腦藍屏一般處理辦法 1、先了解發生藍屏前電腦的情況及所做的…

1、Canvas的基本用法

1、Canvas是什么&#xff1f; HTML5 的 canvas 元素使用 JavaScript 在網頁上繪制圖像。 畫布是一個矩形區域&#xff0c;您可以控制其每一像素。 canvas 擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。 2、創建 Canvas 元素 規定元素的 id、寬度和高度&#xff1a; …

用lambda表達式實現Runnable

用lambda表達式實現Runnable lambda表達式替換了原來匿名內部類的寫法&#xff0c;沒有了匿名內部類繁雜的代碼實現&#xff0c;而是突出了&#xff0c;真正的處理代碼。最好的示例就是 實現Runnable 的線程實現方式了: 用() -> {}代碼塊替代了整個匿名內部類 Test public …

java弱引用怎么手動釋放,十分鐘理解Java中的弱引用,十分鐘java引用

十分鐘理解Java中的弱引用&#xff0c;十分鐘java引用本篇文章嘗試從What、Why、How這三個角度來探索Java中的弱引用&#xff0c;幫助大家理解Java中弱引用的定義、基本使用場景和使用方法。由于個人水平有限&#xff0c;敘述中難免存在不準確或是不清晰的地方&#xff0c;希望…

軟件:推薦六款實用的錄頻軟件

??作者主頁&#xff1a;IT技術分享社區 ??作者簡介&#xff1a;大家好,我是IT技術分享社區的博主&#xff0c;從事C#、Java開發九年&#xff0c;對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽&#xff1a; 數據庫領域優質創作者&#x1f3c6;&#x…

安裝 openSUSE Leap 42.1 之后要做的 8 件事

導讀openSUSE Leap 確實是個巨大的飛躍&#xff0c;它允許用戶運行一個和 SUSE Linux 企業版擁有同樣基因的發行版。和其它系統一樣&#xff0c;為了實現最佳的使用效果&#xff0c;在使用它之前需要做些優化設置。下面是一些我在我的電腦上安裝 openSUSE Leap 之后做的一些事情…

Java8 Stream Collectors groupingBy使用

分組List并顯示其總數。 Test public void test8() {//3 apple, 2 banana, others 1List<String> items Arrays.asList("apple", "apple", "banana","apple", "orange", "banana", "papaya");Map…

操作系統:分享10個經常用的cmd命令

電腦高手操作電腦時&#xff0c;通常都是在“運行”中直接輸入“命令”來直接調出相應的操作。如果大家也想要像電腦高手一樣&#xff0c;但是卻又不知道“運行”命令有哪些&#xff1f;在這里&#xff0c;小編就為大家分享10個“運行”命令&#xff0c;讓大家體驗到成為電腦高…

matlab交叉耦合,交叉耦合矩陣綜合問題

編程計算N階耦合矩陣&#xff0c;基本都能算對&#xff0c;但是對于某些特殊參數會出現R1!RN&#xff0c;大家又出現類似的情況么&#xff1f;希望高手幫忙計算以下參數&#xff0c;看看是否能算出來。參數為ftz[-1.2i -1.4i 1.4i 1.2i -1.05i 1.05i];傳輸零點RL20;%帶內回波N …

idea創建Package時出現包名累加,而不是樹形結構解決方法

idea打開工程的時候包名疊在一起了 點擊箭頭處按鈕,把第一第二行勾去掉 如下 最終效果

電腦鍵盤中英文按鍵有哪些?有什么作用?

對于電腦鍵盤&#xff0c;相信大家并不陌生&#xff0c;而在電腦鍵盤上面有著很多按鍵&#xff0c;除了數字按鍵和字母按鍵之外&#xff0c;還有很多看不懂的英文按鍵。那么這些英文按鍵是什么意思呢&#xff1f;如果并不了解&#xff0c;那么小編就為大家介紹所有英文按鍵的意…

在github中使用pages上傳自己的網頁

轉載自&#xff1a;http://www.cnblogs.com/lijiayi/p/githubpages.html 學了前端小半年&#xff0c;如今寫了個自己的網頁想要去應聘&#xff0c;卻發現部署很麻煩&#xff0c;部署到阿里云之類&#xff0c;買域名啊啥的還要收費&#xff0c;說貴也不貴&#xff0c;但我就是傲…

使用lamba中stream 進行分組統計

對一個list中的元素進行分組&#xff0c;并統計各個元素出現的次數。放入map<String,Long>。 代碼如下: Test public void test8() {List<String> items Arrays.asList("1", "2", "3","4", "1", "3"…

php 表單select,表單控件select標簽是如何使用的

表單控件select標簽是用來創建下拉列表的&#xff0c;通過標簽來定義可用選項以及其他屬性來設置表單控件的選擇個數等。今天將介紹的是HTML中的表單控件select的用法&#xff0c;具有一定的參考價值&#xff0c;希望對大家有所幫助。【推薦課程&#xff1a;HTML教程】select標…