matlab-FFT程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

close all; %先关闭所有图片
Fs=500; %采样频率(Hz)
N=30000; %采样点数,如果N不是Fs的整数倍,悲剧产生了……
ndata = xlsread('1.xls');%读入表格文件,要求文件1.xls与本程序放在同一目录下
V_value=ndata(:,1); %本次计算的电压值为第1列

l= length(V_value);
for i=1:l
V_value(i) = V_value(i);
end
t = 1:N;
plot(t,V_value(1:N));
figure;

Y = fft(V_value(1:N),N);

%以下为测试信号
% Adc=0.002; %直流分量幅度
% A1=0.1; %频率F1信号的幅度
% A2=0; %频率F2信号的幅度
% F1=10; %信号1频率(Hz)
% F2=13; %信号2频率(Hz)
% P1=-30; %信号1相位(度)
% P2=90; %信号相位(度)
% t=[0:1/Fs:N/Fs]; %采样时刻
% S=Adc+A1*cos(2*pi*F1*t+pi*P1/180)+A2*cos(2*pi*F2*t+pi*P2/180);%信号
% plot(t,S);
% figure;
% Y = fft(S,N); %做FFT变换
%以上为测试信号

Ayy = (abs(Y)); %取模
Ayy=Ayy/(N/2); %换算成实际的幅度
Ayy(1)=Ayy(1)/2;
Ayy=20*log10(Ayy); %纵轴换算为以dB为单位
F=(1:N-1)*Fs/N; %换算成实际的频率值
plot(F(1:N/2),Ayy(1:N/2),'R'); %显示换算后的FFT模值结果

title('幅度-频率曲线图');
grid on
%%%%%%%%%%%%%%%%%
% hold on;
% V_value=ndata(:,4); %本次计算的电压值为第1列
% Y = fft(V_value,N);
% Ayy = (abs(Y)); %取模
% Ayy=Ayy/(N/2); %换算成实际的幅度
% Ayy(1)=Ayy(1)/2;
% Ayy=20*log10(Ayy); %纵轴换算为以dB为单位
% F=([1:N]-1)*Fs/N; %换算成实际的频率值
% plot(F(1:N/2),Ayy(1:N/2),'b'); %显示换算后的FFT模值结果

相关文档
最新文档