初级操作整理
创建一个一维数组
zeros(1,n)%建立一個一行N列的一维数组
创建一个正弦数组
Si = zeros(1,n)
i = 0;
for j = 1:N
i = i+1;
Si(i) = sin(2*pi*i/N);
end
显示一下看一眼
plot(Si)
FFT使用
代码
找到了一个理想的FFT处理的代码,
%% 两个频率分别为15HZ 和 20HZ 的正弦信号[1]
Fs=500;%采样率
f1=15;
f2=20;
t = 0:1/Fs:1-1/Fs; %以1/Fs为步距从0取到1-1/Fs,组成一维数组
x = 200*sin(2*pi*f1*t) + 0.25*sin(2*pi*f2*t);%输入信号
figure;
plot(t,x);%原始图像显示
y = fft(x);% fft变换
%将横坐标转化,显示为频率f= n*(fs/N)
f = (0:length(y)-1)*Fs/length(y);
figure;
plot(f,abs(y));%abs 对负数取绝对值,对复数取幅值
title('Magnitude');
%该变换还会生成尖峰的镜像副本,该副本对应于信号的负频率。
%为了更好地以可视化方式呈现周期性,可以使用 fftshift 函数对变换执行以零为中心的循环平移。
n = length(x);
fshift = (-n/2:n/2-1)*(Fs/n);%以输入长度为参照向两边做均匀点生成图像横坐标
yshift = fftshift(y);
figure;
plot(fshift,abs(yshift));
%FFT的结果所要展现的真实的频谱幅值[2]
realy=2*abs(y(1:n/2+1))/n;
realf=(0:n/2