📄 fuliye.m
字号:
11%function spgram(SwaveFileNam,Winsiz,Winsiz,Shift,Base,Coltype);
clear;
%下面的表达式一个可以使用户找到一个文件的对话框,选中的文件名称和目
%录用fname和pname返回;
[fname,pname]=uigetfile('*.csv','选择需要数据处理的文件');
%显示目录为csv格式的文件,并显示标题为‘选择需要数据处理的文件'
%fname保存被选中的文件名称,而pname保存路径名
fp=fopen(strcat(pname,fname),'r');%打开‘strcat(pname,fname)’的文件,只是用来读;
%strcat(pname,fname)是按照水平方向的pnamefname顺序排列数组;
Signl1=dlmread(strcat(pname,fname),',',1,0);
%As an alternative to read, use the import wizard. To active the import
%wizard, select import data, from the file menu.
%上述逗号为分隔符,1和0代表从打开的文档中的第一行第0列开始读取数据。
for t=1:10000
Signlg(t)=Signl1(t,2);%从第t行2列开始读取数字,电压数据,共读取10000个数据
end
for t=1:2
Sample(t)=Signl1(t,1);%从第t行第1列读取数据;
end
Signl=reshape(Signlg,10000,1);%把Signlg中的数据10000X1阶电压数值传给Signl;
% fclose(fp);
Fs=1/(Sample(2)-Sample(1));%采样率Fs=50000Hz
%Signl的信号频率主频经分析为50Hz,也就是信号每个周期采样1000个点。
m=0;
for i=1:10000
if Signl1(i,1)<0;
m=m+1;
else
break;
end
end
Lasttime=1000*Signl1(10000,1);
% 信号重现
figure
i=1:10000;
plot((i-m)*1e3/Fs,Signl);%画出原信号的波形图;
title('原信号的波形图');
xlabel('时间t/ms','FontName','Times new Roman');
ylabel('幅度A/V','FontName','Times new Roman');
% axis([-inf,inf,-0.20001,0.20001]);
% title('信号重现');
figure
df=Fs/10000;
f=0:df:df*9999;
plot(f/1000000,abs(fft(Signl)));grid on;%画出复原信号的付立叶变换图;
axis([0,Fs/(2*1000000),-inf,inf]);
title('原信号的傅立叶变换');
xlabel('频率(MHz)');
ylabel('幅度');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -