Approximation d'un signal par série de Fourier

5 views (last 30 days)
Bonjour,
Dans le cadre d'un projet, je dois approximer un signal qui nous est donné (température en fonction du temps) sur une durée d'un an. Je dois approximer ce signal par une série de Fourier ie calculer les coefficient (amplitude/phase/fréquence) des sinus que je vais sommer pour m'en approcher. J'ai pour cela utiliser la FFT mais, après analyse du spectre, je n'arrive pas à reconstituer un signal proche.
Ci joint une partie du code:
if true
% code
Dt=28166400; %longueur total en sec
dt=600; %intervalle de temps
Fe=1/dt; %frequence de mesure
Ntot=46512; %nombre de mesure dans le tps
t0 = 0; tn = t0 + (0:1:Ntot)*dt;
fn = (1/Dt) + (1:1:Ntot)*(1/Dt) ;
y15=data(:,5); %data mon fichier source
yf15=fft(data(:,5),46512); %ajout de 3 jours = 431 mesures
amplitude=abs(yf15);
phase=angle(yf15);
approx=zeros(1,46513);
for i=1:46513; approx(i)=1.16*sin(2*pi*2.8e-7*tn(i)-2.05)+0.78*sin(2*pi*1.15e-5*tn(i)-8.88)+0.25*sin(2*pi*2.3e-5*tn(i)-2.33)+0;02*sin(2*pi*3.4e-5*tn(i)+7.23); end %coefficient que j'ai déterminer en calculant spectre et amplitude.
end
Cependant, j'ai un fonction somme de sinus qui n'a pas la même allure que le vrai graphe (au milieu sur la photo) et dont l'amplitude varie ne correspond pas au température
lue.
Auriez-vous des idée concernant la source du problème svp ? Je pense au tableau de fréquence ou au calcul des coefficient que j'ai injecté pour la fonction sommant les sinus.
Merci d'avance

Answers (1)

ZEFIZEF Ishak
ZEFIZEF Ishak on 1 Feb 2022
m

Categories

Find more on Just for fun in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!