天天看點

matlab連續信号的頻譜,基于matlab的連續信号的頻譜分析

給個例題,自己變一下就好

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;