编程技术分享平台

网站首页 > 技术教程 正文

为什么FFT有负频率(matlab)(matlab fft变换后为什么要除以n)

xnh888 2024-11-10 12:40:44 技术教程 39 ℃ 0 评论

数字信号处理系列文章,理论+实践,持续更新,欢迎关注@平凡的兵 一起共成长。

为什么快速傅里叶变换FFT的图是对称的? 而且还有负频率?物理意义是什么?

我们从一个简单的信号开始,信号由100Hz和200Hz两个信号叠加组成,如下图,采样率1000Hz。

这里有三个要点:

① 傅里叶级数,任务周期函数都可以表示为三角函数的累和。

欧拉公式,余弦信号可以表示为一个正频率和一个负频率累加。(这就是负频率的根源)

③ FFT采用复指数计算,通过欧拉公式将三角函数转换为指数函数,指数函数运算更高效。

所以负频率就是欧拉公式衍生出来的,为了计算更高效,更多的是数学分析,物理意义不明显。

matlab代码:

Fs = 1000;            % 采样频率                   
T = 1/Fs;              % 采样周期       
L = 1500;             % 信号长度
t = (0:L-1)*T;        % 时间向量
S = 0.7*sin(2*pi*100*t) + sin(2*pi*200*t);     % 信号
X = fft(S);             % 快速傅里叶变换
Y = fftshift(X);      % 移动至原点中心对称
fshift = (-L/2:L/2-1)*(Fs/L);    % 零中心的频率向量
powershift = abs(Y).^2/L;     % 零中心的功率
plot(fshift,powershift)
xlabel('频率','FontSize',14);
ylabel('功率','FontSize',14);


(此处已添加书籍卡片,请到今日头条客户端查看)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表