How to code this periodic function?

4 visualizzazioni (ultimi 30 giorni)
Niloufar
Niloufar il 31 Ott 2022
Risposto: Walter Roberson il 31 Ott 2022
I have this periodic function and I want to code it.I don't want to change the period and other parts of code because I calculate the fft of it.How can I do that?
syms x;
Fs = 50;
T = 1/Fs;
L = 100;
t = (0:L-1)*T;
X1 = zeros(1,length(t));
X1(abs(t)<T/4) = 1;
Y1 = fft(X1);
f = Fs*(0:(L-1))/L;

Risposte (1)

Walter Roberson
Walter Roberson il 31 Ott 2022
fft() assumes that the input is a subset of a periodic signal. For fft() purposes you can generate a positive integer number of cycles of samples and fft() that. Nothing special needs to be done, periodic is already assumed.
You should, however, take care that the last signal is the one before return to origin, not the return to origin itself. For example if you were sampling a function at each degree you would not sample at 0:360 (361 samples) you would sample at 0:359.

Categorie

Scopri di più su Fourier Analysis and Filtering in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by