Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Matlab中fft与fwelch有什么区别?如何用fft求功率谱?

Matlab中fft与fwelch有什么区别?如何用fft求功率谱?

作者头像
猫叔Rex
发布于 2020-06-29 07:12:39
发布于 2020-06-29 07:12:39
2.7K00
代码可运行
举报
文章被收录于专栏:科学计算科学计算
运行总次数:0
代码可运行

讲这个话题,就要先搞清楚频谱、功率谱的概念,可参考我的另一篇文章

信号的频谱 频谱密度 功率谱密度 能量谱密度

做信号处理的朋友应该都会fft比较熟悉,就是求傅里叶变换。我在这里也不再去讲这个函数了,但需要注意的一点:实信号的频谱关于0频对称,是偶函数,如果st = cos(2pif0*t)+1; t的长度为4000,那么0频的位置在第一个点,做fftshift后,0频的位置在低2001个点的位置,fft后的信号关于第2001个点对称,而不是4000个点左右对称。

pwelch是用来求功率谱的,采用Welch平均周期法对信号进行谱估计,它通过分段选取数据进行加窗求功率,再进行平均,pwelch函数的使用方式为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pxx = pwelch(x,window,noverlap,nfft)
[pxx,f] = pwelch(x,window,noverlap,f,fs)

其中,

  • X表示输入序列;
  • window:当window是一个数值时,表示窗函数长度,即分段长度L,默认的窗函数为hamming窗;当window是一个序列时,表示窗函数序列;
  • NFFT表示FFT的点数,X为实数时,当NFFT是偶数时,Pxx的长度是(NFFT/2+1);当NFFT是奇数时,Pxx的长度是(NFFT+1)/2;X为复数时,Pxx的长度就是NFFT,如果NFFT没有指定,则默认是256或者比X长度大的2的N次幂
  • Fs 绘制功率谱曲线的采样频率,默认值为1
  • Pxx表示功率谱估计值
  • F表示Pxx值所对应的频率点
  • NOVERLAP指定分段重叠的样本数 ,如果NOVERLAP=L/2,则可得到重叠50%的Welch法平均周期图

下面我们分别用fft和fwelch来求信号的功率谱。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
clc;close all;clear all;

fs = 10e6;
N = 4000;
t = (0:N-1)/fs;
f0 = 1e5;

st = cos(2*pi*f0*t) + 1;
st_fft = fft(st);
psdx = abs(st_fft(1:end/2+1)).^2/fs/N;  %功率谱密度为能量谱密度除以时间,摸值的平方即为能量谱
psdx(2:end) = 2*psdx(2:end);            %2是因为fft结果是对称的,在计算功率时需要把功率加回来;第一个点是0频,这个点并不对称
freq = linspace(0,fs/2,length(psdx));
[pxx,f] = pwelch(st,rectwin(N),32,N,fs);
figure;plot(freq,psdx);title('fft方法求功率谱密度');grid on
figure;plot(f,pxx);title('fwelch方法求功率谱密度');grid on

在这里插入图片描述

在这里插入图片描述

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 傅里叶的猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Matlab实现经典功率谱估计的几种方法
fft做出来是频谱,psd做出来是功率谱;功率谱丢失了频谱的相位信息; 频谱不同的信号其功率谱是可能相同的;功率谱是幅度取模后平方,结果是个实数 matlab中自功率谱密度直接用psd函数就可以求,按照matlab的说法,psd 能实现Welch法估计,即相当于用改进的平均周期图法来求取随机信号的功率谱密度估计,psd求出的结果会更光滑。
不去幼儿园
2024/12/03
4170
Matlab实现经典功率谱估计的几种方法
信号分析与处理1「建议收藏」
X=FFT(x); X=FFT(x,N); x=IFFT(X); x=IFFT(X,N)
全栈程序员站长
2022/09/20
1.1K0
经典功率谱估计及Matlab仿真
原文出自:http://www.cnblogs.com/jacklu/p/5140913.html
用户7043923
2020/03/12
2K0
间接法加窗分析信号的功率谱
维纳辛钦定理指出,随机信号的相关函数与它的功率谱是一对傅里叶变换对。BT法就是基于这个原理。先由观测数据估计出自相关函数,然后求自相关函数的傅立叶变换,以此变换作为对功率谱的估计,也称为间接法。BT法要求信号长度N以外的信号为零,这也造成BT法的局限性。
不去幼儿园
2024/12/03
2070
间接法加窗分析信号的功率谱
做EEG频谱分析,看这一篇文章就够了!
所谓频谱分析,又称为功率谱分析或者功率谱密度(Power Spectral Density, PSD)分析,实际就是通过一定方法求解信号的功率power随着频率变化曲线。笔者在这里对目前常用的频谱分析方法做一个总结,并重点介绍目前EEG分析中最常用的频谱分析方法,并给出相应的Matlab程序。
悦影科技
2020/11/10
4.4K0
脉冲幅度调制信号的功率谱计算
不去幼儿园
2024/12/03
1610
脉冲幅度调制信号的功率谱计算
Matlab中短时傅里叶变换 spectrogram和stft的用法
在Matlab中,做短时傅里叶变换需要使用函数spectrogram,而在Matlab2019中,引入了一个新的函数stft,下面我们就来看下这两个函数都如何使用。
猫叔Rex
2020/06/29
7.2K0
Matlab短时傅里叶变换和小波变换的时频分析
本文主要给定一小段音频,通过短时傅里叶变换和小波变换制作时频图。音频的采样率为44100,
用户9925864
2022/07/27
2.2K0
Matlab短时傅里叶变换和小波变换的时频分析
信号处理之频谱原理与python实现
EEG信号是大脑神经元电活动的直接反应,包含着丰富的信息,但EEG信号幅值小,其中又混杂有噪声干扰,如何从EEG信号中抽取我们所感兴趣的信号是一个极为重要的问题。自1932年Dietch首先提出用傅里叶变换方法来分析EEG信号,该领域相继引入了频域分析、时域分析等脑电分析的经典方法。
脑机接口社区
2020/06/30
2.1K0
信号处理之频谱原理与python实现
功率谱估计-直接法原理与案例
功率谱估计是频域分析的主要手段。它的意义在于把幅度随时间变化的脑电波变换为脑电功率随频率变化的谱图,从而可直观地观察到脑电节律的分布与变换情况。
脑机接口社区
2020/06/30
2.8K0
【语音信号处理】短时傅立叶变换的频谱图详细教程
生成 N X = 1024 个由正弦曲线和组成的信号样本。正弦波的归一化频率为 2π/5 rad/sample 和 4π/5 rad/sample。较高频率的正弦波幅度是另一个正弦波的幅度的 10 倍。
川川菜鸟
2021/10/19
1.6K0
基于分类任务的信号(EEG)处理
对于很多从没做过信号处理以及分类的小伙伴来说,面对信号数据真的是不知道该如何下手。既然大家来看这篇博文,我相信,大家与我一样,其中的痛楚无需多言。下面我就与大家分享一下,这段时间我对这一问题的感悟(新手上路,如有错误,请大家批评指正)。
脑机接口社区
2020/07/24
1.7K0
基于分类任务的信号(EEG)处理
信号处理之功率谱原理与python实现
功率谱是功率谱密度函数的简称,它定义为单位频带内的信号功率。它表示了信号功率随着频率的变化情况,即信号功率在频域的分布状况。
脑机接口社区
2020/06/30
7.7K0
信号处理之功率谱原理与python实现
【脑电信号分类】脑电信号提取PSD功率谱密度特征
主要介绍了脑电信号提取PSD功率谱密度特征,包括:功率谱密度理论基础、matlab中PSD函数的使用介绍以及实验示例。
脑机接口社区
2022/09/22
2.9K0
【脑电信号分类】脑电信号提取PSD功率谱密度特征
【STM32F407的DSP教程】第28章 FFT和IFFT的Matlab实现(幅频响应和相频响应)
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第28章 FFT和IFFT的Matlab实现(幅频响应和
Simon223
2021/04/30
2.2K0
【STM32F407的DSP教程】第28章       FFT和IFFT的Matlab实现(幅频响应和相频响应)
现代谱估计分析信号的功率谱(1)---AR 模型谱估计
现代谱估计是一种用于分析信号的功率谱的技术。与传统的基于傅里叶变换 的经典谱估计方法相比,现代谱估计具有更高的分辨率和更准确的频率估计能力。传统谱估计方法主要基于傅里叶变换,将信号从时域转换到频域,然后计算各个频率成分的功率。但是,傅里叶变换对于非周期信号和有限长度的信号存在分辨率限制,即无法准确区分频率相近的成分。此外,傅里叶变换还受到窗函数选择和泄漏效应的影响,可能导致谱估计的偏差。
不去幼儿园
2024/12/03
5120
现代谱估计分析信号的功率谱(1)---AR 模型谱估计
信号的频谱 频谱密度 功率谱密度 能量谱密度
这是我在知乎上的一个回答,鉴于很多朋友对这几个概念不是很清楚,就在公众中发一下。  
猫叔Rex
2020/06/29
3.9K0
常用滤波器设计之低通滤波器、高通滤波器、带通滤波器、带阻滤波器
使用说明:将下列代码幅值然后以m文件保存,文件名要与函数名相同,这里函数名:lowp。
全栈程序员站长
2022/09/05
2.3K0
常用滤波器设计之低通滤波器、高通滤波器、带通滤波器、带阻滤波器
【STM32F407的DSP教程】第27章 FFT的示波器应用
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第27章       FFT的示波器应用 特别声明:本章节内容整理自
Simon223
2020/06/01
1.7K0
【STM32F407的DSP教程】第27章    FFT的示波器应用
matlab画时域和频谱图_信号的频域分析及matlab实现
振动信号降噪结果分析: 对于去噪效果好坏的评价,常用信号的信噪比(SNR)、估计信号同原信号的均方根误差(RMSE)来判断。SNR 越高则说明混在信号里的噪声越小,否则相反。RMSE的计算值越小则表示去噪效果越好。 信噪比定义:
全栈程序员站长
2022/11/04
5.4K0
matlab画时域和频谱图_信号的频域分析及matlab实现
推荐阅读
相关推荐
Matlab实现经典功率谱估计的几种方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验