سلام دوستان
برای پردازش سیگنال داده های دریافتی از سنسور شتاب سنج وضربان قلب (کلا چهار تا داده)از تبدیل موجک در محیط متلب استفاده می کنم، اما زمانی که M-File مربوطه رو ساختم فایل txt که شامل آرایه ای از داده هاست در واقع مربوط به داده های دریافت شده از سنسور هست رو تشخیص نمیده نمیدونم چیکار کنم ممنون میشم راهنماییم کنید.کدM-File رو پایین قرار دادم.
برای پردازش سیگنال داده های دریافتی از سنسور شتاب سنج وضربان قلب (کلا چهار تا داده)از تبدیل موجک در محیط متلب استفاده می کنم، اما زمانی که M-File مربوطه رو ساختم فایل txt که شامل آرایه ای از داده هاست در واقع مربوط به داده های دریافت شده از سنسور هست رو تشخیص نمیده نمیدونم چیکار کنم ممنون میشم راهنماییم کنید.کدM-File رو پایین قرار دادم.
کد:
function [wave1, wave2, wave3, wave4] = allwavelet(in1, in2,in3,in4,WinSize, label)
% Arrlength = length(in1);
size=0;
detailSize=0;
%Calculate X wavelet
tempX(WinSize)=0;
k=1;
for i = 1:WinSize:Arrlength
m=1;
for j = i:1:i+WinSize-1
tempX(m) = in1(j);
m=m+1;
end
[Cx,Lx] = wavedec(tempX,3,'haar');
size=Lx(1)+Lx(2)+Lx(3)+Lx(4);
detailSize=Lx(2)+Lx(3)+Lx(4);
res 1(1:size,k)=Cx;
k=k+1;
end
%Calculate Y wavelet
tempY(WinSize)=0;
k=1;
for i = 1:WinSize:Arrlength
m=1;
for j = i:1:i+WinSize-1
tempY(m) = in2(j);
m=m+1;
end
[Cy,Ly] = wavedec(tempY,3,'haar');
size=Ly(1)+Ly(2)+Ly(3)+Ly(4);
res 2(1:size,k)=Cy;
k=k+1;
end
%Calculate Z wavelet
tempZ(WinSize)=0;
k=1;
for i = 1:WinSize:Arrlength
m=1;
for j = i:1:i+WinSize-1
tempZ(m) = in3(j);
m=m+1;
end
[Cz,Lz] = wavedec(tempZ,3,'haar');
size=Lz(1)+Lz(2)+Lz(3)+Lz(4);
res 3(1:size,k)=Cz;
k=k+1;
end
%Calculate PPG wavelet
tempG(WinSize)=0;
k=1;
for i = 1:WinSize:Arrlength
m=1;
for j = i:1:i+WinSize-1
tempG(m) = in4(j);
m=m+1;
end
[Cg,Lg] = wavedec(tempG,3,'haar');
size=Lg(1)+Lg(2)+Lg(3)+Lg(4);
res 4(1:size,k)=Ch;
k=k+1;
end
%Write outputs in file x
filename =['allwavelet_x',num2str(WinSize),label,'.txt'];
fid = fopen(filename, 'w');
group=Arrlength/WinSize;
for i = 1:1:size
for j = 1:1:group
fprintf(fid, '%6.4f', res1(i,j));
fprintf(fid,' ');
end
fprintf(fid,'\r\n');
end
fclose(fid);
%End Write
%Write outputs in file y
filename =['allwavelet_y',num2str(WinSize),label,'.txt'];
fid = fopen(filename, 'w');
group=Arrlength/WinSize;
for i = 1:1:size
for j = 1:1:group
fprintf(fid, '%6.4f', res2(i,j));
fprintf(fid,' ');
end
fprintf(fid,'\r\n');
end
fclose(fid);
%End Write
%Write outputs in file z
filename =['allwavelet_z',num2str(WinSize),label,'.txt'];
fid = fopen(filename, 'w');
group=Arrlength/WinSize;
for i = 1:1:size
for j = 1:1:group
fprintf(fid, '%6.4f', res3(i,j));
fprintf(fid,' ');
end
fprintf(fid,'\r\n');
end
fclose(fid);
%End Write
%Write outputs in file h
filename =['allwavelet_h',num2str(WinSize),label,'.txt'];
fid = fopen(filename, 'w');
group=Arrlength/WinSize;
for i = 1:1:size
for j = 1:1:group
fprintf(fid, '%6.4f', res4(i,j));
fprintf(fid,' ');
end
fprintf(fid,'\r\n');
end
fclose(fid);
%End Write
%Plot
b=group*detailSize;
detailSize = size - detailSize + 1;
wave1(b)=0.0;
k=1;
for i = 1:1:group
for j = detailSize:1:size
wave1(k)=res1(j,i);
k=k+1;
end
end
%%%%%
wave2(b)=0.0;
k=1;
for i = 1:1:group
for j = detailSize:1:size
wave2(k)=res2(j,i);
k=k+1;
end
end
%%%%%
wave3(b)=0.0;
k=1;
for i = 1:1:group
for j = detailSize:1:size
wave3(k)=res3(j,i);
k=k+1;
end
end
%%%%%
wave4(b)=0.0;
k=1;
for i = 1:1:group
for j = detailSize:1:size
wave4(k)=res4(j,i);
k=k+1;
end
end
subplot(4,1,1)
plot(wave1,'rs', 'MarkerFaceColor','r');
xlabel('Time');
ylabel('wavelet X');
subplot(4,1,2)
plot(wave2,'rs', 'MarkerFaceColor','g');
xlabel('Time');
ylabel('wavelet Y');
subplot(4,1,3)
plot(wave3,'rs', 'MarkerFaceColor','b');
xlabel('Time');
ylabel('wavelet Z');
subplot(4,1,4)
plot(wave4,'rs', 'MarkerFaceColor','c');
xlabel('Time');
ylabel('wavelet PPG');
%hold all




دیدگاه