Matlab - Diferentes gráficos dependiendo del rango de t para la fft

 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 4 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Diferentes gráficos dependiendo del rango de t para la fft

Publicado por jefazo (1 intervención) el 20/11/2019 22:57:42
Hola a todos,

Tengo el siguiente problema, Estoy intentando analizar las señales de entrada y de salida de mi filtro usando fft. Sin embargo, no estoy seguro si mi fft está correcta. Mi señal de entrada es el producto de la señal diente de sable (frecuencia = 6kHz) y una señal sinosuidal (frecuencia = 32kHz). Ambas señales individuales tenían una amplitud de 1 antes de ser multiplicadas.

Dependiendo de mis valores de tiempo para el eje x (tiempo), obtengo diferentes resultados para mis graficos fft. Si utilizo valores con un espacados por el periodo de la frecuencia de muestreo obtengo un gráfico "normal" con picos muy evidentes como se puede esperar de la transformada de Fourier (ver Fig.1). Pero si uso un rango que se basa en el período de la señal diente diente de sable (6kHz) mis gráficos fft son totalmente distintos (ver Fig.2). No sé que gráfico muestra la fft correctamente. Tambiñén tengo el problema de que he usado un tutorial online para obtener el código para la FFT pero no entiendo lo que el hombre hizo en su código. Y si hago una gráfica de FFT usando los valores absolutos de FFT, tengo gráficos de forma similar oeri las amplitudes se van hasta 30 o 40 (ver Fig. 3 y 4.). También para la Fig. 2, por qué hay una pequeña ralla al comienzo del gráfico de la señal filtrada (dominio en el tiempo) vs tiempo ?Por favor, estaría muy agradecido si me pudiérais ayudar a saber como realizar la FFT correctamente. Gracias de antemano.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
%Time values using sampling frequency period.
fsampling = 80000;
tsampling = 0:1/fsampling:5000000*Tsampling;
 
 
fsampling = 80000;
fsawtooth = 6000;
Tsawtooth = (1/fsawtooth);
tsawtooth = 0:1/fssampling:20*Tsawtooth;
 
 
 %Piece of code to use FFT that I don't understand.
 L0 = length(product);
 NFFT0 = 2^nextpow2(L0);
 Y0 = fft(product,NFFT0)/L0;
 FreqDom0 = fs/2*linspace(0,1,NFFT0/2+1);
 plot(FreqDom0, 2*abs(Y0(1:NFFT0/2+1)));
 
 %Performing FFT using just abs.
 IPFFT = abs(fft(product));
 plot(t, IPFFT);
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