digital - analog wandler matlab

Gast #440880
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');
Gast #455503
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)
Gast #455607
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.