收藏 分销(赏)

关于fft频谱的问题.doc

上传人:仙人****88 文档编号:12023481 上传时间:2025-08-29 格式:DOC 页数:10 大小:169.50KB 下载积分:10 金币
下载 相关 举报
关于fft频谱的问题.doc_第1页
第1页 / 共10页
关于fft频谱的问题.doc_第2页
第2页 / 共10页


点击查看更多>>
资源描述
二.FFT应用举例 例1:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。采样频率fs=100Hz,分别绘制N=128、1024点幅频图。 clf; fs=100;N=128; %采样频率和数据点数 n=0:N-1;t=n/fs; %时间序列 x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号 y=fft(x,N); %对信号进行快速Fourier变换 mag=abs(y); %求得Fourier变换后的振幅 f=n*fs/N; %频率序列 subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=128');grid on; subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=128');grid on; %对信号采样数据为1024点的处理 fs=100;N=1024;n=0:N-1;t=n/fs; x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号 y=fft(x,N); %对信号进行快速Fourier变换 mag=abs(y); %求取Fourier变换的振幅 f=n*fs/N; subplot(2,2,3),plot(f,mag); %绘出随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=1024');grid on; subplot(2,2,4) plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=1024');grid on; 运行结果: 1 请问y轴幅度中的振幅表示什么意思,再就是为什么Bartlett法 和welch方法画出的频谱图振幅相差比较大。 2 fft直接画出的频谱图和psd画出的功率谱有啥区别 附件 clip_image001.jpg (35.85 KB) 2010-6-2 21:50 我看了功率谱和频谱不是一回事,我不是学信号的,有许多基础知识都不懂,从网上找来这么一段,也供大家参考 [url=#]信号的功率谱与能量谱,频谱区别[/url] 在北理版信号与系统中,信号可以分成能量信号与功率信号,非周期能量信号具有能量谱密度,是傅立叶变换的平方,功率信号具有功率谱密度,其与自相关函数是一对傅立叶变换对,等于傅立叶变换的平方/区间长度。不能混淆。能量信号是没有功率谱的。 胡广书老师的书上找到这么一段话,“随机信号在时间上是无限的,在样本上也是无穷多,因此随机信号的能量是无限的,它应是功率信号。功率信号不满足付里叶变换的绝对可积的条件,因此其付里叶变换是不存在的。如确定性的正弦函数的付里叶变换是不存在,只有引入了冲激函数才求得其付里叶变换。因此,对随机信号的频谱分析,不再简单的是频谱,而是功率谱。” 周期信号是功率信号,但是周期信号可能是确定性信号,也可能是随机信号,但是周期信号是存在功率谱密度的。对于持续时间无限长的随机信号来说,也是存在功率谱密度的。 一般来讲,对于随机信号,由于持续期时间无限长,不满足绝对可积与能量可积的条件,因此不存在傅立叶变换,所以我们只能研究其功率谱,因为样本函数的功率毕竟是有限哦。 对于确定性信号而言,里面存在能量信号,是没有功率谱密度的,也存在功率信号,是有功率谱密度的。所以信号的频谱与是否是确定性信号没有必然联系。 以下论点来源于研学论坛,我认为都存在一点问题,主要是表述上不是很准确! 频谱是信号的傅立叶变换。它描述了信号在各个频率上的分布大小。频谱的平方(当能量有限,平均功率为0时称为能量谱)描述了信号能量在各个频率上的分布大小。 功率谱是针对随机信号而言,是随机信号的自相关函数的离散傅立叶变换(注意自相关函数是确定性序列,离散信号本身是不存在离散傅立叶变换的)。它描述了随机信号的功率在各个频率上的分布大小,而不是能量分布大小。 计算过程中,都是通过样本数据的快速傅立叶变换来计算。但不同的是,信号的频谱是复数,包含幅频响应和相频响应,重复计算时的结果基本相同。 而随机信号的功率谱也可以对数据进行FFT,但必须计算模值的平方,因为功率谱是实数。而且换一组样本后,计算的结果略有不同,因为随机信号的样本取值不同。要得到真实的功率谱必须进行多次平均,次数越多越好。 功率谱可以从两方面来定义,一个是楼主说的自相关函数的傅立叶变换,另一个是时域信号傅氏变换模平方然后除以时间长度。第一种定义就是常说的维纳辛钦定理,而第二种其实从能量谱密度来的。根据parseval定理,信号傅氏变换模平方被定义为能量谱,即单位频率范围内包含的信号能量。自然,能量跟功率有一个时间平均的关系,所以,能量谱密度在时间上平均就得到了功率谱。(这种说法不准确) (1)信号通常分为两类:能量信号和功率信号; (2)一般来讲,能量信号其傅氏变换收敛(即存在),而功率信号傅氏变换通常不收敛,当然,若信号存在周期性,可引入特殊数学函数(Delta)表征傅氏变换的这种非收敛性; (3)信号是信息的搭载工具,而信息与随机性紧密相关,所以实际信号多为随机信号,这类信号的特点是状态随机性随时间无限延伸,其样本能量无限。换句话说,随机信号(样本)大多属于功率信号而非能量信号,它并不存在傅氏变换,亦即不存在频谱; (4)若撇开搭载信息的有用与否,随机信号又称随机过程,很多噪声属于特殊的随机过程,它们的某些统计特性具有平稳性,其均值和自相关函数具有平稳性。对于这样的随机过程,自相关函数蜕化为一维确定函数,前人证明该确定相关函数存在傅氏变换; (5)能量信号频谱通常既含有幅度也含有相位信息;幅度谱的平方(二次量纲)又叫能量谱(密度),它描述了信号能量的频域分布;功率信号的功率谱(密度)描述了信号功率随频率的分布特点(密度:单位频率上的功率),业已证明,平稳信号功率谱密度恰好是其自相关函数的傅氏变换。对于非平稳信号,其自相关函数的时间平均(对时间积分,随时变性消失而再次退变成一维函数)与功率谱密度仍是傅氏变换对; (6)实际中我们获得的往往仅仅是信号的一段支撑,此时即使信号为功率信号,截断之后其傅氏变换收敛,但此变换结果严格来讲不属于任何“谱”(进一步分析可知它是样本真实频谱的平滑:卷积谱); (7)对于(6)中所述变换若取其幅度平方,可作为平稳信号功率谱(密度)的近似,是为经典的“周期图法”; (8)FFT是DFT的快速实现,DFT是DTFT的频域采样,DTFT是FT的频域延拓。人们不得已才利用DFT近似完成本属于FT的任务。若仅提FFT,是非常不专业的 MATLAB中使用FFT做频谱分析时频率分辨率问题 MATLAB中使用FFT做频谱分析时频率分辨率问题 最近做FFT时,使用的采样频率和信号长度的取舍一直没有搞清楚,后来在论坛上发了一个贴子《总结一下使用FFT和维纳-辛钦定理求解PSD问题》(讨论见 频率分辨率,顾名思义,就是将信号中两个靠的很近的频谱分开的能力。 信号x(t)长度为Ts,通过傅氏变换后得到X,其频率分辨率为Δf=1/T(Hz),若经过采样后,假设采样频率为fs=1/Ts,而进行频谱分析时要将这个无穷长的序列使用窗函数截断处理,假设使用矩形窗,我们知道,矩形窗的频谱为sinc函数,主瓣宽度可以定义为2*pi/M,M为窗宽,那么,时域相乘相当于频域卷积,频域内,这一窗函数能够分辨出的最近频率肯定不可能小于2*pi/M了,也就是如果数据长度不能满足2*pi/M<|w2-w1|(w2,w1为两个靠的很近的频率),那么在频谱分析时,频谱上将不能分辨出这两个谱,由于w2-w1=2*pi(f2-f1)/fs=2*pi*Δf/fs也就是2*pi/M<2*piΔf/fs,得到Δf的限制为fs/M,这就是窗函数宽度的最小选择,就是说,根据Shannon采样定理确定了采样频率后,要根据靠的最近的谱峰来确定最小的采样长度,这样,所作出来的频谱才能分辨出那两个谱峰,也就是拥有了相应的频率分辨率。 几个例子: 考虑双正弦信号:x = sin(2*pi*10*n)+sin(2*pi*9.8*n);根据Shannon采样定理,采样频率要大于截止频率的两倍,这里选采样频率为80,那么,我们可以看到,Δf为0.2Hz,那么,最小的数据长度为0.2/80=400,但是对正弦信号的频谱分析经验告诉我们,在截断时截断时的数据要包含整周期,并且后面不宜补零以避免频谱泄露(这一点见胡广书《数字信号处理导论》,清华大学出版社),那么,我们要选择至少980个点,才能保含到一个整周期,另外,FFT的经验告诉我们作分析时最好选择2的整数次幂,我们选择靠的最近的1024点。分析结束。 Fs = 80; n = 0:1/Fs:1023*1/Fs; x = sin(2*pi*10*n)+sin(2*pi*9.8*n); N = length(n); figure(1); X = fftshift(fft(x)); plot((-N/2:N/2-1)*Fs/N,abs(X)*2/N); grid on; axis([0 15 0 1]); 这是按照我们的分析进行的编程和图形 zheng.jpg (31.46 KB) 2009-4-3 10:36 可以看出这两个谱峰很好的被分辨开来,9.8Hz不在谱线上,所以幅值不为1,以下是一些对比: [CODE] Fs = 80; n = 0:1/Fs:1023*1/Fs; x = sin(2*pi*10*n)+sin(2*pi*9.8*n); N = length(n); X = fftshift(fft(x)); figure(1); subplot(211) plot((-N/2:N/2-1)*Fs/N,abs(X)*2/N); grid on; axis([0 15 0 1]); title('窗长1024,包含整周期'); n = 0:1/Fs:979*1/Fs; x = sin(2*pi*10*n)+sin(2*pi*9.8*n); N = length(n); X = fftshift(fft(x)); subplot(212) plot((-N/2:N/2-1)*Fs/N,abs(X)*2/N); grid on; axis([0 15 0 1]); title('窗长980,包含整周期'); n = 0:1/Fs:399*1/Fs; x = sin(2*pi*10*n)+sin(2*pi*9.8*n); N = length(n); X = fftshift(fft(x)); figure(2); subplot(211) plot((-N/2:N/2-1)*Fs/N,abs(X)*2/N); grid on; axis([0 15 0 1]); title('窗长400,不包含整周期'); Fs = 20; n = 0:1/Fs:1024*1/Fs; x = sin(2*pi*10*n)+sin(2*pi*9.8*n); N = length(n); X = fftshift(fft(x)); subplot(212) plot((-N/2:N/2-1)*Fs/N,abs(X)*2/N); grid on; axis([0 15 0 1]); title('窗长1024,采样率过小'); 结果如下: 1024.jpg (29.92 KB) 2009-4-3 10:36 400.jpg (24.28 KB) 2009-4-3 10:36 这是我在做FFT以及论坛中的问题时所得到的一点启发,不当之处还请大家指正。O(∩_∩)O~
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服