首页 > 其他分享 >使用matlab进行功率谱估计之-纠误:很多人喜欢用2/N来纠正fft的幅度值

使用matlab进行功率谱估计之-纠误:很多人喜欢用2/N来纠正fft的幅度值

时间:2023-06-08 21:22:28浏览次数:47  
标签:采样 谱估计 vert fft 纠误 fs 信号 omega

先附上matlab官方文档对于使用fft进行功率谱估计的代码:

%创建一个含 N(0,1) 加性噪声的 100 Hz 正弦波信号。采样频率为 1 kHz。信号长度为 1000 个采样。
fs = 1000;
t = 0:1/fs:1-1/fs;
x = cos(2*pi*100*t) + randn(size(t));
%使用 fft 获取周期图。信号是偶数长度的实数值信号。由于信号是实数值信号,
%您只需要对正负频率之一进行功率估计。为了保持总功率不变,将同时在两组
%(正频率和负频率)中出现的所有频率乘以因子 2。零频率 (DC) 和奈奎斯特
%频率不会出现两次。绘制结果。
N = length(x);
xdft = fft(x);
xdft = xdft(1:N/2+1);
psdx = (1/(fs*N)) * abs(xdft).^2;
psdx(2:end-1) = 2*psdx(2:end-1);
freq = 0:fs/length(x):fs/2;

plot(freq,pow2db(psdx))
grid on
title("Periodogram Using FFT")
xlabel("Frequency (Hz)")
ylabel("Power/Frequency (dB/Hz)")

我们主要关心,在代码中是如何对DFT的值进行缩放的,并给出理论支撑。

1.功率谱密度定义

确知功率信号的功率为

\[P=\lim_{T\to\infty}\frac{1}{T}\int_{-T/2}^{+T/2}{{\vert}X(j\omega){\vert}^2d\omega} \]

功率谱密度为

\[P(j\omega)=\lim_{T\to\infty}\frac{1}{T}{\vert}X(j\omega){\vert}^2 \]

2.数字域与连续域傅里叶变换的关系

用\(\Omega\)表示连续域频率,\(\omega\)代表数字域频率.设x[n]=x(nT).则它们的傅里叶变换有如下关系:

image

等号右边是连续傅里叶变换,左边是离散傅里叶变换。 可以看到,在幅度上,DTFT有了一个采样频率的加权.注意,这里的T是采样周期,下文会用\(T_s\)代指。与1中所述信号持续时间T不是一个概念

3.DFT与DTFT关系

幅度没区别,看成DTFT的采样就行 分析代码,(1/(fs*N)) * abs(xdft).^2.首先对连续时间信号采样N个点,得到它的DFT。对DFT平方,幅度上变为\({\vert}X(j\omega)\vert^2\)的\(1/T_s^2\)倍.

需要获得\(\frac{1}{T}{\vert}X(j\omega){\vert}^2\),其中\(T=T_s\cdot N\)(总共采样N个点,采样间隔为\(T_s\),T为信号时间长度).为此,先除以一个\(f_s\),相当于乘\(T_s\)消去一个\(T_s\),再除以N,此时就得到了\(\frac{1}{T}{\vert}X(j\omega){\vert}^2\)

后注

为什么FFT变换后的幅值感觉不对? 请看一下问题出在哪里(matlab环境)。

百度一下,如何获得FFT的真实值,很多人会说,fft的结果乘2/N,得到所谓的“真实幅度值”.论证方法就是,产生一个正弦信号,进行fft,发现幅度值很大,然后除以N,发现合理了. 这里有两个问题,一是通常没有人给出合理的理论支撑,个人对其正确性和有用性持怀疑态度。 正弦信号的FT是冲激函数,本身幅度值就是无穷大,冲激强度是面积大小。你非得给人家幅度值归一化到1,如果不是正弦信号呢?频谱没有冲激函数,你怎么办?还这么归一化吗?而且这么归一化后会导致帕斯瓦尔定理不能用,可能唯一的用途就是分辨一下正弦信号的幅度了

标签:采样,谱估计,vert,fft,纠误,fs,信号,omega
From: https://www.cnblogs.com/jiaotaiyang/p/17467718.html

相关文章

  • FFT——快速处理卷积
    前置知识卷积符号为\(*\)。设多项式\(A(x)=a_0+a_1x+a_2x^2+\cdots+a_nx^n,B(x)=b_0+b_1x_1+b_2x^2+\cdots+b_nx^n\),则有\[(A*B)[n]=\sum_{i=0}^nA(i)\timesB(n-i)\]即\((A*B)[n]\)的意义是将两个多项式相乘后\(n\)次项的系数。单......
  • 一统江湖:毫米波雷达开发手册之大话线谱估计
    写在前面​ 深知新手在接触毫米波雷达板硬件时需要花费的沉没成本,因此在行将告别毫米波雷达之际,总结这两年以来在毫米波雷达上的一些经验和教训。​ 本文档用于为实现基于AWR1243BOOST等单板毫米波雷达开发提供参考指南与解决方案,主要包括硬件配置、基础参数、信号模型、应用DEM......
  • FFT学习笔记
    fft.1单位根的性质\[1.w^{dk}_{dN}=w^k_N\]\[2.\frac{1}{\omega_k}=\omega_k^{-1}=e^{-\frac{2\pii}{k}}=\cos\left(\frac{2\pi}{k}\right)+i\cdot\sin\left(-\frac{2\pi}{k}\right)\]递归求解\(F[\)\(]\)=\(1\)\(2\)\(3\)\(4\)\(5\)......
  • 炉火纯青:毫米波雷达开发手册之大话空间谱估计
    写在前面​ 深知新手在接触毫米波雷达板硬件时需要花费的沉没成本,因此在行将告别毫米波雷达之际,总结这两年以来在毫米波雷达上的一些经验和教训。​ 本文档用于为实现基于AWR1243BOOST等单板毫米波雷达开发提供参考指南与解决方案,主要包括硬件配置、基础参数、信号模型、应用DEM......
  • ubuntu下git difftool工具使用
    默认使用vimdiffgitconfig--globaldiff.toolvimdiff取消二次提示每次使用gitdifftool时会有二次提示,如下设置可以取消gitconfig--globaldifftool.promptfalse支持退出整个对比gitconfig--globaldifftool.trustExitCodetrue常用命令]c:跳转到下一个diff......
  • MATLAB快速傅里叶变换(fft)函数详解
    MATLAB快速傅里叶变换(fft)函数详解调用:​​1.Y=fft(y);Y=fft(y,N);式中,y是序列,Y是序列的快速傅里叶变换。y可以是一向量或矩阵,若y为向量,则Y是y的FFT,并且与y具有相同的长度。若y为一矩阵,则Y是对矩阵的每一列向量进行FFT。说明:函数fft返回值的数据结构具有对称性根据采样定......
  • 快速傅式变换PCB电路Multisim仿真 基于FPGA的FFT算法设计实现
    快速傅式变换PCB电路Multisim仿真基于FPGA的FFT算法设计实现,提供AD格式pcb及原理图,FPGA源码,Multisim仿真文件,大量文档说明资料。ID:3220684206097053......
  • P3723 [AH2017/HNOI2017]礼物(FFT)
    P3723[AH2017/HNOI2017]礼物(FFT)目录P3723[AH2017/HNOI2017]礼物(FFT)[AH2017/HNOI2017]礼物题目描述输入格式输出格式样例#1样例输入#1样例输出#1提示思路题意分析题目传送门[AH2017/HNOI2017]礼物题目描述我的室友最近喜欢上了一个可爱的小女生。马上就要到她的生日了,他......
  • FFT(快速傅里叶变换)
    FFT(快速傅里叶变换)目录FFT(快速傅里叶变换)前言多项式的系数表示法和点值表示法系数表示法点值表示法高精度乘法下两种多项式表示法的区别前言又要补之前的知识,艹。快速傅里叶变换(fastFouriertransform),即利用计算机计算离散傅里叶变换(DFT)的高效、快速计算方法的统称,简......
  • FFT 精度误差分析
    可能写的有错的,也可能没有,大家看着当个乐子就好。FFT是oi中常用的一种算法,但是我们没有关心过它的精度,所以我们现在来关心一下。我们知道对于一个长度为\(n\)的向量\(\alpha\),我们对它做DFT,相当于左乘了一个正交矩阵\(T\)(我们知道常规的DFT中做的不是标准的正交变换,但......