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
ä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
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
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
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
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.')
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.