Matlab - espectro de frecuencias

 
Vista:

espectro de frecuencias

Publicado por Juan (4 intervenciones) el 05/07/2007 14:34:42
Hola

Tengo un pequeño problema para calcular el espectro de frecuencias de un microfono de garganta.

Lo que he estado haciendo es:

grabar un pequeño segmento de mi voz usando el microfono.
despues lo mande llamar con la funcion wavread
le aplique la FFT
Grafiqué

el codigo es el siguiente:

[y,fs,nbits] =wavread('Path del archivo');
y= y ' ;
Y(1)=1;
Y= fft (y);
N=length(Y);
x=abs(Y(1:N/2)).^2;
nyquist=1/2;
freq=(1:N/2)/(N/2)*nyquist;
plot(freq,x), grid on;
xlabel('Frequenz (Hz)');

el problema es que no estoy muy convencido de que asi se calcule el espectro de frecuencia.

Alguien me puede dar su opinión ?

Muchas gracias!!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:espectro de frecuencias

Publicado por Julian (75 intervenciones) el 05/07/2007 21:50:35
Hola, aqui un ejemplo....

[y Fs bits] =wavread('C:\señal_de_voz.wav');
%
y=y.'; % Organiza los datos en vector fila.
T=1/Fs; % Tiempo de muestreo.
L=length(y); % Longitud de la señal.
t=(0:L-1)*T; % Vector de tiempo.
%
NFFT=2^nextpow2(L); % Siguiente potencia de 2 de la longitud de 'y'.
Y=fft(y); % Aplica Transformada de Fourier.
f=Fs/2*linspace(0,1,NFFT/2); % Vector de frecuencias.
%
% Visualiza la señal de voz y el espectro de dicha señal.
subplot(2,1,1), plot(t,y), title('Señal de Voz'),...
xlabel('Tiempo (segundos)'), grid on
subplot(2,1,2), plot(f,2*abs(Y(1:NFFT/2))),...
title('Espector de la Señal de Voz'),...
xlabel('Frecuencia (Hz)'), ylabel('|Y(f)|'), grid on

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:espectro de frecuencias

Publicado por dario (1 intervención) el 14/09/2007 20:07:22
por favor enviarme un ejemplo practico de bajar un archivo wap a matlab y luego multiplicarlo con una seno para visulizar el resultado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

calculo de la frecuencia

Publicado por Julio (1 intervención) el 28/09/2008 07:32:31
Hola:
Por favor necesito una explicacion a esta función de matlab que calcula la distancia mayor o pico.

En el siguiente ejrcicio:
function T=encuentra_distancia_pico(x)
len = length (x)
x=x-mean(x) %%%por qué se le resta la media?
s = abs(fft(x,128)) %%%se calcula la frecuencia para 128 puntos???...por favor puede explicarme qué es lo que hace exactamente esta línea
idx = find (s==max(s)) %%% por qué se calcula la frecuencia de esa manera, qué es lo que hace exactamente esta línea.
T = 128/idx(1) %%% Por qué calculo el período de esa forma

Por favor necesito que me expliques en detalle esta función y si es bueno pasame links de esto para entenderlo mejor, ya que tengo que exponer esto y no entiendo casi nada. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar