傅里叶变换在信号处理中的应用.docx
- 文档编号:10337085
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:17
- 大小:500.42KB
傅里叶变换在信号处理中的应用.docx
《傅里叶变换在信号处理中的应用.docx》由会员分享,可在线阅读,更多相关《傅里叶变换在信号处理中的应用.docx(17页珍藏版)》请在冰豆网上搜索。
傅里叶变换在信号处理中的应用
傅里叶变换在信号处理中的应用
姓名董柱班级电气工程及其自动化学号1109141013
摘要:
傅里叶变换是一种特殊的积分变换。
通过傅里叶变换把信号的从时域变换到频域研究,采用频域法较之经典时域的方法有很多突出的优点,虽然傅里叶分析不是信息科学与技术领域中唯一的变换域方法,但是不得不承认,在此领域中,傅里叶变换分析始终有着广泛的应用,通过傅里叶变换实现信号的滤波,调制,抽样是傅里叶变换在信号处理中最主要的作用。
通过对信号的调制可以将信号的低频成分调制到高频,实现频谱搬移,减少马间串扰,提高抗噪声新能,有利于信号的远距离传输,另外,对信号采样可以使连续信号离散化,有利于用计算机对信号进行处理,总之,傅里叶变换在信号处理中有着非常重要的作用。
傅里叶变换是学习其他频域变换的基础。
关键词:
傅里叶变换,时域,频域,信号处理,信息科学与技术,滤波,调制,抽样。
一傅里叶变换
1.定义
f(t)是t的函数,如果t满足狄里赫莱条件:
具有有限个间断点;具有有限个极值点;绝对可积。
则有下图①式成立。
称为积分运算f(t)的傅立叶变换,
②式的积分运算叫做F(ω)的傅立叶逆变换。
F(ω)叫做f(t)的像函数,f(t)叫做
F(ω)的像原函数。
F(ω)是f(t)的像。
f(t)是F(ω)原像。
①
傅里叶变换
傅里叶逆变换
2.分类
连续傅立叶变换:
一般情况下,若“傅立叶变换”一词的前面未加任何限定语,则指的是“连续傅立叶变换”。
“连续傅立叶变换”将平方可积的函数f(t)表示成复指数函数的积分或级数形式。
f(t)=\mathcal^[F(ω)]=\frac{\sqrt{2π}}\int\limits_{-\infty}^\inftyF(ω)e^{iωt}\,dω.
上式其实表示的是连续傅立叶变换的逆变换,即将时间域的函数f(t)表示为频率域的函数F(ω)的积分。
反过来,其正变换恰好是将频率域的函数F(ω)表示为时间域的函数f(t)的积分形式。
一般可称函数f(t)为原函数,而称函数F(ω)为傅立叶变换的像函数,原函数和像函数构成一个傅立叶变换对(transformpair)。
一种对连续傅立叶变换的推广称为分数傅立叶变换(FractionalFourierTransform)。
当f(t)为奇函数(或偶函数)时,其余弦(或正弦)分量将消亡,而可以称这时的变换为余弦转换(cosinetransform)或正弦转换(sinetransform)。
另一个值得注意的性质是,当f(t)为纯实函数时,F(−ω)=F(ω)*成立。
离散傅立叶变换:
为了在科学计算和数字信号处理等领域使用计算机进行傅立叶变换,必须将函数xn定义在离散点而非连续域内,且须满足有限性或周期性条件。
这种情况下,使用离散傅立叶变换,将函数xn表示为下面的求和形式:
x_n=\frac1\sum_{k=0}^X_ke^{i\frac{2\pi}kn}\qquadn=0,\dots,N-1
其中Xk是傅立叶振幅。
直接使用这个公式计算的计算复杂度为\mathcal(n^2),而快速傅立叶变换(FFT)可以将复杂度改进为\mathcal(n\logn)。
计算复杂度的降低以及数字电路计算能力的发展使得DFT成为在信号处理领域十分实用且重要的方法。
3Fourier变换的意义
傅立叶变换原理表明:
任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。
而根据该原理创立的傅立叶变换算法利用直接测量到的原始信号,以累加方式来计算该信号中不同正弦波信号的频率、振幅和相位。
和傅立叶变换算法对应的是反傅立叶变换算法。
该反变换从本质上说也是一种累加处理,这样就可以将单独改变的正弦波信号转换成一个信号。
因此,可以说,傅立叶变换将原来难以处理的时域信号转换成了易于分析的频域信号(信号的频谱),可以利用一些工具对这些频域信号进行处理、加工。
最后还可以利用傅立叶反变换将这些频域信号转换成时域信号。
傅里叶变换的应用领域广泛,谱估计就是对各种信号进行频谱分析,或将时间域信号转换为频率域信号进行处理。
例如通过对环境噪声的谱分析,可以确定主要频率成分,了解噪声的成因,找出降低噪声的对策;对振动信号的谱分析,可了解振动物体的特性,为设计或故障诊断提供资料和数据。
对于高保真音乐和电视这样的宽带信号转到频率域后极大多数能量集中在直流和低频部分,就可把频谱中的大部分成分滤去,从而压缩信号频带。
二.用MATLAB对常见信号的Fourier变换分析
1冲激信号[4]
冲激函数是最基本的函数,其傅里叶变换是系统函数,只要知道系统函数,那么通过这个系统的输出函数并可以确定。
在Matlab中产生冲激函数和其傅里叶变换的程序如下:
M=10;
T=10;
N=2^M;
dt=T/N;
n=0:
N-1;
t=n*dt;
w=zeros(size(t));
w(100:
105)=100;
subplot(211);
plot(t,w,'b','LineWidth',2.5);
title(‘冲激函数');
xlabel('t/s--->');ylabel('y/m');
Subplot(212);
W=fft(w);
W=fftshift(W);
plot(t,abs(W),'b','LineWidth',2.5);
title('冲激函数的傅里叶变换');
xlabel('w--->');ylabel('y/m');
其时域图像和频域图像如图1所示
图1冲激函数的时域和频谱
图像分析:
从图中可以看出,冲激信号的频率为0处的分量最大,然后向两端快速衰减,表明脉冲信号中实际占主导地位的其实是直流分量。
2余弦信号
我们已经知道,任何信号都可以分解成为不同频率的正或余弦信号的叠加,那么现在研究余弦信号的时域和频域特性[4]。
用Matlab可以产生余弦信号并分析其频谱的特性。
Matlab程序:
M=10;
N=2^M;
t=linspace(-10,10,N);
xcos=cos(3*t);
subplot(211)
plot(t,xcos);
title('余弦信号的时域图像');
xlabel('t/s');ylabel('y/m')
subplot(212)
plot(t,abs(fftshift(fft(xcos))));
title('余弦信号的频域图像')
xlabel('w/(rad/s)');ylabel('y/m')
余弦信号的时域图像与频域图像如图2所示
图2余弦函数的时域和频谱
.3频率突变信号
频率突变信号在现实生活总很常见,下面用Matlab来产生频率突变信号[5]和分析其傅里叶变换。
Matlab程序:
M=8;
N=2^M;
t=linspace(-10,10,N);
s1=find(t<.0);
x(s1)=cos(2*pi*6*t(s1));
s2=find(t>=.0);
x(s2)=cos(2*pi*3*t(s2));
subplot(211);
plot(t,x);
title('频率突变信号');
xlabel('t/s');
ylabel('y/m')
subplot(212);
X=fft(x);
X=fftshift(X);
plot(t,abs(X);
title('频率突变信号的傅里叶变换图像');
xlabel('f/hz');
ylabel('y/m')
其图像如图3所示
图3频率突变信号的时域和频谱
图象分析:
频率突变信号的频率在3和5的位置对应的幅值特别高。
因此标记出这两个频谱峰值对应的频率分量,正好可以验证信号的频率成份。
4高斯信号
在信号中,常会伴随着噪声,而高斯噪声[5]是常见的噪声,研究它的特性对于消除噪声有很大的意义。
Matlab程序如下:
M=10;
N=2^M;
t=linspace(-10,10,N);
a=1/4;
g=exp(-a*t.^2);
subplot(211)
plot(t,g)
title('高斯信号的时域图像');
xlabel('t/s');
ylabel('y/m');
subplot(212)
G=fft(g);
G=fftshift(G);
plot(t,abs(G));
title('高斯信号的频域图像')
xlabel('f/Hz');
ylabel('y/m');
高斯信号的时域和频域图像如图3所示
图4高斯信号的时域和频域图像
图像分析:
这是一个正态分布函数,具有单峰性,归一性。
其傅立叶变换函数的图象中,只有频率为0的地方有极大的峰值,说明小概率时间发生的机会是极小的,越向原点,时间发生的可能性越大。
5随机序列
研究随机序列[4]有很大的意义,在数字信号的传输过程中,往往会产生噪声,而噪声并是随机序列,研究其特性对消除噪声有很大的意义
利用MATLAB很容易产生两类随机信号:
Rand(1,N)在区间[0,1]上产生N点均匀分布的随机序列
Randn(1,N)产生均值为0,方差为1的高斯随机序列,也就是白噪声序列
例如下图表示点数为32点的均匀分布的随机序列与高斯随机序列,其Matlab仿真结果如图下所示,其中图3.1和图3.2分别表示序列一和序列二的时域和频域图像。
用Matlab产生的随即序列和其傅里叶变换的程序如下图所示
clearall;
N=32;
x_rand=rand(1,N);
x_randn=randn(1,N);
xn=0:
N-1;
figure
(1)
subplot(2,1,1);stem(xn,x_rand);title('系列1的时域图像')
subplot(2,1,2);stem(xn,abs(fftshift(fft(x_rand))));title('系列1的频域图像')
figure
(2)
subplot(2,1,1);stem(xn,x_randn);title('系列2的时域图像')
subplot(2,1,2);stem(xn,abs(fftshift(fft(x_randn))));title('系列2的频域图像')
图5.1序列一的时域和频域图像
图5.2序列二的时域和频域图像
6利用窗函数对信号消燥
信号在传输过程中,受到噪声的干扰,则在接收端得到的信号由于受到噪声的干扰,信号将难以辨识。
消燥的方法很多,下面介绍用窗函数对信号的消燥[6]。
使用窗函数可以控制频谱的主瓣宽度、旁瓣抑制度等参数,达到消除噪声对原信号的影响,更好地进行波形频谱分析。
而将窗函数与信号的时域波形或频谱进行相乘的过程,称为对信号做时域加窗或频域加窗。
Matlab信号处理工具箱中计算窗函数的指令是“window”.其用法是:
window
w=window(fhandle,n)
w=window(fhandle,n,winpot)
下面举例说明利用窗函数对信号的消燥的应用。
对一个50Hz,振幅为1的正弦波的合成波形进行频谱分析,要求分析的频率范围为0~100Hz,频率分辨率为1Hz。
根据分析的频率范围可以确定信号的时域采样率为为fs=200Hz,时间分辨率为T=1/fs=5ms。
而根据频率分辨率可以得到信号的时域截断长度为L=1/f=1s。
因此,对截断信号的采样点数为N=fs/f+1=201.现分别用矩形窗,海明窗和汉宁窗进行时域加窗,然后观察幅度谱曲线。
程序如下:
fs=200;%采样率
Delta_f=1;%频率分辨率
T=1/fs;%时间分辨率
M=256;
L=1/Delta_f;%时域截取长度
N=floor(fs/Delta_f)+1;%计算截断信号的采样点数
t=0:
T:
L;%截取时间段和采样时间点
freq=0:
Delta_f:
fs;%分析的频率范围和频率分辨率
f_t=(sin(2*pi*50*t)+0.7*sin(2*pi*75*t))+randn(1,M);%在截取范围内的分析的信号时域波形
f_t_rectwin=rectwin(N).*f_t;%时域加窗:
矩形窗
f_t_hamming=hamming(N).*f_t;%时域加窗:
海明窗
f_t_hann=hann(N).*f_t;%时域加窗:
汉宁窗
F_w_rectwim=T.*fft(f_t_rectwin,N)+eps;
%作N点DFT,乘以采样时间间隔T得到频谱
F_w_hamming=T.*fft(f_t_hamming,N)+eps;%加海明窗的频谱
F_w_hann=T.*fft(f_t_hann,N)+eps;%加汉宁窗的频谱
figure
(1);
subplot(2,2,1);plot(t,f_t);title('OriginalSignal');
subplot(2,2,2);plot(t,f_t_rectwim);title('rectwimWindowing');
subplot(2,2,3);plot(t,f_t_hamming);title('hammingWindowing');
subplot(2,2,4);plot(t,f_t_hann);title('hanningWindowing');
figure
(2);
subplot(3,1,1);semilogy(freq,abs(F_w_rectwin));
title('rectwimWindowingSpectrum');
axis([0,200,1e-4,1]);gridon;
subplot(3,1,2);semilogy(freq,abs(F_w_hamming));
title('rectwimWindowingSpectrum');
axis([0,200,1e-4,1]);gridon;
subplot(3,1,3);semilogy(freq,abs(F_w_hann));
title('rectwimWindowingSpectrum');
axis([0,200,1e-4,1]);gridon;
程序运行后,得出原始信号以及加窗后信号的时域、频域图分别如图6.1和6.2所示。
事实上,加矩形窗等价于截取时不作加窗处理。
从图中三种加窗后的幅度谱估计曲线来看,加海明窗和加汉宁窗后的估计精度都比矩形窗的要高。
图6.1信号的时域图
图6.2加窗后信号的频谱图
7对200年太阳黑子活动情况的分析
在Matlab工具箱中有200年太阳黑子的数据[7],利用这段数据对太阳黑子的规律进行分析
Matlab程序:
loadsunspot.dat%系统提供的历史数据,为20*2矩阵
year=sunspot(:
1);%分解所得得年份数据
wolfer=sunspot(:
2);%分解所得的活动数据。
subplot(211)
plot(year,wolfer);
title('太阳黑子数据')
subplot(212)
plot(year,abs(fftshift(fft(wolfer))))
title('太阳黑子的频域图像')
其结果如图7所示
图7太阳黑子的时域和频域图像
图像分析:
从上图结果可以得出:
对于太阳黑子的活动,在时域上没有十分明显的变化规律,而在其频域上却呈现出良好的突变特性,那么对其频谱的分析就可以很好的掌握太阳黑子活动的规律,对于人类的研究起了非常大的作用.
8对非平稳信号的时频分析
在现实生活中常常碰到一些非平稳信号[6],即这些信号的统计特征随时间变化而变化,其功率谱也是随时间变化的。
例如,语音信号就是非平稳的,显然在话音的辅音、元音以及间隙区间的统计特性是不同的,但是在某一个短的时间内(如一个元音区间)可以认为信号是近似平稳的。
为了寻求非平稳信号的功率谱,工程上将非平稳信号进行短时分段,然后对各段进行功率谱分析,最后将获得的这些功率谱按照时间的顺序排列起来,在时间、频率和功率谱密度这三个维度上考察费平稳信号的特征,这种方法称为时频分析技术。
MATLAB种提供了视频分析指令”specgram”。
下面举例说明视频分析方法。
在Matlab中自带了一段0.5秒的语音数据“mtlb.mat”供测试用。
用“load”指令调入语音数据后,首先通过声卡播放该段语音,然后用“specgram”指令进行视频分析,采样不同分析参数,最后通过三维图和视频二维色图的方式表达出来。
程序和程序结果如下:
loadmtlb.mat
sound(mtlb,Fs);%播放声音
[B,F,T]=specgram(mtlb,1024,Fs,[],0);
%时频分析,短时FFT点数为1024点,无混叠,默认窗函数
[x,y]=meshgrid(F,T);
figure
(1);waterfall(x,y,20*log10(abs(B')));colormap([000]);
%三维作图,作出时变功率谱
xlabel('Freq');ylabel('Time');zlabel('PSD');title('3-DSpectrogram');
figure
(2);specgram(mtlb,1024,Fs,[],0);
%通过时频图表达的时变功率谱,使用颜色表示谱的密度
figure(3);specgram(mtlb,512,Fs,kaiser(500,5),0);
%短时FFT点数为512点,无混叠,凯瑟窗情况
figure(4);specgram(mtlb,512,Fs,kaiser(500,5),475);
%短时FFT点数为512点,475点混叠,凯瑟窗情况
图8一段语音信号的分析
4.结束语
4.1结论
本论文用Matlab产生不同的信号或下载常用的信号,并对其做傅里叶变换,将原来难以出来的时域信号转换成了易于分析的频域信号。
对分析常见信号的特性如噪声、声音、太阳黑子、男女声音等有很大的意义。
但是傅里叶变换也有其缺陷,它虽能得到信号的频谱即幅度和相位,有时只分析信号的这些参数远远还不够。
总的来说,傅里叶的变换的应用领域比较广泛,对于它的研究有很大的意义。
参考文献:
[1]金延军,孟庆刚.MATLAB在数字信号处理中的应用[J].科技信息(学术版),2009,
(2),39—41.
[2]万永革,数字信号处理的MATLAB实现[M].科技出版社,2007.
[3]刘泉,阙大顺.数字信号处理原理与实现[M].电子工业出版社,2005.
[4]飞思科技产品研发中心.Matlab7辅助信号处理技术与应用[M].2005.
[5]胡广书.数字信号处理----理论、算法与实现[M].清华大学出版社,1997.
[6]徐明远,邵玉斌.Matlab仿真在通信与电子工程中的应用[M].西安电子科技大学出版社.2005.
[7]刘波等.MATLAB信号处理[M].电子工业出版社,2006.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 傅里叶变换 信号 处理 中的 应用