Plotting amplitude spectrum of a signal
24 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Artyom
am 8 Jan. 2023
Kommentiert: Star Strider
am 8 Jan. 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 Kommentare
Akzeptierte Antwort
Star Strider
am 8 Jan. 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 Kommentare
Star Strider
am 8 Jan. 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.)
Weitere Antworten (1)
Sulaymon Eshkabilov
am 8 Jan. 2023
Bearbeitet: Sulaymon Eshkabilov
am 8 Jan. 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 Kommentare
Siehe auch
Kategorien
Mehr zu Multirate Signal Processing finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!







