To compute magnitude and phase spectrum
151 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Sri Srujan Gollapudi
le 3 Oct 2019
Commenté : Juan Palomo
le 13 Mai 2022
Hello,
I have a function, for that I need to find the magnitude and phase spectrum on matlab. Can someone please help me with the code, please?
The parameters are A=2 a=4 -20<=F<=20.
![44.JPG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/241090/44.jpeg)
This is the function.
2 commentaires
Shubham Gupta
le 4 Oct 2019
Where is 'F' being used in the function? Also, what do you mean by 'magnitude of the function'?
Réponse acceptée
Deepak Kumar
le 7 Oct 2019
Modifié(e) : Deepak Kumar
le 11 Oct 2019
I'm not sure what F is referring here.
However, we can find the Magnitude and Phase spectrum of a function using FFT function in matlab. I have wrirren the below code to evalute the magnitude and phase spectrum of the given function and also plotted them.
clc
clear
close all
A=2;
a=4;
fs=1000; % Sampling frequency
t=0:1/fs:1; %Time
x=A*exp(-a.*t); %Signal
plot(t,x) %Plotting the time domain signal
xlabel('t');
ylabel('x(t)');
title('Time domain Signal')
N=length(x);
N1=2^nextpow2(N);
X=fft(x,N1);
X=X(1:N1/2);%Discard Half of Points
X_mag=abs(X); %Magnitude Spectrum
X_phase=phase(X); %Phase Spectrum
f=fs*(0:N1/2-1)/N1; %Frequency axis
figure
plot(f,(X_mag/N1)); %Plotting the Magnitude Spectrum after Normalization
xlabel('Frequency (Hz)');
ylabel('Magnitude Spectrum');
title('Magnitude Spectrum vs f')
figure
plot(f,X_phase); %Plotting the frequency domain
xlabel('Frequency (Hz)');
ylabel('Phase Spectrum');
title('Phase Spectrum vs f')
Please refer the below documentation for more details about the FFT function:
5 commentaires
Juan Palomo
le 13 Mai 2022
hi, if this spectrum is the single side spectrum (comment on code:
X=X(1:N1/2);%Discard Half of Points
) should'nt the amplitude be multiplied by 2 like in https://es.mathworks.com/help/matlab/ref/fft.html?lang=en "Compute the two-sided spectrum P2. Then compute the single-sided spectrum P1 based on P2 and the even-valued signal length L.
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
"
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Spectral Measurements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!