Verfasst am: 03.06.2012, 00:50
Titel: Up- und Downsampling bei LMS
Hi,
anbei das Blockschaltbild.
Ich muss während mein LMS läuft ein Up and Downsamplung machen. Wie das im allgemein funktioniert weiss ich. Ich fülle beim Upsampling nicht mit Nullen auf sondern mit dem zurückliegenden Wert.
Die Abtastrate soll von 40k auf 20 reduziert werden.
Variablen n und k ( z.b. x(n)) beziehen jeweils auf die verwendete abtastrate. n auf 40k und k auf 20 k.
Code:
d2 = fdesign.lowpass('N,Fc',10,10000,40000);
Hd = design(d2);
%W(z) soll hiermit berechnet werden
v_parallel=filter(wtest,1,x_ref);
mu=0.005;
y_a=0;
%Signal schonmal vorbereiten für downsampling
x_ref_tp=filter(Hd,x_ref);
% Die for schleife des lms soll ja nur mit der halben abtastfrequenz laufen, meine läuft trotdem über die gesamte, dafür läuft der lms ja nur mit jedem zweiten wert, daher mod(i,2)
fxlms sollte korrekt sein und die Implementierung wie Up and Downsampling im Allgemeinen funktioniert ist mir auch bewusst.
Trotzdem bekomm ich die Implementierung nicht so wirklich hin. Up an Downsampling muss ich auch per Hand programmieren weil ich den Code irgendwann auch noch in C implementiere und somit keine funktionen wie upsample und downsample nutzen kann.
Allgemein sieht der LMS ja auch so aus, die Sachen die ich machen möchte sieht kommentiert
mu=0.005;
for i=1:length(x_ref);
eingang=[x_ref_tp(i,1);eingang(1:parameter-1)];
y_a(i)=w_para*eingang;
% Hier muss das Upsampling erfolgen weil die addition mit Upgesampelten Signal y addiert werden soll
e(i)=y_a(i)+d(i)+v_parallel(i);
% Hier muss wieder downgesampelt werden
w_para=w_para-(mu*e_down(i)*eingang)';
end
Über jede Hilfe bin ich dankbar! Vielleicht ist es ungeschickt die for schleife des lms über die ganze länge laufen zu lassen und nur mit if jeden zweiten wert zu nehmen.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.