דחיסת אות ECG בעזרת אלגוריתם Matching Pursuit

Post on 23-Jan-2016

50 views 0 download

Tags:

description

דחיסת אות ECG בעזרת אלגוריתם Matching Pursuit. שי אלפסי אילן בנדור. מטרות. מטרת הפרוייקט לקרב את האלגוריתם לזמן אמת ובחינת ביצועי האלגוריתם תחת תנאים אלו. הצעות לשיפור האלגוריתם עבור מימוש מתקדם יותר. למה צריך ECG ?. מאפשר אינדיקציה טובה על תפקוד השרירים באיזורים שונים בלב. - PowerPoint PPT Presentation

Transcript of דחיסת אות ECG בעזרת אלגוריתם Matching Pursuit

בעזרת אלגוריתםECGדחיסת אות Matching Pursuit

שי אלפסי

אילן בנדור

מטרות

מטרת הפרוייקט לקרב את האלגוריתם לזמן •אמת ובחינת ביצועי האלגוריתם תחת תנאים

אלו.

הצעות לשיפור האלגוריתם עבור מימוש מתקדם •יותר.

?ECGלמה צריך

מאפשר אינדיקציה טובה על תפקוד השרירים •באיזורים שונים בלב.

פשוט למדידה.•

?ECGלמה לדחוס

ביטים 11 ערוצים במקביל , 12מדידה של • שעות :24 דגימות בשניה , 1000לדגימה ,

בזמן אמת.ECGהעברת מדידות •

Matching Pursuit

יצירת מילון המורכב מאטומי זמן-תדר מהצורה:•

xRggxx II1

00, :gaborפונקציית המילון נבנות על ידי פונקצית •

בנוסף לאטומי זמן-תדר המילון מורכב גם • , הנבנות גם Diracמפונקציית פורייה ופונקציות

עם תחום שונה של gaborהן בעזרת פונקציית .s,p,kערכים עבור

Matching Pursuit)המשך( לסגמנטים. ECGפירוק אות ה•

עבור כל סגמנט מבצעים תהליך איטרטיבי של הטלת האות על •פונקציות המילון , ומציאת הפונקציה המתאימה ביותר , בצורה

הבאה :

כאשר הוא השארית המתקבלת בכל איטרציה באופן הבא :•

Matching Pursuit)המשך(

.inner product ו s,p,kשמירת פרמטרי הפונקציות שנבחרו •

מעבר לסגמנט הבא כאשר מתקיים התנאי:•

איטרציות האות ניתן לייצוג בצורה הבאה : m בסוף התהליך לאחר •

Matching Pursuit)המשך(

בתהליך הפריסה יוצרים את הפונקציות שנבחרו •מהמילון בעזרת הפרמטרים.

משחזרים את האות בעזרת הפונקציות • .(inner product)והמכפלה הפנימית

יישום האלגוריתם

על מנת לקרב ++Cיישום האלגוריתם התבצע ב •את התוצאות ל"זמן אמת" ככל שניתן.

המימוש מורכב משלושה חלקים עיקריים :•

דחיסת האות , פריסת האות ובדיקת השגיאה (PRD).

תהליך הדחיסה

כיוונון עדין(fine_tunning)

חיפוש בתת מילון(search_region)

תוכנית ראשית

דחיסת וקטור(compress_vector)

דחיסת סגמנט(compress_segment)

ECGקריאת וקטורי (read_signal)

יצירת מילון פונקציות

(create_dictionary)

חישוב וקטור שארית

(get_remainder_vec)

(mainתוכנית ראשית )

main

קלט :

נתוני משתמש הכוללים :

שם קובץ קלט.•

שם קובץ פלט. #•

גודל פונקצית מילון. #•

דיוק הדחיסה. #•

מס' עמודות לדחיסה. #•

דיוק הכיוונון העדין. #•

# - נתונים אופציונליים.

הפעלת המודולים המבצעים:

יצירת מילון.•

.ECG קריאת וקטורי •

.i דחיסת וקטור •

קריאת נתוני המשתמש והשלמת הנתונים האופציונליים, קריאה למודולים המפורטים והמתנה תפקידי המודול:לסיומם.

יצירת מילון פונקציות

Create_dictionary

קלט :

מס' הדגימות בכל פונקציה • (N.)

קלט :

הראשון struct מצביע ל-•במילון.

. ECG יצירת המילון שעל פיו יפורקו אותות ה-תפקיד המודול : •

המילון מורכב מפונקציות גאבור , פונקציות דיראק ופונקציות פורייה.•

.num_of_funcs = 4*N*)log_2)N(-1(+2*N מס' הפונקציות במילון נקבע ע"פ : •

( , וקטור הדגימות של s,p,k מכיל : פרמטרים נחוצים ליצירת הפונקציה ) struct , כאשר כל structs המילון הינו מערך •הפונקציה. ונתוני עזר נוספים.

ECGקריאת וקטורי

Read_signal

קלט :

שם קובץ המכיל דגימות •ECG.ערוכות בוקטורים

מספר הוקטורים אותם יש •לקרוא.

מערך מספרי הוקטורים •לקריאה.

פלט:

מערך וקטורים.•

קריאת הדגימות במספרי העמודות הנתונים במערך הקלט והכנסתם לוקטרים המוחזרים המערך תפקיד המודול: •הוקטורים.

כל וקטור במערך המוחזר מכיל דגימות מנקודת מדידה בודדת.•

דחיסת וקטור

Compress_vector

קלט :

אינדקס הוקטור.•

.ECG וקטור דגימות •

פרמטר כיוונון עדין.•

מצביע למילון הפונקציות.•

מספר הפונקציות במילון.•

שם קובץ הפלט.•

פלט :

קובץ המכיל את נתוני •הדחיסה של וקטורי

הקלט.

ביצוע דחיסה של וקטור הקלט ע"י חלוקתו לסגמנטים באורך פונקציות המילון וקריאה מחזורית תפקיד המודול :למודול המבצע את דחיסת הסגמנט. בסיום דחיסת הוקטור מודפסים נתוני הדחיסה לקובץ.

דחיסת סגמנט

Compress_segmentקלט :

.ECG סגמנט נתוני •

מספר הפונקציות המילון.•

פרמטר כיוונון עדין.•

פלט :

.S וקטור ערכי •

.P וקטור ערכי •

.K וקטור ערכי •

וקטור ערכי המכפלות •הפנימיות. . matching pursuit המודול מבצע דחיסה של הסגמנט הנתון ע"פ אלגוריתם תפקיד המודול : •

פרמטר הכיוונון מאפשר לקבוע לכמה קטעים יחולק המקטע בו נמצאה המ"פ הגדולה ביותר בתהליך הכיוונון העדין. •

לאחר כל איטרציה נרשמים נתוני הפונקציה שנבחרה ותוצאת המ"פ לוקטורי הפלט. •

. search_region המודול מבצע את חיפוש הפונקציה במילון ע"י הפונקציה •

המודול תוכנן כך שיוכל לתמוך בהפעלה מקבילית.•

שדות הקלט והפלט מצויים במבנה יחיד הנשלח ומוחזר מהמודול.•

חיפוש בתת מילון

Search_region

קלט :

מצביע למילון הפונקציות.•

.ECG סגמנט נתוני •

מספר הפונקציות שיש לסרוק.•

אינדקס הפונקציה ממנה •להתחיל.

פלט :

של הפונקציה S,P,K ערכי •שהניבה ערך מ"פ גבוה ביותר.

ערך המ"פ.•

אינדקס הפונקציה שנבחרה.•

שנשלח והחזרת פרטיו.ECG חיפוש הפונקציה המניבה ערך מ"פ הגבוה ביותר עם סגמנט נתוני ה- תפקיד המודול :•

שדות הקלט והפלט מצויים במבנה יחיד הנשלח ומוחזר מהמודול )במבנה זה מצויים שדות נוספים שאינם רלבנטיים •למודול זה(.

כיוונון עדין

Fine_tunning

קלט :

אינדקס הפונקציה שהניבה מ"פ •מקסימלית עד כה.

מצביע למילון הפונקציות.•

של S,P,K )בעזרתו חושבו j נתון עזר •הפונקציה(.

דיוק הכיוונון העדין. •

פלט :

בעזרתם S,P,K פרמטרי •נוצרה הפונקציה המכווננת.

ערך המ"פ המרבית.•

וקטור ערכי הפונקציה •המכווננת.

של פונקציה המניבה ערך מ"פ גבוה יותר מהפונקציה הטובה ביותר במילון )אם S,P,K מציאת פרמטרי תפקיד המודול : •אפשר( והחזרת פרמטרים אלה, ערך המ"פ החדש ווקטור ערכי הפונקציה החדשה.

ובמקרה של P , במקרה של פונקצית דיראק הכיוונון נעשה על K ו – S,P במקרה של פונקצית גאבור הכיוונון נעשה על •.Kפונקציות פוריה הכיוונון נעשה על

ניתן למנוע את הכיוונון העדין ע"י שליחת ערך אפס בתור דיוק הכיוונון העדין למודול דחיסת הסגמנט.•

חישוב וקטור שארית

Get_remainder_vec

קלט :

וקטור דגימות הפונקציה •

שהניבה מ"פ מרבית.

.ECG סגמנט ערכי דגימות •

ערך מ"פ מרבית.•

)norm)seg – mean)seg (ערך -•

פלט :

וקטור שארית.•

דגל סיום. •

: בצוע חשוב וקטור השארית ובדיקת תנאי סיום תפקיד המודול :•

• PRECISION.הינו משתנה גלובלי המוגדר ע"י התוכנית הראשית

תהליך הפריסה

תוכנית ראשית

Main)(

בניית וקטור

Build_vector)(

בניית סגמנט

Build_segment)(

בניית וקטור

Build_vector)(

בניית סגמנט

Build_segment)(

בניית סגמנט

Build_segment)(

בניית סגמנט

Build_segment)(

בניית סגמנט

Build_segment)(

בניית סגמנט

Build_segment)(

בניית וקטור

Build_vector)(

בניית וקטור

Build_vector)(

בניית וקטור

Build_vector)(

בניית וקטור

Build_vector)(

תוכנית ראשית

תוכנית ראשית

Main)( קלט מהמשתמש:שמ/ות קבצ/ים הנוצרו על ידי תהליך הדחיסה.•

שם קובץ פלט שיכיל את הווקטור/ים המשוחזרים • ( . decompress_vector )בררית מחדל

) בררית מחדל DECOMP_LEVEL ערך עבור •0. )

:תפקיד לקרוא את הנתונים מהמשתמש.•

עבור כל קובץ קלט. decompress_vector להפעיל את הפונקצייה •

לקובץ decompress_vectorלהדפיס את האותות המשוחזרים המתקבלים מפונקציה •הפלט.

:בניית וקטורפלט לStruct מסוג vector_t המכיל שם קובץ מהמשתמש

ווקטור ריק

: בניית וקטורקלט מStruct מסוג vector_t המכיל את הווקטור

המשוחזר

בניית וקטור

בניית וקטור

Build_vector)(

:תפקיד לקרוא את הנתונים מקובץ הקלט)המכיל את נתוני הדחיסה( .•

עבור כל אחד מהסגמנטים.build_segment להפעיל את הפונקצייה •

לאחר סיום בניית כל הסגמנטים להרכיב את האות המשוחזר ולהתזירו לתוכנת •הראשית.

קלט מהתוכנית הראשית:Struct מסוג vector_t המכיל שם קובץ מהמשתמש ווקטור

ריק

פלט לתוכנית הראשית : Struct מסוג vector_t המכיל את הווקטור

המשוחזר

בניית סגמנטפלט ל :Struct מסוג build_segment_s המכיל את

נתוני הדחיסה עבור כל סגמנט וסגמנט ריק.

:קלט מבניית סגמנטStruct מסוג build_segment_s המכיל

את את הסגמנט המשוחזר.

בניית סגמנט

בניית סגמנט

Build_segment)(

:תפקיד מסוג struct ) הפונקצייה משחזרת סגמנט על פי הנתונים שהיא מקבלת כקלט•

build_segment_s.) לסגמנט המשוחזר .structמאתחלת את הסגמנט ב • לבניית וקטור.struct מחזירה את ה •

בניית וקטור:קלט מStruct מסוג build_segment_s המכיל את נתוני הדחיסה עבור כל סגמנט וסגמנט

ריק.

פלט לבניית וקטור:Struct מסוג build_segment_s המכיל את את הסגמנט

המשוחזר.

בדיקת שגיאה

חישוב השגיאה הממוצעת באחוזים באופן הבאתפקיד::

ו- ORGכאשר המקורי האות זהו REC– האות זהו המשוחזר.

תוכנית ראשית

קלט: קובץ המכיל את האות המקורי .•

קובץ המכיל את האות המשוחזר. •

פלט: השגיאה הממוצעת הכללית מודפסת למסך •

( .prd_res.txtולקובץ פלט )

מודפס וקטור המכיל את השגיאה עבור כל • . (prd_vector.txt)דגימה

תוצאות

השוואת מקטעי האות לפני דחיסה ואחרי פריסה•

2000 2050 2100 2150 2200 2250 2300 2350 2400 2450 2500800

850

900

950

1000

1050

1100

1150

Original signal (blue)

Reconstructed signal (green)

1:10,יחס דחיסה 1% דגימות, שגיאה מירבית 256מילון בן

2000 2050 2100 2150 2200 2250 2300 2350 2400 2450 25000

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

פילוג שגיאת האנרגיה

תוצאות )המשך(

1:23,יחס דחיסה 5% דגימות, שגיאה מירבית 256מילון בן

פילוג שגיאת האנרגיה

2000 2050 2100 2150 2200 2250 2300 2350 2400 2450 2500750

800

850

900

950

1000

1050

1100

1150

Original signal (blue)

Reconstructed signal (green)

2000 2050 2100 2150 2200 2250 2300 2350 2400 2450 25000

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

תוצאות )המשך(

ניתוח התוצאות התבצע על פי שני קבצי •ECG מתוך בסיס הנתונים MIT - BIH:

. A– יקרא קובץ mitdb\109.matקובץ 1.

.B – יקרא קובץ cudb\cu01.matקובץ 2.

תוצאות )המשך(

השפעת מספר הפונקציות •במילון

05

10152025303540

576 1408 3328 7680 17408

ת ו קצי פונ מספר

הס

חיד

ס ח

י

A בץ קו B בץ קו

יחס דחיסה כתלות במספר הפונקציות

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

576 1408 3328 7680 17408

ת ו קצי פונ מספר

תניו

ש

מית

ריג

לור

צי

A בץ קו B בץ קו

זמן הדחיסה כתלות במספר הפונקציות

תוצאות )המשך(

השפעת שגיאת הדחיסה•

יחס הדחיסה כתלות בשגיאת הדחיסה

זמן הדחיסה כתלות בשגיאת הדחיסה

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

1 2 3 4 5 6 7 8 9 10

)%( סה הדחי את שגי

תניו

ש

מית

ריג

לור

צי

A בץ קו B בץ קו

0

5

10

15

20

25

30

35

1 2 3 4 5 6 7 8 9 10

)%( סה דחי את שגי

הס

חיד

ס ח

י

A בץ קו B בץ קו

תוצאות )המשך(

השפעת גודל המילון על השגיאה הממוצעת •

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

32 64 128 256 512

ת( מו )דגי ט סגמנ דל גו

)%(

אה שגי

A בץ קו B בץ קו

שגיאת דחיסה ממוצעת לסגמנט כתלות בגודל סגמנט

דיון

על סמך התוצאות ניתן לראות שככל שאחוז השגיאה : יחס דחיסה•הנדרש עולה ומספר הפונקציות במילון גדל , משתפר יחס הדחיסה . כמו

עבור שגיאה נדרשת של 1:37כן יחס הדחיסה המקסימלי שהתקבל הוא פונקציות .17408 ומילון בעל 5%

MP FOP Fan 

11.843 7.4 10.46 יחס הדחיסה

הטבלה מתייחסת לאלגוריתם תחת התנאים הבאים :

PRD < 3.2% , SNR > 65 , RMS < 25

להלן השוואה עם מספר אלגוריתמים נוספים :

דיון )המשך(

על מנת להשוות נתון זה לאלגוריתמים שגיאת דחיסה :• של אלגוריתמים אלו .SNR ו RMSאחרים , נתייחס גם ל

SNR RMS PRD שיטת דחיסה

84.7 11.8 1.7% Fan

78.8 15.9 2.2% First Order Prediction

79.0826 12.5028 2.33% Matching Pursuit

1:4הנתונים בטבלה מתיחסים עבור יחס דחיסה של

סיכום

אופיינים.ECGתוצאות טובות עבור אותות •

הוספת פונקציות למילון עבור אותות שונים.•

הוספת אופטימיזציות לחיפוש במילון לצימצום •זמן הדחיסה.