MATLAB環境下腦電信號EEG的譜分析

腦電信號一直伴隨著人類的生命,腦電波是腦神經細胞發生新陳代謝、離子交換時細胞群興奮突觸電位總和,腦電信號的節律性則和丘腦相關,含有豐富的大腦活動信息。通常我們所接觸的腦電圖都是頭皮腦電圖,在有些特殊場合還需要皮下部位的腦電圖,腦電信號主要有以下幾個特點:

(1)腦電信號只有50pV左右,所以非常的微弱,通常頭皮腦電信號,超過100pV的可以認作是噪聲。腦電信號按照波幅值可以分為高、中、低三種:低波幅值小于25pV;中波幅值大于25pV小于50pV;高波幅值大于50pV。

(2)具有隨機性及非平穩性。腦電信號被影響的因素很多,但規律通常都沒有被識別,通常來說,腦電信號的規律從大量的數據統計、大量的技術處理檢測、識別和估計結果中顯示,并且生命體對外界的自適應力,以及生理因素的作用都對腦電信號產生了影響,所以腦電信號具有著隨機性和非平穩性,并且一直隨著時間在變化。

(3)具有非高斯、非線性的特征。生物組織自適應和生理機使得人體腦電的信號有非線性的特性,當前信號處理通常通過線性系統分析基礎上進行,所以在分析方法上如何最小地去減小非線性誤差在腦電信號的處理上也應該要考慮。

(4)腦電信號容易受到諸多的背景噪聲干擾。影響腦電波的因素還有很多。比如人的年齡,當人在50歲以后,慢波又可以逐漸回升,還有著不同程度的基頻慢波。腦波還更易受到意識、情緒以及思維狀態等因素的影響。

腦電波在病理的狀態下的形態也經常會出現一些異常瞬態波。尖波周期范圍是在80~200ms,其波形快速上升、緩慢下降,類似于三角波,病癥常見于癲癇。棘波多見于局限性的癲癇,而棘慢綜合波是通過棘波和慢波所構成的復合波。

鑒于此,本項目采用譜分析方法,對兩個來源(PhysioNet數據庫和自測數據庫)的腦電信號進行了研究,目標是應用不同的時頻譜分析技術評估相應的結果。算法程序運行環境為MATLAB R2021b,執行EEG信號的譜分析,也可遷移至金融時間序列,地震信號,機械振動信號,語音信號,聲信號等一維時間序列信號。

部分代碼如下:

%EEG Signal Spectral Analysis
%Load data & Initialize params
%Sleep dataset
clear;
[x, Fs, Start_date, Start_time, Label, Dimension, Coef, Nmb_chans,N] = readedf_EX1('sc4002e0.rec',0,0,360);
windows = int16([128 256 512]);
overlaps = double([0 0.25 0.50 0.75]);
dft_points = [64 128 256 512 1024];
Signal overview
figure
time = linspace(0,length(x)/Fs, length(x));
plot(time,x)
axis('normal')
title('Sleep EEG')
xlim([0 length(time)/Fs])
xlabel('time (s)')
ylabel('amplitude mV')1. PSD params experiment1.1 Window size
figure
hold on
for i=1:length(windows)[pxx, f] = pwelch(x,windows(i),overlaps(3)*windows(i),dft_points(i),100);plot(f, pow2db(pxx))
end
legend(sprintf('w=%d', windows(1)), ...sprintf('w=%d',windows(2)), ...sprintf('w=%d', windows(3)))
xlabel('')
title('Variation in window sizes')
xlabel('Frequency (Hz)')
ylabel('Power (dB)')
hold off
% Better visualization for comparision
xlim([7.37 20.53])
ylim([2.30 11.52])1.2 Overlap
figure
hold on
noverlaps = overlaps .* 128;
for i=1:length(noverlaps)[pxx, f] = pwelch(x, windows(1), noverlaps(floor(i)), dft_points(1), 100);plot(f, pow2db(pxx),'LineWidth',1)
end
legend(sprintf('overlap=%d %', overlaps(1)*100), ...sprintf('overlap=%d %', overlaps(2)*100), ...sprintf('overlap=%d %', overlaps(3)*100),...sprintf('overlap=%d %', overlaps(4)*100))
xlabel('')
title('Variation in overlaps ')
xlabel('Frequency (Hz)')
ylabel('Power (dB)')
hold off1.3 Number of DFT points
figure
hold on
for i=1:length(dft_points)[pxx, f] = pwelch(x,windows(1),overlaps(2)*windows(1),dft_points(i),100);plot(f, pow2db(pxx))
end
legend(sprintf('nfft=%d', dft_points(1)), ...sprintf('nfft=%d',dft_points(2)), ...sprintf('nfft=%d',dft_points(3)), ...sprintf('nfft=%d',dft_points(4)), ...sprintf('nfft=%d', dft_points(5)))
xlabel('')
title('Variation in number of DFT points')
xlabel('Frequency (Hz)')
ylabel('Power (dB)')
hold off2. Spectrogram params experimentspec_w_1 = 128;
spec_w_2 = 512;
spec_o_1 = 0.5;
spec_o_2 = 0.8;
spec_o_3 = 0.2;
spec_nfft_1 = 128;
spec_nfft_2 = 1024;2.1 Window size
Small window size results in high detail frequecy representation.
Large window size results in blocky-looking frequecy representation.
figure;
subplot(1,2,1);
spectrogram(x,spec_w_1,64,128,Fs,'yaxis');
set(gca, 'Clim', [-100 45]);
title(sprintf('Window size %d', spec_w_1))subplot(1,2,2);
spectrogram(x,spec_w_2, spec_o_1 * spec_w_2,128,Fs,'yaxis');
set(gca, 'Clim', [-100 45]);
title(sprintf('Window size %d', spec_w_2))sgtitle(sprintf('Window size experiment, overlap=%d%%, nfft=%d', spec_o_1*100, spec_nfft_1));

出圖如下:

工學博士,擔任《Mechanical System and Signal Processing》審稿專家,擔任
《中國電機工程學報》優秀審稿專家,《控制與決策》,《系統工程與電子技術》,《電力系統保護與控制》,《宇航學報》等EI期刊審稿專家。

擅長領域:現代信號處理,機器學習,深度學習,數字孿生,時間序列分析,設備缺陷檢測、設備異常檢測、設備智能故障診斷與健康管理PHM等。

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

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

相關文章

10.廣域網技術

1. PPP實驗點這里(拓撲代碼) 2. PPPoE配置實驗點這里(拓撲代碼) 目錄 一、廣域網二、PPP協議三、PPP鏈路建立過程1-LCP(鏈路協商)四、PPP鏈路建立過程2-PAP/CHAP(認證協商,可選&…

linux系統多個mysql時的部署和服務注冊

在一次實際部署過程中,碰到了服務器已經部署了一個mysql服務. 再部署新的mysql時,特別注意不能與另一個mysql互相影響.記錄一次部署中存在的問題和解決方法. 因為已存在mysql,新的mysql部署采用的是mysql.tar.gz解壓手動安裝,避免.rpm或者.deb等自動安裝方式覆蓋了已有mysql的配…

python語言1

一、pytho中的注釋 1.1注釋的理解 程序員在代碼中對代碼功能解釋說明的標注性文字可以提高代碼的可讀性注釋的內容將被python解釋器忽略,不被計算機執行 1.2注釋的分類 注釋分為:單行注釋、多行注釋、中文聲明注釋 (1)單行注…

LeetCode240題:搜索二維矩陣II(python3)

代碼思路: “根節點” 對應的是矩陣的 “左下角” 和 “右上角” 元素,以 matrix 中的左下角元素為標志數 flag ,則有: 若 flag > target ,則 target 一定在 flag 所在行的上方 ,即 flag 所在行可被消去&#xff0c…

kotlin安卓開發教程視頻,2024年Android開發陷入飽和

Android基礎 1、什么是ANR 如何避免它? 如果耗時操作需要讓用戶等待,那么可以在界面上顯示進度條。 2、View的繪制流程;自定義View如何考慮機型適配;自定義View的事件 3、分發機制;View和ViewGroup分別有哪些事件分…

Java協議解析:探索網絡編程的核心

引言 在當今數字化時代,網絡編程扮演著日益重要的角色,而Java協議則成為這個領域中不可或缺的一部分。隨著互聯網的普及和各種網絡應用的不斷涌現,對網絡通信的要求也變得越來越嚴格,這就需要對Java協議進行深入的理解和探索。本…

【知識管理】計算全局效率 Network global efficiency

這句話提到的“全局效率”(global efficiency)是網絡中信息傳遞效率的一個衡量指標,它是網絡中最短路徑長度的倒數的平均值。為了更好地理解這個概念,讓我們分解這個定義: 最短路徑長度(Shortest Path Len…

輸出數據庫全部表的外鍵引用拓撲結構

執行 sql: SELECTconstraint_name,table_name,column_name,referenced_table_name,referenced_column_name FROMinformation_schema.key_column_usage WHEREtable_schema ${databaseName} ANDreferenced_table_name IS NOT NULL 將執行結果復制到臨時文件中&#…

【Leetcode每日一刷】貪心算法|122.買賣股票的最佳時機 II、55. 跳躍游戲

一、122.買賣股票的最佳時機 II 力扣題目鏈接 🦄解題思路: 首先需要明確的幾個點: 當前只能有最大一支股票每一天操作只能3選1:買or賣or休息 此外,對于貪心,總有像下面圖示的一種直覺:如果…

力扣SQL50 產品銷售分析 I 查詢

Problem: 1068. 產品銷售分析 I 思路 left join on:左連接 Code select p.product_name, s.year, s.price from Sales s left join Product p on s.product_id p.product_id

靠譜的車【華為OD機試-JAVAPythonC++JS】

題目描述 程序員小明打了一輛出租車去上班。出于職業敏感,他注意到這輛出租車的計費表有點問題,總是偏大。 出租車司機解釋說他不喜歡數字4,所以改裝了計費表,任何數字位置遇到數字4就直接跳過,其余功能都正常。 比如&…

Scaffold 腳手架

Scaffold 腳手架 Scaffold 腳手架組件是一個核心組件,它為開發者提供了一個標準的、可定制的應用界面框架。androidx.compose.material3.Scaffold 包含了應用界面的基礎元素,如狀態欄、導航欄、頂部應用欄(TopAppBar)等。通過 Sc…

Windows的Docker-Desktop安裝與問題總結

目錄 Docker-Desktop安裝步驟 環境配置 Docker-Desktop安裝問題總結 問題1:docker-desktop setting界面一直加載轉圈 問題2:docker鏡像的存儲位置變更(防止C盤空間不足) 參考文獻: Docker-Desktop安裝步驟 環境…

又挖到寶了!國人團隊研發的AI視頻工具PixVerse,這么好用居然還完全免費!(強烈推薦)

昨天發了一款國產免費的 AI 繪畫工具 Dreamina 的介紹: 居然才發現!字節跳動旗下國產AI繪畫工具Dreamina,這么好用居然還免費!(強烈推薦) 發現大家對國產 AI 工具還挺感興趣的。今天繼續幫大家挖國產的 A…

【Leetcode每日一題】二分查找 - 山脈數組的峰頂索引(難度??)(23)

1. 題目解析 Leetcode鏈接:852. 山脈數組的峰頂索引 這個問題的理解其實相當簡單,只需看一下示例,基本就能明白其含義了。 核心在于找到題目中所說的峰值所在的下標并返回他們的下標即可。 2. 算法原理 峰頂及兩側數據特點分析 峰頂數據…

運算放大電路常用接法

1、反相比例運算電路 2、同相比例運算電路 3、電壓跟隨器 4、反相求和運算電路 5、同相求和運算電路 6、加減運算電路 7、加減電路 8、積分運算電路 9、實用積分電路 10、微分運算電路 11、實用微分電路 12、壓控電壓源二階低通濾波器 13、壓控電壓源二階高通濾波器 14、RC橋式…

[剪藏] - 尊湃通訊公司竊密曝光,發現繞不過華為

在科技領域風起云涌的今天,一場驚心動魄的竊密事件悄然發生,涉及華為WIFI6芯片技術的商業秘密被竊取,案中主謀竟然是一位曾在華為海思擁有重量級地位的技術大佬。本文將深入挖掘這起事件的來龍去脈,探討竊密者的背叛和華為的技術守…

CDGA數據治理工程師模擬試題(文末附鏈接)

單選題,每題僅有一個正確的選項。(本題型共有100道,總計100分) 1、關于元數據管理原則說法正確的是 A.確保員工了解如何訪問和使用元數據。 B.制定、實施和審核元數據標準,以簡化元數據的集成和使用。 C.創建反饋機制,以便數據…

公鑰密碼體制

公鑰密碼體制 一個系統中,n個用戶之間要進行保密通信,為了確保安全性,兩兩用戶之間的密鑰不能一樣。這種方式下,需要系統提供C2 n=n(n-1)/2把共享密鑰。這樣密鑰的數量就大幅增加了,隨之而來的產生、存儲、分配、管理密鑰的成本也大幅增加。而使用公鑰密碼體制可以大大減…

超1000本計算機經典書籍分享(均可免費下載)

今天給大家推薦兩個開源項目,均可百度網盤下載: 1 https://gitee.com/ForthEspada/CS-Books 超過1000本的計算機經典書籍、個人筆記資料以及作者在各平臺發表文章中所涉及的資源等。 書籍資源包括C/C、Java、Python、Go語言、數據結構與算法、操作系統…