mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Hilfe bei MATLAB gegen Bezahlung


Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe probleme mit Matlab und Simmulation im Bereich (dsp).ich komme 
nicht weiter.ich brauche dringend und schnell jemanden,der gegen 
Bezahlung mir helfen kann.

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erzähl doch einfach was das problem ist, dann wird dir auch gratis 
geholfen .-)

Autor: gast (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
 hierbei ist eine Skizze ,die erklärt was ich will...Also es geht um 
einen Schallplatten filter(20-20khz),der muss ich mit Matlab oder 
Simmulation programmieren .Mein ziel ist ,die Transferfunktion(H=out/in) 
zu rechnen.Die Formel von H ist : H(Z)=Y(z)/X(z)=b0+b1*Z^-1 +b2*Z^-2 
/(1+a1*Z^-1+a2*Z^-2 ) .Ich habe die durch die Simmulation gerechnet d.h: 
Ausgang und Eingang in Workspace gespeichert und dann in kommand Window 
das programm eingegeben:

out=simout.signals.values;
IN=simout1.signals.values;
for s=1:44100 % Fa=44100 Hz "abtastfrequenz"
H(s)=OUT(s)/IN(:,:,s) %Out und In sollen gleiche grosse haben
H(s)=20*log10(H(s)); % die Dämfung
end
plot(H(S))
weil die Fa sehr gross ist,die Rechnung wird lange dauern.Ich hab sie 
trozdem durchgeführt.Das ergebniss steht oben,es ist nicht was ich 
erwartet habe!!
die Koeffizienten von der Übertragung sind aber richtig,habe ich im 
Netzt
gefunden.kann ich auch senden wenn Sie möchten.
danke.

Autor: gast (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist Plot(Hlog).

Autor: Simulink (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
soll das jetzt heissen du willst einfach die Formale: 
H(Z)=Y(z)/X(z)=b0+b1*Z^-1 +b2*Z^-2
/(1+a1*Z^-1+a2*Z^-2 )
in einem Simulink Modell haben???

Autor: johuuu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Mein ziel ist ,die Transferfunktion(H=out/in)
zu rechnen.

Dafür gibt es die Funktion "filter()":

out = filter(B,A,in)

Die Koeffizienten müssen entsprechend der gegebenen Übertragungsfunktion 
gesetzt werden.

Autor: Tommi Huber (drmota)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Mit einem diskreten Bodediagramm ist dein Frequenzgang in Matlab
berechenbar.

help dbode ;Matlab Help

num=[0.02675918611906,-0.04592084787595,0.019212292972391]
den=[-0.17951755477430, -0.73845850035973, 1]
w=[1:10:44100*pi] ;Frequenzvektor bis 22050 Hz
Ts=1/44100   ;Sampletime
dbode(num,den,Ts,w)

Autor: Tommi Huber (drmota)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
mit diesem update sollte es stimmen
num=[0.019212292972391,-0.04592084787595,0.02675918611906]
den=[1, -0.73845850035973,-0.17951755477430]

vorher war num[a2/z²+a1/z+a0] richtig ist aber [a0*z²+a1*z+a2]

siehe
    DBODE(NUM,DEN,Ts) produces the Bode plot for the polynomial
    transfer function G(z) = NUM(z)/DEN(z) where NUM and DEN contain
    the polynomial coefficients in descending powers of z.

Autor: Stefan Feldmann (wasserman2002)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
danke erstmal für Ihre schnelle Antworte.
a2/Z^2 +a1/Z +a0 = a0*Z^2 +a1*Z +a2   oder?
Bei mir sind die koeffizienten in diese Reihenfolge (siehen Sie den 
Link)
http://www.musicdsp.org/showArchiveComment.php?ArchiveID=122
bis das Datum 01/03/07 können Sie lesen (Anhang).
Die gleichung :
Out= bo*in [0] + b1*in[-1] + b2*in[-2] - a1*out[-1] - a2*out[-2]
ist wichtig!!
 Von Literatur:
Die Übertragungsfunktion eines digitalen Filter im Z-bereich lautet 
allgemein für die Eingangsgröße x und die Ausgangsgröße y:
H(z^-1)=y(Z-^1)/x(Z^-1)=B(Z^-1)/A(Z^-1)=b0+b1*Z^-1+...+bn*Z^-n/(1+a1*Z^- 
1  +...+am*Z^-m
Der Ausgangswert(y)wird demnach als gewichtete Summe aktueller und 
vergangener Eingangswerte(Zähler B)sowie vergangener 
Ausgangswerte(Nenner A)berechnet:
y(k)=b0*x(k)+ b1*x(k-1)+...+bn* x(k-n)- a1*y(k-1)-...-am*y(k-m).
unserem Fall ist: n= m= 2.

Autor: Tommi Huber (drmota)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier kannst du etwas spielen mit deinen Filter

Autor: Stefan Feldmann (wasserman2002)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo tomi,
ich glaube ,das alles werde ich nicht brauchen,ich muss z.b einmal 
"Discrete inpuls"  im Eingang testen ob mein Filter gut funktioniert 
,danach H=out/in rechnen.
Sie haben immer nicht auf meine fragen nicht geantwortet,Sehen Sie oben.
danke.

Autor: Stefan Feldmann (wasserman2002)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
nochmal die frage:
warum haben Sie da oben einmal nur die Koeffizieten vom "num" 
umgetaucht.
und bei zweitemal nur vom "den" .
falls die Reihenfolege der Koeffizieten nicht korekt ist,sollen nicht 
"num" und "den" beide umgetaucht werden ?!!
was meinen Sie.

Autor: Tommi Huber (drmota)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
>warum haben Sie da oben einmal nur die Koeffizieten vom "num"
>umgetaucht. und bei zweitemal nur vom "den" .

num=[0.02675918611906,-0.04592084787595,0.019212292972391]
den=[-0.17951755477430, -0.73845850035973, 1]


num=[0.019212292972391,-0.04592084787595,0.02675918611906]
den=[1, -0.73845850035973,-0.17951755477430]

bei genauerer Betrachtung sieht man dass Koeff. in num und den 
vertauscht wurden, weil dbode (a0*z²+a1*z+a2) verlangt.

wenn man num und den vertauscht bekommt man die Umkehrfunktion und statt
einem Hochpass einen Tiefpass (der für Audioanwendungen interessanter 
ist)

Autor: Stefan Feldmann (wasserman2002)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tommi,
ich hab immer noch nicht verstanden!!!
also meine Koeffi. sehen so aus:

44.1kHz
b= num= [ 0.02675918611906 -0.04592084787595 0.019212292972391]
a= den= [ 1.00000000000000 -0.73845850035973 -0.17951755477430]
error +/- 0.25dB

Sehen Sie das:
http://www.musicdsp.org/showArchiveComment.php?ArchiveID=122

das von Ihnen:
num=[0.02675918611906,-0.04592084787595,0.019212292972391]
den=[-0.17951755477430, -0.73845850035973, 1]


num=[0.019212292972391,-0.04592084787595,0.02675918611906]
den=[1, -0.73845850035973,-0.17951755477430]

>bei genauerer Betrachtung sieht man dass Koeff. in num und den
vertauscht wurden, weil dbode (a0*z²+a1*z+a2) verlangt.

>vorher war num[a2/z²+a1/z+a0] richtig ist aber [a0*z²+a1*z+a2]

 ich sage:   [a2/z²+a1/z+a0]*Z^2= a2+a1Z+a0Z^2 = [a0*z²+a1*z+a2]

ausserdem ist b num und nicht a

Autor: Tommi Huber (drmota)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
das von Ihnen:
>num=[0.02675918611906,-0.04592084787595,0.019212292972391]
>den=[-0.17951755477430, -0.73845850035973, 1]


>num=[0.019212292972391,-0.04592084787595,0.02675918611906]
>den=[1, -0.73845850035973,-0.17951755477430]

stimmt da ist wohl etwas durcheinander gekommen

> ich sage:   [a2/z²+a1/z+a0]*Z^2= a2+a1Z+a0Z^2 = [a0*z²+a1*z+a2]

ist auch richtig. Da du jetzt denn Durchblick hast wirst du sicher
deine Polynome in dbode einsetzten können und sehen dass
44.1kHz
b= num= [ 0.02675918611906 -0.04592084787595 0.019212292972391]
a= den= [ 1.00000000000000 -0.73845850035973 -0.17951755477430]
(dbode(b,a,t,w) wieder einen Hochpass ergibt.

Autor: Tommi Huber (drmota)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens wär nähers über diskrete Frequenzgänge wissen will kann hier
nachschauen. 
http://cds.acin.tuwien.ac.at/fileadmin/cds/lehre/a...

Kapitel 6.5

Autor: daryos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich brauche dringend Hilfe beim MATLAB Curve Fitting. kennt sich 
Jemanden damit aus? Ich muß mehrere Statistiken darstellen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.