当前位置:文档之家› Matlab的无透镜傅里叶全息技术6页word文档

Matlab的无透镜傅里叶全息技术6页word文档

Matlab的无透镜傅里叶全息技术6页word文档
Matlab的无透镜傅里叶全息技术6页word文档

Matlab的无透镜傅里叶全息技术

Technology of Non-lens FFT Holography Used Matlab

YIN Huan-huan1, YUN Zhong-hua2

(1.Wuhan University Luojia College,Wuhan 430064,China;2.School of Engineering,Tibet University,Tibet 850000,China)

Abstract: No-lens Fourier transform holography with object field reconstruction process is simple, fast, real-time characteristics, while object light and reference light intensity ratio affect the reproduction image quality and clarity, with the aid of MATLAB simulation of off axis Fresnel digital hologram and reconstructed image, found that when the object light and reference light intensity ratio are 1:1, the reconstruction of the hologram is the clearest; at the same time ,by building experimental platform to verify the reference object ratio between the 1:1 to 1:3 , ideal results were gained. Experiment and simulation coincide.

数字无透镜傅里叶变换全息术[1]是将计算机技术、信号处理技术和传感器技术应用到传统的光学全息上,其实现原理框图如图1所示。其中光电传感器件CCD将物光参考光产生的干涉图样转换成电信号,经模拟数字芯片AD采集后变为数字图像信号,计算机则利用图像采集卡的接口获取并存储转换后的干涉图样的数字全息图,信号处理技术完成光学衍射过程来对记录下来的数字全息图进行再现[2]。信号处理技术主要是指数字

无透镜傅里叶变换全息术通过一次逆傅里叶变换处理实现数字全息图的

再现像获取,因此具有物场重建过程简单、快速、实时的特性。数字化记录的光场强度和相位信息的数字全息术可以与现有的计算机技术、图像处理技术和通信网络技术相兼容,实现光学信息的实时获取、处理和传输,并且随着CCD的灵敏度和分辨率的提高[3],数字全息技术的应用场合越来越多,满足三维图像识别、防伪、医学的诊断、物体变形测量、粒子场的测试等许多领域的应用[4]。

1基于无透镜傅里叶变换的数字全息技术

菲涅尔离轴记录的全息图由于CCD光敏面较小和像素尺寸较大的特点导致再现像出现像质不理想和分辨率不高的问题,并且记录过程中采样条件限制所以很难提高系统分辨率。而无透镜傅里叶变换全息术可以有效地克服采样条件的限制,能充分利用CCD的尺寸[5],在记录面上形成接近等间距的干涉条纹,这种方法的数字全息图的记录能提高再现像分辨率,保证再现像的质量。

1.1无透镜傅里叶变换全息图的记录

图2是无透镜傅里叶变换全息的记录光路,该物光与参考光到数字全息图记录平面的距离是相等。从图中可知物光与参考光的距离是b,并且参考光的光源来自平行光与物体处于同一平面。记录介质与该平面的距离为z0,则可得记录介质平面上的物光波复振幅在菲涅耳近似条件下的分布为[6]:

[u(x,y)=exp(jkz0)jλz0exp[jk2z0(x2+y2)]×-∞+∞u(x0,y0)×exp[jk2z0(x02+y02)]×exp[-j2πλz0

(xx0+yy0)]dx0dy0=cexp[jk2z0(x2+y2)]U(fx,fy)](1)式中,[c=exp(jkz0)jλz0],[U(fx,fy)=F{u(x0,y0)exp[jk2z0(x02+y02)]}]

其中[fx=x/λz0,fy=y/λz0]为全息图平面上的空间频率,[F{}]表示二维傅里叶变换运算。

参考光波的复振幅分布在记录平面上为:

[r(x,y)=R0exp{jk2z0[(x-xr)2+(y-yr)2]}] (2)

所以在记录平面叠加的物光与参考光的干涉光强为:

[I(x,y)=|u(x,y)+r(x,y)|2=|u|2+|r|2+ur*+u*r=|u|2+R02+?+1(x,y)+?-1(x,y)] (3)

再现像[I(x,y)]由四项组成,分别为零级项、原始像和共轭像,在式中对应前两项、第三项和第四项,从第三项可以看出无透镜傅里叶变换全息图记录的是一个二次相位因子与物光波复振幅分布的乘积的傅里

叶变换,而并非物光波本身。 1.2 无透镜傅里叶变换全息图的再现

零级项是再现平面上形成晕轮光和直透光的原因,第三项和第四项在上面的分析可知对应原始像和共轭像,在数字全息再现时具有实际意义。当采用发散的球面波(原参考光)照明再现时,逆着物光方向观察到的再现像实际上是会聚球面波照明的再现,清晰的再现像要求[zt]必须等于[z0],同时令[zt=z0=z],因此再现光波在全息图平面上的光场复振幅发布为:

[C(x,y)=R0exp[-jk2zt(x2+y2)]=R0exp[-jk2z0(x2+y2)]] (4)

MAtlab傅里叶变换实验报告

班级信工142 学号 22 姓名何岩实验组别实验日期室温报告日期成绩报告内容:(目的和要求,原理,步骤,数据,计算,小结等) 1.求信号的离散时间傅立叶变换并分析其周期性和对称性; 给定正弦信号x(t)=2*cos(2*pi*10*t),fs=100HZ,求其DTFT。 (a)代码: f=10;T=1/f;w=-10:0.2:10; t1=0:0.0001:1;t2=0:0.01:1; n1=-2;n2=8;n0=0;n=n1:0.01:n2; x5=[n>=0.01]; x1=2*cos(2*f*pi*t1); x2=2*cos(2*f*pi*t2); x3=(exp(-j).^(t2'*w)); x4=x2*x3; subplot(2,2,1);plot(t1,x1); axis([0 1 1.1*min(x2) 1.1*max(x2)]); xlabel('x(n)');ylabel('x(n)'); title('原信号x1'); xlabel('t');ylabel('x1'); subplot(2,2,3);stem(t2,x2); axis([0 1 1.1*min(x2) 1.1*max(x2)]); title('原信号采样结果x2'); xlabel('t');ylabel('x2'); subplot(2,2,2);stem(n,x5); axis([0 1 1.1*min(x5) 1.1*max(x5)]); xlabel('n');ylabel('x2'); title('采样函数x2'); subplot(2,2,4);stem(t2,x4); axis([0 1 -0.2+1.1*min(x4) 1.1*max(x4)]); xlabel('t');ylabel('x4'); title('DTFT结果x4'); (b)结果: 2.用以下两个有限长序列来验证DTFT的线性、卷积和共轭特性; (n) x1(n)=[1 2 3 4 5 6 7 8 9 10 11 12];x2(n)=R 10 (1)线性:(a)代码: w=linspace(-8,8,10000); nx1=[0:11]; nx2=[0:9]; x1=[1 2 3 4 5 6 7 8 9 10 11 12];

按频率抽取基2-快速傅里叶逆变换算法_MATLAB代码

function x=MyIFFT_FB(y) %MyIFFT_TB:My Inverse Fast Fourier Transform Time Based %按频率抽取基2-傅里叶逆变换算法 %input: % y -- 傅里叶正变换结果,1*N的向量 %output: % x -- 逆变换结果,1*N的向量 %参考文献: % https://www.doczj.com/doc/7e10393136.html,/view/fea1e985b9d528ea81c779ee.html N=length(y); x=conj(y); %求共轭 x=MyFFT_FB(x);%求FFT x=conj(x);%求共轭 x=x./N;%除以N end %% 内嵌函数====================================================== function y=MyFFT_FB(x,n) %MYFFT_TB:My Fast Fourier Transform Frequency Based %按频率抽取基2-fft算法 %input: % x -- 输入的一维样本 % n -- 变换长度,缺省时n=length(x) 当n小于x数据长度时,x数据被截断到第n个数据% 当n大于时,x数据在尾部补0直到x 含n个数据 %output: % y -- 1*n的向量,快速傅里叶变换结果 %variable define: % N -- 一维数据x的长度 % xtem -- 临时储存x数据用 % m,M -- 对N进行分解N=2^m*M,M为不能被2整除的整数 % two_m -- 2^m % adr -- 变址,1*N的向量 % l -- 当前蝶形运算的级数 % W -- 长为N/2的向量,记录W(0,N),W(1,N),...W(N/2-1,N) % d -- 蝶形运算两点间距离 % t -- 第l级蝶形运算含有的奇偶数组的个数 % mul -- 标量,乘数 % ind1,ind2 -- 标量,下标 % tem -- 标量,用于临时储存 %参考文献: % https://www.doczj.com/doc/7e10393136.html,/view/fea1e985b9d528ea81c779ee.html %% 输入参数个数检查

Matlab傅里叶变换傅里叶逆变换-FFT-IFFT

Matlab傅里叶变换傅里叶逆变换 %% 信号经过傅里叶变换然后进行傅里叶逆变换后信号的变化 clear all;clc; %------Author&Date------ %Author: %Date: 2013/07/31 %========================================================================== Fs=8e3; %采样率 t=0:1/Fs:1; %采样点 len=length(t); %采样长度 f1=10; %频率1 f2=100; %频率2 f3=1000; %频率3 A1=1; %幅度1 A2=0.8; %幅度2 A3=0.3; %幅度3 MaxS=A1+A2+A3; %信号幅度的最大值 signal=A1*sin(2*pi*f1*t)+A2*sin(2*pi*f2*t)+A3*sin(2*pi*f3*t); X=fft(signal,len); %傅里叶变换 magX=abs(X); %信号的幅度 angX=angle(X); %信号的相位 Y=magX.*exp(1i*angX); %信号的频域表示 y=ifft(Y,len); %信号进行傅里叶逆变换 y=real(y); er=signal-y; %原始信号和还原信号的误差 subplot(311);plot(t,signal);axis([0 1 -MaxS MaxS]);xlabel('时间');ylabel('振幅');title('原始信号'); subplot(312);plot(t,y);axis([0 1 -MaxS MaxS]);xlabel('时间');ylabel('振幅');title('还原信号'); subplot(313);plot(t,er);xlabel('时间');ylabel('振幅');title('误差'); % End Script

傅里叶变换matlab代码

%傅里叶变换 clc;clear all;close all; tic Fs=128;%采样频率,频谱图的最大频率 T=1/Fs;%采样时间,原始信号的时间间隔 L=256;%原始信号的长度,即原始离散信号的点数 t=(0:L-1)*T;%原始信号的时间取值范围 x=7*cos(2*pi*15*t-pi)+3*cos(2*pi*40*t-90*pi/180)+3*cos(2*pi*30*t-90*pi/ 180); z=7*cos(2*pi*15*t-pi)+3*cos(2*pi*40*t-90*pi/180); z1=6*cos(2*pi*30*t-90*pi/180); z1(1:L/2)=0; z=z+z1; y=x;%+randn(size(t)); figure; plot(t,y) title('含噪信号') xlabel('时间(s)') hold on plot(t,z,'r--') N=2^nextpow2(L);%N为使2^N>=L的最小幂 Y=fft(y,N)/N*2; Z=fft(z,N)/N*2;%快速傅里叶变换之后每个点的幅值是直流信号以外的原始信号幅值的N/2倍(是直流信号的N倍) f=Fs/N*(0:N-1);%频谱图的频率取值范围 A=abs(Y);%幅值 A1=abs(Z); B=A; %让很小的数置零. B1=A1; A(A<10^-10)=0; % A1(A1<10^-10)=0; P=angle(Y).*A./B; P1=angle(Z).*A1./B1; P=unwrap(P,pi);%初相位值,以除去了振幅为零时的相位值 P1=unwrap(P1,pi); figure subplot(211) plot(f(1:N/2),A(1:N/2))%函数ffs返回值的数据结构具有对称性,因此只取前一半 hold on plot(f(1:N/2),A1(1:N/2),'r--') title('幅值频谱')

matlab-离散信号傅里叶变换

1.请用MATLAB编写程序,实现任意两个有限长度序列的卷积和。要求用图 形显示两个序列及卷积结果。 解:y(n)=∑x(i)h(n-i) 假设x(n)={1,2,3,4,5}; h(n)={3,6,7,2,1,6}; y(n)=x(n)*h(n) 验证:y[n]=[1,12,28,46,65,72,58,32,29,30] 【程序】 N=5 M=6 L=N+M-1 x=[1,2,3,4,5] h=[3,6,7,2,1,6] y=conv(x,h) nx=0:N-1 nh=0:M-1 ny=0:L-1 subplot(131);stem(nx,x,'*b');xlabel('n');ylabel('x(n)');grid on subplot(132);stem(nh,h,'*b');xlabel('n');ylabel('h(h)');grid on subplot(133);stem(ny,y,'*r');xlabel('n');ylabel('y(h)');grid on 【运行结果】

2.已知两个序列x[n]=cos(n*pi/2), y[n]=e j*pi*n/4x[n],请编写程序绘制 X(e jw)和Y(e jw)和幅度和相角,说明它们的频移关系。 –提示:用abs函数求幅度,用angle求相角。 【程序】 n=0:15; x=cos(n*pi/2); y=exp(j*pi*n/4).*x; X=fft(x); Y=fft(y); magX=abs(X); angX=angle(X); magY=abs(Y); angY=angle(Y); subplot(221);stem(n,magX,'*r');xlabel('频率');ylabel('幅度');grid on; subplot(222);stem(n,angX,'*b');xlabel('频率');ylabel('相位');grid on; subplot(223);stem(n,magY,'*r');xlabel('频率');ylabel('幅度');grid on; subplot(224);stem(n,angY,'*b');xlabel('频率');ylabel('相位');grid on;

【免费下载】matlab实现傅里叶变换

一、傅立叶变化的原理; (1)原理 正交级数的展开是其理论基础!将一个在时域收敛的函数展开成一系列不同频率谐波的叠加,从而达到解决周期函数问题的目的。在此基础上进行推广,从而可以对一个非周期函数进行时频变换。 从分析的角度看,他是用简单的函数去逼近(或代替)复杂函数,从几何的角度看,它是以一族正交函数为基向量,将函数空间进行正交分解,相应的系数即为坐标。从变幻的角度的看,他建立了周期函数与序列之间的对应关系;而从物理意义上看,他将信号分解为一些列的简谐波的复合,从而建立了频谱理论。 当然Fourier积分建立在傅氏积分基础上,一个函数除了要满足狄氏条件外, 一般来说还要在积分域上绝对可积,才有古典意义下的傅氏变换。引入衰减因子e^(-st),从而有了Laplace变换。(好像走远了)。 (2)计算方法 连续傅里叶变换将平方可积的函数f(t)表示成复指数函数的积分或级数形式。 这是将频率域的函数F(ω)表示为时间域的函数f(t)的积分形式。 为 连续傅里叶变换的逆变换 (inverse Fourier transform) 即将时间域的函数f(t)表示为频率域的函数F(ω)的积分。 一般可称函数f(t)为原函数,而称函数F(ω)为傅里叶变换的像函数,原函数和像函数构成一个傅里叶变换对(transform pair)。 二、傅立叶变换的应用; DFT在诸多多领域中有着重要应用,下面仅是颉取的几个例子。需要指出 的是,所有DFT的实际应用都依赖于计算离散傅里叶变换及其逆变换的快速算

法,即快速傅里叶变换(快速傅里叶变换(即FFT )是计算离散傅里叶变换及其逆变换的快速算法。)。(1)、频谱分析DFT 是连续傅里叶变换的近似。因此可以对连续信号x(t)均匀采样并截断以得到有限长的离散序列,对这一序列作离散傅里叶变换,可以分析连续信号x(t)频谱的性质。前面还提到DFT 应用于频谱分析需要注意的两个问题:即采样可能导致信号混叠和截断信号引起的频谱泄漏。可以通过选择适当的采样频率(见奈奎斯特频率)消减混叠。选择适当的序列长度并加窗可以抑制频谱泄漏。(2)、数据压缩由于人类感官的分辨能力存在极限,因此很多有损压缩算法利用这一点将语音、音频、图像、视频等信号的高频部分除去。高频信号对应于信号的细节,滤除高频信号可以在人类感官可以接受的范围内获得很高的压缩比。这一去除高频分量的处理就是通过离散傅里叶变换完成的。将时域或空域的信号转换到频域,仅储存或传输较低频率上的系数,在解压缩端采用逆变换即可重建信号。(3)、OFDM OFDM (正交频分复用)在宽带无线通信中有重要的应用。这种技术将带宽为N 个等间隔的子载波,可以证明这些子载波相互正交。尤其重要的是,OFDM 调制可以由IDFT 实现,而解调可以由DFT 实现。OFDM 还利用DFT 的移位性质,在每个帧头部加上循环前缀(Cyclic Prefix ),使得只要信道延时小于循环前缀的长度,就能消除信道延时对传输的影响。三、傅里叶变换的本质; 傅里叶变换的公式为dt e t f F t j ?+∞∞--=ωω)()(可以把傅里叶变换也成另外一种形式: t j e t f F ωπ ω),(21)(=可以看出,傅里叶变换的本质是内积,三角函数是完备的正交函数集,不同频率的三 角函数的之间的内积为0,只有频率相等的三角函数做内积时,才不为0。)(2,21)(2121Ω-Ω==?Ω-ΩΩΩπδdt e e e t j t j t j

MATLAB数字图像处理几何变换傅里叶变换

Matlab数字图像处理实验指导 实验目的: 通过实验,深入理解和掌握图像处理的基本技术,提高动手实践能力。 实验环境: Matlab变成 实验一图像的几何变换 实验内容:设计一个程序,能够实现图像的各种几何变换。 实验要求:读入图像,打开图像,实现图像的平移变换、比例缩放、转置变换、镜像变换、旋转变换等操作。 实验原理: 图像几何变换又称为图像空间变换,它将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置。学习几何变换的关键就是要确定这种空间映射关系,以及映射过程中的变化参数。 几何变换不改变图像的像素值,只是在图像平面上进行像素的重新安排。一个几何变换需要两部分运算:首先是空间变换所需的运算,如平移、镜像和旋转等,需要用它来表示输出图像与输入图像之间的(像素)映射关系;此外,还需要使用灰度插值算法,因为按照这种变换关系进行计算,输出图像的像素可能被映射到输入图像的非整数坐标上。 设原图像f(x0,y0)经过几何变换产生的目标图像为g(x1,y1),则该空间变换(映射)关系可表示为: x1=s(x0,y0) y1=t(x0,y0) 其中,s(x0,y0)和t(x0,y0)为由f(x0,y0)到g(x1,y1)的坐标换变换函数。 一、图像平移 图像平移就是将图像中所有的点按照指定的平移量水平或者垂直移动。

二、图像镜像 镜像变换又分为水平镜像和垂直镜像。水平镜像即将图像左半部分和右半部分以图像竖直中轴线为中心轴进行对换;而竖直镜像则是将图像上半部分和下半部分以图像水平中轴线为中心轴进行对换。 三、图像转置 图像转置是将图像像素的x坐标和y坐标呼唤。图像的大小会随之改变——高度和宽度将呼唤。

用Matlab对信号进行傅里叶变换实例

目录 用Matlab 对信号进行傅里叶变换 (2) Matlab 的傅里叶变换实例 (5) Matlab 方波傅立叶变换画出频谱图 (7)

用 Matlab 对信号进行傅里叶变换 1. 离散序列的傅里叶变换 DTFT(Discrete Time Fourier Transform) 代码: %原离散信号有 8 点 %原信号是 1行 8列的矩阵 %构建原始信号,为指数信号 %频域共-800 +800 的长度(本应是无穷, 高 %求 dtft 变换,采用原始定义的方法,对复指 7 subplot(311) 8 stem(n,xn); 9 title('原始信号(指数信号 )'); 10 subplot(312); 11 plot(w/pi,abs(X)); 12 title('DTFT 变换 ') 结果: 分析:可见,离散序列的 dtft 变换是周期的,这也符合 Nyquist 采样 定理的描述, 连续时间信号经周期采样之后, 所得的离散信号的频谱 是原连续信号频谱的周期延拓。 2. 离散傅里叶变换 1 N=8; 2 n=[0:1:N-1] 3 xn=0.5.^n; 4 5 w=[-800:1:800]*4*pi/800; 频分量很少,故省去) 6 X=xn*exp(-j*(n'*w)); 数分 量求和而得

与 1 中 DTFT 不一样的是, DTFT 的求和区间是整个频域,这对 N=8; % 原离散信号有 8 点 n=[0:1:N-1] %原信号是 1行 8列的矩阵 xn=0.5.^n; %构建原始信号,为指数信号 w=[-8:1:8]*4*pi/8; %频域共 -800 +800 的长度(本应是无穷, 高频分量很少, 故省去) X=xn*exp(-j*(n'*w)); %求 dtft 变换,采用原始定义的方法,对复指数分量求和而得 subplot(311) stem(n,xn); w1=[-4:1:4]*4*pi/4; X1=xn*exp(-j*(n'*w1)); title(' 原始信号 (指数信号 )'); subplot(312); stem(w/pi,abs(X)); title(' 原信号的 16 点 DFT 变换 ') subplot(313) stem(w1/pi,abs(X1)); title(' 原信号的 8 点 DFT 变换 ') 计算机的计算来说是不可以实现的, DFT 就是序列的有限傅里叶变换。 实际上, 1 中代码也只是对频域的 -800 +800 中间的 1601 结果图: 分析: DFT 只是 DTFT 的现实版本,因为 DTFT 要求求和区间无穷, 而 DFT 只在有限点内求和。 3. 快速傅里叶变换 FFT ( Fast Fourier Transform ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

傅里叶变换光学

中山大学光信息专业实验报告:傅里叶光学变换系统 一、实验目的和内容 1、了解透镜对入射波前的相位调制原理。 2、加深对透镜复振幅、传递函数、透过率等参量的物理意义的认识。 3、观察透镜的傅氏变换(FT )图像,观察4f 系统的反傅氏变换(IFT )图像,并进行比较。 4、在4f 系统的变换平面(T )插入各种空间滤波器,观察各种试件相应的频谱处理图像。 二、实验原理 1、透镜的FT 性质及常用函数与图形的关学频谱分析 透镜由于本身厚度的不同,使得入射光在通过透镜时, 图1 点的厚度。设原复振幅分布为(,)L U x y 的光通过透镜后,幅分布受到透镜的位相调制,附加了一个位相因子(,)x y ?为(,)L U x y ': 图1 (,)(,)exp[(,)]L L U x y U x y j x y ?'= (1) 若对于任意一点(x ,y )透镜的厚度为(,)D x y ,透镜的中心厚度为0D 。光线由该点通过透镜时在透镜中的距离为(,)D x y ,空气空的距离为0D -(,)D x y ,透镜折射率为n ,则该点的总的位相差为: 00(,)[(,)](,)(1)(,)x y k D D x y knD x y kD k n D x y ?=-+=+- (2) (2)中的k =2π/λ,为入射光波波数。 用位相延迟因子(,)t x y 来表示即为: 0(,)exp()exp[(1)(,)]t x y jkD jk n D x y =- (3) 由此可见只要知道透镜的厚度函数(,)D x y 就可得出其相位调制。在球面镜傍轴区域,用抛物面近似球面,可以得到球面透镜的厚度函数为:

MAtlab-傅里叶变换-实验报告

陕西科技大学实验报告 班级信工142 学号22 姓名何岩实验组别实验日期室温报告日期成绩报告内容:(目的和要求,原理,步骤,数据,计算,小结等) 1.求信号的离散时间傅立叶变换并分析其周期性和对称性; 给定正弦信号x(t)=2*cos(2*pi*10*t),fs=100HZ,求其DTFT。 (a)代码: f=10;T=1/f;w=-10:0.2:10; t1=0:0.0001:1;t2=0:0.01:1; n1=-2;n2=8;n0=0;n=n1:0.01:n2; x5=[n>=0.01]; x1=2*cos(2*f*pi*t1); x2=2*cos(2*f*pi*t2); x3=(exp(-j).^(t2'*w)); x4=x2*x3; subplot(2,2,1);plot(t1,x1); axis([0 1 1.1*min(x2) 1.1*max(x2)]); xlabel('x(n)');ylabel('x(n)'); title('原信号x1'); xlabel('t');ylabel('x1'); subplot(2,2,3);stem(t2,x2); axis([0 1 1.1*min(x2) 1.1*max(x2)]); title('原信号采样结果x2'); xlabel('t');ylabel('x2'); subplot(2,2,2);stem(n,x5); axis([0 1 1.1*min(x5) 1.1*max(x5)]); xlabel('n');ylabel('x2'); title('采样函数x2'); subplot(2,2,4);stem(t2,x4); axis([0 1 -0.2+1.1*min(x4) 1.1*max(x4)]); xlabel('t');ylabel('x4'); title('DTFT结果x4'); (b)结果:

傅里叶变换的应用,matlab程序,C语言程序

1 利用FFT 计算连续时间信号的傅里叶变换 设()x t 是连续时间信号,并假设0t <时()0x t =,则其傅里叶变换由下式给出 0()()i t X x t e dt ωω∞ -=? 令Γ是一个固定的正实数,N 是一个固定的正整数。当,0,1,2,,1k k N ω=Γ=-L 时,利用FFT 算法可计算()X ω。 已知一个固定的时间间隔T ,选择T 足够小,使得每一个T 秒的间隔(1)nT t n T ≤<+内,()x t 的变化很小,则式中积分可近似为 (1)0 ()()()n T iwt nT n X e dt x nT ω∞+-==∑? (1)01[ ]()i t t n T t nT n e x nT i ωω ∞-=+==-=∑ 0 1()i T i nT n e e x nT i ωωω-∞-=-=∑ (27) 假设N 足够大,对于所有n N ≥的整数,幅值()x nT 很小,则式(27)变为 1 01()()i T N i nT n e X e x nT i ωωωω---=-=∑ (28) 当2/k NT ωπ=时,式(28)两边的值为 2/2/12/0211()()[]2/2/i k N i k N N i nk N n k e e X e x nT X k NT i k NT i k NT ππππππ----=--==∑ (29) 其中[]X k 代表抽样信号[]()x n x nT =的N 点DFT 。最后令2/NT πΓ=,则上式变为 2/1()[]0,1,2,,12/i k N e X k X k k N i k NT ππ--Γ==-L (30) 首先用FFT 算法求出[]X k ,然后可用上式求出0,1,2,,1k N =-L 时的()X k Γ。 应该强调的是,式(28)只是一个近似表示,计算得到的()X ω只是一个近似值。通过取更小的抽样间隔T ,或者增加点数N ,可以得到更精确的值。如果B ω>时,幅度谱()X ω很小,对应于奈奎斯特抽样频率2s B ω=,抽样间隔T 选择/B π比较合适。如果已知信号只在时间区间10t t ≤≤内存在,可以通过对1nT t >时的抽样信号[]()x n x nT =补零,使N 足够大。 例1 利用FFT 计算傅里叶变换

离散信号的傅里叶变换(MATLAB实验)

离散信号的变换(MATLAB 实验) 一、实验目的 掌握用Z 变换判断离散系统的稳定与否的方法,掌握离散傅立叶变换及其基本性质和特点,了解快速傅立叶变换。 二、实验内容 1、已经系统函数为 5147.13418.217.098.2250 5)(2342-++--+=z z z z z z Z H (1) 画出零极点分布图,判断系统是否稳定; (2)检查系统是否稳定; (3) 如果系统稳定,求出系统对于u(n)的稳态输出和稳定时间b=[0,0,1,5,-50];a=[2,-2.98,0.17,2.3418,-1.5147]; subplot(2,1,1);zplane(b,a);title('零极点分布图'); z=roots(a); magz=abs(z) magz = 0.9000 0.9220 0.9220 0.9900 n=[0:1000]; x=stepseq(0,0,1000); s=filter(b,a,x); subplot(2,1,2);stem(n,s);title('稳态输出'); (1)因为极点都在单位园内,所以系统是稳定的。 (2)因为根的幅值(magz )都小于1,所以这个系统是稳定的。 (3)稳定时间为570。 2、综合运用上述命令,完成下列任务。 (1) 已知)(n x 是一个6点序列: ???≤≤=其它,050,1)(n n x

计算该序列的离散时间傅立叶变换,并绘出它们的幅度和相位。 要求:离散时间傅立叶变换在[-2π,2π]之间的两个周期内取401个等分频率上进行数值求值。 n=0:5;x=ones(1,6); k=-200:200;w=(pi/100)*k; X=x*(exp(-j*pi/100)).^(n'*k); magX=abs(X);angX=angle(X); subplot(2,1,1);plot(w/pi,magX);grid;title('幅度'); subplot(2,1,2);plot(w/pi,angX);grid;title('相位'); (2) 已知下列序列: a. ,1000),52.0cos()48.0cos()(≤≤+=n n n n x ππ; b .)4sin()(πn n x =是一个N =32的有限序列; 试绘制)(n x 及它的离散傅立叶变换 )(k X 的图像。 a . n=[0:1:100];x=cos(0.48*pi*n)+cos(0.52*pi*n); subplot(2,1,1);plot(n,x);title('x(n)的图像'); X=dft(x,101); magX=abs(X); subplot(2,1,2);plot(n,magX);title('丨X(k)丨的图像');

傅里叶变换光学

中山大学光信息专业实验报告:傅里叶光学变换系统 一、实验目的和内容 1、了解透镜对入射波前的相位调制原理。 2、加深对透镜复振幅、传递函数、透过率等参量的物理意义的认识。 3、观察透镜的傅氏变换(FT )图像,观察4f 系统的反傅氏变换(IFT )图像,并进行比较。 4、在4f 系统的变换平面(T )插入各种空间滤波器,观察各种试件相应的频谱处理图像。 二、实验原理 1、透镜的FT 性质及常用函数与图形的关学频谱分析 力。图1 在该点的厚度。设原复振幅分布为(,)L U x y 其复振幅分布受到透镜的位相调制,附加了一个位相因(,)x y ?后变为(,)L U x y ': 图1 (,)(,)exp[(,)]L L U x y U x y j x y ?'= (1) 若对于任意一点(x ,y )透镜的厚度为(,)D x y ,透镜的中心厚度为0D 。光线由该点通过透镜时在透镜中的距离为(,)D x y ,空气空的距离为0D -(,)D x y ,透镜折射率为n ,则该点的总的位相差为: 00(,)[(,)](,)(1)(,)x y k D D x y knD x y kD k n D x y ?=-+=+- (2) (2)中的k =2π/λ,为入射光波波数。 用位相延迟因子(,)t x y 来表示即为: 0(,)exp()exp[(1)(,)]t x y jkD jk n D x y =- (3) 由此可见只要知道透镜的厚度函数(,)D x y 就可得出其相位调制。在球面镜傍轴区域,用抛物面近似球面,可以得到球面透镜的厚度函数为:

22012 111(,)()()2D x y D x y R R =-+- (4) 其中1R 、2R 是构成透镜的两个球面的曲率半径。公式(4)对双凹、双凸、或凹凸透镜都成立。引入焦距f ,其定义为: 12 111(1)()n f R R =-- (5) 代入(3)得: 220(,)exp()exp[()]2k t x y jknD j x y f =-+ (6) 式(6)即是透镜位相调制的表达式,它表明复振幅(,)L U x y 通过透镜时,透镜各点都发生位相延迟。 从式(6)容易看出第一项位相因子0exp()jknD 仅表示入射光波的常量位相延迟,不影响位相的空间分布,即波面形状,所以在运算过程中可以略去。第二项22exp[()]2k j x y f -+是具有调制作用的因子,它表明光波通过透镜的位相延迟与该点到透镜中心的距离的平方成正比。而且与透镜的焦距有关。当考虑透镜孔径后,有: 22(,)exp[()](,)2k t x y j x y p x y f =-+ (7) 其中的(,)p x y 为透镜的光瞳函数,表达式为: 1(,)0p x y ?=?? 孔径内 其 它 (8) 2、透镜的傅里叶变换性质 在单色平面波垂直照射下,夫琅和斐衍射光场的复振幅分布正比于衍射屏透射系数的傅里叶变换。衍射图像的强度分布正比于衍射屏的功率谱分布。一般情况下,我们是将夫朗和斐衍射图像成像到透镜的像方焦平面出,这就是说,作为成像元件的透镜,就相当于傅里叶变换器。 如图2所示,设单位振幅的单色平面光垂直照射一透射系数为(,)t x y 的衍射屏,与衍射屏相距Z 处放置一焦距为f 的薄透镜L ,先观察其像方平面L 的光场分布。为了讨论方便,这里我们忽略透镜材料的吸收、散射、透镜表面的反射以及透镜孔径大小等因素的影响。

利用MATLAB编写FFT快速傅里叶变换

一、实验目的 1.利用MATLAB 编写FFT 快速傅里叶变换。 2.比较编写的myfft 程序运算结果与MATLAB 中的FFT 的有无误差。 二、实验条件 PC 机,MATLAB7.0 三、实验原理 1. FFT (快速傅里叶变换)原理: 将一个N 点的计算分解为两个N/2点的计算,每个N/2点的计算再进一步分解为N/4点的计算,以此类推。根据DFT 的定义式,将信号x[n]根据采样号n 分解为偶采样点和奇采样点。设偶采样序列为y[n]=x[2n],奇采样序列为z[n]=x[2n+1]。 上式中的k N W -为旋转因子N k j e /2π-。下式则为y[n]与z[n]的表达式: 2. 蝶形变换的原理: 下图给出了蝶形变换的运算流图,可由两个N/2点的FFT (Y[k]和Z[k]得出N 点FFT X[k])。同理,每个N/2点的FFT 可以由两个N/4点的FFT 求得。按这种方法,该过程可延迟后推到2点的FFT 。 下图为N=8的分解过程。图中最右边的为8个时域采样点的8点FFTX[k],由偶编号采样点的4点FFT 和奇编号采样点的4点得到。这4点偶编号又由偶编号的偶采

样点的2点FFT 和奇编号的偶采样点的2点FFT 产生。相同的4点奇编号也是如此。依次往左都可以用相同的方法算出,最后由偶编号的奇采样点和奇编号的偶采样点的2点FFT 算出。图中没2点FFT 成为蝶形,第一级需要每组一个蝶形的4组,第二级有每组两个蝶形的两组,最后一级需要一组4个蝶形。 四、实验内容 1.定义函数disbutterfly ,程序根据FFT 的定义:]2[][][N n x n x n y + +=、n N W N n x n x n z -+-=])2 [][(][,将序列x 分解为偶采样点y 和奇采样点z 。 function [y,z]=disbutterfly(x) N=length(x); n=0:N/2-1; w=exp(-2*1i*pi/N).^n; x1=x(n+1); x2=x(n+1+N/2); y=x1+x2; z=(x1-x2).*w; 2.定义函数rader ,纠正输出序列的输出顺序。 function y=rader(x,N) n=[0:N-1]; bn=dec2bin(n); rbn=fliplr(bn); rn=bin2dec(rbn); y=x(rn+1); 3.定义函数myfft ,程序中套了两个循环。 function X=myfft(x) N=length(x); h=log2(N); %h=3 for i=1:h %第一次i=1;第二次i=2 s=[]; for j=1:2^(i-1);%i=1时,j=1;i=2时,j=1:2 M=2^(h-i+1);%M:M=8;M=4 xj=x([1:M]+(j-1)*M);%xj=x([1:8]+(1-1)*8)=x(1)+x(2)...+x(8); %j=1:xj=x([1:4]);j=2:xj=x([1:4]+4) [y,z]=disbutterfly(xj); s=[s,y,z]; end x=s;

傅里叶变换MATLAB程序

fs=51.2; N=1024; n=0:N-1; t=n/fs; x=0.5-0.5*sign(t-1); Y=fft(x,N); mag=abs(Y); Y1=fftshift(Y); mag1=abs(Y1); fn2=(-N/10.24:N/10.24)*fs/N; subplot(2,1,1) plot(fn2,mag1((N/2-N/10.24+1):(N/2+N/10.24+1))); set(gca,'XTick',(-5:0.5:5)); set(gca,'YTick',(0:10:60)); xlabel('频率/Hz');ylabel('振幅'); title('图1:矩形函数的FFT结果,N=512,fs=51.2Hz'); grid on; f=linspace(-5,5,1000); y=sqrt(2-2*cos(2*pi*f))./abs((2*pi*f)); subplot(2,1,2) plot(f,y); set(gca,'XTick',(-5:0.5:5)); set(gca,'YTick',(0:0.2:1)); xlabel('频率/Hz');ylabel('振幅'); title('图2:矩形函数傅里叶变换的理论结果'); grid on

-5-4.5-4-3.5-3-2.5-2-1.5-1-0.500.51 1.52 2.53 3.54 4.55010203040 50 60 频率/Hz 振幅 图1:矩形函数的FFT 结果,N=512,fs=51.2Hz -5-4.5-4-3.5-3-2.5-2-1.5-1-0.500.51 1.52 2.53 3.54 4.55 00.2 0.4 0.60.8 1频率/Hz 振幅图2:矩形函数傅里叶变换的理论结果

快速傅里叶变换_蝶形运算_按时间抽取基2-fft算法_MATLAB代码

function y=MyFFT_TB(x,n) %MYFFT_TB:My Fast Fourier Transform Time Based %按时间抽取基2-fft算法 %input: % x -- 输入的一维样本 % n -- 变换长度,缺省时n=length(x) 当n小于x数据长度时,x数据被截断到第n个数据% 当n大于时,x数据在尾部补0直到x 含n个数据 %output: % y -- 1*n的向量,快速傅里叶变换结果 %variable define: % N -- 一维数据x的长度 % xtem -- 临时储存x数据用 % m,M -- 对N进行分解N=2^m*M,M为不能被2整除的整数 % two_m -- 2^m % adr -- 变址,1*N的向量 % l -- 当前蝶形运算的级数 % W -- 长为N/2的向量,记录W(0,N),W(1,N),...W(N/2-1,N) % d -- 蝶形运算两点间距离 % t -- 第l级蝶形运算含有的奇偶数组的个数 % mul -- 标量,乘数 % ind1,ind2 -- 标量,下标 % tem -- 标量,用于临时储存 %参考文献: % https://www.doczj.com/doc/7e10393136.html,/view/fea1e985b9d528ea81c779ee.html %% 输入参数个数检查 msg=nargchk(1,2,nargin); error(msg); %% 输入数据截断或加0 N=length(x); if nargin==2 if N

傅里叶变换matlab代码

傅里叶变换m a t l a b代 码 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

%傅里叶变换 clc;clear all;close all; tic Fs=128;%采样频率,频谱图的最大频率 T=1/Fs;%采样时间,原始信号的时间间隔 L=256;%原始信号的长度,即原始离散信号的点数 t=(0:L-1)*T;%原始信号的时间取值范围 x=7*cos(2*pi*15*t-pi)+3*cos(2*pi*40*t-90*pi/180)+3*cos(2*pi*30*t-90*pi/180); z=7*cos(2*pi*15*t-pi)+3*cos(2*pi*40*t-90*pi/180); z1=6*cos(2*pi*30*t-90*pi/180); z1(1:L/2)=0; z=z+z1; y=x;%+randn(size(t)); figure; plot(t,y) title('含噪信号') xlabel('时间(s)') hold on plot(t,z,'r--')

N=2^nextpow2(L);%N为使2^N>=L的最小幂 Y=fft(y,N)/N*2; Z=fft(z,N)/N*2;%快速傅里叶变换之后每个点的幅值是直流信号以外的原始信号幅值的N/2倍(是直流信号的N倍) f=Fs/N*(0:N-1);%频谱图的频率取值范围 A=abs(Y);%幅值 A1=abs(Z); B=A; %让很小的数置零. B1=A1; A(A<10^-10)=0; % A1(A1<10^-10)=0; P=angle(Y).*A./B; P1=angle(Z).*A1./B1; P=unwrap(P,pi);%初相位值,以除去了振幅为零时的相位值 P1=unwrap(P1,pi); figure subplot(211) plot(f(1:N/2),A(1:N/2))%函数ffs返回值的数据结构具有对称性,因此只取前一半 hold on

matlab图像傅里叶变换图像

电子1004 黄佳卿201081163 图像傅里叶变换代码如下: I = imread('C:\Users\jiaqing\Desktop\matlab homework\zhen.jpg'); % 读入图像 subplot(2,2,1),imshow(I); title('zhen'); FI = abs((fft2(I))); NFI = 255*mat2gray(FI); %归一化 SFI = fftshift(NFI); imgray = rgb2gray(SFI); %灰阶 subplot(2,2,2),imshow(imgray); title('fft of zhen'); I = imread('C:\Users\jiaqing\Desktop\matlab homework\cat.jpg'); % 读入图像 subplot(2,2,3),imshow(I); title('cat'); FI = abs((fft2(I))); NFI = 255*mat2gray(FI); %归一化 SFI = fftshift(NFI); imgray = rgb2gray(SFI); %灰阶 subplot(2,2,4),imshow(imgray); title('fft of cat'); 运行结果如下:

图像添加高斯噪声与去除代码如下: I = imread('C:\Users\jiaqing\Desktop\matlab homework\zhen.jpg'); % 读入图像 %给图像添加噪声 grayI = rgb2gray(I); nI=imnoise(grayI,'gaussian',0.05); subplot(2,2,1);imshow(nI); title('加入高斯噪声后的图像'); %加入噪声后图像的傅立叶变换 FI = abs((fft2(nI))); NFI = 255*mat2gray(FI); %归一化 SFI = fftshift(NFI); subplot(2,2,2),imshow(SFI); title('加入噪声后的傅里叶变换'); xd=wiener2(nI,[3 3]); subplot(2,2,3);imshow(xd); %去除噪声后图像的傅立叶变换

短时傅里叶变换matlab程序.

function [Spec,Freq]=STFT(Sig,nLevel,WinLen,SampFreq %计算离散信号的短时傅里叶变换; % Sig 待分析信号; % nLevel 频率轴长度划分(默认值512); % WinLen 汉宁窗长度(默认值 64); % SampFreq 信号的采样频率(默认值1); if (nargin <1, error('At least one parameter required!'; end; Sig=real(Sig; SigLen=length(Sig; if (nargin <4, SampFreq=1; end if (nargin <3, WinLen=64; end if (nargin <2, nLevel=513;

end nLevel=ceil(nLevel/2*2+1; WinLen=ceil(WinLen/2*2+1; WinFun=exp(-6*linspace(-1,1,WinLen.^2; WinFun=WinFun/norm(WinFun; Lh=(WinLen-1/2; Ln=(nLevel-1/2; Spec=zeros(nLevel,SigLen; wait=waitbar(0,'Under calculation,please wait...'; for iLoop=1:SigLen, waitbar(iLoop/SigLen,wait; iLeft=min([iLoop-1,Lh,Ln]; iRight=min([SigLen-iLoop,Lh,Ln]; iIndex=-iLeft:iRight; iIndex1=iIndex+iLoop; iIndex2=iIndex+Lh+1; Index=iIndex+Ln+1; Spec(Index,iLoop=Sig(iIndex1.*conj(WinFun(iIndex2; end; close(wait;

相关主题
文本预览
相关文档 最新文档