/ / Wie zeichnet man ein diskretes Signal in Matlab? - Matlab, Matlab-Figur

Wie zeichnet man ein diskretes Signal in Matlab? - Matlab, Matlab-Figur

Ich möchte eine Funktion zeichnen [n] = x [n + 2]. Mein Problem ist, dass es nicht im richtigen Bereich plottet oder nicht einmal die Null-Sample-Punkte zeichnet.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

n = 1:6;
x = 1:1:8;

f = figure;
subplot(1,2,1)
stem(n, x(n));
axis([-3,8, 0, 7]);
xlabel("n");
ylabel("x[n]");
title("Subplot 1")

subplot(1,2,2)
stem(n, x(n + 2));
xlabel("n");
ylabel("y[n]");
title("Subplot 2")

Wie ändere ich die Variablen n oder x, um die richtige Darstellung zu erhalten? Am Ende sollte es so aussehen:

Bildbeschreibung hier eingeben

Antworten:

1 für die Antwort № 1

Sie verwechseln das Konzept der Indizes mit Ihrer abhängigen Variablen. Sie sollten eine Funktion konstruieren x was eine Eingabe transformiert n Verwenden Sie die Beziehung, die Sie kennen

function y = x(n)
% Set all outputs to 0
y = zeros(size(n));

% Replace the values that fall between 0 and 6 with their same value
y(n >= 0 & n <= 6) = n(n >= 0 & n <= 6);
end

Dann sollten Sie diese Funktion eine Reihe von übergeben n Werte zu bewerten.

nvalues = -3:8;
yvalues = x(nvalues);

stem(nvalues, yvalues)

Sie können auch eine Umwandlung auf die Anwendung anwenden n Werte

nvalues = -3:8;
yvalues = x(nvalues + 2);

stem(nvalues, yvalues)