Volevo sottoporvi ad un dubbio che mi è venuto mentre facevo l'analisi spettrale di un segnale acquisito durante delle prove in laboratorio.
Premetto che necessito di questa analisi spettrale per valutare le componenti armoniche introdotte da un chopper step-up al variare del duty-cicle
Di seguito ho realizzato questo codice
- Codice: Seleziona tutto
i_in_k = 2*fft(i_in)/N; %Trasformata di Fourier (N numero di campioni)
h=length(i_in_k); %calcolo il numero armoniche
if h>=30
h=15;
else
h=round(h/2);
end
figure(1)
subplot(2,1,1)
plot(t,i_in,'LineWidth',1)
title('Andamento i_i_n')
ylabel('i_i_n [A]')
xlabel('t [sec]')
grid
subplot(2,1,2)
bar(abs(i_in_k(1:h))) %plot delle prime 15 armoniche
title('Spettro Armonico')
ylabel('Armoniche i_i_n [%]')
xlabel('indice armonico k')
grid
Ho dei dubbi in merito alla corretta realizzazione dell'analisi spettrale e la validità dei risultati ottenuti che però a me sembrano validi perché eseguendo lo script da me creato riesco a vedere i risultati attesi ovvero in un caso vengono introdotte un numero elevato di armoniche mentre in un altro di meno.
Il dubbio nasce dal fatto che ho trovato script in rete in cui viene elimitata la componente continua ad esempio così:
- Codice: Seleziona tutto
i_in_k0 = i_in_k(1)/2; %componente continua (valor medio della I)
i_in_k(1) = []; %tolgo il valor medio dal vettore i_in_k
i_in_fond = i_in_k(1);
i_in_kk = 100*i_in_k/i_in_fond; %adimensionalizzo rispetto all'armonica fondamentale
ma i risultati poi cambiano radicalmente
