⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fuliye.m

📁 matlab中傅立叶变化
💻 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 + -