matlab时域数据转频域,时域信号转换成频域信号的matlab代码

format long

gnuplot_binary ("gnuplot")

data = load ('/test/a.dat');

time = data(:,1);

signal = data(:,2);

T = time(2) - time(1);

Fs = 1/T;

L = length(signal);

NFFT = 2^nextpow2(L);

Y = fft(signal,NFFT)/L;

f= Fs/2*linspace(0,1,NFFT/2+1);

A(:,1) = f;

A(:,2) = (2*abs(Y(1:NFFT/2+1)));

B = sortrows(A,2);

figure(1, "visible", "off");

plot(A(:,1),A(:,2))

axis ([0.005 1])

print -deps "/test/FA.eps"

for i = 1:60

freq(i) = B(length(B)-(i-1),1);

Amp(i) = B(length(B)-(i-1),2);

Period(i) =1/freq(i);

file_id = fopen(/test/FrequencyA.dat', 'at');

fprintf(file_id, ' \n \t %u Max Amplitude:\t %f \t Dominant frequency %u: \t %f \t Period: \t %f \t\n',(i), Amp(i),(i), freq(i), Period(i));

fclose(file_id);

end

exit;

  • 0
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值