一维傅里叶变换------matlab分析

一. 正弦函数分析

matlab代码如下:

Fs = 1000;
T = 1./Fs;
L =1000;
t = (0:L-1)*T;
S0 = 2*cos(2*pi*2*t);
figure(1),plot(t,S0);
S00 = 3*cos(2*pi*4*t);
figure(2),plot(t,S00);
S1 = 2*cos(2*pi*2*t)+2*sin(2*pi*4*t);	%'b'
S2 = 2*cos(2*pi*2*t)+3*sin(2*pi*4*t);	%'r'
S3 = 2*cos(2*pi*2*t)+5*sin(2*pi*4*t);   %'g'
S4 = 4*cos(2*pi*2*t)+5*sin(2*pi*4*t);   %'k'
figure(3);title('original signal');
hold on,
plot(t,S1,'b');
plot(t,S2,'r');
plot(t,S3,'g');
plot(t,S4,'k');
hold off;

S1 = 2*cos(2*pi*2*t)+2*cos(2*pi*4*t);	%'b'
S2 = 2*cos(2*pi*2*t)+3*cos(2*pi*4*t);	%'r'
S3 = 2*cos(2*pi*2*t)+5*cos(2*pi*4*t);   %'g'
S4 = 4*cos(2*pi*2*t)+5*cos(2*pi*4*t);   %'k'
figure(4);title('original signal');
hold on,
plot(t,S1,'b');
plot(t,S2,'r');
plot(t,S3,'g');
plot(t,S4,'k');
hold off;

显示的图像如下: 

    
 

  

Figure(1), S0的周期为0.5=(2*pi)/(2*pi*2),频率为2Hz,最大幅值为2

Figure(2), S00的周期为0.25=(2*pi)/(2*pi*4),频率为4Hz,最大幅值为3

Figure(3), 为一个正弦加上一个余弦函数,周期为0.5和0.25的最小公倍数,为0.5,最大幅值为8

Figure(4), 为两个余弦函数相加,周期为0.5和0.25的最小公倍数,为0.5,最大复制为9

总结:

1. 单一正弦函数,对应的最大幅值为sin函数前面的系数,周期和频率可以根据sin函数内部的定义计算得出。

2. 当周期变小,频率变大,曲线越密集。

3. 多个正弦函数相加,对应的周期为分别各个正弦函数的周期的最大公倍数,最大幅值要根据具体函数转换计算得到

二. 傅里叶变换

 

clear
clc
% close all

Fs = 1000;
T = 1./Fs;
L =1000;
t = (0:L-1)*T;

S0 = 2*sin(2*pi*20*t);    %standard signal without the noise
figure(1);
plot(t,S0);
title('original signal');
Y1 = fft(S0);                            %fourier transform
figure(2),plot(t,abs(Y1));

S = 2*sin(2*pi*20*t)+3*sin(2*pi*50*t);    %standard signal without the noise
figure(3);
plot(t,S);
title('original signal');
Y1 = fft(S);                            %fourier transform
figure(4),plot(t,abs(Y1));

S1 = 10+2*sin(2*pi*20*t)+3*sin(2*pi*50*t);    %standard signal without the noise
figure(5);
plot(t,S1);
title('original signal');
Y1 = fft(S1);                            %fourier transform
figure(6),plot(t,abs(Y1));

   

   

   

Figure(1),Figure(2):单一正弦曲线和fft曲线;傅里叶曲线峰值为20/1000=0.02Hz(共轭为0.98Hz),其它频率处的傅里叶值几乎为0 

Figure(3),Figure(4):两个正弦曲线相加,以及对应的fft曲线;傅里叶曲线峰值有两个为20/1000=0.02Hz(共轭为0.98Hz),50/1000=0.05Hz(共轭为0.95Hz),其它频率处的幅值几乎为0

Figure(5),Figure(6):在两个正弦函数的基础上,增加了一个直流分量10;傅里叶曲线的峰值位置不变为20/1000=0.02Hz(共轭为0.98Hz),50/1000=0.05Hz(共轭为0.95Hz),在频率为0处增加了一个10*1000的直流分量线。

总结:

1. 傅里叶变换:将函数分解成直流分量+多个不同频率的正弦函数,然后进行傅里叶变换。

2. 单一正弦的傅里叶曲线,出现峰值的地方为频率所在的地方。

3. 多个正弦相加的傅里叶曲线,出现峰值的位置为两个频率所在的地方。

三. 噪声去噪

clear
clc
% close all

Fs = 1000;
T = 1./Fs;
L =1000;
t = (0:L-1)*T;

S1 = 2*sin(2*pi*2*t)+3*sin(2*pi*4*t);    %standard signal without the noise
X = S1+0.5*randn(size(t));               %signal mixing with noise
figure(1);
plot(t,X);
title('signal mixing with noise');xlabel('time');ylabel('amplitude');
Y = fft(X);                            %fourier transform

threadhold = 10;                        %setting the filtering threadhold 
Y1 = Y;
Y1(threadhold:(L-threadhold)) = 0;      %filtering
X1 = ifft(Y1);                          %Inverse Fourier transform
figure(2);
plot(t,X1);
title('signal after filtering');xlabel('time');ylabel('amplitude');

threadhold = 50;                        %setting the filtering threadhold 
Y2 = Y;
Y2(threadhold:(L-threadhold)) = 0;      %filtering
X2 = ifft(Y2);                          %Inverse Fourier transform
figure(3);
plot(t,X2);
title('signal after filtering');xlabel('time');ylabel('amplitude');

输出如下:

 

总结:

通过傅里叶变换去除随机噪音,可以去除,但需要选择阈值不同,滤波效果不同

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值