- 积分
- 919
- 回帖
- 0
- 西莫币
-
- 贡献
-
- 威望
-
- 存款
-
- 阅读权限
- 25
- 最后登录
- 1970-1-1
该用户从未签到
|
楼主 |
发表于 2010-1-5 21:12
|
显示全部楼层
来自: 中国广东广州
增加的相位谱如下:
%%本程序利用快速傅里叶变换FFT,求取时域信号的幅值频域分布;
clear;clc; %清空变量空间
load data1; %输入信号:先将各种格式的信号数据导入,然后存为MAT格式;
t=data1(20:40,1)/1000; %对应时间点;
x=data1(20:40,2); %对应信号值的大小;
lenx=length(x); %求取取样数和基波频率;
N=lenx-1;
tstart=t(1);tend=t(lenx);
T=tend-tstart;f0=1/T;
k=0:N/2-1;
fs=k*f0;
xk=fft(x,N); %快速傅里叶变换;
mag_xk=abs(xk)/(N/2); %除以N/2,以得到每个频率点的幅值;
mag_xk=mag_xk(1:N/2); %因为结果是对称的,所以只取其中一半;
ang_xk=angle(xk)/(2*pi)*360;
ang_xk=ang_xk(1:N/2);
subplot(3,1,1); %绘制输入信号图;
plot(t,x);
title('输入信号图');xlabel('时间以秒为单位');ylabel('信号以伏特为单位');
grid on;
subplot(3,1,2); %绘制各频率点的幅值图;
stem(fs,mag_xk);
title('信号频谱图');xlabel('频率以赫兹为单位');ylabel('幅值以伏特为单位');
grid on;
subplot(3,1,3); %绘制各频率点的角度图;
stem(fs,ang_xk);
title('信号频谱图');xlabel('频率以赫兹为单位');ylabel('以角度为单位');
grid on; |
|