Hi Leute,
ich möchte gern einen einfachen Dezimierer in Simulink basteln.
Da meine Daten als 131072x1 frame based daten vorliegen, möchte ich nach
der Filterung einfach jeden L´ten (L=Dezimierungsfaktor) Wert entnehmen
und neu zusammenbauen.
Dazu habe ich versucht eine For-Schleife mit Hilfe einer Matlabfunktion
einzubinden.
Leider bin ich dazu nicht in der Lage.
Fehlermeldung: "Size mismatch (size [1 x :?] ~= size [0 x 0])..."
Code der Schleife:
function y = fcn(u,L)
%#codegen
v=[];
w=length(u);
for i = 1:L:w
x = u(i);
v = [v, x];
end
y=v;
Bitte dringend um Hilfe, das kann doch nicht so schwer sein.
Danke
Andreas
Problem gelöst,
in meine Fall lautet der Richtige Code:
function y = fcn(u,L)
%#codegen
w = length(u)-1;
v = zeros(1,(w));
for idx = 1:L:w
x = u(idx);
v(idx) = real(x);
end
y=v;
Für diejenigen, die beim suchen mal auf dieses Thema stoßen:
der eigentlich dimensoinsfehler lag in der Vordefinition des Vektors v
sowie einem falschen Schleifenendwert w.
Und es ist doch nicht richtig gelöst! Schreibe ich: v = zeros(z,1) %Was nichts ändern sollte, da z=4 ist erhalte ich eine Fehlermeldung Ersetze ich aber auch z zu z = ((length(u))/2) %(Was eigentlich genau das gleiche ist, da L=2 ist) funktioniert wieder nichts mehr. Langsam weiss ich echt nicht mehr weiter :-/ Bitte um Hilfe! Gruß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.

