Plotting amplitude spectrum of a signal
24 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Artyom
el 8 de En. de 2023
Comentada: Star Strider
el 8 de En. de 2023
i got this sygnal
tmax=0.5;
t=0:0.001:tmax;
fs=1000;
tsamp=0:1/fs:tmax;
f1 = 18;
f2 = 321.37;
y = sin(2*pi*f1*tsamp) + sin(2*pi*f2*tsamp);
figure();
plot(t, y);
grid on;
how do I plot it's amplitude spectrum?
0 comentarios
Respuesta aceptada
Star Strider
el 8 de En. de 2023
Try something like this —
tmax=0.5;
t=0:0.001:tmax;
fs=1000;
tsamp=0:1/fs:tmax;
f1 = 18;
f2 = 321.37;
y = sin(2*pi*f1*tsamp) + sin(2*pi*f2*tsamp);
figure();
plot(t, y);
grid on;
L = numel(t);
Fn = fs/2;
NFFT = 2^nextpow2(L);
FTy = fft(y,NFFT)/L;
Fv = linspace(0, 1, NFFT/2+1)*Fn;
Iv = 1:numel(Fv);
figure
plot(Fv, abs(FTy(Iv))*2)
grid on
xlabel('Frequency')
ylabel('Magnitude')
FTyw = fft(y(:).*hann(L),NFFT)/L;
figure
plot(Fv, abs(FTy(Iv))*2)
grid on
xlabel('Frequency')
ylabel('Magnitude')
title('Windowed')
.
4 comentarios
Star Strider
el 8 de En. de 2023
The hann function is part of the Signal Processing Toolbox. Just delete that part of my code, and note that it will still be here if you need it for future reference. (My intent was to demonstrate doing a power-of-2 fft and using a window function.)
Más respuestas (1)
Sulaymon Eshkabilov
el 8 de En. de 2023
Editada: Sulaymon Eshkabilov
el 8 de En. de 2023
tmax=0.5;
t=0:0.001:tmax;
fs=1000;
tsamp=0:1/fs:tmax;
f1 = 18;
f2 = 321.37;
y = sin(2*pi*f1*tsamp) + sin(2*pi*f2*tsamp);
figure();
plot(t, y);
grid on;
Y =movmedian(y, 5); % Amplitude
figure
plot(t,Y)
grid on
xlabel('x')
ylabel('|y(x)|')
0 comentarios
Ver también
Categorías
Más información sobre Multirate Signal Processing en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!







