Hallo, ich schreibe ein m-File mit dem ich mir die funktinsweise von DLS ein bischen verständlich machen will. also so weit bin ich schon: 1. Mehrträgerverfahren, ich möchte es einfach mal mit zwei "Trägern" versuchen. je nachdem ob der Kanal zum jeweiligen Träger gut oder schlecht ist können mehr Bits drauf übertragen werden oder weniger. (also M-Qam mit M = 4..32768) ... bei M = 4 werden also 2 Datenbit zu einem Symbol zusamengefasst. Das Symbol ist dann eine komplexe Zahl zb 1+j. Der komplexe Wert wird vom Frequnzbereich in den Zeitbereich per ifft gewandelt. Da es mehrere Kanäle gibt passiert das bei mir also zweimal. Die Werte im Zeitbereich sind also Abtastwerte, diese werden jetzt für alle Kanäle (Träger) addiert. Jetzt zu meinem Eigentlichen Problem bzw. hab ich da ein denkfehler ? Wie mach ich aus den digitalen Abtastwerten analoge Signale ? Also grundsätzliche Frage : Digital Analog Wandlung in Matlab (m-file, kein Simulink) Die analogen Signale sollen dann über ein Kanal gehen und auf der anderen Seite analog digital gewandelt werden. Dann FFT usw ..... also demod .... ist also ne reine Matlab Frage , nix mit dsp oder so ... hoffe es war verständlich was ich will ? .... wenn nicht fragt doch einfach nach .... soweit mein code xges ist also das digitale signal ("die abtastwerte") %%%%%%%%%%% qammod(x,M) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % y = qammod(x,M) outputs the complex envelope y of the modulation of the % message signal x using quadrature amplitude modulation. M is the alphabet % size and must be an integer power of 2. The message signal must consist % of integers between 0 and M-1. The signal constellation is rectangular or % cross-shaped, and the nearest pair of points in the constellation is % separated by 2. If x is a matrix with multiple rows, then the function % processes the columns independently. %%%%%%%%%%% randint(m,n,rg) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % out = randint(m,n,rg) generates an m-by-n integer matrix. If rg is zero, % then out is a zero matrix. Otherwise, the entries are uniformly % distributed and independently chosen from the range % [0, rg-1] if rg is a positive integer % [rg+1, 0] if rg is a negative integer % Between min and max, inclusive, if rg = [min,max] or [max,min] % Ein Kanal 5000 Symbole % 4 Bit auf dem Kanal = 16 Symbolen M = 16; % Alphabet size 16 - QAM x = randint(5000,1,16); % Message signal Y = qammod(x,M); % Frequenzbereich scatterplot(Y); x=ifft(Y); % Umwandlung Frequenzbereich -> Zeitbereich (ifft) a=1:1:5000 % zweiter Kanal M2=4; Symbole = randint(5000,1,M2); % Message signal Y2 = qammod(Symbole,M2); % Frequenzbereich scatterplot(Y2); x2=ifft(Y2); % Umwandlung Frequenzbereich -> Zeitbereich (ifft) figure(5) plot(a,x','b*'); hold on plot(a,x2','r.'); hold on; xges= x+x2; plot(a,xges','y');
Hallo, ich glaube man kann in Matlab Signale über eine Soundkarte ausgeben. Wie es genau geht weiß ich nicht. Must du in der Hilfe mal stöbern. MfG
das geht mit der Data Acquisition Toolbox... (DAQ) ao = analogoutput('winsound'); get(ao) damit kann man sich dann alle "Stellschrauben" anzeigen lassen putdata(data_Spaltenvektor) start(ao)
So wie ich ihn verstehe will er eine A/D bzw D/A Wandelung simulieren, und nicht tatsächlich ausführen. Ich habe das mal mit der Funktion uencode für A/D Wandelung und udecode für D/A Wandelung gemacht. Die quantisieren auf das Signal auf die gewünschte Anzahl von Bits. Brauchst dazu aber die Signal Processing Toolbox. Wenn du die nicht hast, kannst du sone Funktion auch schnell selbst schreiben, das dürfte nicht so schwer sein.
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.