Faire la FFT d'une partie du signal sur Matlab

Fermé
Zouyou - 22 juin 2015 à 14:50
Bonjour à tous,
Je travaille actuellement sur un projet d'étude sur la voix humaine.
Pour commencer ce projet, j'ai enregistré 15 secondes de ma voix. J'arrive à faire la FFT du signal complet. Cependant il m'est demandé de faire plusieurs plot de la FFT de mon signal.
C'est à dire que je voudrais faire la fft pour chaque seconde du signal.
Etant débutant sur ce logiciel, je ne maitrise pas toute la logique à adopter.
Alors si vous pouviez m'aider ça serait super!

Voici mon code:

%Time code:
clc;
clear all;
close all;
[y,Fs]=wavread('C:\Users\adee\Desktop\Project Voice Analysis\Part I - my voice\Voice.wav');
T = 1/Fs;
n=length(y);
t=linspace(0,length(y)/Fs,length(y));
figure(1);
plot(t, y, 'g')
t=(0:n-1)*T;
figure(10)
plot(t,y)

figure(11)
plot(t, y(t>=1 & t<=2))

%FFT code:
NFFT = 2^nextpow2(length(y)); % Next power of 2 from length of y
Y = fft(y,NFFT)/length(y);
f = Fs/2*linspace(0,1,NFFT/2+1);
FFT_signal= Y(1:NFFT/2+1);
% Plot single-sided amplitude spectrum.
figure(2)
plot(f,2*abs(FFT_signal))
title('Spectrum of y(t)')
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')


Merci d'avance!