打印

(转帖)使用Matlab对噪声信号进行FFT变换

[复制链接]
1743|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 cooldog123pp 于 2019-3-27 14:06 编辑
Fs = 1000;            % 采样频率
先用上述代码生成一个1Hz,1.5s的采样信号。
然后我们加入一个正常的幅值0.7频率120的正弦波信号
S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
为该信号加入零均值白噪声,方差为4
X = S + 2*randn(size(t));
画出时域上的噪声信号
plot(1000*t(1:50),X(1:50))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('t (milliseconds)')
ylabel('X(t)')

计算该信号的FFT
Y = fft(X);
计算双边谱P2,然后计算单边谱P1和均值信号长度L
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
定义时域f,并画出P1
f = Fs*(0:(L/2))/L;
plot(f,P1)
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')



对原信号进行傅里叶变换
Y = fft(S);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);

plot(f,P1)
title('Single-Sided Amplitude Spectrum of S(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')












093825djoimchyokkrer3u.png.thumb.jpg (30.34 KB )

093825djoimchyokkrer3u.png.thumb.jpg

094141urr6uz5hscr46u3v.png.thumb.jpg (30.06 KB )

094141urr6uz5hscr46u3v.png.thumb.jpg

094510dgi01iif2xqemp89.png.thumb.jpg (21.99 KB )

094510dgi01iif2xqemp89.png.thumb.jpg

使用特权

评论回复

相关帖子

沙发
零三翟邢止胃| | 2019-3-29 10:30 | 只看该作者
真是可以的啊!!!!!

使用特权

评论回复
板凳
cooldog123pp|  楼主 | 2019-4-2 08:36 | 只看该作者
零三翟邢止胃 发表于 2019-3-29 10:30
真是可以的啊!!!!!

那是必须很可以的啦,这个是转帖,大家可以模板大神本人,我只不过搬运了一下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1592

主题

5837

帖子

29

粉丝