我很遗憾地提出一个基本问题。我是信号处理的新手,想知道PSD和fft之间的区别。
我有一个音频信号。我在matlab中使用pwelch将其转换为PSD。但是,当我绘制这个信号时,我想看到x轴的频率(hz)和y轴的能量(db)。
但是,它并没有像这样表现出来。
有人可以解释一下PSD和FFT之间的关系,也请告诉我,如何绘制这两件事。
由于
答案 0 :(得分:0)
简单地说(第一遍),FFT是一种实现离散傅立叶变换(DFT)的算法。 DFT取输入信号的N个点并执行傅立叶变换。绘制FFT输出幅度的平方后,得到信号的功率谱。
因此,DFT将N个点作为输入并吐出N个点作为输出。如果您将信号视为N个样本的帧,则DFT仅使用一个帧(N个点)查找统计信息。
但是,pwelch方法是多帧的平均统计量。信号可以是长度很长的信号(比如L),其长度是N的许多倍.pwelch方法通过计算前N个样本的DFT开始,然后向前移动以查看接下来的N个样本和等等,直到所有“框架”都被看到。那么,你剩下的就是长度为N的信号样本大小N的每一帧的DFT。比如,N是256分,L是44100分。
因此,pwelch取L点(L> N)并且对于长度为L的信号的长度N的每个“帧”吐出N个点。
还有更多涉及窗口的细节以及是否希望连续帧有一些彼此重叠的样本等等。
我希望这有助于作为第一关解释。