fft2
Transformada rápida de Fourier en 2D
Sintaxis
Descripción
Y = fft2(
devuelve la transformada bidimensional de Fourier de una matriz X
)X
utilizando un algoritmo de la transformada rápida de Fourier, que es equivalente a calcular fft(fft(X).').'
.
Cuando X
es un arreglo multidimensional, fft2
calcula la transformada bidimensional de Fourier en las dos primeras dimensiones de cada subarreglo de X
que pueda tratarse como una matriz bidimensional para dimensiones superiores a 2. Por ejemplo, si X
es un arreglo de m
por n
por 1
por 2
, Y(:,:,1,1) = fft2(X(:,:,1,1))
y Y(:,:,1,2) = fft2(X(:,:,1,2))
. La salida Y
tiene el mismo tamaño que X
.
Ejemplos
Transformada en 2D
La transformada de Fourier en 2D es útil para procesar señales en 2D y otros datos en 2D, como imágenes.
Cree y represente datos en 2D con bloques repetidos.
P = peaks(20); X = repmat(P,[5 10]); imagesc(X)
Calcule la transformada de Fourier en 2D de los datos. Desplace el componente de frecuencia cero al centro de la salida y represente la matriz de 100 por 200 resultante, que tiene el mismo tamaño que X
.
Y = fft2(X); imagesc(abs(fftshift(Y)))
Rellene X
con ceros para calcular una transformada de 128 por 256.
Y = fft2(X,2^nextpow2(100),2^nextpow2(200)); imagesc(abs(fftshift(Y)));
Argumentos de entrada
X
— Arreglo de entrada
matriz | arreglo multidimensional
Arreglo de entrada, especificado como matriz o arreglo multidimensional. Si X
es del tipo single
, fft2
calcula de forma nativa en precisión simple e Y
es también del tipo single
. De lo contrario, Y
se devuelve como tipo double
.
Tipos de datos: double
| single
| int8
| int16
| int32
| uint8
| uint16
| uint32
| logical
Soporte de números complejos: Sí
m
— Número de filas de la transformada
escalar entero positivo
Número de filas de la transformada, especificado como escalar entero positivo.
Tipos de datos: double
| single
| int8
| int16
| int32
| uint8
| uint16
| uint32
| logical
n
— Número de columnas de la transformada
escalar entero positivo
Número de columnas de la transformada, especificado como escalar entero positivo.
Tipos de datos: double
| single
| int8
| int16
| int32
| uint8
| uint16
| uint32
| logical
Más acerca de
Transformada de Fourier en 2D
Esta fórmula define la transformada discreta de Fourier Y de una matriz X de m por n:
ωm y ωn son raíces complejas de unidad:
i es la unidad imaginaria. p y j son índices que van de 0 a m–1, y q y k son índices que van de 0 a n–1. Esta fórmula desplaza los índices para X e Y una unidad para reflejar los índices de matriz en MATLAB®.
Capacidades ampliadas
Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.
Notas y limitaciones de uso:
Para la salida MEX, MATLAB Coder™ usa la biblioteca que MATLAB utiliza para algoritmos FFT. De forma predeterminada, en el caso del código C/C++ independiente, el generador de código produce código para algoritmos FFT, en lugar de producir llamadas a la biblioteca FFT. Para generar llamadas a una biblioteca FFTW específica instalada, proporcione una clase de callback de biblioteca FFT. Para obtener más información sobre una clase de callback de biblioteca FFT, consulte
coder.fftw.StandaloneFFTW3Interface
(MATLAB Coder).Para simular un bloque MATLAB Function, el software de simulación usa la biblioteca que MATLAB utiliza para algoritmos FFT. De forma predeterminada, para generar código C/C++, el generador de código produce código para algoritmos FFT, en lugar de producir llamadas a la biblioteca FFT. Para generar llamadas a una biblioteca FFTW específica instalada, proporcione una clase de callback de biblioteca FFT. Para obtener más información sobre una clase de callback de biblioteca FFT, consulte
coder.fftw.StandaloneFFTW3Interface
(MATLAB Coder).Utilizando la biblioteca de sustitución de código (CRL), puede generar código optimizado que funciona en procesadores ARM® Cortex®-A con extensión Neon. Para generar este código optimizado, debe instalar el paquete de soporte Embedded Coder® para procesadores ARM Cortex-A (Embedded Coder). El código generado para ARM Cortex-A utiliza la biblioteca Ne10. Para obtener más información, consulte Condiciones Ne10 para que las funciones de MATLAB sean compatibles con procesadores ARM Cortex-A (Embedded Coder).
Utilizando la biblioteca de sustitución de código (CRL), puede generar código optimizado que funciona en procesadores ARM Cortex-M. Para generar este código optimizado, debe instalar el paquete de soporte Embedded Coder para procesadores ARM Cortex-M (Embedded Coder). El código generado para ARM Cortex-M utiliza la biblioteca CMSIS. Para obtener más información, consulte Condiciones CMSIS para que las funciones de MATLAB sean compatibles con procesadores ARM Cortex-M (Embedded Coder).
Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.
Entorno basado en subprocesos
Ejecute código en segundo plano con MATLAB® backgroundPool
o acelere código con Parallel Computing Toolbox™ ThreadPool
.
Esta función es totalmente compatible con entornos basados en subprocesos. Para obtener más información, consulte Ejecutar funciones de MATLAB en un entorno basado en subprocesos.
Arreglos GPU
Acelere código mediante la ejecución en una unidad de procesamiento gráfico (GPU) mediante Parallel Computing Toolbox™.
Notas y limitaciones de uso:
La salida
Y
siempre es compleja, aunque todas las partes imaginarias sean cero.
Para obtener más información, consulte Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Arreglos distribuidos
Realice particiones de arreglos grandes por toda la memoria combinada de su cluster mediante Parallel Computing Toolbox™.
Esta función es totalmente compatible con los arreglos distribuidos. Para obtener más información, consulte Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Historial de versiones
Introducido antes de R2006a
Abrir ejemplo
Tiene una versión modificada de este ejemplo. ¿Desea abrir este ejemplo con sus modificaciones?
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)