VIDEO
Objectifs
Comprendre la notion du fenêtrage
Savoir l’utilité du fenêtrage
Savoir les différents types des fenêtres
Introduire la carte Portenta H7
Savoir implémenter la DFT en C/Arduino
Test de la DFT sur Arduino Mega/Due
Analyse des performances temporelles du code sur Mega/Due
Analyse de la DFT d’un signal sinusoïdal
Analyse de la DFT d’une entrée réelle
Prendre consciente du problème du sur-échantillonnage
Etc.
Voir le tuto pour plus de détails
Programme Complet
clear all; close all; clc; %% Analyse Temporelle N=2^13; f0=1;t0=1/f0; t=linspace(0,(10+1/3)*t0,N); ts=t(2)-t(1); fs=1/ts; s_t=5*sin(2*pi*f0*t)+sin(2*pi*2*f0*t)+sin(2*pi*10*f0*t); % Fenêtres de Hann Hh(1,:)=hann(N); % Fenêtres de Hann Hh(2,:)=blackman(N); % Fenêtre de Hamming Hh(3,:)=hamming(N); % Fenêtre de Blackman Hh(4,:)=gaussmf(t,[t(end)/5 t(end)/2]); % Fenêtre Gaussienne ti=linspace(0,1,N);Hh(5,:)=sin(2*pi*0.5*ti).^2; % Fenêtre sin² figure(1) plot(t,Hh','lineWidth',2);xlim([t(1) t(end)]);grid on; legend({'hann','blackman','hamming','Gauss','Sin²'},'fontsize',13); % return; %% Analyse Fréquentielle % Fenêtrage for i=1:5 s_tf(i,:)=s_t.*Hh(i,:); end; s_tf(6,:)=s_t; % FFT nfft=N; for i=1:6 s_fm(i,:)=fft(s_tf(i,:), nfft); end; df=fs/N; f=linspace(-fs/2-df,fs/2,nfft); % Affichage figure(2); subplot(211); plot(t,s_tf,'lineWidth',2); grid on; xlim([t(1) t(end)]); legend({'hann','blackman','hamming','Gauss','Sin²','Sans Fenêtre'},'fontsize',13); subplot(212); plot(f,20*log10(fftshift(abs(s_fm)/(N))),'lineWidth',2); grid on;xlim([-20*f0 20*f0]); legend({'hann','blackman','hamming','Gauss','Sin²','Sans Fenêtre'},'fontsize',13);