Daten zwischen zwei Nulldurchgängen auslesen

Gast #433735
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
Gast #433844
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
Gast #434333
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
Gast #434920
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren