Matlab Rechteckfunktion schreiben um sie zu mit einem impulsantwort zu falten?
Falls die Aufgabe a) soweit richtig ist wollte ich wissen wie man eine Funktion schreibt welche beide Werte also von h und x zurück liefert um mit der obigen Funktion zu falten.
Was sind mit Koeffizienten gemeint sind es Indizes ?
Danke
1 Antwort
Vom Beitragsersteller als hilfreich ausgezeichnet
Prinzipiell sieht die erste Teilaufgabe a) soweit Ok aus. Hier evtl. noch eine alternative Version, welche ohne eine zweite for-Schleife auskommt. (Die schnellste und eleganteste Variante würde natürlich über die FFT laufen ... .)
function y = myConv(x,h)
%Signallängen
Nx = length(x);
Nh = length(h);
%Initialisieren des Ausgangssignals
y = zeros(1, Nx + Ny - 1);
%Berechnen der Koeffizienten des Ausgangssignals
for(ii = 1:Nx)
y(ii:(ii + Nh - 1)) = x(ii) * h;
end
end
Für die Teilaufgabe b):
Mit Koeffizienten sind die einzelnen Werte der diskreten Signale gemeint. Für einen Lösungsvorschlag siehe unten. Die benötigten Signale werden schlichtweg wie in der Aufgabe gefordert innerhalb der Funktion MyTask2 definiert.
%Funktion für Teilaufgabe b)
function [] = MyTask2()
%Definieren des Rechtecksignals
x_rect = zeros(1,10);
x_rect(2:5) = 1;
%Definieren des Impulssignals
h_impuls = zeros(1,10);
h_impuls(1) = 1;
%Diskrete Faltung
y = myConv(x_rect, h_impuls);
%Plotten der beiden Signale
figure(1);
subplot(2,1,1);
stem(0:(length(y) - 1), [x_rect, zeros(1, length(y) - length(x_rect))]);
grid on;
legend('Eingangssignal');
subplot(2,1,2);
stem(0:(length(y) - 1), y, 'r');
grid on;
legend('Ausgangssignal');
end