
matlab中怎样对数据进行重采样
展开全部
调用函数resample()就可以了
resample为信号降采样处理,理解如下:
B=resample(x,90,250); %
采样从250Hz降到90Hz,如果250在前,就是插值从90到250,可以看B的长度,250Hz采样4000个数据等于90hz采样1440个数据,这就是降采样。
resample为信号降采样处理,理解如下:
B=resample(x,90,250); %
采样从250Hz降到90Hz,如果250在前,就是插值从90到250,可以看B的长度,250Hz采样4000个数据等于90hz采样1440个数据,这就是降采样。
推荐于2016-08-19 · 知道合伙人数码行家
关注

展开全部
程序由三部分组成,main.m主程序,负责处理数据,readdata.m负责读取数据,writedata.m负责将处理好的数据写成文件。
main.m
clear
dirs=dir('F:\matlab\impact\*.txt');
dircell=struct2cell(dirs)';
filenames=dircell(:,1);
filenum=size(filenames);
filenumrow=filenum(1);
for num=1:filenumrow
filenametemp=filenames(num);
y=readdata(filenametemp{1});
%卷积
x=filter(ones(1,50),50,y(:,[2:5]));
y=[y(:,[1]) x];
%首行标示
y(1,:)=1:5;
demensionY=size(y);
Y_rows=demensionY(1);
converted_y=zeros(1,5);
j=0;
for i=1:10:Y_rows
j=j+1;
converted_y(j,:)=y(i,:);
end
%converted_y
writedata(converted_y,filenametemp{1});
end
readdata.m
function y=readdata(filename)
%c(10:14)=file1;
%c(15:18)='.txt';
fid=fopen(filename,'r');
[a,num]=fscanf(fid,'%f',[5,inf]);
fclose(fid);
a=a';
y=a;
writedata.m
function writedata(writedData,filename)
filenames=strcat(['Result_',filename]);
fid=fopen(filenames,'w');
%fprintf(fid,'%f %f %f %f\n',writedData');
fprintf(fid,'%f %f %f %f %f\n',writedData');
fclose(fid);
main.m
clear
dirs=dir('F:\matlab\impact\*.txt');
dircell=struct2cell(dirs)';
filenames=dircell(:,1);
filenum=size(filenames);
filenumrow=filenum(1);
for num=1:filenumrow
filenametemp=filenames(num);
y=readdata(filenametemp{1});
%卷积
x=filter(ones(1,50),50,y(:,[2:5]));
y=[y(:,[1]) x];
%首行标示
y(1,:)=1:5;
demensionY=size(y);
Y_rows=demensionY(1);
converted_y=zeros(1,5);
j=0;
for i=1:10:Y_rows
j=j+1;
converted_y(j,:)=y(i,:);
end
%converted_y
writedata(converted_y,filenametemp{1});
end
readdata.m
function y=readdata(filename)
%c(10:14)=file1;
%c(15:18)='.txt';
fid=fopen(filename,'r');
[a,num]=fscanf(fid,'%f',[5,inf]);
fclose(fid);
a=a';
y=a;
writedata.m
function writedata(writedData,filename)
filenames=strcat(['Result_',filename]);
fid=fopen(filenames,'w');
%fprintf(fid,'%f %f %f %f\n',writedData');
fprintf(fid,'%f %f %f %f %f\n',writedData');
fclose(fid);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调用函数resample()就可以了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
resample函数,help一下,有详细介绍。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询