2017-08-15 9 views
-1

J'essaie actuellement de faire un tracé d'un signal fenêtré. La parcelle est actuellement faite en latex, mais ne semble pas pouvoir recréer la parcelle générée en matlab en latex.Comment est-ce que j'applique mathématiquement une fonction de fenêtre à un signal dans matlab?

%% Time specifications: 
    Fs = 8000;     % samples per second 
    dt = 1/Fs;     % seconds per sample 
    StopTime = 60;    % seconds 
    t = (0:dt:StopTime-dt)';  % seconds 
    %% Sine wave: 
    Fc = 60;      % hertz 
    x = sin(0.9*pi*t) + sin(0.42*pi*t); 
    %x = cos(2*pi*Fc*t) + cos(2*pi*Fc*5*t)+ sin(2*pi*Fc*10*t); 
    % Plot the signal versus time: 
    figure; 
    %plot(t,x); 
    %xlabel('time (in seconds)'); 
    %title('Signal versus Time'); 
    %zoom xon; 
    %% 
    window = hamming(length(t),'periodic'); 
    %plot(window) 
    windowed = x.*window; 
    plot(windowed) 

Cela génère un terrain comme celui-ci

enter image description here

Mais quand je tente de recréer l'intrigue dans Matlab .. Je reçois quelque chose de manière différente.

Ce que je suis comploter est la suivante:

w= sin(0.9*pi*t) + sin(0.42*pi*t)*0.54 - 0.46*(cos(360*t/600)) 
plot(w) 

Première partie étant le signal * fenêtre = Signal fenêtré ... Et ce que je reçois est ce ..

enter image description here

Pourquoi est-ce si différent .. Qu'est-ce que je fais mal?

Répondre

2

Comme je vois que vous avez deux erreurs dans votre expression. D'abord vous manquez parenthèse autour de la fonction de la fenêtre et d'autre part vous avez la mauvaise période dans le terme . Essayez

w = (sin(0.9*pi*t) + sin(0.42*pi*t)).*(0.54 - 0.46*(cos(2*pi*t/t(end))));