matlab fft 横纵坐标,Matlab 进行FFT

x=load(‘cur.txt’); %读入变换数据

fs = 100; %设定采样率

N=128; %变换点数

n=0:N-1;

t=n/fs;

y=fft(x); %进行FFT变换

mag = abs(y); %求取幅值

f=(0:length(y)-1)’*fs/length(y); %进行对应的频率转换

figure(1);subplot(231);

plot(f,mag); %绘制频谱图

axis([0,100,0,80]); %设置坐标范围,前面为X,后面为Y

xlabel(‘Hz’);ylabel(‘mag’);

grid;

%求取均方根谱

sq=abs(y);-

figure(1);-

subplot(232);-plot(f,sq);-

xlabel('频率(Hz)');-

ylabel('均方根谱');-

%下面求取功率谱

power=sq.^2;-

figure(1);-

subplot(234);-

plot(f,power);-

xlabel('频率(Hz)');-

ylabel('功率谱');-

grid;

%求对数谱-

ln=log(sq);-

figure(1);-

subplot(235);-

plot(f,ln);-

xlabel('频率(Hz)');-

ylabel('对数谱');-

grid;-

%用IFFT恢复原始信号-

xifft=ifft(y);-

magx=real(xifft);-

ti=[0:length(xifft)-1]/fs;-

figure(1);-

subplot(236);-

plot(ti,magx);-

xlabel('t');-

ylabel('y');-

grid;-

你可能感兴趣的:(matlab,fft,横纵坐标)