اطلاعیه

Collapse
No announcement yet.

گرفتن fft از یک تابع ساده در متلب !!!! فوری !!!!

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    گرفتن fft از یک تابع ساده در متلب !!!! فوری !!!!

    با سلام خدمت اساتید.
    من میخوام از یک تابع که در تصویر زیر هست 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 کدی که نوشتم.

    باز هم ممنونم.
لطفا صبر کنید...
X