小弟這有一筆EKG訊號數據
想自動計算個波的寬度
試著用內建程式去改
座標卻都無法達到我要的位置
煩請各位先進指教
你應該是要找ekg的r點
您好我是要計算PQRST一個cycle的時間
及p波到s波的時間謝謝
當然RR INTERVAL 也是接下來要做的步驟
你指的"座標卻都無法達到我要的位置"是說Cursors點選的位置無法精準的到你要的座標嗎?那是因為你選錯模式,你要選單線模式(Single-plot),來指定Cursors要精準的在哪條線(Plot0)上.


你用了10個Cursors如果都要精準的在線上,都要一一的設定.
再建議你將Cursor Legend開啟,方便選擇要控制的Cursors,也可直接寸動控制所選的Cursors上下左右(單線模式只接受左右控制).


前輩您好您所指出的這段話
"你要選單線模式(Single-plot),來指定Cursors要精準的在哪條線(Plot0)上."
不太懂您的意思
因為我試著去更動電是他不給改
小弟的目標是要讓它自動量取
線段藍綠的數值
因為每次訊號的位置都會在不同地方
因為我沒有其他子VI所以無法執行你的程式,無法了解程是如何自動取量?我只能建議在圖形上按右鍵進入Properties,將所有的Cursors改成Single-plot試試看.




ECG的判斷說好寫很好寫
判斷的好卻又很難
我以前是這樣抓PQRST的:
1. 確認R點位置
2. 以R點位置前後間距取得QRS波(距離可用書上寫的時間轉成秒數點數來取)
3. 以R點位置前後間距取得整個波形(每個人可能有不同,可利用RR interval來判斷波形長度進而取得PQRST)
BTW,
若不是這個波形是有病灶的波形,
就是你的波形失真的太嚴重,
可能硬體或軟體的濾波器做的不好。
回覆DonWang
謝謝不過更動後還是沒什麼幫助
回覆caeru
我想波型應該沒什麼大問題
只是它變動因素太多很難以擷取
您所提到的用"
3. 以R點位置前後間距取得整個波形(每個人可能有不同,可利用RR interval來判斷波形長度進而取得PQRST)
可以在細說一下嗎 謝謝!!
因為我是用307200點來解析這30秒內的圖形
先來看一下一般的心電圖,
by MIT-BIH PhysioNet Databases
每一條藍色皆為R點位置,
取得R點與R點之間的長度,即可視為一個心跳的長度
再向左偏移1/3~1/2個波形週期(因人而異),
則取出來的即可視為一個完整的心跳週期
取得完整的心跳周期之後
才能開始計算你需要的Q-S以及Q-T間期
所以如何取得完整的心跳週期是重要的課題
建議你先能夠把心跳週期切割出來之後再進行接下來的工作
此外你的取樣頻率可以不用這麼高,
一般學術上使用的大概為250Hz
老闆要求高一點的可以用到1000Hz
沒有必要用到10KHz
這樣只會增加不必要的雜訊以及計算
先謝謝caeru的提點
我由您提供由RR的方向思考
重新撰寫另一套方式來判讀
我直接由array來下手
但是有一點目前寫到卡住我可得到最大值和其對應的時間及點
我想往右做delta的時間累加和累減到剛好在x軸為零的那一點
應該可以得到我要的所在點的時間
目前卡在這裡
附上我寫的部份程式Untitled 1.vi
ps您所提到的取樣頻率因為還需做其他事才取這麼高
你要找的應該是Y軸為0的點,但是並沒有Y=0的點,所以我建議的做法找到最高點(0~1秒鐘的),再往左往右找第1個小於等於的值,就應該是你要找的藍色的範圍,下面程式給你參考.
有1點想請教你為什麼要將所有的值減去平均值(圖2紅圈處),意義何在?


再請教一下如果我要第三點(藍色那點)的xy值
且他每筆資料未必會在x=0軸上
我該如何思考去寫呢
謝謝!!

那1點大約在0.86~0.87,你要取的是最低點嗎?因為不了解這點的定義,不知如何取點.

波形要經過濾波在求會比較好…
不然出來的結果誤差有時候也是會影響實驗結果的
可以嘗試濾1Hz以下55Hz以上
這樣對判斷來說也會有很大的幫助
不過濾波階數太高
要注意相位偏差的問題就是
先找出紅圈的那2點,然後在這範圍中找最低點(藍圈X=0.865918),或在紅圈往右往左找第1個低於0的點,將2點取平均X=0.8635255.

to DonWang
波形的最大值並非一定是擷取的最大值喔
因為那個有可能是雜訊所造成的
同樣的最小值也未必是擷取的最小值
還是得依照該波形的特徵去判斷
甚至需要濾波之後再去求得極值才會比較準確
to <span =“bold”>911gt2
這個T波還真特別,後面跟的那個是下一個的P波還是傳說中的U波?
BTW,
T波後面的結尾算是好求了
一般學術上的算法是利用斜率的變化 << 這是重點
即:
QR interval是很大的正斜率
RS interval是很大的負斜率
ST-U interval是由正轉負又變成趨近0的斜率
以你這個特例而言
只需要找到T波之後斜率由負轉正的點就是了
老話一句
求特徵點的時候務必要做濾波
求得位置後再依照相位偏移去做補償(如果濾波器沒有很高階的話是可以忽略)
求出來的特徵點才是對的
而非直接去判斷原始訊號
那實驗出來的特徵點以及特徵值
其誤差會嚴重影響統計上的意義
補充一下
一般斜率可以用這個公式
S(x)=a(V(x)-V(x-1))+b(V(x+1)-V(x))
其中a,b為權重
S(x)為第X點的斜率
V(x)為第X點的值
大概就是這樣
如果不是搞學術我想可以不要那麼複雜
但是你取樣率高又有特別意義的話
我覺得謹慎點會比較好
caeru40491.7632291667
to caeru
先謝謝您的教導老實說我碰這類東西沒幾個禮拜
大部分都還在摸索狀態,另外您所提到的t波後還有一個波
是瓣膜關閉的效應會產生一個回波
主要量測整個PORST的大概值不需要非常精確
另外我聽從您的建議加個濾波器
主要還是卡在判斷式不夠熟捻
附上我的程式Untitled 1.1.vi
為何判斷出來還是在原本的X=1&2位置
TO DonWang
也謝謝您的回覆
我想法也是在兩個小波中尋最小值
但是我不知道如何只擷取兩個波的array
因為你找的還是index 0~9416的位置,所以找不到你要的第3,4點.我改的程式給你參考:
找第3點的方式:從index 9639後1536筆資料(0.15秒),找最大值.
找第4點的方式:從第3點的index後1024筆資料(0.1秒),找最小值.
