用MATLAB软件和液晶光阀实现傅立叶变换计算全息制作及其再现

合集下载

实验用MATLAB计算傅里叶变换

实验用MATLAB计算傅里叶变换

实验二 用MATLAB 计算傅立叶变换(2课时)一、实验目的1、掌握用MA TLAB 计算DTFT 及系统频率响应的方法。

2、掌握用MA TLAB 计算DFT 和IDFT 的方法。

3、掌握用DFT 计算圆周卷积和线性卷积的方法。

二、实验设备计算机一台,装有MATLAB 软件。

三、实验原理和基本操作1.用MA TLAB 计算DTFT对于序列x (n ),其离散时间傅立叶变换(DTFT )定义为:∑∞-∞=-=n n j e n x j X ωω)()( (1)序列的傅立叶变换(DTFT )在频域是连续的,并且以ω=2π为周期。

因此只需要知道jw X(e )的一个周期,即ω=[0,2π],或[-π,π]。

就可以分析序列的频谱。

用MA TLAB 计算DTFT ,必须在-π≤ω≤π范围内,把ω用很密的、长度很长的向量来近似,该向量中各个值可用下式表示: w=k*dw=k*K π2 (2) 其中:d ω=Kπ2 称为频率分辨率。

它表示把数字频率的范围2π均分成K 份后,每一份的大小,k 是表示频率序数的整数向量,简称为频序向量,它的取值可以有几种方法:通常在DTFT 中,频率取-π≤ω<л的范围,当K 为偶数时,取 k 12,,1,0,1,,12,2--+--=K K K 如果K 为奇数,则取 k 5.02,,1,0,1,,5.02--+-=K K 可以为奇偶两种情况综合出一个共同的确定频序向量k 的公式; k=12K -⎢⎥-⎢⎥⎣⎦ :12K -⎢⎥⎢⎥⎣⎦(3) 上式中⎢⎥⎣⎦表示向下取整。

在MA TLAB 中的向下取整函数为floor ,floor (x )的作用是把x 向下(向-∞方向)取整,所以与(3)式等价的MATLAB 语句为 k ))5.02(:)5.02((-+-=K K floor (4) 给定了输入序列(包括序列x 及其位置向量n ),又设定了频率分辨率d ω及频序向量k ,则DTFT 的计算式(1)可以用一个向量与矩阵相乘的运算来实现。

matlab做傅里叶变换

matlab做傅里叶变换

matlab做傅里叶变换matlab傅里叶变换一、介绍1、什么是傅里叶变换?傅里叶变换(Fourier Transform)是由法国数学家Joseph Fourier在1807年提出的一种数学变换,主要用于将时间域上的一个函数转换成频域上的另一个函数,这种函数转换有助于我们进一步理解时域上函数在频域上的特性。

2、matlab中傅里叶变换的应用(1)频谱分析:通过傅里叶变换来计算信号在频域上的表现,并根据频谱图来分析出信号在频率上的变化情况;(2)系统识别:bayes定理、最小区分熵等,可用来帮助系统分析出其结构;(3)图像分析:可用傅立叶变换来求解图像的傅立叶变换,用bel哈希定理计算图像的熵,以此来分析图像的结构;(4)滤波功能:可运用傅里叶变换来进行滤波操作,有效去除噪声信号后获取清晰的原始信号;(5)去除抖动:可以利用傅里叶变换对含有抖动的信号进行去除,而不会破坏信号的有效信息。

二、matlab计算傅里叶变换的操作流程(1)确定模型:确定原始信号的时变关系,构建函数模型;(2)数据采集:获取所需的原始信号数据;(3)matlab傅里叶变换操作:使用matlab中的傅里叶变换函数fourier()对原始信号进行变换,计算出其频域波形;(4)结果分析:根据傅里叶变换后的频域波形,来分析其时域波形参数。

三、matlab傅里叶变换函数matlab中提供了一系列关于傅里叶变换操作的函数,它们包括:fourier()、fft()、idft()、fftshift()、ifft(),当需要对原始信号进行傅里叶变换时,可以直接使用这些函数对信号进行变换,并计算出其频域特征。

四、matlab傅里叶变换的步骤(1)准备算子:matlab内置了一些用作傅里叶变换的算子,它们可以在数学操作中被调用;(2)准备数据:将需要变换的原始信号准备好,matlab可以读取数据文件;(3)傅里叶变换操作:根据上一步准备的算子和数据,调用matlab函数fourier()对信号进行傅里叶变换;(4)结果展示:将变换后的结果展示出来,结果可以根据信号的时间特性及频域特性进行分析。

matlab自行编写fft傅里叶变换

matlab自行编写fft傅里叶变换

傅里叶变换(Fourier Transform)是信号处理中的重要数学工具,它可以将一个信号从时域转换到频域。

在数字信号处理领域中,傅里叶变换被广泛应用于频谱分析、滤波、频谱估计等方面。

MATLAB作为一个功能强大的数学软件,自带了丰富的信号处理工具箱,可以用于实现傅里叶变换。

在MATLAB中,自行编写FFT(Fast Fourier Transform)的过程需要以下几个步骤:1. 确定输入信号我们首先需要确定输入信号,可以是任意时间序列数据,例如声音信号、振动信号、光学信号等。

假设我们有一个长度为N的信号x,即x = [x[0], x[1], ..., x[N-1]]。

2. 生成频率向量在进行傅里叶变换之前,我们需要生成一个频率向量f,用于表示频域中的频率范围。

频率向量的长度为N,且频率范围为[0, Fs),其中Fs 为输入信号的采样频率。

3. 实现FFT算法FFT算法是一种高效的离散傅里叶变换算法,它可以快速计算出输入信号的频域表示。

在MATLAB中,我们可以使用fft函数来实现FFT 算法,其调用方式为X = fft(x)。

其中X为输入信号x的频域表示。

4. 计算频谱通过FFT算法得到的频域表示X是一个复数数组,我们可以计算其幅度谱和相位谱。

幅度谱表示频率成分的强弱,可以通过abs(X)得到;相位谱表示不同频率成分之间的相位差,可以通过angle(X)得到。

5. 绘制结果我们可以将输入信号的时域波形和频域表示进行可视化。

在MATLAB 中,我们可以使用plot函数来绘制时域波形或频谱图。

通过以上几个步骤,我们就可以在MATLAB中自行编写FFT傅里叶变换的算法。

通过对信号的时域和频域表示进行分析,我们可以更好地理解信号的特性,从而在实际应用中进行更精确的信号处理和分析。

6. 频谱分析借助自行编写的FFT傅里叶变换算法,我们可以对信号进行频谱分析。

频谱分析是一种非常重要的信号处理技术,可以帮助我们了解信号中所包含的各种频率成分以及它们在信号中的能量分布情况。

如何在MATLAB中进行傅里叶变换

如何在MATLAB中进行傅里叶变换

如何在MATLAB中进行傅里叶变换傅里叶变换是一种常见的信号处理技术,可以分析信号的频域特征。

在MATLAB中,傅里叶变换可以通过内置的函数来实现。

本文将具体介绍如何在MATLAB中进行傅里叶变换,包括基本概念、函数的使用方法、应用示例等。

一、基本概念傅里叶变换是将一个信号从时域转换为频域的方法。

它可以将一个复杂的信号表示为一系列简单的正弦和余弦函数的叠加。

傅里叶变换的目的是通过将信号分解成不同频率的分量,来揭示信号的频谱特性,从而方便后续的处理和分析。

傅里叶变换有两种形式:离散傅里叶变换(Discrete Fourier Transform, DFT)和快速傅里叶变换(Fast Fourier Transform, FFT)。

DFT可以用于任意长度的离散信号,而FFT是DFT的一种高效实现方法,适用于长度为2的幂次的离散信号。

二、MATLAB中的傅里叶变换函数MATLAB提供了多个用于傅里叶变换的函数,其中最常用的是fft和ifft函数。

fft函数用于计算信号的快速傅里叶变换,ifft函数用于计算信号的快速傅里叶逆变换。

要使用这些函数进行傅里叶变换,首先需要将信号转化为MATLAB中的向量形式。

可以使用MATLAB提供的norm函数将信号规范化为向量形式,或自己将信号转换为向量。

接下来,可以直接调用fft函数计算信号的傅里叶变换,或者调用ifft函数计算信号的傅里叶逆变换。

三、傅里叶变换的应用示例傅里叶变换在信号处理领域有着广泛的应用,以下是一个简单的应用示例:使用傅里叶变换对一个声音信号进行频谱分析。

首先,我们需要加载一个声音文件到MATLAB中。

可以使用MATLAB提供的audioread函数读取声音文件,该函数会返回声音信号的采样率和声音数据。

接下来,可以通过调用fft函数对声音信号进行傅里叶变换。

假设我们已经将声音信号保存在名为"sound.wav"的文件中,可以使用以下代码进行声音信号的傅里叶变换:```[sound_data, sample_rate] = audioread('sound.wav');sound_fft = fft(sound_data);```在对声音信号进行傅里叶变换之后,我们可以通过计算傅里叶变换结果的幅度谱和相位谱来获取信号的频域特征。

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

【免费下载】matlab实现傅里叶变换
(3)、OFDM
OFDM(正交频分复用)在宽带无线通信中有重要的应用。这种技术将带宽为 N 个等间隔的子载波,可以证明这些子载波相互正交。尤其重要的是,OFDM 调制 可以由 IDFT 实现,而解调可以由 DFT 实现。OFDM 还利用 DFT 的移位性质,在 每个帧头部加上循环前缀(Cyclic Prefix),使得只要信道延时小于循环前缀 的长度,就能消除信道延时对传输的影响。
对一个信号做傅里叶变换,然后直接做逆变换,这样做是没有意义的,在傅里叶变换 和傅里叶逆变换之间有一个滤波的过程。将不要的频率分量给滤除掉,然后再做逆变换, 就得到了想要的信号。比如信号中掺杂着噪声信号,可以通过滤波器将噪声信号的频率给 去除,再做傅里叶逆变换,就得到了没有噪声的信号。
优点:频率的定位很好,通过对信号的频率分辨率很好,可以清晰的得到信号所包含 的频率成分,也就是频谱。
(2)、数据压缩
由于人类感官的分辨能力存在极限,因此很多有损压缩算法利用这一点将语音、 音频、图像、视频等信号的高频部分除去。高频信号对应于信号的细节,滤除 高频信号可以在人类感官可以接受的范围内获得很高的压缩比。这一去除高频 分量的处理就是通过离散傅里叶变换完成的。将时域或空域的信号转换到频域, 仅储存或传输较低频率上的系数,在解压缩端采用逆变换即可重建信号。
下面从公式解释下傅里叶变换的意义
因为傅里叶变换的本质是内积,所以 f(t)和 e jt 求内积的时候,只有 f(t)中频率为 的
分量才会有内积的结果,其余分量的内积为 0。可以理解为 f(t)在 e jt 上的投影,积分值是 时间从负无穷到正无穷的积分,就是把信号每个时间在 的分量叠加起来,可以理解为 f(t)在 e jt 上的投影的叠加,叠加的结果就是频率为 的分量,也就形成了频谱。

matlab中进行傅里叶变换

matlab中进行傅里叶变换

matlab中进行傅里叶变换# MATLAB中的傅里叶变换及应用## 引言傅里叶变换是信号处理领域中一项重要的数学工具,广泛应用于信号分析、图像处理、通信等领域。

MATLAB作为一种高效的科学计算软件,提供了强大的傅里叶变换工具,使得用户能够方便地进行信号频谱分析和处理。

本文将介绍MATLAB中傅里叶变换的基本概念、函数使用方法,并结合实例展示其在信号处理中的应用。

## 1. 傅里叶变换的基本概念### 1.1 时域与频域傅里叶变换是将时域信号转换到频域的一种数学工具。

在时域中,信号是关于时间的函数;而在频域中,信号则是关于频率的函数。

通过傅里叶变换,我们能够将信号在时域和频域之间进行转换,从而更好地理解信号的特性。

### 1.2 连续与离散傅里叶变换MATLAB中的傅里叶变换涵盖了连续和离散两种情况。

对于连续信号,可以使用`fft`函数进行变换;对于离散信号,可以使用`fft`函数进行快速傅里叶变换。

这两种情况下,变换的结果分别为连续频谱和离散频谱。

## 2. MATLAB中的傅里叶变换函数MATLAB提供了丰富的傅里叶变换函数,包括`fft`、`ifft`、`fft2`等。

这些函数可以适用于不同类型的信号,如一维信号、二维信号等。

以下是其中一些常用函数的简要介绍:### 2.1 `fft`函数`fft`函数用于计算一维离散傅里叶变换。

其基本语法为:```matlabY = fft(X)```其中,`X`为输入的离散信号,而`Y`则为变换后的频谱。

### 2.2 `ifft`函数`ifft`函数用于计算一维离散傅里叶反变换。

其基本语法为:```matlabX = ifft(Y)```其中,`Y`为输入的频谱,而`X`则为反变换后的信号。

### 2.3 `fft2`函数对于二维信号,可以使用`fft2`函数进行二维离散傅里叶变换。

其基本语法为:```matlabY = fft2(X)```同样,`X`为输入的二维信号,而`Y`则为变换后的二维频谱。

matlab自己写傅里叶变换程序

matlab自己写傅里叶变换程序

matlab自己写傅里叶变换程序傅里叶变换是一种重要的数学工具,广泛应用于信号处理、图像处理、通信等领域。

它可以将一个信号在频域和时域之间进行转换,帮助我们理解信号的频谱特性。

在本文中,我将介绍如何使用Matlab编写傅里叶变换程序,以及一些相关的应用。

我们需要明确傅里叶变换的定义和公式。

傅里叶变换可以将一个连续时间的信号分解为多个不同频率的正弦和余弦函数的叠加。

在Matlab中,可以使用fft函数进行傅里叶变换。

具体步骤如下:1. 准备信号数据:首先,我们需要准备一个信号数据。

这可以是一个连续时间的信号,也可以是一个离散时间的信号。

可以通过输入一组数据来表示信号。

2. 进行傅里叶变换:使用fft函数对信号进行傅里叶变换。

该函数会返回一个复数数组,表示信号在频域中的幅度和相位信息。

3. 绘制频谱图:使用plot函数将频域信息绘制成频谱图。

这可以帮助我们直观地理解信号的频率分布情况。

4. 反变换:如果需要将傅里叶变换后的频域信号重新转换回时域信号,可以使用ifft函数进行反变换。

除了基本的傅里叶变换,Matlab还提供了一些相关的函数和工具箱,例如快速傅里叶变换(FFT)、离散傅里叶变换(DFT)、傅里叶级数等。

这些工具可以帮助我们更方便地处理和分析信号。

傅里叶变换在信号处理中有着广泛的应用。

例如,我们可以使用傅里叶变换对音频信号进行频谱分析,以便了解音频中各个频率分量的贡献。

另外,傅里叶变换还可以用于图像处理,例如图像压缩和滤波等方面。

总结起来,Matlab提供了丰富的函数和工具箱,可以帮助我们进行傅里叶变换及相关的信号处理任务。

通过编写傅里叶变换程序,我们可以更好地理解信号在频域和时域之间的转换关系,以及信号的频谱特性。

这对于许多科学研究和工程应用都具有重要意义。

运用Matlab实现光学中的几个傅立叶变换.doc

运用Matlab实现光学中的几个傅立叶变换.doc

运用Matlab 实现光学中的几个傅立叶变换摘要:光学中的傅立叶变换具有难度高,抽象性大的特点,而Matlab 却具有强大的信号处理功能,结合光学中傅立叶变换、傅立叶级数、卷积定理的内容,通过Matlab 程序来体现 光学中几个傅里叶调动的直观演示。

关键词:傅立叶变换 Matlab 程序 傅立叶光学1. 引言:傅立叶变换的原理由正交级数的展开来完成,是将一个在时域收敛的函数展开成一系列不同频率谐波的叠加,从而达到解决周期性函数问题的目的。

在此根底上实行变动,对非周期函数进行时频变更。

跟着科学技术的不停成长与发展,信号处理在人们生产生活中应允了越来越普遍的应用,其中,采用通信频域的方法比起经典的方法体现出越来越多的优点,当今,光学中傅立叶变换和信号处理成为信号分析与处理的一种非常重要的手段和工具。

Matlab 是数学计算过程中可以用到的一种数学工具,其中,电子计算机为应用数学管理实际问题创造了必不可少的物质条件,如今,在电子技术高度发达的数学领域,技术科学中最有研究价值的是数学研究领域,而数学领域中数值分析和数学建模成为了重点中的重点。

1. 光学傅立叶变换光学傅立叶变动是光学中信息处理的根底,其中所运用的道理便是通过光学中透镜来实现傅立叶的变换效应,相干光的照射会使透镜L 后焦面上光场的复振幅分布即是位于透镜物体前焦面的复振幅函数F(x,y)的立叶变换F(u,v)。

将两个傅立叶变换串联就构成了典型的4厂(厂为透镜焦距)光学处理系统:Ll 的前焦面称为输入平面或物平面,Ll 的后焦面与L2的前焦面重合,称为频谱面或傅立叶面,L2的后焦面为输出平面或像平面。

待处理的图像信号可以是胶片或干板,也可以是空间光学调制器。

相干光(激光)经准直后形成宽束平行光照射位于输入平面上振幅透过率为厂(x,y)的胶片(相当于灰度为厂(x,y)的图像),由于Ll 的傅立叶变换效应,在频谱面上形成图像的傅立叶空间频谱,经L2的再次变换(傅立叶逆变换)在像平面上则形成原图的反像。

matlab如何做傅里叶变换

matlab如何做傅里叶变换

matlab如何做傅里叶变换
MATLAB 是一种用于数学建模和计算的高级编程语言,它拥有丰富的图形处理、计算和可视化工具,可以为用户提供强大的思维创新和简化研究的方法。

傅里叶变换 (FFT) 是一种快速的数学处理方法,可以用来将信号和系统的时间域表示转换为频率域中的表示。

MATLAB 具有内置函数,可帮助用户执行傅里叶变换,从而为用户提供了非常方便的使用方式。

首先,使用 MATLAB 中的 fft 函数可以进行傅立叶变换。

由于傅里叶变换是一种离散变换,因此在使用过程中,需要考虑计算时的采样频率等问题,使用如下语句可以实现:y = fft(x,n)。

其中,x 表示要进行变换的原始信号,n 表示要进行傅里叶变换的长度,默认的n 为原始信号的长度。

此外,MATLAB 还提供了另一个相关的函数 ifft,用于进行逆变换。

它的函数形式与前文所述的进行正向变换的函数非常类似,如下所示:ifft(x,n),其中 x 表示要逆变换的存储在矢量中的信号,n 表示要进行反变换的长度,默认的 n 为 x 的长度。

此外,MATLAB 还提供了另一个函数 fftshift,它主要用于移动傅里叶变换的中心位置,并调整频域的形状,因此可以有效地提高频谱的准确性。

最后,MATLAB 还提供了多种其他的傅里叶变换相关的相关函数,例如 fft2 用于二维离散时间信号的变换,fft3 用于三维离散时间信号的变换,以及 rofft、gofft 等形式的实数和复数形式的变换等。

因此,MATLAB 具有可扩展性强的特点,可以为不同的傅立叶变换应用场景提供支持。

Matlab技术傅里叶变换

Matlab技术傅里叶变换

Matlab技术傅里叶变换引言傅里叶变换是一种在信号处理和图像处理领域广泛应用的数学工具。

通过傅里叶变换,我们可以将一个信号或图像分解为不同频率的分量,从而更好地理解信号或图像的特性。

在实际应用中,Matlab是一个功能强大的工具,用于实现傅里叶变换和信号处理。

本文将介绍Matlab中傅里叶变换的基本原理、实现方法以及一些实际应用案例。

一、傅里叶变换的基本原理傅里叶变换是一种将一个函数或信号表示为频率分量的工具。

它可以将一个时域函数转换为频域函数,从而得到不同频率分量的振幅和相位信息。

在数学上,傅里叶变换将一个函数f(t)表示为连续频谱的形式,即F(ω),其中ω为频率。

傅里叶变换的基本公式如下:F(ω) = ∫f(t)e^(-jωt)dt其中,F(ω)表示频域函数,f(t)表示时域函数,j表示虚数单位,ω表示频率,e 为自然对数的底。

二、Matlab中傅里叶变换的实现方法在Matlab中,傅里叶变换可以通过fft函数来实现。

fft函数是Fast Fourier Transform的缩写,是一种快速傅里叶变换算法。

使用fft函数,我们可以方便地进行信号的频域分析。

具体实现步骤如下:1. 准备输入信号数据。

在Matlab中,可以通过向量或矩阵的形式表示一个信号。

2. 调用fft函数进行傅里叶变换。

输入参数为信号数据,输出结果为频域函数。

3. 对频域函数进行处理和分析。

可以进行滤波、频谱分析等操作。

4. 反傅里叶变换。

如果需要将频域函数转换回时域函数,可以使用ifft函数。

通过以上步骤,我们可以方便地实现对信号的傅里叶变换和频域分析。

三、实际应用案例傅里叶变换在信号处理和图像处理领域有着广泛的应用。

下面将介绍几个实际案例,展示了傅里叶变换的实际应用。

1. 音频信号处理音频信号是一种由不同频率的声波组成的信号。

通过傅里叶变换,我们可以将音频信号分解为不同频率分量的振幅和相位。

这使得我们能够实现音频信号的滤波、频谱分析和降噪等操作。

matlab实现傅里叶变换

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 应用于频谱分析需要注意的两个问题:即采样可能导致信号混叠和截断信号引起的频谱泄漏。

基于Matlab的计算全息图的制作及再现-综述

基于Matlab的计算全息图的制作及再现-综述

基于Matlab的计算全息图的制作及再现摘要:在科技和信息技术飞速发展的今天,真实地再现三维物场是成像技术的重要发展趋势。

在3D电影、虚拟现实、多媒体显示等领域,三维立体显示技术有重要的应用价值。

目前,实现三维立体显示大致有四种途径:体视法、集成成像法、体素法以及基于全息显示技术的方法。

体视法和集成成像法采用二维屏幕静态或动态地显示具有视差的二维图像,并利用人眼的双目视差和视觉暂留效应表现出三维效果,实际上这种方式只有心理景深,而没有实际的物理景深,难以满足人们对高质量立体观感的需求。

其发展相对比较成熟,在军事、CAD/CAM、3D显示、模拟与训练和医疗等领域得到广泛的应用。

但可视角度、舒适度等问题仍需进一步解决。

体素法是将三维信息分成多个截面的二维图像,并通过高刷新率的投影装置在将这些图像投影在特制的屏幕上,可在空间显示三维立体影像,从而满足多角度观察的需求。

但可显示的三维物体尺寸较小,系统结构复杂,造价昂贵,实时性有待提高。

体视法、集成成像法、体素法这三种方法本质上并非再现真正意义的三维信息。

而利用全息技术能够存储并再现原物体的三维信息。

全息制作包括两种方式,光学全息和计算全息。

光学全息基于光学干涉原理利用感光胶片来记录全息图,后续的处理繁琐而费时,限制了全息技术的实际应用。

相比光学全息,计算全息技术则不受传统记录介质与二维屏幕显示的约束,它是建立在数字计算与现代光学基础上的一种新的制作全息图的技术,它不需要物体的实际存在,而是把物波的数学描述输入计算机处理后,输出全息图,因而具有独特的优点和灵活性。

计算全息图(Computer Generated Holography,简称CGH )记录了实际物体或虚构物体光波的振幅和相位,将合成的CGH输出到空间光调制器(SLM),在空间再现三维虚构像。

关键词:Matlab; Kinect;计算全息;傅里叶变换;迭代傅里叶变换;博奇编码;1国内外研究现状全息技术发展已经有将近半个世纪的历史,在1965年,随着计算机科学技术的发展,Lohmann等人用计算机合成通讯理论中的抽样理论,奠定了计算全息技术的理论基础,并且做出了世界上第一张计算全息图(CGH)。

matlab中进行傅里叶变换

matlab中进行傅里叶变换

matlab中进行傅里叶变换Matlab在处理傅立叶变换方面有强大的功能,是广泛应用于科学和工程领域的一种强大的工具。

傅里叶变换用于分析函数上无限细分的离散点或窗口。

它可以将信号分解为不同频率的小段,这样可以了解信号在各频率段中的分布,从而研究信号的特性。

Matlab中的傅里叶变换有两种形式,分别是离散傅里叶变换(DFT)和连续傅里叶变换(FFT)。

离散傅里叶变换通过在某一函数的坐标轴上对该函数的离散点进行变换来实现。

它是将时域的函数变换为频域的函数,它不仅精确而且快速,有较大的应用价值。

连续傅里叶变换(FFT)则是一种嵌入式算法,它可以将函数窗口中的信号进行“压缩”,以便进一步分解更小的频段中的信号。

FFT算法可以做到在相对较短的时间内,对每个频率段的信号分布进行精确统计。

Matlab中的傅里叶变换可以通过命令行方式进行,也可以使用Matlab的函数来完成。

下面分别介绍它们的两种实现方式:1、利用命令行来实现傅里叶变换。

使用fourier()命令可以得到傅里叶变换的结果,其语法如下:>> Fourier(H)其中H是一个多项式,它将包含出现在信号中的所有频谱,即傅里叶变换的结果。

2、利用Matlab函数完成傅里叶变换。

Matlab中提供了fft()函数,它可以实现快速傅里叶变换(FFT),语法如下:>> fft(x)其中x是一个向量或一组数据,它将得到傅里叶变换的结果,有助于快速分析信号的频谱分布情况。

此外,Matlab还提供了一组函数来完成频谱分析,方法也很简单,只要调用频谱分析函数即可,其语法如下:>>spectrum(x,n)其中x是一组数据,n是采样率。

该函数可以做出信号的频谱图,从而更直观地分析信号特性。

总之,Matlab提供了强大的工具来实现快速傅里叶变换,这些工具使得频谱分析变得更容易,而且有助于突出信号中特定频段的特征,这对于信号处理非常有用。

matlab编程实现傅里叶变换

matlab编程实现傅里叶变换

傅里叶变换是信号处理和图像处理中的重要数学工具,可以将一个信号或图像从时域转换到频域。

MATLAB作为一款强大的数学软件,可以方便地实现傅里叶变换并进行相应的分析和处理。

本文将介绍如何使用MATLAB编程实现傅里叶变换,并探讨其在信号处理和图像处理中的应用。

一、MATLAB中的傅里叶变换函数在MATLAB中,可以使用fft函数来进行一维离散傅里叶变换(DFT)的计算,使用fft2函数进行二维离散傅里叶变换(DFT)的计算。

这两个函数的基本语法如下:1. 一维离散傅里叶变换Y = fft(X)其中,X是输入的一维信号(向量),Y是输出的一维频谱(向量)。

2. 二维离散傅里叶变换Y = fft2(X)其中,X是输入的二维图像(矩阵),Y是输出的二维频谱(矩阵)。

除了fft和fft2函数外,MATLAB还提供了ifft和ifft2函数用于进行离散傅里叶逆变换。

通过这些函数,我们可以方便地实现傅里叶变换和逆变换的计算。

二、MATLAB中的傅里叶变换实例为了更好地理解MATLAB中的傅里叶变换实现,我们可以通过一个具体的实例来进行演示。

假设我们有一个包含两个正弦波的信号,我们首先可以使用MATLAB生成这个信号,并对其进行傅里叶变换。

生成信号fs = 1000; 采样频率为1000Hzt = 0:1/fs:1-1/fs; 时间范围为1秒f1 = 50; 第一个正弦波的频率为50Hzf2 = 120; 第二个正弦波的频率为120Hzx = 0.7*sin(2*pi*f1*t) + sin(2*pi*f2*t); 生成包含两个正弦波的信号进行傅里叶变换N = length(x); 信号的长度X = fft(x)/N; 进行离散傅里叶变换,并进行归一化处理f = (0:N-1)*(fs/N); 计算频率轴figure;subplot(2,1,1);plot(f,abs(X)); 绘制频谱幅度title('单边频谱');xlabel('频率/Hz');ylabel('幅度');subplot(2,1,2);plot(f,angle(X)); 绘制频谱相位title('频谱相位');xlabel('频率/Hz');ylabel('相位');通过上面的实例,我们可以看到,MATLAB可以很方便地实现最常见的傅里叶变换,并且提供了丰富的绘图功能来呈现变换结果。

MAtlab-傅里叶变换-实验报告(最新-编写)

MAtlab-傅里叶变换-实验报告(最新-编写)

MAtlab-傅里叶变换-实验报告(最新-编写)一、实验目的1. 了解傅里叶变换的基本概念及其在信号处理中的应用;2. 掌握使用Matlab软件进行傅里叶变换的方法;3. 通过实验掌握傅里叶变换的计算与图像分析方法。

二、实验原理1. 傅里叶级数傅里叶级数是一类振幅、频率和相位相同的正弦(余弦)函数构成某一周期函数的和。

若函数f(t)可以表示为周期2π的函数,则有:f(t) = a0 + ∑[an*cos(nwt) + bn*sin(nwt)] (1)其中,a0、an、bn为常数,w=2π/T为角频率,T为周期。

傅里叶级数引入相位角,使得函数形态可以更加丰富,而且描述更加直观。

假设n=0时,a0是函数f(t)的常数项,且an、bn分别表示f(t)的奇、偶对称部分的振幅,即:a0 = (1/2π)∫[f(t)]dt,an = (1/π)∫[f(t)*cos(nwt)]dt,bn =(1/π)∫[f(t)*s in(nwt)]dt式中,*为乘积,∫为积分。

在时域中,傅里叶分析用来分析周期性信号的性质。

但是,在实际应用中,很少有真正的周期性信号,因此需要将傅里叶分析推广到非周期性信号上,即傅里叶变换。

原信号可以表示为一个函数f(t),其傅里叶变换可以表示为:F(w) = ∫[f(t)*e^(-jwt)]dt其中,j为虚数单位,w为角频率。

傅里叶变换将信号从时域变换到频域,通常使用复数表示幅值与相位。

同时,傅里叶变换也具有很高的线性性质。

即,若有两个函数f1(t)和f2(t),其傅里叶变换分别是F1(w)和F2(w),则下列变换同样成立:a1*f1(t) + a2*f2(t)的傅里叶变换为a1*F1(w) + a2*F2(w)其中,a1、a2为常数。

最后,傅里叶变换的性质包括线性、平移、频移、反褶和自相关性等,这些性质都对信号处理和分析具有实际意义。

三、实验内容本实验主要分为两个部分:1. 计算周期波形的傅里叶级数并绘制其频谱图和振幅谱图。

matlab对光谱作傅里叶变换

matlab对光谱作傅里叶变换

matlab对光谱作傅里叶变换简介:傅里叶变换是一种数学方法,用于分析和表示信号或数据的频率成分。

在光学领域,傅里叶变换常用于分析光谱。

MATLAB是一种强大的编程语言,可以帮助我们方便地实现这一过程。

步骤1. 导入数据首先,我们需要导入我们需要分析的光谱数据。

这可以是实验测量得到的光谱数据,也可以是模拟生成的光谱数据。

在MATLAB中,我们可以使用“load”函数来导入数据。

2. 预处理在傅里叶变换之前,我们可能需要对光谱数据进行一些预处理,例如去噪、归一化等。

在MATLAB中,我们可以使用“imnoise”函数去除噪声,使用“norm”函数进行归一化处理。

3. 计算傅里叶变换在MATLAB中,我们可以使用“fft”函数来计算傅里叶变换。

例如,如果我们有一个一维数组表示光谱数据,我们可以使用以下命令计算其傅里叶变换:```matlabspectrum_fft = fft(spectrum_data);```4. 分析结果傅里叶变换的结果是一个复数数组,表示光谱数据的频率成分。

我们可以通过以下命令计算其幅度谱和相位谱:```matlabamplitude_spectrum = abs(spectrum_fft);phase_spectrum = angle(spectrum_fft);```5. 反傅里叶变换如果我们想要将频率成分转换回原始的光谱数据,我们可以使用“ifft”函数进行反傅里叶变换。

例如:```matlabreconstructed_spectrum = ifft(spectrum_fft);```6. 结果可视化最后,我们可以使用MATLAB的绘图功能将处理后的光谱数据进行可视化。

例如,我们可以使用“plot”函数绘制幅度谱和相位谱,使用“semilogy”函数绘制对数幅度的光谱数据。

总结在MATLAB中,我们可以方便地实现光谱数据的傅里叶变换和反傅里叶变换。

通过这种技术,我们可以分析和表示光谱数据的频率成分,从而更好地理解光谱的特性。

matlab中的傅里叶变换

matlab中的傅里叶变换

Matlab中的傅里叶变换傅里叶变换是一种重要的信号处理技术,可以将一个信号从时域转换到频域。

在Matlab中,傅里叶变换有着广泛的应用,可以用于信号分析、滤波、图像处理等领域。

本文将介绍Matlab中的傅里叶变换函数、使用方法以及一些常见应用场景。

1. 傅里叶变换函数在Matlab中,有两个主要的傅里叶变换函数:fft和ifft。

其中,fft用于计算离散傅里叶变换(Discrete Fourier Transform, DFT),而ifft用于计算逆离散傅里叶变换(Inverse Discrete Fourier Transform, IDFT)。

1.1 fftY = fft(X)函数fft将输入信号X进行DFT,并返回结果Y。

输入信号X可以是向量或矩阵。

如果X是一个向量,则Y是它的DFT结果;如果X是一个矩阵,则Y是每列的DFT结果。

1.2 ifftX = ifft(Y)函数ifft将输入信号Y进行IDFT,并返回结果X。

输入信号Y可以是向量或矩阵。

如果Y是一个向量,则X是它的IDFT结果;如果Y是一个矩阵,则X是每列的IDFT结果。

2. 傅里叶变换的使用方法使用傅里叶变换函数进行信号处理通常包括以下几个步骤:2.1 生成输入信号首先,需要生成一个输入信号。

可以使用Matlab中的各种函数来生成不同类型的信号,例如正弦波、方波、脉冲信号等。

Fs = 1000; % 采样率T = 1/Fs; % 采样周期L = 1000; % 信号长度t = (0:L-1)*T; % 时间向量% 生成正弦波信号f = 50; % 正弦波频率x = sin(2*pi*f*t);2.2 进行傅里叶变换接下来,使用fft函数对输入信号进行傅里叶变换。

Y = fft(x);2.3 计算频谱通过傅里叶变换得到的结果Y是复数形式的频域数据。

可以通过计算幅度谱和相位谱来表示频域信息。

P2 = abs(Y/L); % 计算幅度谱P1 = P2(1:L/2+1); % 取一半长度(对称性)P1(2:end-1) = 2*P1(2:end-1); % 奇数长度修正f = Fs*(0:(L/2))/L; % 计算频率向量% 绘制频谱图figure;plot(f, P1);title('Single-Sided Amplitude Spectrum of x(t)');xlabel('f (Hz)');ylabel('|P1(f)|');2.4 反变换回时域(可选)如果需要,可以使用ifft函数将频域信号转换回时域。

MATLAB实现计算全息

MATLAB实现计算全息

用MATLAB 软件和液晶光阀实现傅立叶变换计算全息制作及其再现姚雪灿指导教师 阎晓娜(上海大学理学院物理系,上海 200444)摘要:利用MATLAB 语言制作了一个迂回相位编码的傅立叶变换全息图,使用电寻址的液晶光阀作为全息图的实时记录介质对得到的傅立叶计算全息图进行光学再现,并对编码过程中加随机相位和不加随机相位后的再现图进行了比较讨论。

关键词:计算全息 傅立叶变换全息 MATLAB 液晶光阀 迂回相位编码全息制作包括二种方式,光学全息和计算全息。

光学全息用光学干涉原理制作,计算全息是用计算机对物波场的数学描述进行抽样、计算、编码而制作。

计算全息可以制作已存在物体的全息图,也可以制作不存在物体的全息图,只要物光波场可以用数学描述出来。

制作的计算全息图要以适合光学再现的尺寸和方式来输出。

由于计算全息图上每个抽样单元的尺寸在微米量级,需要专门的光学缩微照相系统或微光刻系统。

在要求较低情况下也可用照相机将显示在计算机屏幕或打印输出的计算全息原图缩拍到高分辨感光胶片上,通过显影、定影等处理得到可用于光学再现的全息图。

由于记录介质是照相胶片,这就限制了它在实时处理中的应用。

近年来,随着高分辨电寻址空间光调制器的发展,像元尺寸在微米量级,像素数超过100万的振幅型或相位型空间光调制器已经完全实用化。

其中最具代表性的是液晶光阀,电寻址的液晶光阀是由驱动电路驱动的LCD ,根据寻址电信号改变每一液晶像素的透过率,从而把电信号转换成空间的光强分布。

液晶光阀可以作为实时的信号处理和显示器件,代替全息干板可进行实现计算全息图的实时输出和再现。

本文提出一种利用电寻址液晶光阀作为实时记录介质的计算机制全息图的产生方法,实验结果证明了这种方法的可行性。

1 用Matlab 软件实现傅立叶变换计算全息图傅立叶变换全息记录的复数波面是物光波的傅立叶变换。

计算傅立叶变换全息图的制作包括:对物光波抽样、离散傅立叶变换、编码、画图、图像的输出。

用Matlab软件和LCD实现数字全息图的制作和再现

用Matlab软件和LCD实现数字全息图的制作和再现

用Matlab软件和LCD实现数字全息图的制作和再现
康果果;谢敬辉;齐月静;李闻;刘科
【期刊名称】《北京理工大学学报》
【年(卷),期】2005(25)6
【摘要】应用Matlab语言和液晶空间光调制器(LCD)实现了计算机全息图的快速制作,并对绘制出的傅里叶型计算机全息图进行了计算机模拟再现.结合博奇型和罗曼型不同的编码方法,讨论了应用Matlab语言制作计算机全息图的原理、方法和步骤,并分析了LCD器件的作用和局限.实验证明,这一方法与用传统语言编程和绘图的方法相比,可以减少3/4的计算量,输入一幅图像在电脑上运行,数秒钟后便可画出编码图和再现像.
【总页数】4页(P509-511)
【关键词】计算机全息图;傅里叶变换;再现像
【作者】康果果;谢敬辉;齐月静;李闻;刘科
【作者单位】北京理工大学信息科学技术学院光电工程系
【正文语种】中文
【中图分类】O438.1
【相关文献】
1.MATLAB中多EDA软件实现数字系统设计 [J], 高峰;周永川
2.利用相移算法和滤波实现数字全息图的再现 [J], 刘智勇;梁瑞生;黄列鹏;杨玉丽;李锐峰
3.基于Matlab的计算全息图的制作与数字再现的研究 [J], 赵付丽;章鹤龄;邢敬婷;冯秀梅
4.基于MATLAB数字图像GLCM纹理分析软件实现 [J], 王辉; 丛榆坤; 陈金阳; 王敏
5.基于MATLAB数字图像GLCM纹理分析软件实现 [J], 王辉;丛榆坤;陈金阳;王敏
因版权原因,仅展示原文概要,查看原文内容请购买。

小作业-用matlab实现傅立叶变换

小作业-用matlab实现傅立叶变换

用matlab实现傅立叶变换用matlab 实现傅立叶变换习题:如图所示锯齿波信号,分别去一个周期的抽样数据1()X t ,01t ≤≤和五个周期的数据()X t ,05t ≤<,计算其傅立叶变换1()X w 和()X w 。

锯齿波信号波形图编程如下:方法1:%计算单位锯齿波和五个周期波形的傅立叶变换%解法1:基本用循环实现数值的计算;对于5个周期锯齿波用内外循环来实现T1=1; %一个周期锯齿波 N1=10000;t1=linspace(0,T1-T1/N1,N1)';f1=0*t1;f1=1-2*t1;OMG=32*pi; %频率抽样区间 K1=100; %频率抽样点数 omg=linspace(-OMG/2,OMG/2-OMG/K1,K1)';X1=0*omg;for k=1:K1 %求解五个周期函数的傅里叶变换系数for n=1:N1X1(k)=X1(k)+T1/N1*f1(n)*exp(-j*omg(k)*t1(n));endendfs1=0*t1;for n=1:N1 %通过傅里叶逆变换还原原函数for k=1:K1fs1(n)=fs1(n)+OMG/2/pi/K1*X1(k)*exp(j*omg(k)*t1(n));endendT2=5; %五个周期锯齿波N2=10000;t2=linspace(0,T2-T2/N2,N2)';f2=0*t2;t3=linspace(0,T2/5-T2/N2,N2/5)'; %先定义一个周期内的锯齿波变量抽样值f3=0*t3; %初始化一个周期的函数抽样值f3=1-2*t3; %表示出一个周期内函数抽样值for s=0:4 %将一个周期锯齿波平移到五个周期,通过循环控制for a=1:N2/5f2(2000*s+a)=f3(a);endend %将函数拓展表示为五个周期X2=0*omg;for k=1:K1 %求解五个周期函数的傅里叶变换系数for n=1:N2X2(k)=X2(k)+T2/N2*f2(n)*exp(-j*omg(k)*t2(n));endendfs2=0*t2;for n=1:N1 %通过傅里叶逆变换还原原函数for k=1:K1fs2(n)=fs2(n)+OMG/2/pi/K1*X2(k)*exp(j*omg(k)*t2(n));endendfigure;subplot(2,2,1);plot(omg,abs(X1),'r'); %以幅度频谱画图xlabel('Frequency'),ylabel('Amplitude');title('单个锯齿波的幅频曲线');subplot(2,2,2);plot(t1,fs1,'r');xlabel('Second(s)'),ylabel('Amplitude');title('由频域还原时域函数');subplot(2,2,3);plot(omg,abs(X2),'r');xlabel('Frequency'),ylabel('Amplitude');title('五个周期锯齿波的幅频曲线');subplot(2,2,4);plot(t2,fs2,'r');xlabel('Second(s)'),ylabel('Amplitude');title('由频域还原时域函数');相关曲线:方法2:%计算单位锯齿波和五个周期波形的傅立叶变换%解法2:数值算法用矩阵实现,大大加快了运行速度;并且直接调用“sawtooth”生成5个周期的锯齿波T1=1; %单个周期时域范围N1=10000; %时域抽样点数t1=linspace(0,T1-T1/N1,N1)'; %生成抽样时间点f1=1-2*t1; %生成抽样函数值OMG=32*pi; %频域范围K1=100; %频域抽样点数omg=linspace(-OMG/2,OMG/2-OMG/K1,K1)'; %生成抽样频率点X1=T1/N1*exp(-j*kron(omg,t1.'))*f1; %傅里叶正变换求解傅里叶系数fs1=OMG/2/pi/K1*exp(j*kron(t1,omg.'))*X1; %傅里叶逆变换还原时域函数T2=5; %五个周期时域范围N2=10000; %时域抽样点数t2=linspace(0,T2-T2/N2,N2)'; %生成抽样时间点fs2=0*t2;f2=sawtooth(t2*2*pi,0); %生成五个周期的锯齿波X2=T2/N2*exp(-j*kron(omg,t2.'))*f2; %傅里叶正变换求解傅里叶系数fs2=fs2+OMG/2/pi/K1*exp(j*kron(t2,omg.'))*X2; %傅里叶逆变换还原时域函数figure; %生成一个2*2矩阵子图subplot(2,2,1);plot(omg,abs(X1),'r'); %一个周期时的频谱图xlabel('Frequency'),ylabel('Amplitude')title('单个锯齿周期幅频特性曲线');subplot(2,2,2);plot(t1,fs1,'r'); %还原的时域函数xlabel('Time'),ylabel('Amplitude')title('Function after recovered');subplot(2,2,3);plot(omg,abs(X2),'r'); %五个周期时的频谱图xlabel('Frequency'),ylabel('Amplitude')title('五个锯齿周期幅频特性曲线');subplot(2,2,4);plot(t2,fs2,'r'); %还原的时域函数xlabel('Time'),ylabel('Function after recovered')title('Function after recovered');相关曲线:仿真小结:经过本课程的学习,我们小组进一步对于Matlab的数值算法有了自己的了解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用MATLAB 软件和液晶光阀实现傅立叶变换计算全息制作及其再现姚雪灿指导教师 阎晓娜(上海大学理学院物理系,上海 200444)摘要:利用MATLAB 语言制作了一个迂回相位编码的傅立叶变换全息图,使用电寻址的液晶光阀作为全息图的实时记录介质对得到的傅立叶计算全息图进行光学再现,并对编码过程中加随机相位和不加随机相位后的再现图进行了比较讨论。

关键词:计算全息 傅立叶变换全息 MATLAB 液晶光阀 迂回相位编码全息制作包括二种方式,光学全息和计算全息。

光学全息用光学干涉原理制作,计算全息是用计算机对物波场的数学描述进行抽样、计算、编码而制作。

计算全息可以制作已存在物体的全息图,也可以制作不存在物体的全息图,只要物光波场可以用数学描述出来。

制作的计算全息图要以适合光学再现的尺寸和方式来输出。

由于计算全息图上每个抽样单元的尺寸在微米量级,需要专门的光学缩微照相系统或微光刻系统。

在要求较低情况下也可用照相机将显示在计算机屏幕或打印输出的计算全息原图缩拍到高分辨感光胶片上,通过显影、定影等处理得到可用于光学再现的全息图。

由于记录介质是照相胶片,这就限制了它在实时处理中的应用。

近年来,随着高分辨电寻址空间光调制器的发展,像元尺寸在微米量级,像素数超过100万的振幅型或相位型空间光调制器已经完全实用化。

其中最具代表性的是液晶光阀,电寻址的液晶光阀是由驱动电路驱动的LCD ,根据寻址电信号改变每一液晶像素的透过率,从而把电信号转换成空间的光强分布。

液晶光阀可以作为实时的信号处理和显示器件,代替全息干板可进行实现计算全息图的实时输出和再现。

本文提出一种利用电寻址液晶光阀作为实时记录介质的计算机制全息图的产生方法,实验结果证明了这种方法的可行性。

1 用Matlab 软件实现傅立叶变换计算全息图傅立叶变换全息记录的复数波面是物光波的傅立叶变换。

计算傅立叶变换全息图的制作包括:对物光波抽样、离散傅立叶变换、编码、画图、图像的输出。

在制作全息图的过程中,编码是最关键的一步,通过编码把二维光场的复振幅分布变换为全息图的二维透过率分布。

本文以迂回相位编码来介绍编码过程。

设抽样后物光波的复振幅经过离散傅里叶变换后的频谱分布为复数F(m,n), 记为F(m,n) = R(m,n)+iI(m,n), F(m,n) = A(m,n)·exp[i φ(m,n)] (1)其中, A(m,n)和φ(m,n)分别代表全息图上各点的幅值和相位,A(m,n) =),(),(22n m I n m R +, φ(m,n) =arctg[I(m,n)/R(m,n)] (2)由于光学模板的最大透过率为1,所以在编码前还应对A(m,n)的值进行归一化,使其最大值为1。

假定将物面分为N×N 个抽样单元, 抽样间距为δx 和δy, 其间距要遵循Nyquist 判据。

采用罗曼Ⅲ型编码方法,通过改变每个抽样单元内通光孔径的面积来编码振幅,通过改变通光孔径中心与抽样单元中心的位置来编码相位。

最后每个像素用一个矩形孔表示,矩形孔的宽度为Wδx, 其中W 为一常数。

矩形孔径的高度为Lmnδy,与归一化振幅成正比, Pmnδx 是孔径中心与单元中心的距离,并与抽样点的位相成正比。

孔径参数与复值函数的关系如下,mn L =mn A , mn P =mn φ/2πK (3)经过计算,取W =1/2, K =1。

根据以上二元傅里叶变换全息图的实现原理,采用以下的算法思想在MATLAB 中进行二元傅里叶变换计算全息图的制作,采用罗曼Ⅲ型编码方式且以字母K 为例。

其编码如下: b=zeros(128,128); %采样点阵为128X128。

b(8:120,24:40)=1;b(8+M,(96-M):(112-M))=1;endfor N=1:56b(64+N,(40+N):(56+N))=1;end%K图形用矩阵表示如上。

也可选取简单图形F表示。

A=b;a=rand(128,128);aa=exp(i*2*pi.*a);%给矩阵图K一个随机相位,随机相位因子的作用是平滑傅立叶频谱。

AA=double(A).*aa;Afft2=fft2(AA);%用matlab工具箱对带有随机相位因子的K图进行快速傅立叶变换。

A1=abs(Afft2);B2=angle(Afft2)/(2*pi);%对频谱的相位进行归一化A1max=max(max(A1));A1=A1/A1max; %对频谱的幅值进行归一化s=1; %设定正方形单元的边长figure;axis([0 128 0 128]);hold on;for J=1:128y0=s/2+(J-1)*s;for I=1:128x0=s/2+(I-1)*s; %计算抽样单元的中心位置H=A1(J,I)*s; %矩形高度直接等于归一化的频谱幅值F1=B2(J,I)*s; %偏离单元中心的量W=s/2; %矩形宽度if abs (F1)<=s/4x2=x0-W/2; x3=x0+W/2; y2=y0-H/2; y3=y0+H/2;fill([x2,x2,x3,x3],[y2,y3,y3,y2],'k');else if F1>s/4x22=x0+F1-W/2;x33=x0+s/2;y22=y0-H/2;y33=y0+H/2;fill([x22,x22,x33,x33],[y22,y33,y33,y22],'k');x222=x0-s/2;x333=x0+F1+W/2-s;fill([x222,x222,x333,x333],[y22,y33,y33,y22],'k');%根据迂回相位编码原理,对φ<π/2,则直接用单元的高度表达频谱的幅值,偏移中心量表达频谱的相位。

else x22=x0-s/2;x33=x0+F1+W/2;y2=y0-H/2;y3=y0+H/2;fill([x22,x22,x33,x33],[y2,y3,y3,y2],'k');x222=x0+F1-W/2+s;x333=x0+s/2;fill([x222,x222,x333,x333],[y2,y3,y3,y2],'k');%对开孔矩形的位置偏离中心超过,则在进行位相编码时,当φ>π/2时,为了防止与邻近的矩形%孔发生重叠而造成全息图再现时产生失真,依据光栅衍射理论,在程序中采用了“模式溢出校%正法”,即将溢出部分移至本抽样单元的另一侧。

endendendaxis('equal');axis off;由上述程序运行得到的CGH图形如右:图1 迂回相型计算机制全息图(部分)2 用液晶光阀作为计算全息图记录介质实现光学再现液晶光阀是利用液晶的光学特性而制作的空间光调制器。

液晶是一种有机高分子化合物,既有晶体的取向性,又有液体的流动性。

当液晶分子有序排列时表现出光学各向异性:光矢量沿分子长轴方向时具有较大的非常光折射率n e;而垂直分子长轴方向为寻常光折射率n o。

若我们把两块玻璃合在一起,中间用一定厚度的间隔层控制玻璃间的距离,再在间隔中充满液晶,便形成一液晶盒。

液晶盒玻璃内表面经一定方法处理后,可以使盒中的液晶分子长轴沿表面的某一方向排列。

此时的液晶盒相当于一块晶轴与表面平行的晶体片,晶轴方向即为分子长轴方向。

若我们在组成液晶盒的两玻璃间加一定电压,盒里的液晶分子在电场的作用下会逐渐沿电场方向排列,即光轴向与表面垂直的方向偏转,其偏转程度与电场强度有关。

当一束直线偏振光通过此液晶盒时,出射光的偏振态将由加在液晶盒上的电压决定.由此实现了电场对光的偏振态控制。

液晶光阀正是利用此特点制作的器件。

一般的计算全息图像的输出使用照相缩小后再现,为了实现实时化处理,采用液光阀代替照相胶片作为记录介质。

实现再现的光路如图2。

如图2所示,透射型电寻址液晶光阀与计算机视频输出联结,接受其调制信号。

计算机输出全息图的电信号到液晶光阀上,由驱动的LCD根据寻址电信号改变每一个液晶像素的透过率,从而把电信号转换成空间的光强分布。

其中液晶光阀采用电寻址的液晶光阀。

图2 使用液晶光阀的计算全息再现光路图如图2所示,透射型电寻址液晶光阀与计算机视频输出联结,接受其调制信号。

计算机输出全息图的电信号加到液晶光阀上驱动电路上,根据寻址电信号改变每一个液晶像素的透过率,从而把电信号转换成空间的光强分布。

图3(a,b) 是用Matlab编码制作的傅立叶变换计算全息图通过液晶光阀实时显示,用光学再现得到的再现图像。

其中图3(a)和3(b)分别是编码过程中对K字母矩阵加随机相位和不加随机相位后再现图像。

由图可见,当加随机相位进行编码后所得到的图形较清晰。

图b则只显现出字母K图形的高频成分,而低频成分被滤去。

由此可推断,在对全息图进行编码时,如果对其图形未加入随机相位,那么作出的全息图又具有高通滤波器的功能,最后通过液晶光阀所成的重现像突出了边缘,这在图像处理中又称作边缘增强。

关于边缘增强的原理有待进一步讨论。

(a)加随机相位(b)不加随机相位图3 傅立叶变换计算机全息图字母K的重现像3、结束语本文通过运用MATLAB软件和液晶光阀对傅立叶计算全息进行编码和再现,并通过在编码时对矩阵加随相位和不加随机相位,得到两种截然不同的效果,看到了边缘增强的效果。

实践证明,利用一些现代化工具会对物理的研究更加有效,明朗,快捷。

参考文献:[1] 苏显渝等信息光学第一版北京科学出版社1999年第159—175页。

[2] 虞祖良,金国藩计算机制全息学第一版北京清华大学出版社1984年第31—41页。

[3] 宋菲君,Jutamulia S.近代光学信息处理[M] 北京大学出版社1998年第33—34页[4] 陈炳初,雷宏香,蔡志岗, 用MATLAB制作迂回相位编码的傅立叶变换计算全息图,中山大学研究生学刊(自然科学、医学版),27(2):60-65,2006.。

相关文档
最新文档