給個例題,自己變一下就好
fs=1000;%設定采樣頻率
N=1024;%設定資料長度
i=0:N-1;
t=i/fs;
f=100;%設定正弦信号頻率
%生成正弦信号
x=sin(2*pi*f*t);
subplot(231);
plot(t,x);%作正弦信号的時域波形
axis([0,0.01,-1,1]);
xlabel('t');
ylabel('y');
title('正弦信号時域波形');
grid;
%進行FFT變換并做頻譜圖
y=fft(x,N);%進行fft變換
mag=abs(y);%求幅值
f=(0:N-1)*fs/N;%橫坐标頻率的表達式為f=(0:M-1)*Fs/M;
subplot(232);
plot(f,mag);%做頻譜圖
axis([0,100,0,80]);
xlabel('頻率(Hz)');
ylabel('幅值');
title('正弦信号幅頻譜圖');
grid;
%求均方根譜
sq=abs(y);
figure(1);
subplot(233);
plot(f,sq);
xlabel('頻率(Hz)');
ylabel('均方根譜');
title('正弦信号均方根譜');
grid;
%求功率譜
power=sq.^2;
figure(1);
subplot(234);
plot(f,power);
xlabel('頻率(Hz)');
ylabel('功率譜');
title('正弦信号功率譜');
grid;
%求對數譜
ln=log(sq);
figure(1);
subplot(235);
plot(f,ln);
xlabel('頻率(Hz)');
ylabel('對數譜');
title('正弦信号對數譜');
grid;
%用IFFT恢複原始信号
xifft=ifft(y);
magx=real(xifft);
ti=[0:length(xifft)-1]/fs;
subplot(236);
plot(ti,magx);
xlabel('t');
ylabel('y');
title('通過IFFT轉換的正弦信号波形');
grid;