Using fft and ifft with less frequencies than input points

2 次查看(过去 30 天)
I want to use fft and ifft in the context of heat equation. Therefore the grid needs to be refined, but I dont want to use as many coefficients in the fft:
%Grid
Nx = 10001;
dx = L/(Nx-1);
x = linspace(0,L,Nx)';
%Function
f = @(x) rectangularPulse(0.5, 1.5, x);
f_values = arrayfun(f,x);
u0 = ifft(fft(f_values)); %Takes very long
What I would want to do, is to insert an N, f.e. N=100, but get an array 10001x1.
Thanks.

回答(1 个)

Matt J
Matt J 2025-2-27
编辑:Matt J 2025-2-27
What I would want to do, is to insert an N, f.e. N=100, but get an array 10001x1.
%Grid
Nx = 100;
L = 10;
dx = L/(Nx-1);
x = linspace(0,L,Nx)';
%Function
f = @(x) rectangularPulse(0.5, 1.5, x);
f_values = arrayfun(f,x);
u0 = ifft(fft(f_values),10001);
whos u0
Name Size Bytes Class Attributes u0 10001x1 160016 double complex

类别

Help CenterFile Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息

标签

产品


版本

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by