Using fft and ifft with less frequencies than input points

2 vues (au cours des 30 derniers jours)
Benedikt
Benedikt le 27 Fév 2025
Modifié(e) : Matt J le 27 Fév 2025
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.

Réponses (1)

Matt J
Matt J le 27 Fév 2025
Modifié(e) : Matt J le 27 Fév 2025
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

Catégories

En savoir plus sur Fourier Analysis and Filtering dans Help Center et File Exchange

Tags

Produits


Version

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by