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.

