这里的x是16行,1024列的数据。
clc;clear all;close all;
fs=1000;
f0=10;
f1=20;
f2=30;
f3=40;
ts=1/fs;
t=0:ts:1023*ts;
x0 = cos(2*pi*f0*t);
x1 = cos(2*pi*f1*t);
x2 = cos(2*pi*f2*t);
x3 = cos(2*pi*f3*t);
mat1 = zeros(16,1024);
tem = [x0 ;x1 ;x2; x3];
mat1 = [tem;tem;tem;tem];
mat1_fft = fft(mat1,[],2);
figure;
plot(abs(mat1_fft(1,:))); %能画出一个频率点,说明上面是把矩阵中的一行作为一次采样点。
title('信号频谱');
mat1_fft2 = fft(mat1,[],1);
delta = abs(mat1_fft2(:,1) - fft(mat1(:,1)));
figure;
plot(delta);
title('差值');
总结:
fft(x,[],1), 是把每列做fft,做完之后,还放到原来的列上。
fft(x,[],2), 是把每行做fft,做完之后,还放到原来的行上。