- 积分
- 0
- 注册时间
- 2015-12-1
- 仿真币
-
- 最后登录
- 1970-1-1
|
我有输入信号x和输出信号y。我的目的是想分别对二者做fft后点除获取其传递函数。
但从下图可以看到,x的频谱和y的频谱都能清晰看到两个周期。而求取的传递函数却不能明显看到这两个主要周期成分。
我想问是不是需要怎样的预处理才能得到准确的传递函数。
代码和图片如下
===========================
load x.mat
N = length(x);
dt=1;
x=x*10;
xx = fft(x);
n = 0:N-1;
f = n/(dt*N); %频率序列
magx= abs(xx);
% subplot(2,1,2);
plot(1./(f(1:N/2)),magx(1:N/2)*2/N); %绘制Nyquist频率前的振幅
xlabel('频率/HZ');ylabel('振幅');
title('原始信号的快速Fourier变换');
load y.mat
N = length(y);
dt=1;
yy = fft(y);
n = 0:N-1;
f = n/(dt*N); %频率序列
mag = abs(yy);
% subplot(2,1,2);
plot(1./(f(1:N/2)),mag(1:N/2)*2/N); %绘制Nyquist频率前的振幅
xlabel('频率/HZ');ylabel('振幅');
title('原始信号的快速Fourier变换');
%xlim([0 0.5]);
H=yy./xx;%传递函数
a=abs(H);
b=angle(H);phasedeg = b*180/pi;
figure;
plot(1./f,a)
谢谢大家
|
|
|