傅里叶变换的仿真,你真懂了吗
来源:互联网 发布:echarta导入json实例 编辑:程序博客网 时间:2024/05/09 19:44
1. 为什么fft变换后结果还要*2/N
答:首先除以N的原因是由于DFT和IDFT的定义不同决定的
查看DFT反变换的定义可以发现,与与正变换不同的是求和后要除以1/N,
它的物理意义可以表述为:
信号x(n)可以表示为N个复指数信号的线性组合,其中的每个X(k)都是谐波分量,则abs(X(k))/N就代表对应“谐波”分量的幅度。
因此 FFT变换后的结果需要除以N,才代表复指数信号的幅值,也就是频谱中某一频率的幅值大小。
2. FFT变换后的结果要不要 *2?
答:这个要看你怎么分析,如果你考虑的是单边谱那你就需要 * 2
如果从时域上理解,可以由公式推导
其中
可以对两边去abs,则可以推导出
如果从频域的物理意义上理解:
因为通常 对于一个实际信号而言,是不存在负频率的,而FFT变换是认为信号存在负频率,认为信号是由一系列共轭复数构成的。
而能量是要保持守恒的,因此在负频率的能量叠加到正频率上,即需要变为2倍。
3.仿真参数中的含义
% Ts 表示间隔Ts时间采样,这个越小越接近连续信号,而实际上不可能真正的仿真连续信号。
% df 表示变化后频率分量的最小间隔,即频谱中相邻的点间隔频率是多大,你也可以叫它 频率分辨力
% 为什么df = fs/N-1呢?
% 因为采样频率 fs=1/Ts,表示的意义是连续信号用fs去采样,得到了
% 离散的信号,因此实际上的连续信号在这里并没有给出,因为MATLAB不可能做的真正的
% 连续信号,而且既然采样间隔是Ts,所以时域信号也就只给出间隔Ts的信号,这样可以
% 刚好满足仿真需求,当然你也可以把时域的信号变为更细,把时间间隔变得更小,
% 也就是说信号的个数是 采样频率的整数倍,确保能够正常才够采样。
4.fs的选取,根据采样定义,fs>2fmax
如果信号最高频率分量为10HZ,则采样频率一定要大于或等于20HZ,最好选大点。这样仿真效果明显
clear all;
Ts=0.01;
t=-1:Ts:1;
%采样信号频率是fs=100;
fs=1/Ts;
%原信号频率是10;
x=5*sin(2*pi*10*t);
%N是总共的采样点数,N=101;
N=length(x);
fx=fft(x);
%N个点有N-1个间隔;
df=fs/(N-1);
%让负频率也显示出来;
n=-(N-1)/2:(N-1)/2;
f=n*df;
subplot(211);
plot(t,x);
grid;
title('原始信号');
xlabel('时间(t)');
ylabel('幅度');
subplot(212);
plot(f,abs(fftshift(fx))*2/N);
grid;
title('频谱');
xlabel('频率(hz)');
ylabel('频率分量');
% 此外MATLAB中FFT计算结果是一个N点的复数,且第n点表示的含义是
% 频率为 Fn = (n-1)*Fs/N 的复数值(cos 和 sin的分量)
% 它的模大小abs就是傅里叶的频谱幅度大小。
% 关于fftshift这个函数,它的作用是:
% shift zero-frequency component to center of spectrum.
% 因为FFT出来的结果是频率0~Fs分布的,如果想看双边频率谱,就需要将频率变为
% -Fs~0~FS。
- 傅里叶变换的仿真,你真懂了吗
- 你真的懂defer了吗?
- float你真的懂了吗
- Markdown 你真的懂了吗
- 你真的真的懂了吗?
- 你确定你真的懂了line-height吗?
- Linux的Service/Daemon你真的懂了吗?
- C#你真的懂了吗 - 啥叫引用
- "extern C", 你真的懂了吗?
- 用例图——你真的懂了吗?
- 你真的已经搞懂JavaScript了吗?
- 你真的已经搞懂JavaScript了吗?
- 你真的已经搞懂JavaScript了吗?
- 你真的已经搞懂JavaScript了吗?
- 你真的已经搞懂JavaScript了吗?
- unsigned 关键字,你真的懂了吗?
- 你真的已经搞懂JavaScript了吗?
- 你真的已经搞懂JavaScript了吗?
- 如何写robots.txt?
- 关于mongodb(熟悉MongoDB的数据操作语句,类sql)三
- NSIS脚本详解
- iframe 自动适应 长度
- 新浪微博API使用之python接口的使用
- 傅里叶变换的仿真,你真懂了吗
- 黑马程序员_Java高新技术(3)动态代理和AOP技术
- Delphi指针大全
- winform中修改配置文件 同理可以是xml等其他
- ARM linux 重启命令
- gcc头文件或库的搜索路径的设定(ubuntu)
- Linux下查看在线用户
- linux下find命令根据系统时间查找文件用法
- JQuery 动态改变图片尺寸,不论宽度和高度单方面超出给定数值,IE6、IE7、IE8下正常