taking FFT from a part of the signal

3 Ansichten (letzte 30 Tage)
Negar
Negar am 21 Sep. 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)|');

Akzeptierte Antwort

Matt J
Matt J am 21 Sep. 2013
Bearbeitet: Matt J am 21 Sep. 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 Kommentare
Matt J
Matt J am 21 Sep. 2013
signal(t>=300 & t<=340)
Negar
Negar am 22 Sep. 2013
Thank you Matt J :)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by