1 概述
2 代码
3 算例
1 概述
任何连续测量的时序或信号,都可以表示为不同频率的余弦(或正弦)波信号的无限叠加。FFT (Fast Fourier Transform )是离散傅立叶变换的快速算法,可以将一个信号变换到频域。 对于包含 个均匀采样点的向量 ,其傅里叶变换定义为
式中:,为虚数单位为什么做FFT :
(1)有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征(频率,幅值,初相位);
(2)FFT 可以将一个信号的频谱提取出来,进行频谱分析,为后续滤波准备;
(3)通过对一个系统的输入信号和输出信号进行快速傅里叶变换后,两者进行对比,对系统可以有一个初步认识。
2 代码
function [ExtractedSignal]=FFTransform(OriginalSignal,T,Frequency,varargin)% description:% [ExtractedSignal]=FFTransform(OriginalSignal,T,Frequency,Threshold)% 快速傅里叶变换提取信号% input:% OriginalSignal-----观测值序列% T------------------采样间隔% Frequency----------欲提取的信号频率,向量% varargin-----------可选参数Threshold ,频率阈值,默认为1e-6,% 原始信号频率与给定频率差值大于该阈值则予以剔除% output:% ExtractedSignal-----FFT 变换后提取的信号%%p =inputParser;addOptional(p,'Threshold',1e-6);parse(p,varargin{:});Threshold =p.Results.Threshold;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
3 算例
假设一个随时间t 变化的信号。其中包含振幅为3m 、频率为20Hz 正弦信号和振幅为1m 、频率为50Hz 的余弦信号,这些信息在实际测量过程中很有可能是未知的,而只能对叠加的信号进行测量。
式中为高斯白噪声。 Len =length(OriginalSignal); %信号长度Fs =1/T; % 采样频率t =(0:Len-1)*T;N = 2^nextpow2(Len);%快速傅里叶变换fftSingal = fft(OriginalSignal,N); f = (0:N-1)*Fs/N; %频率Amplitude = abs(fftSingal/N*2);%幅值Phase = angle(fftSingal); %相值ExtractedSignal =zeros(1,length(fftSingal));%滤波,过滤频率为Frequency 以外的信号for k =0:N-1 if (min(abs(k*(Fs/N)-Frequency))>Threshold); ExtractedSignal(k +1)=0; else ExtractedSignal(k +1)=fftSingal(k +1); end end Yinverse =ifft(ExtractedSignal);%逆变换assignin('base','X',OriginalSignal);%绘图分析close all;figure;subplot(2,1,1);plot(t,OriginalSignal,'r');xlabel('时间/s');ylabel('X/m');hold on;%频谱图subplot(2,1,2);plot(f(1:N/2),Amplitude(1:N/2));xlabel('频率/Hz');ylabel('振幅/m');%原始信号与滤波后的信号对比figure;plot((0:N-1)*T,real(Yinverse));hold on;plot(t,OriginalSignal,'r');xlabel('时间/s');ylabel('X/
m');legend('提取的信号','原始信号');
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
matlab求傅里叶变换48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
加入方差为0.25m2的零均值高斯白噪声的信号和真实信号对比:
经过快速傅里叶变换后的振幅频谱图:
数字滤波
例如只提取20Hz的信号,可以将傅里叶变换后的信号在20Hz以外置零,再通过逆变换得到时间
域的上的信号序列
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论