matlab 读取脉冲数,已知一段波形,求脉冲个数,用代码实现
%本程序作用說明:用來實現5元、10元、20元、50元、100元峰值和峰谷數據范圍的獲取
%關閉所有的窗口,清除所有的內存數據,清除命令窗口中的數據
clf;
close all;
clear all;
clc;
%讀取數據
%讀取18個5元的樣本數據
x51=xlsread('5反上下1.xls','A700:A1904');
x52=xlsread('5反上下2.xls','A700:A1904');
x53=xlsread('5反上下3.xls','A700:A1904');
x54=xlsread('5正上下1.xls','A700:A1904');
x55=xlsread('5正上下2.xls','A700:A1904');
x56=xlsread('5反下上1.xls','A700:A1904');
x57=xlsread('5反下上2.xls','A700:A1904');
x58=xlsread('5反下上3.xls','A700:A1904');
x59=xlsread('5反下上4.xls','A700:A1904');
x510=xlsread('5反下上5.xls','A700:A1904');
x511=xlsread('5正上下3.xls','A700:A1904');
x512=xlsread('5正上下4.xls','A700:A1904');
x513=xlsread('5正上下5.xls','A700:A1904');
x514=xlsread('5正下上1.xls','A700:A1904');
x515=xlsread('5正下上2.xls','A700:A1904');
x516=xlsread('5正下上3.xls','A700:A1904');
x517=xlsread('5正下上4.xls','A700:A1904');
x518=xlsread('5正下上5.xls','A700:A1904');
%將18組列向量進行數據預處理
%滑動濾波
m=11;%表示平滑濾波窗函數,前m/2,后m/2個點沒有濾波,設為原來的值就行
for i=1:length(x51)-m+1
y51(i+(m-1)/2)=sum(x51(i:i+m-1))/m;
end
for i=1:length(x52)-m+1
y52(i+(m-1)/2)=sum(x52(i:i+m-1))/m;
end
for i=1:length(x53)-m+1
y53(i+(m-1)/2)=sum(x53(i:i+m-1))/m;
end
for i=1:length(x54)-m+1
y54(i+(m-1)/2)=sum(x54(i:i+m-1))/m;
end
for i=1:length(x55)-m+1
y55(i+(m-1)/2)=sum(x55(i:i+m-1))/m;
end
for i=1:length(x56)-m+1
y56(i+(m-1)/2)=sum(x56(i:i+m-1))/m;
end
for i=1:length(x57)-m+1
y57(i+(m-1)/2)=sum(x57(i:i+m-1))/m;
end
for i=1:length(x58)-m+1
y58(i+(m-1)/2)=sum(x58(i:i+m-1))/m;
end
for i=1:length(x59)-m+1
y59(i+(m-1)/2)=sum(x59(i:i+m-1))/m;
end
for i=1:length(x510)-m+1
y510(i+(m-1)/2)=sum(x510(i:i+m-1))/m;
end
for i=1:length(x511)-m+1
y511(i+(m-1)/2)=sum(x511(i:i+m-1))/m;
end
for i=1:length(x512)-m+1
y512(i+(m-1)/2)=sum(x512(i:i+m-1))/m;
end
for i=1:length(x513)-m+1
y513(i+(m-1)/2)=sum(x513(i:i+m-1))/m;
end
for i=1:length(x514)-m+1
y514(i+(m-1)/2)=sum(x514(i:i+m-1))/m;
end
for i=1:length(x515)-m+1
y515(i+(m-1)/2)=sum(x515(i:i+m-1))/m;
end
for i=1:length(x516)-m+1
y516(i+(m-1)/2)=sum(x516(i:i+m-1))/m;
end
for i=1:length(x517)-m+1
y517(i+(m-1)/2)=sum(x517(i:i+m-1))/m;
end
for i=1:length(x518)-m+1
y518(i+(m-1)/2)=sum(x518(i:i+m-1))/m;
end
%數據壓縮
t=0;
for i=1:8:length(y51)
t=t+1;
z51(t)=(y51(i)+y51(i+1)+y51(i+2)+y51(i+3)+y51(i+4)+y51(i+5)+y51(i+6)+y51(i+7))/8;
end
t=0;
for i=1:8:length(y52)
t=t+1;
z52(t)=(y52(i)+y52(i+1)+y52(i+2)+y52(i+3)+y52(i+4)+y52(i+5)+y52(i+6)+y52(i+7))/8;
end
t=0;
for i=1:8:length(y53)
t=t+1;
z53(t)=(y53(i)+y53(i+1)+y53(i+2)+y53(i+3)+y53(i+4)+y53(i+5)+y53(i+6)+y53(i+7))/8;
end
t=0;
for i=1:8:length(y54)
t=t+1;
z54(t)=(y54(i)+y54(i+1)+y54(i+2)+y54(i+3)+y54(i+4)+y54(i+5)+y54(i+6)+y54(i+7))/8;
end
t=0;
for i=1:8:length(y55)
t=t+1;
z55(t)=(y55(i)+y55(i+1)+y55(i+2)+y55(i+3)+y55(i+4)+y55(i+5)+y55(i+6)+y55(i+7))/8;
end
t=0;
for i=1:8:length(y56)
t=t+1;
z56(t)=(y56(i)+y56(i+1)+y56(i+2)+y56(i+3)+y56(i+4)+y56(i+5)+y56(i+6)+y56(i+7))/8;
end
t=0;
for i=1:8:length(y57)
t=t+1;
z57(t)=(y57(i)+y57(i+1)+y57(i+2)+y57(i+3)+y57(i+4)+y57(i+5)+y57(i+6)+y57(i+7))/8;
end
t=0;
for i=1:8:length(y58)
t=t+1;
z58(t)=(y58(i)+y58(i+1)+y58(i+2)+y58(i+3)+y58(i+4)+y58(i+5)+y58(i+6)+y58(i+7))/8;
end
t=0;
for i=1:8:length(y59)
t=t+1;
z59(t)=(y59(i)+y59(i+1)+y59(i+2)+y59(i+3)+y59(i+4)+y59(i+5)+y59(i+6)+y59(i+7))/8;
end
t=0;
for i=1:8:length(y510)
t=t+1;
z510(t)=(y510(i)+y510(i+1)+y510(i+2)+y510(i+3)+y510(i+4)+y510(i+5)+y510(i+6)+y510(i+7))/8;
end
t=0;
for i=1:8:length(y511)
t=t+1;
z511(t)=(y511(i)+y511(i+1)+y511(i+2)+y511(i+3)+y511(i+4)+y511(i+5)+y511(i+6)+y511(i+7))/8;
end
t=0;
for i=1:8:length(y512)
t=t+1;
z512(t)=(y512(i)+y512(i+1)+y512(i+2)+y512(i+3)+y512(i+4)+y512(i+5)+y512(i+6)+y512(i+7))/8;
end
t=0;
for i=1:8:length(y513)
t=t+1;
z513(t)=(y513(i)+y513(i+1)+y513(i+2)+y513(i+3)+y513(i+4)+y513(i+5)+y513(i+6)+y513(i+7))/8;
end
t=0;
for i=1:8:length(y514)
t=t+1;
z514(t)=(y514(i)+y514(i+1)+y514(i+2)+y514(i+3)+y514(i+4)+y514(i+5)+y514(i+6)+y514(i+7))/8;
end
t=0;
for i=1:8:length(y515)
t=t+1;
z515(t)=(y515(i)+y515(i+1)+y515(i+2)+y515(i+3)+y515(i+4)+y515(i+5)+y515(i+6)+y515(i+7))/8;
end
t=0;
for i=1:8:length(y516)
t=t+1;
z516(t)=(y516(i)+y516(i+1)+y516(i+2)+y516(i+3)+y516(i+4)+y516(i+5)+y516(i+6)+y516(i+7))/8;
end
t=0;
for i=1:8:length(y517)
t=t+1;
z517(t)=(y517(i)+y517(i+1)+y517(i+2)+y517(i+3)+y517(i+4)+y517(i+5)+y517(i+6)+y517(i+7))/8;
end
t=0;
for i=1:8:length(y518)
t=t+1;
z518(t)=(y518(i)+y518(i+1)+y518(i+2)+y518(i+3)+y518(i+4)+y518(i+5)+y518(i+6)+y518(i+7))/8;
end
%重組矩陣
A5=[z51;z52;z53;z54;z55;z56;z57;z58;z59;z510;z511;z512;z513;z514;z515;z516;z517;z518];
%計算峰值和峰谷個數
%計算峰值個數
i=0;%18行依次循環
j=0;%150列依次循環
cnt5=zeros(1,18);%構建1行18列的矩陣,用來存儲峰值個數的2倍值,將來計算峰值實際個數時,記得除以2
for i=1:18
for j= 1:150
if A5(i,j)>=0.4 && A5(i,j)<=0.5 && j<=150
cnt5(1,i)=cnt5(1,i)+1;
end
end
end
總結
以上是生活随笔為你收集整理的matlab 读取脉冲数,已知一段波形,求脉冲个数,用代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WRF安装记录
- 下一篇: NVIDIA针对大规模数据分析和机器学习