mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Daten zwischen zwei Nulldurchgängen auslesen


Autor: Marcel Götz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo leute...

nachdem ich mir die nulldurchgänge in matlab hab nun anzeigen lassen, 
möchte ich als weiteren schritt die werte zwischen zwei nulldurchgängen 
auslesen lassen.
aber irgendwie find ich keinen ansatz wie ich das anstellen könnte!

ich hoffe mir kann jemand helfen


gruß marcel

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ähm, was willst Du? Was für zwei Nulldurchgänge, gibts nur zwei?

Nach dem Nulldurchgang ist vor dem Nulldurchgang.

Bißchen mehr info tät's erleichtern.

Cheers
Detlef

Autor: Marcel Götz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry.....

also ich will dieses amplitudenmodulierte signal rekonstruieren,
dazu möchte ich:
-Nulldurchgänge bestimmen(was schon erfolgt ist)
-Werte jeweils in der Mitte zwischen zwei Nulldurchgängen auslesen
-per Whittaker-Shannon-Interpolationsformel ein glattes Signal
 rekonstruieren.

Das ist in etwa das Prinzip von PLL-Radios (Nulldurchgänge werden da zur 
Frequenzkorrektur verwendet, die kombinierte Wirkung ist dieselbe).

Ist die Amplitude garantiert immer positiv, und die Trägerfrequenz 
wesentlich höher als die höchste Nutzfrequenz, so ist es einfacher, den 
Absolutbetrag vom modulierten Signal zu nehmen und zu glätten. Die 
einfachsten Radios, sogenannte Detektoren, arbeiten so.

gruß marcel

Autor: detlef _a (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Stellen, an denen Dein Signal positiv ist, findest Du mit

indp=find(a>0);

Die Intervalle, in denen es positiv ist, findest Du z.B. so:

ind=find(diff(indp>1));

Wenn die Daten in indp 'springen', bist Du an einer Intervallgrenze. 
Deren Indizes stehen in ind.

Gute Nacht
Detlef

Autor: Marcel Götz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi detlef...

hab schon paar mal hin und her probiert, aber irgendwie kann ich
indp=find(a>0)
nicht passend einbauen.

hoffe du kannst mir einen tip geben, an welche stelle es müsste



function [xn,yn] = findeNullstellen(t,u_nutz)

t = 0:0.01:2;
f_n = 1;                                 %Frequenzen des Signals
u_n = 1;                                 %Amplitude des Signals
u_t = 1;                                 %Amplitude Trägersignal
f_t = 5;
p = pi/2;                                %Trägerfrequenz, Traegerphase
mod = 0.5;                               %Modulationsindex



u_nutz=u_n*cos(2*pi*f_n*t+p);
u_trag=u_t*cos(2*pi*f_t*t)               %Trägersignal

At_1 =  max(u_nutz)/mod;                 %Amplitude der Trägerschwingung

u_am = (At_1+u_nutz).*cos(2*pi*f_t*t+p); %AM
einhuell_unten =At_1+u_nutz;             %untere Einhüllende
einhuell_oben  =-At_1-u_nutz;            %obere Einhüllende

b = sign(u_nutz);
n = find(b ~= [b(1) b(1: end - 1)]);     %Nullstellen berechnen
xn = t(n);
yn = u_nutz(n);


%Grafik
figure(1);
subplot(2,1,1);
plot(t,u_am,'r',[0;2],[0;0],'black');
hold on;
plot(t,einhuell_unten,'black');
hold on;
plot(t,einhuell_oben,'black');
hold on;
plot(t,u_nutz);
hold on;
grid on;
plot(t,u_nutz,xn,yn,'x');grid on;axis tight
xlabel('t');
ylabel('uam(t)');
title('Amplitudenmoduliertes Signal');



gruß david

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So?

yn = u_nutz(n);

indp=find(u_nutz>=0);indn=find(u_nutz<0);
plot(1:length(u_nutz),u_nutz,'k.-',indp,u_nutz(indp),'b.',indn,u_nutz(in 
dn),'r.')

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.