查看: 686|回复: 9|关注: 0

[已答复] 傅里叶变换问题求教!

[复制链接]

新手

10 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
发表于 2019-10-19 19:48:12 | 显示全部楼层 |阅读模式
对于一个幅度比噪声低的正弦信号(如SNR=-15),做傅里叶变换,能得到它的频谱吗?为什么我用MATLAB仿真时,FFT长度小的时候没有明显的峰值(第一张图),加长后(不是补零,假如从0.01s加长到0.1s),FFT就有明显峰值了(第二张图)?

图一

图一

10.jpg

回复主题 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

入门

219 麦片

财富积分


50500


3

主题

291

帖子

45

最佳答案
  • 关注者: 14
发表于 2019-10-20 10:51:02 来自手机 | 显示全部楼层
可能跟你的频率分辨率有关
回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
 楼主| 发表于 2019-10-21 20:21:27 | 显示全部楼层
Leedear 发表于 2019-10-20 10:51
可能跟你的频率分辨率有关

你是说分辨率不够,“漏掉了”信号频率?
回复此楼 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

入门

219 麦片

财富积分


50500


3

主题

291

帖子

45

最佳答案
  • 关注者: 14
发表于 2019-10-21 20:59:59 | 显示全部楼层
yagushou168 发表于 2019-10-21 20:21
你是说分辨率不够,“漏掉了”信号频率?

有可能,你看下是不是这个原因
回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
 楼主| 发表于 2019-10-22 16:36:45 | 显示全部楼层
Leedear 发表于 2019-10-21 20:59
有可能,你看下是不是这个原因

又做了些仿真,不是这个原因,很困惑
回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
 楼主| 发表于 2019-10-22 16:38:17 | 显示全部楼层
顶一下,FFT是有累加效应吗?FTT点数的增加会让信号频谱幅值越来越高吗?
回复此楼 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

入门

219 麦片

财富积分


50500


3

主题

291

帖子

45

最佳答案
  • 关注者: 14
发表于 2019-10-24 09:55:06 来自手机 | 显示全部楼层
yagushou168 发表于 2019-10-22 16:38
顶一下,FFT是有累加效应吗?FTT点数的增加会让信号频谱幅值越来越高吗?

你把代码贴出来吧
回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
 楼主| 发表于 2019-10-25 18:58:13 | 显示全部楼层
Leedear 发表于 2019-10-24 09:55
你把代码贴出来吧
  1. clear
  2. close all
  3. SNR=-20;
  4. P_n=1;
  5. ps1=10.^(SNR/10);
  6. duration=0.001;%信号处理时间
  7. fs=5e6;
  8. fc1=1e6;
  9. ts=1/fs;
  10. t0=0;       % the time data start from
  11. t=t0:ts:t0+duration-1/fs;
  12. count=duration*fs;
  13. d1=sin(2*pi*fc1*t);
  14. s=sqrt(ps1)*(d1);
  15. noise=sqrt(P_n)*randn(1,count);
  16. x1=s+noise;
  17. figure(1)
  18. plot(x1);
  19. title('时域信号')
  20. %% -------------FFT--------------%%%%%%
  21. %信号FFT
  22. N=2^(nextpow2(count));
  23. px=fft(x1,N);
  24. px=px(1:N/2+1);
  25. pxx=abs(px);
  26. f=(0:1:N/2)*fs/N;  % 生成频率范围
  27. figure(2)
  28.         plot(f,pxx);
  29.         xlabel('频率 (Hz)')
  30.         ylabel('幅值 ')
  31.         title('中频信号FFT')
复制代码

试试改变信号处理时间,太短就没有峰值,越长信号峰值相对于噪声越高
回复此楼 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

入门

219 麦片

财富积分


50500


3

主题

291

帖子

45

最佳答案
  • 关注者: 14
发表于 2019-10-28 19:19:23 | 显示全部楼层
yagushou168 发表于 2019-10-25 18:58
试试改变信号处理时间,太短就没有峰值,越长信号峰值相对于噪声越高

我看了下,你加的是高斯噪声,高斯噪声在频域相当于是一个平的常数,但是你对有用信号做FFT(DFT),实际上是对有用信号不断乘上复数值然后叠加,最后会得到越来越大的峰值,但是噪声在频域的特性始终不变,所以会出现这种情况。实际上,FFT的点数不能过大的,你调整信噪比也可以使得信号长度有限,FFT长度有限的情况下看到信号
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

中级

858 麦片

财富积分


5001500


53

主题

1717

帖子

154

最佳答案
  • 关注者: 47
发表于 2019-10-29 09:41:36 | 显示全部楼层
你加的噪声是宽带信号,功率可以认为是一定的,做FFT相当于求得是频谱密度的离散,所以点数越多频谱密度的包络绝对值会越低,而你信号是单频点信号,所以绝对值不变,这样就可以发现信号明显了;实际上增加数据长度已经相当于增加了信噪比,做DFT你的点数越多相当于积分的时间越长,这样信噪比改善也就越大了
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表