سوال اول : این دیتای صدای قلب 10 ثانیه رو داره نشون میده. اگه من بخوام یه قسمت خاص از سیگنال مثلا از سمپل 1 تا 70000 رو ببینم باید چیکار کنم ؟

جواب : ازونجایی که دیتامون (که مثلا نامش y1 هست) یک بردار 424560*1 یا 1*424560 هستش، پس برای انتخاب یک قسمت خاص از دیتا بدین گونه عمل میکنیم:
y2=y1(1:70000)
یا مثلا از سمپل 80000 تا سمپل 120000 را میخوام :
y3=y1(80000:120000)


سوال دوم : توی شکل صدای قلب نمونه ای که داشتیم، ده تا سیکل صدای قلبی رو داریم. اگه بخوام مثلا سیکل اول رو فقط داشته باشم چیکار کنم ؟
جواب : خب در کمال سادگی از دستور length استفاده میکنیم .
مثل من مینویسم plot(t(1:length(t)/10),y1(1:length(y1)/10)) تا به راحتی بتونم سیکل اول صدای قلب را ترسیم کنم. پس کل کد من به صورت زیر خواهد بود :

clc;clear;close all
[y1,fs]=audioread('normal.mp3'); % read Heart sound data
T = 1/fs; % Sample time
L = length(y1); % Length of signal
t = (0:L-1)*T; % time vector

plot(t(1:length(t)/10),y1(1:length(y1)/10))

 

 

 
 
 
 
ترسیم یک سیکل صدای قلب

سوالات در مورد انتخاب قسمتی از سیگنال صدای قلب

کد متلبی فراخوانی و ترسیم صدای قلب

y1 ,length ,  ,صدای ,t ,مثلا ,    ,1 length ,صدای قلب ,length y1 ,y1 1
مشخصات
آخرین جستجو ها