问题描述:
matlab ,FFT频谱分析,怎样将频谱分析振幅转为真实振幅,
对fft分析只略懂皮毛,毕业论文要用到一章,我需要将检测到的地震信号从时域转到频域,也就是本来横坐标为时间,纵坐标为幅值,转为横坐标为频率,纵坐标为真实幅值.我照猫画虎写了一个程序,可是幅值不是真实幅值,程序如下,采样率为4000.,采集数据16384个,求高手帮我看看,看哪里要改一下,附件有保存数据的csv文件
clf;
x=csvread('bp2.csv');
x=x(:,1);
x=x';
plot(x)
figure
y=fft(x,16384); %对信号进行快速Fourier变换
mag=abs(y); %求得Fourier变换后的振幅
f=(0:16383)*4000/16384; %频率序列
plot(f(1:8192),mag(1:8192)*2/8192); %绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=128');grid on;
对fft分析只略懂皮毛,毕业论文要用到一章,我需要将检测到的地震信号从时域转到频域,也就是本来横坐标为时间,纵坐标为幅值,转为横坐标为频率,纵坐标为真实幅值.我照猫画虎写了一个程序,可是幅值不是真实幅值,程序如下,采样率为4000.,采集数据16384个,求高手帮我看看,看哪里要改一下,附件有保存数据的csv文件
clf;
x=csvread('bp2.csv');
x=x(:,1);
x=x';
plot(x)
figure
y=fft(x,16384); %对信号进行快速Fourier变换
mag=abs(y); %求得Fourier变换后的振幅
f=(0:16383)*4000/16384; %频率序列
plot(f(1:8192),mag(1:8192)*2/8192); %绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=128');grid on;
问题解答:
我来补答展开全文阅读