با سلام خدمت اساتید.
من میخوام از یک تابع که در تصویر زیر هست fft بگیرم. کد های زیر رو هم نوشتم ولی مقدار دامنه و فاز سیگنال صفر هست.
خیلی ممنون میشم بگید مشکل کار کجا هست.
خیلی خیلی واجبه.
ممنون.

اینم کد متلبی که نوشتم.
[FONT=Yekan]clc        % Clear Command Window[/FONT]clear      % Remove items from workspace, freeing up system memory
close all % closes all figures


Fs=1000000; % Sampling Frequency (Hz)
Ts=1/Fs; % Sampling Time
t=-0.01:Ts:0.02; % time variable


t1 = -0.01:0.0001:0;
t2 = 0:0.0001:0.01;
t3 = 0.01:0.0001:0.02;
y1 = @(t) 0.*t;
y2 = @(t) (1/2)-(1/2)*cos(200*pi*t);
y3 = @(t) 0.*t;
t = [t1 t2 t3];
y_t = [y1(t1) y2(t2) y3(t3)];




figure
plot(t,y_t);
grid on
ylim([-1 3])
xlabel('t (sec.)')
ylabel('y (t)')
title('time signal')


% Finds Fourier Transform
n=2^(floor(log2(length(y_t))+5)); % number of fft points
Y_f=fft(y_t,n); % Discrete Fourier transform
Y_f=Ts*fftshift(Y_f); % Signal (frequency domain)
f=-Fs/2:Fs/n:+Fs/2-Fs/n; % frequency variable


figure
subplot(2,1,1)
plot(f,abs(Y_f)) % Magnitude
xlim([-5,5])
ylim([-1,2])
grid on
xlabel('f (Hz)')
ylabel('|Y (f)|')
title('Freq. Domain (Magnitude)')


subplot(2,1,2)
plot(f,angle(Y_f)*180/pi,'r') % Phase
xlim([-5,5])
ylim([-360,360])
grid on
xlabel('f (Hz)')
ylabel('Y (f) (Degrees)')
title('Freq. Domain (Phase)')


% END



اینم شکل های خروجی هست .


اینم از mfile کدی که نوشتم.

مهمان عزیز شما حق دیدن لینک ها را ندارید

عضویت


باز هم ممنونم.