使用STM32制作的自適應濾波器,LMS算法實現,C語言實現
上傳時間: 2022-06-29
上傳用戶:
心音信號是人體最重要的生理信號之一,包含心臟各個部分如心房、心室、大血管、心血管及各個瓣膜功能狀態的大量生理病理信息。心音信號分析與識別是了解心臟和血管狀態的一種不可缺少的手段。本文針對目前該研究領域中存在的分析方法問題和分類識別技術難點展開了深入的研究,內容涉及心音構成的分析、心音信號特征向量的提取、正常心音信號(NM)和房顫(AF)、主動脈回流(AR)、主動脈狹窄(AS)、二尖瓣回流(MR)4種心臟雜音信號的分類識別。本文的工作內容包括以下5個方面: a)心音信號采集與預處理。本文采用自行研制的帶有錄音機功能的聽診器實現對心音信號的采集。通過對心音信號噪聲分析,選用小波降噪作為心音信號的濾波方法。根據實驗分析,選擇Donoho閾值函數結合多級閾值的方法作為心音信號預處理方案。 b)心音信號時頻分析方法。文中采用5種時頻分析方法分別對心音信號進行了時頻譜特性分析,結果表明:不同的時頻分析方法與待分析心音信號的特性有密切關系,即需要在小的交叉項干擾與高的時頻分辨率之間作綜合的考慮。鑒于此,本文提出了一種自適應錐形核時頻(ATF)分析方法,通過實驗驗證該分布能較好地反映心音信號的時頻結構,其性能優于一般錐形核分布(CKD)以及Choi-Williams分布(CWD)、譜圖(SPEC)等固定核時頻分析方法,從而選擇自應錐形核時頻分析方法進行心音信號分析。 c)心音信號特征向量提取。根據對3M Littmann() Stethoscopes[31]數據庫中標準心音信號的時頻分析結果,提取8組特征數據,通過Fihser降維處理方法提取出了實現分類可視化,且最易于分類的心音信號的2維特征向量,作為心音信號分類的特征向量。 d)心音信號分類方法。根據心音信號特征向量組成的散點圖,研究了支持向量機核函數、多分類支持向量機的選取方法,同時,基于分類的目的 性和可信性,本文提出以分類精度最大為判斷準則的核函數參數與松弛變量的優化方法,建立了心音信號分類的支持向量機模型,選取標準數據庫中NM、AF、AR、AS、MR每類心音信號的80組2維特征向量中每類60組數據作為支持向量機的學習樣本,對余下的每類20組數據進行測試,得到每類的分類精度(Ar)均為100%,同時對臨床上采集的與上述4種同類心臟雜音信號和正常心音信號中每類24個心動周期進行分類實測,分類精度分別為:NM、AF、MR的分類精度均為100%,而AR、AS均為95.83%,驗證了該方法的分類有效性。 e)心音信號分析與識別的軟件系統。本文以MATLAB語言的可視化功能實現了心音信號分析與識別的軟件運行平臺構建,可完成對心音信號的讀取、預處理,繪制時-頻、能量特性的三維圖及兩維等高線圖;同時,利用MATLAB與EXCEL的動態鏈接,實現對心音信號分析數據的存儲以及統計功能;最后,通過對心音信號2維特征向量的分析,實現心音信號的自動識別功能。 本文的研究特色主要體現在心音信號特征向量提取的方法以及多分類支持向量機模型的建立兩方面。 綜上所述,本文從理論與實踐兩方面對心音信號進行了深入的研究,主要是采用自適應錐形核時頻分析方法提取心音信號特征向量,根據心音信號特征向量組成的散點圖,建立心音信號分類的支持向量機模型,并對正常心音信號和4種心臟雜音信號進行了分類研究,取得了較為滿意的分類結果,但由于用于分類的心臟雜音信號種類及數據量尚不足,因此,今后的工作重點是采集更多種類的心臟雜音信號,進一步提高心音信號分類精度,使本文研究成果能最終應用于臨床心臟量化聽診。 關鍵詞:心音信號,小波降噪,非平穩信號,心臟雜音,信號處理,時頻分析,自適應,支持向量機
上傳時間: 2013-04-24
上傳用戶:weixiao99
本文以異步電機參數離線自整定及參數在線辨識為對象,從理論分析,算法提出,仿真證明和實驗驗證四部分進行了深入研究。 異步電機參數離線自整定及參數在線辨識技術的研究,為異步電機控制性能的不斷提高提供了保障,以使更好,更精確的控制方式能夠應用到工程實際中去。 由于在工程中使用的電機和變頻器不一定能夠匹配,而需要在電機運行之前由專業的工程師對變頻器作重新設置,此過程復雜,耽誤時間而且需要專業人員操作。 本文提出一套異步電機參數離線自整定算法,使用C語言編程,并在一臺2.2KW電機的硬件實驗平臺上驗證了該算法,實現了電機在運行之前,變頻器自動測試出電機的基本參數,為矢量控制等控制方式提供所需要的電機參數。 電機在運行過程中,由于溫度等因素的影響,電機的參數會發生變化,影響電機運行的穩定性,所以要對電機參數做在線辨識。本文對異步電機參數在線辨識作了理論分析和方法總結,為下一步工作打下基礎。 算法的實現需要相應的硬件實驗平臺,本文對硬件實驗平臺作了詳細介紹,包括主電路的設計、IGBT的驅動保護電路設計、DSP數字控制器的設計。 本文還對文中提出的實驗方法作了MATLAB/Simulink仿真,驗證了該方法的可行性,對實驗有指導意義。
上傳時間: 2013-04-24
上傳用戶:541657925
回波消除器廣泛應用于公用電話交換網(PSTN)、移動通信系統和視頻電話會議系統等多種語音通信領域。在PSTN系統中,由于線路阻抗不匹配,遠端語音信號通過混合線圈時產生一定泄漏,一部分信號又傳回遠端,產生線路回波,回波的存在會嚴重影響語音通信質量。本文主要針對線路回波進行研究,設計并實現了滿足實用要求的基于FPGA平臺的回波消除器。 首先,對回波產生原理和目前幾種常用回波消除算法進行了分析,在研究自適應回波消除器的各個模塊,特別是深入分析各種自適應濾波算法和雙講檢測算法,綜合考慮各種算法的運算復雜度和性能的情況下,這里采用NLMS算法實現自適應回波消除器。針對傳統雙講檢測算法在近端語音幅度較低情況下容易產生誤判的情況,給出一種基于子帶濾波器組的改進雙講檢測算法。 本文首先使用C語言實現回波消除器的各個模塊,其中包括自適應濾波器、遠端檢測、雙講檢測、非線性處理和舒適噪聲產生模塊。經過仿真測試,相關模塊算法能夠有效提高回波消除器性能。在此基礎上,本文使用硬件描述語言Veillog HDL,在QuartusⅡ和ModelSim軟件平臺上實現各功能模塊,并通過模塊級和系統級功能仿真以及時序仿真驗證,最終在現場可編程門陣列(Field Programmable Gate Arrav,FPGA)平臺上實現回波消除系統。本文詳細闡述了基于FPGA的設計流程與設計方法,并描述了自適應濾波器、基于分布式算法FIR濾波器、除法器和有限狀態機的設計過程。 根據ITU-T G.168標準提出的測試要求,本文塒基于FPGA設計實現的自適應回波消除系統進行大量主客觀測試。經過測試,各項性能指標均達到或超過G.168標準的要求,具有良好的回波消除效果。
上傳時間: 2013-06-18
上傳用戶:qwe1234
免費啊,大家下吧 下完了兄弟們評個分,留個言,交個朋友! linux c 函數大全,介紹linux 下C 語言的函數,對LINUX C開發人員很有用哦,我以前發布過 unix C。
上傳時間: 2013-06-17
上傳用戶:vvbvvb123
C++初學者比較好的一本參考書 本書是一本全面、易用的C++編程語言教程。作者用清晰、簡潔的風格講解概念和技術,幫助讀者掌握控制結構、函數、數組、指針和串、類和數據抽象、運算符重載、文件處理以及數據結構等關鍵內容。每章中間的自測練習、章末的編程練習、豐富的實例、大量的代碼等,都為讀者提供了掌握C++編程概念所必需的實戰演練。
標簽: Absolute
上傳時間: 2013-04-24
上傳用戶:www240697738
要想獲得最低的失調和漂移性能,斬波穩定(自穩零)放大器可能是唯一的解決方案。最好的雙極性放大器的失調電壓為25 V,漂移為0.1 V/ºC。斬波放大器盡管存在一些不利影響,但可提供低于5 V的失調電壓,而且不會出現明顯的失調漂移,
上傳時間: 2013-12-25
上傳用戶:z754970244
c語言編程軟件vc6.0使用教程,附件包含二個教程文件,VC++6.0培訓教程完整版及VC6.0介紹。 Visual C++ 6.0,簡稱VC或者VC6.0,是微軟的一款C++編譯器,將“高級語言”翻譯為“機器語言(低級語言)”的程序。Visual C++是一個功能強大的可視化軟件開發工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業程序員進行軟件開發的首選工具。雖然微軟公司推出了 Visual C++.NET(Visual C++7.0),但它的應用有很大的局限性,只適用于Windows 2000、Windows XP和Windows NT4.0。所以實際中,更多的是以Visual C++6.0為平臺。 vc6.0使用你首先要打開VC6.0界面,一般用得較多的是Win32控制臺應用程序(源程序,擴展名.cpp), 步驟是:(先工程—后文件—編譯—連接---運行) 1,建立一個工程,“文件”——“新建”,出現下面界面:選擇“Win32 Console Application”(控制臺應用程序,左邊倒數第三個),命名工程名稱,選擇保存位置。 點擊“確定”,進入下一步,看到如下提示界面: 建立一個空工程,對應其他需要的你一可以建立別的工程;點擊“完成”,之后 顯示你創建的工程的信息。 2,再在有一個的工程的條件下,我們再建立一個源文件; “文件”——“新建”(快捷鍵Ctri+N),出現: 建立源文件,選擇“C++ Source ”,一般都是建立這種文件的(適用在當文件中適用)如果要建立頭文件的話,選擇“C/C++ Header File”,(適用在多文件工程中使用)命名,文件名稱,點擊“確定”,之后: 進入編輯區,在主界面編寫代碼:如下編寫完之后呢: 可以按編譯按鈕 調試程序,看看有沒有錯誤,有的話改正,沒有的話就可以再按連接按鈕 檢查連接(多文件工程時常用,檢查文件間是否正常連接),最后,點運行按鈕 ,就可以運行了。 如果是您有代碼如:cpp文件,或 .h 文件,想添加都VC6.0里來測試的話,可以這樣做: 首先,要理解一下 文件擴展名為:cpp和.h 文件擴張名是.h,代表的是頭文件,一般是書寫一些函數原型,以及一些在整個程序中常用到的結構體,頻繁使用的函數說明,定義等等; 文件擴張名為,cpp的,是C++中的源文件,也是最常用到的文件,每建立一個工程都要至少一個源文件(至少要有一個函數入口——主函數main() ),包含了核心代碼; 建立與運行說明:(以VC 6.0編譯器為例,其他編譯器類似) 首先,打開VC 6.0編譯環境; 在菜單欄——文件(的下拉菜單中選擇“新建”),在彈出的選擇窗口中,選擇 Win32 Console Application(控制臺應用程序) ,在填寫工程名稱,選擇一個程序保存路徑, 點擊“完成”,查看工程信息。 在點擊“確定”,就建立一個簡單的工程了。 再點擊左邊的工程信息右下角的“FileView”選項; 可以看到你新建的工程,再雙擊你新建的工程名 可以查看工程的信息。 在雙擊工程文件,在這里是 777.files,可以看到該工程的包含的文件。 其中,Source Files 為包含所有工程的源文件 Header Files 為包含所有工程的頭文件 在源文件選項“Source Files ”,右鍵單擊中的“添加目錄到工程”,添加你要打開的擴展名為 .cpp的源文件。在頭文件選項“ Header Files”,右鍵單擊中的“添加目錄到工程”,添加你要打開的擴展名為 . h的頭文件。添加完你所有的頭文件和源文件之后,檢查一下是否添加完畢,之后就可以編譯了。 其中第一個按鈕 為編譯按鈕,可以找出工程的錯誤信息,有錯誤修改,沒錯誤就可以跳到連接 ,編譯右邊的按鈕 ,即第三個按鈕(多文件工程一定要連接,查看文件是否準確相連接) 當編譯,連接都沒有錯誤時,可以按運行按鈕 ,即可以運行了。 相關資料:vc6.0中文綠色版下載
上傳時間: 2013-10-30
上傳用戶:tianjinfan
單片機c語言學習和單片機制作資料: 函數的使用和熟悉 實例3:用單片機控制第一個燈亮 實例4:用單片機控制一個燈閃爍:認識單片機的工作頻率 實例5:將 P1口狀態分別送入P0、P2、P3口:認識I/O口的引腳功能 實例6:使用P3口流水點亮8位LED 實例7:通過對P3口地址的操作流水點亮8位LED 實例8:用不同數據類型控制燈閃爍時間 實例9:用P0口、P1 口分別顯示加法和減法運算結果 實例10:用P0、P1口顯示乘法運算結果 實例11:用P1、P0口顯示除法運算結果 實例12:用自增運算控制P0口8位LED流水花樣 實例13:用P0口顯示邏輯"與"運算結果 實例14:用P0口顯示條件運算結果 實例15:用P0口顯示按位"異或"運算結果 實例16:用P0顯示左移運算結果 實例17:"萬能邏輯電路"實驗 實例18:用右移運算流水點亮P1口8位LED 實例19:用if語句控制P0口8位LED的流水方向 實例20:用swtich語句的控制P0口8位LED的點亮狀態 實例21:用for語句控制蜂鳴器鳴笛次數 實例22:用while語句控制LED 實例23:用do-while語句控制P0口8位LED流水點亮 實例24:用字符型數組控制P0口8位LED流水點亮 實例25: 用P0口顯示字符串常量 實例26:用P0 口顯示指針運算結果 實例27:用指針數組控制P0口8位LED流水點亮 實例28:用數組的指針控制P0 口8 位LED流水點亮 實例29:用P0 、P1口顯示整型函數返回值 實例30:用有參函數控制P0口8位LED流水速度 實例31:用數組作函數參數控制流水花樣 實例32:用指針作函數參數控制P0口8位LED流水點亮 實例33:用函數型指針控制P1口燈花樣 實例34:用指針數組作為函數的參數顯示多個字符串
上傳時間: 2013-10-21
上傳用戶:llandlu
學習單片機實在不是件易事,一來要購買高價格的編程器,仿真器,二來要學習編程語言,還有眾多種類的單片機選擇真是件讓人頭痛的事。在眾多單片機中51 架構的芯片風行很久,學習資料也相對很多,是初學的較好的選擇之一。51 的編程語言常用的有二種,一種是匯編語言,一種是C 語言。匯編語言的機器代碼生成效率很高但可讀性卻并不強,復雜一點的程序就更是難讀懂,而C 語言在大多數情況下其機器代碼生成效率和匯編語言相當,但可讀性和可移植性卻遠遠超過匯編語言,而且C 語言還可以嵌入匯編來解決高時效性的代碼編寫問題。對于開發周期來說,中大型的軟件編寫用C 語言的開發周期通常要小于匯編語言很多。綜合以上C 語言的優點,我在學習時選擇了C 語言。以后的教程也只是我在學習過程中的一些學習筆記和隨筆,在這里加以整理和修改,希望和大家一起分享,一起交流,一起學習,一起進步。
上傳時間: 2013-10-07
上傳用戶:pompey