Forum: Digitale Signalverarbeitung / DSP / Machine Learning digital - analog wandler matlab


von chris (Gast)


Lesenswert?

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');

von Sergej S. (sergo)


Lesenswert?

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

von Schmidt Thoralf (Gast)


Lesenswert?

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)

von Matthias (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.