FFT of the signal

3 views (last 30 days)
Abdullah Javed
Abdullah Javed on 10 Mar 2021
Hi. I am having trouble with the fft of the signal. I am not getting it as I am expecting. Any help in this reagard is appreciated.
I want this code represent the frequency domain as showing above by applying rectangular widow. However, the rectangular length going to be 0.2*signal shifting from the right to the lift 5 times
N= 10000
L= 2000
So we take the first 2000 element of T (0:2000) and (2000:4000) and so on .
I believe that the mistake is in the part below for each step but i cant figure it out.
%%FFT
N2=0.2*N1;
S2 =fft(u2,N2);
F2=S(1:N1/2); %half of spectra
PF2=2*F2.*conj(F2)/(fs*N2); %Power spectrum density per 1 kHz
E2=sum(PF2);%energy of signal V^2*T
Xdb2 = 20*log10(S2);
LPF2=10*log10(PF2); %Power spectrum in dB scale
LP2=LPF2(1:N1/2);
fvec2=fs*(1:N1/2)/N1; % frequency array
and complete code is given below.
fs=100000;%sampling frequency, N=1/2deltaT, deltaT step in T
N= 100000;
t = (0:1/fs:(10-(1/fs)));
f= 1000;
alpha= (f*pi)/5000;
theta= 30;
y = 100*exp(-alpha*t).*sin(2*pi*f*t+ theta);
figure(1)
plot(t,y); grid on
%%---
%FFT1
N1=fs;
S =fft(y,N1);
F1=S(1:N1/2); %half of spectra
PF1=2*F1.*conj(F1)/(fs*N1); %Power spectrum density per 1 kHz
E=sum(PF1);%energy of signal V^2*T
Xdb = 20*log10(S);
LPF1=10*log10(PF1); %Power spectrum in dB scale
LP=LPF1(1:N1/2);
fvec=fs*(1:N1/2)/N1; % frequency array
%-------
w2= 0.2*N:0.4*N;
x2 = rectwin(length(w2));
%len=0.2*N:N-1
yshort2= y(w2);
u2= x2'.*(yshort2-1);
t2 = 1/fs*(0:length(yshort2)-1);
figure
plot(t2,u2)
grid on
%%FFT
N2=0.2*N1;
S2 =fft(u2,N2);
F2=S(1:N1/2); %half of spectra
PF2=2*F2.*conj(F2)/(fs*N2); %Power spectrum density per 1 kHz
E2=sum(PF2);%energy of signal V^2*T
Xdb2 = 20*log10(S2);
LPF2=10*log10(PF2); %Power spectrum in dB scale
LP2=LPF2(1:N1/2);
fvec2=fs*(1:N1/2)/N1; % frequency array
%-------
w3= 0.4*N:0.6*N;
x3 = rectwin(length(w3));
yshort3= y(w3);
u3= x3'.*(yshort3-1);
t3 = 1/fs*(0:length(yshort3)-1);
figure
plot(t3,u3)
grid on
%FFT3
N3=0.2*N1;
S3 =fft(u3,N3);
F3=S(1:N1/2); %half of spectra
PF3=2*F3.*conj(F3)/(fs*N3); %Power spectrum density per 1 kHz
E3=sum(PF3);%energy of signal V^2*T
Xdb3 = 20*log10(S3);
LPF3=10*log10(PF3); %Power spectrum in dB scale
LP3=LPF3(1:N1/2);
fvec3=fs*(1:N1/2)/N1; % frequency array
%-------
w4= 0.6*N:0.8*N;
x4 = boxcar(length(w4));
yshort4 = y(w4);
u4= x4'.*yshort4;
t4 = 1/fs*(0:length(yshort4)-1);
figure
plot(t4,u4)
grid on
%FFT4
N4=0.2*N1;
S4 =fft(u4,N4);
F4=S(1:N1/2); %half of spectra
PF4=2*F4.*conj(F4)/(fs*N4); %Power spectrum density per 1 kHz
E4=sum(PF4);%energy of signal V^2*T
Xdb4 = 20*log10(S4);
LPF4=10*log10(PF4); %Power spectrum in dB scale
LP4=LPF4(1:N1/2);
fvec4=fs*(1:N1/2)/N1; % frequency array
%-------
w5= 0.8*N:N-1;
x5 = boxcar(length(w5));
yshort5= y(w5);
u5= x5'.*yshort5;
t5 = 1/fs*(0:length(yshort5)-1);
figure
plot(t5,u5)
grid on
%%FFT5
N5=0.2*N1;
S5 =fft(u5,N5);
F5=S(1:N1/2); %half of spectra
PF5=2*F5.*conj(F5)/(fs*N5); %Power spectrum density per 1 kHz
E5=sum(PF5);%energy of signal V^2*T
Xdb5 = 20*log10(S5);
LPF5=10*log10(PF5); %Power spectrum in dB scale
LP5=LPF5(1:N1/2);
fvec5=fs*(1:N1/2)/N1; % frequency array
figure
plot(fvec,LP)
hold on
plot(fvec2, LP2)
hold on
plot(fvec3,LP3)
hold on
plot(fvec4,LP4)
hold on
plot(fvec5,LP5)
hold off

Answers (0)

Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

Tags

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!