taking FFT from a part of the signal

3 visualizaciones (últimos 30 días)
Negar
Negar el 21 de Sept. de 2013
Hello all, I have a sound signal in time domain , How can I take the FFT of a excerpt of it, say a 40ms section from 0.026sec to 0.3sec? Ive just been able to plot that segment in time domain, but I can not figure out how to plot its spectrum.. Here is my code, I hope someone can make it done.. Cheers,
clear all
close all
clc
%%Loading,Plotting and Listening to the signal
figure
[signal,Fs,nbits,opts] = wavread('stry.wav'); % Load
tSampling=1/Fs;
n=length(signal);
t=(0:n-1)*tSampling; %Making the time vector
plot(t,signal); % Plot
sound(signal,Fs); % Listen
%%2)Plot a 40ms section in the middle of the vowel /iy/
figure
plot(t,signal)
axis([0.3 0.34 -0.2 0.2]);
%%Taking FFT
signalF=fft(signal(0.03:0.34),1024);
fAxis=-Fs/2:Fs/1024:Fs/2-Fs/1024; %Making the frequency vector
plot(fAxis,abs(signalF));
title('Spectrum of signal(t)');
xlabel('Frequency (Hz)');
ylabel('|signal(f)|');

Respuesta aceptada

Matt J
Matt J el 21 de Sept. de 2013
Editada: Matt J el 21 de Sept. de 2013
You mean you want to do a Short Time Fourier Transform (STFT)? If so, there are a number of offerings on the File Exchange, e.g.
  3 comentarios
Matt J
Matt J el 21 de Sept. de 2013
signal(t>=300 & t<=340)
Negar
Negar el 22 de Sept. de 2013
Thank you Matt J :)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Spectral Measurements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by