先写程序:
clc
clear
CU=[]; %%这里导入你的数据
CU_f=fft(CU); %%做FFT变换到频域
figure(1)
subplot(2,1,1)
plot(CU);
subplot(2,1,2)
plot(abs(CU_f))
***************************
CU_f就是频谱图,但是你说的对应50Hz的点,需要结合你的实验过程来找了。MATLAB输入的数据只不过是上千个点,它们只有数学意义,没有物理意义。首先,这上千个点是你采样采到的,那你的采样频率是多少?这只有你做实验的人才知道,MATLAB本身不知道。假设采样频率是Fs。那么CU_f这张图里,最后一个点对应的实际频率就是Fs,(第一个点对应的实际频率是0Hz)。然后你再根据线性比例的关系,找到50Hz对应的那个点就行了。
用MATLAB 实现傅里叶变换:
用户任意输入一个函数,然后,输出函数的傅里叶变换函数,然后输出振幅频率 。
x=sin(2*pi*t); %任意输入一个函数。
y=fft(x); %傅里叶变换函数。
plot(abs(y)); %振幅频率。
函数(function)表示每个输入值对应唯一输出值的一种对应关系。这种关系使一个集合里的每一个元素对应到另一个(可能相同的)集合里的唯一元素。函数f中对应输入值的输出值x的标准符号为f(x)。包含某个函数所有的输入值的集合被称作这个函数的定义域,包含所有的输出值的集合被称作值域。若先定义映射的概念,可以简单定义函数为,定义在非空数集之间的映射称为函数。
傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。
% 不要忘记给我分, [一个大写的微笑]
clear all
ts=0.001; % Sampling period
t=0:ts:20; % Time sequence
y=sin(t)+0.5*sin(2*t)+0.2*sin(6*t);
figure
plot(t,y)
title('Original Singal')
xlabel('Time (s)')
ylabel('Magnitude')
Fs=1/ts; % Sampling frequency
L=length(y);
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);
% Plot single-sided amplitude spectrum.
figure
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Single-Sided Amplitude Spectrum of y(t)')
xlim([0,3])
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
以上是使用Matlab进行傅里叶变换的方法如何?的详细内容。更多信息请关注PHP中文网其他相关文章!