matlab——功率谱密度计算练习&傅里叶变换练习

%实验一

clc;
clear all;
x=1;
t=-2:0.2:2;
xt=(t+2).*(t>=-2& t<=-1)+1.*(t>-1&t<=1)+(2-t).*(t>1&t<=2);%函数
subplot(2,1,1) ;
plot(t,xt);
title('函数图像 ');

% xf=fourier(xt,t,x); 采用fourier函数报错?
% ezplot(abs(xf));

Y=fft(xt)
aff=fftshift(abs(Y));
subplot(2,1,2) ;
plot(t,aff);
title('幅度谱');

%实验二
clc;
clear all;

fs=1000;
ts=1/fs;
t=0:ts:10;
x=cos(2*pi*35*t)+cos(2*pi*180*t);
nfft=64;
power=(norm(x)^2)/length(x+1);%n=norm(A) 返回A的最大奇异值,即max(svd(A))
spow = abs(fft(x,nfft).^2); %数值的绝对值和复数的幅值
f=(0:nfft-1)/ts/nfft;
f=f-fs/2;
plot(f,fftshift(spow),'k'); %将零频率的分量移到频谱的中心
xlabel('频率');
ylabel('功率谱');
disp(['power=',num2str(power),'.']);

 

猜你喜欢

转载自www.cnblogs.com/u1-s1/p/12708260.html
今日推荐