kyu16866 发表于 2012-11-5 20:19

用matlab怎么把时域分析转换成频域分析

我用状态空间方法,得到了一多自由度系统的时域分析数据,用matlab怎么转换成频域分析?

kyu16866 发表于 2012-11-5 20:32

听说是用傅里叶变换,可应该怎么变换?对时间和时域响应x(t)都fft吗?

kyu16866 发表于 2012-11-5 22:33

clear;
clf;

N=1000; %1000个采样点
fs=500;%采样频率500Hz
t=0:1/fs:(N-1)/fs;

y=sin(2*pi*20*t);%20Hz的正弦信号
subplot(211);
plot(t,y);

Y = fft(y);%计算fft
f =fs*(0:N-1)/N;%转换为频率
subplot(212);
plot(f,abs(Y)/(N/2));

横轴如果不转换则是从1到N的点数,每点频率间隔fs/N,纵轴表示幅度,需除N/2转换为实际的信号幅度。
横坐标是频率,n*fs/N
摘录matlab中文论坛

kyu16866 发表于 2012-11-5 22:37

Fs = 1000;                  % Sampling frequency
T = 1/Fs;                     % Sample time
L = 1000;                     % Length of signal
t = (0:L-1)*T;                % Time vector
% Sum of a 50 Hz sinusoid and a 120 Hz sinusoid
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
y = x + 2*randn(size(t));   % Sinusoids plus noise
plot(Fs*t(1:50),y(1:50))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('time (milliseconds)')
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);%NFFT/2+1=513

% Plot single-sided amplitude spectrum.
figure(2)
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Single-Sided Amplitude Spectrum of y(t)')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
帮助文档中

kyu16866 发表于 2012-11-5 22:56

帮助文档中,Y/L,最后又乘以2?
首先要把Matlab图的纵坐标除以点数L,这是由于DFT公式的非对称性造成的,然后再乘以2,因为有一半的能量放到了负频率。

ATIFAN 发表于 2012-11-6 13:51

学习之!!

kyu16866 发表于 2012-11-6 14:02


阿英讲频率f,角频率Ω和数字频率w的物理含义--附MATLAB仿真
http去掉://anony3721.blog.163.com/blog/static/51197420111129503233/
详细解释了各物理意义,
频率分辨率(频率轴上相邻两点频率差)为fs/NFFT,即采样频率/样本总数,
横轴
f = fs/2*linspace(0,1,NFFT/2+1);

f=fs/NFFT*(0:NFFT/2)
自问自答!!哈哈

kyu16866 发表于 2012-11-6 20:35

对于那种随机激励输入,转换成频域后,怎么看?

kyu16866 发表于 2012-11-6 20:37

这个帖子,知识点比较全,http://forum.vibunion.com/thread-49413-1-1.html

graceli1 发表于 2012-11-7 10:48

好深奥啊!我也想学学,可是还不知从何学起

kyu16866 发表于 2012-11-7 12:42

graceli1 发表于 2012-11-7 10:48 static/image/common/back.gif
好深奥啊!我也想学学,可是还不知从何学起

看看机械控制工程,有关于时域与频率分析的详细内容

graceli1 发表于 2012-11-15 10:47

kyu16866 发表于 2012-11-7 12:42 static/image/common/back.gif
看看机械控制工程,有关于时域与频率分析的详细内容

好的,谢谢!

zhangda123 发表于 2012-11-22 22:13

学习了哈哈

rogen 发表于 2012-11-23 11:24

个人认为这个问法有点问题,matlab怎么转换成频域分析?

时域和频域只是表示一组信号在不同域类的特性,有些特性在这个域内可以看到,可是在另一域内则无法了解到。我们为了更好的了解信号的特性,而从不同的角度去看看这个问题,就像了解一个事物一样,我们从不同的方面去了解他,才能对他有一个更清晰的认识!

楼主的学习精神值得称赞!

kyu16866 发表于 2012-11-23 22:03

rogen 发表于 2012-11-23 11:24 static/image/common/back.gif
个人认为这个问法有点问题,matlab怎么转换成频域分析?

时域和频域只是表示一组信号在不同域类的特性, ...

现在需要用而已,需要将时域内的数据转换到频域内,与直接用频域得出的结果对比。有些时候对这些物理意义,不是很清楚,像相干系数,如果为1,就很关,可说明什么问题了?
页: [1] 2
查看完整版本: 用matlab怎么把时域分析转换成频域分析