MATLAB下数据读取与时频转换

本博客是结合工作的需要并利用现有资源而完成的

一、数据的读取与时频出图

        MATLAB是理工生科研中必不可少的利器,特别是在数据处理方面具有显著优势。当通过仿真和实验得出的数据后,往往会直接放到matlab中进行数据处理和出图。

1、数据的读取

         数据存储在excel中,利用matlab读取时的命令如下:

T1=xlsread('C:\Users\Desktop\MM.xlsx',1,'A1:A241');      %读取第一列数据,该数据为时间X序列
QY1=xlsread('C:\Users\Desktop\MM.xlsx',1,'C1:C241');     %读取第二列数据,该数据为脉动Y序列
QY2=xlsread('C:\Users\Desktop\MM.xlsx',1,'F1:F241');     %读取第三列数据,该数据为脉动Y序列
QY3=xlsread('C:\Users\Desktop\MM.xlsx',1,'I1:I241');     %读取第四列数据,该数据为脉动Y序列
QY4=xlsread('C:\Users\Desktop\MM.xlsx',1,'L1:L241');     %读取第五列数据,该数据为脉动Y序列
QY5=xlsread('C:\Users\Desktop\MM.xlsx',1,'O1:O241');     %读取第六列数据,该数据为脉动Y序列
QY6=xlsread('C:\Users\Desktop\MM.xlsx',1,'R1:R241');     %读取第七列数据,该数据为脉动Y序列
QY7=xlsread('C:\Users\Desktop\MM.xlsx',1,'U1:U241');     %读取第八列数据,该数据为脉动Y序列
QY8=xlsread('C:\Users\Desktop\MM.xlsx',1,'X1:X241');     %读取第九列数据,该数据为脉动Y序列
QY9=xlsread('C:\Users\Desktop\MM.xlsx',1,'AA1:AA241');   %读取第十列数据,该数据为脉动Y序列
QY10=xlsread('C:\Users\Desktop\MM.xlsx',1,'AE1:AE241');  %读取第十一列数据,该数据为脉动Y序列
QY11=xlsread('C:\Users\Desktop\MM.xlsx',1,'AI1:AI241');  %读取第十二列数据,该数据为脉动Y序列

         上文中的“'C:\Users\bb lan\Desktop\MM.xlsx'”命名方式与电脑属性对应,可随机修改。

2、数据出图
%% 将上述数据利用plot出图
plot(T1,QY1);                                                       
hold on
plot(T1,QY2);plot(T1,QY3);plot(T1,QY4);plot(T1,QY5);plot(T1,QY6);
plot(T1,QY7);plot(T1,QY8);plot(T1,QY9);plot(T1,QY10);plot(T1,QY11); 

得出的时域下信号曲线,如图1所示。可看出时域下的曲线相对较杂乱,几乎无法进行结果分析。

二、时域与频域转换与频域出图

         利用傅里叶时频转换将上述数据由时频信号转换为频率信号。

1、时域转频域
%%利用傅里叶(FFT)将时域信号转换位频域信号
YY1=fft(QY1);YY2=fft(QY2);YY3=fft(QY3);YY4=fft(QY4);YY5=fft(QY5);YY6=fft(QY6);
YY7=fft(QY7);YY8=fft(QY8);YY9=fft(QY9);YY10=fft(QY10);YY11=fft(QY11);

         利用上述代码完成时频转换,得出的曲线为:

       由于傅里叶(FFT)时频转换时,存在负值和对称区间的问题,一般最终出图时需取一下绝对值和一半区间为宜。具体代码如下:

%% 取绝对值和一半区间的代码
%利用傅里叶完成时频转换并对所得数据取绝对值
YY1=abs(fft(QY1));YY2=abs(fft(QY2));YY3=abs(fft(QY3));YY4=abs(fft(QY4));YY5=abs(fft(QY5));YY6=abs(fft(QY6));
YY7=abs(fft(QY7));YY8=abs(fft(QY8));YY9=abs(fft(QY9));YY10=abs(fft(QY10));YY11=abs(fft(QY11));
%取对称一半区间
len=length(T1);
Y1=YY1(1:len/2);Y2=YY2(1:len/2);Y3=YY3(1:len/2);Y4=YY4(1:len/2);Y5=YY5(1:len/2);
Y6=YY6(1:len/2);Y7=YY7(1:len/2);Y8=YY8(1:len/2);Y9=YY9(1:len/2);Y10=YY10(1:len/2);Y11=YY11(1:len/2);  
2、利用时频间隔求取数据的频率
%% 利用时间间隔求取数据频率
t1=xlsread('C:\Users\bb lan\Desktop\MM.xlsx',1,'A1'); 
t2=xlsread('C:\Users\bb lan\Desktop\MM.xlsx',1,'A2'); 
len=length(T1);
t=t2-t1;fe1=1/t; 
% 将频率数据取半并完成数据行列转换                                               
fe2=(0:len)*fe1/len;fe=fe2.';f=fe(1:len/2); 
3、频域出图

         利用plot将上述11组数据的频域图导出。

%% 频域下数据出图
plot(f,Y1);
hold on
plot(f,Y2);plot(f,Y3);plot(f,Y4);plot(f,Y5);plot(f,Y6);
plot(f,Y7);plot(f,Y8);plot(f,Y9);plot(f,Y10);plot(f,Y11);  

上图得出的曲线几乎集中于一段,因此美观性相对较弱。

4、三维下频域出图

%% 频域下数据出图
x1=1:120;x=x1.'; 
y1=1*ones(size(x));y2=2*ones(size(x));y3=3*ones(size(x));y4=4*ones(size(x));y5=5*ones(size(x));y6=6*ones(size(x));
y7=7*ones(size(x));y8=8*ones(size(x));y9=9*ones(size(x));y10=10*ones(size(x));y11=11*ones(size(x));
plot3(f,y1,Y1);
hold on
plot3(f,y2,Y2);plot3(f,y3,Y3);plot3(f,y4,Y4);plot3(f,y5,Y5);plot3(f,y6,Y6);
plot3(f,y7,Y7);plot3(f,y8,Y8);plot3(f,y9,Y9);plot3(f,y10,Y10);plot3(f,y11,Y11);    

利用代码得出的三维下频域图,如图4所示:

利用上图就可以直观清楚的分析第一张不规则的所体现出的规律了。

三、数据转存

若需要将图4中的数据存至excel中,进而方便下次调用,代码如下:

xlswrite('C:\Users\Desktop\MN.xlsx',Y1,1,'A1');
xlswrite('C:\Users\Desktop\MN.xlsx',Y2,1,'B1');
xlswrite('C:\Users\Desktop\MN.xlsx',Y3,1,'C1');
xlswrite('C:\Users\Desktop\MN.xlsx',Y4,1,'D1');
xlswrite('C:\Users\Desktop\MN.xlsx',Y5,1,'E1');
xlswrite('C:\Users\Desktop\MN.xlsx',Y6,1,'F1');
xlswrite('C:\Users\Desktop\MN.xlsx',Y7,1,'G1');
xlswrite('C:\Users\Desktop\MN.xlsx',Y8,1,'H1');
xlswrite('C:\Users\Desktop\MN.xlsx',Y9,1,'I1');
xlswrite('C:\Users\Desktop\MN.xlsx',Y10,1,'J1');
xlswrite('C:\Users\Desktop\MN.xlsx',Y11,1,'K1');
xlswrite('C:\Users\Desktop\MN.xlsx',f,1,'L1');

上面代码中'C:\Users\Desktop\MN.xlsx'取决于MN命名的excel表格所在的属性位置。

若对上述博客有疑问请QQ联系:2358571667

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值