Signale Generieren

Gast #2361871
Hallo  zusammen,

ich habe paare Verständnisfragen bzw. benötige Tipps wie ich meine 
Aufgaben lösen kann.

ich bin dabei verschiedene Siganle softwarmässig zu generieren und über 
eine Karte (FPGA+14-Bit DAC)  zu senden.die karte hat maximale 
Bandbreite 100 kHz , Samples rate kann bis zu 2 Mhz  und vor Dac ist ein 
FIFO, auf dem bis zu 55245 Samples geschrieben werden können.

als Einstieg versuche ich Sinus- und Sägezahnschwingung zu erzeugen, die 
Schwingung soll zwischen -3.14 und 3.14 und in 3 ms gesendet weren:
1
   fs=2*B;               // fs abtastfrequenz , ich habe B als maximale Bandreite 2 MHZ gewählt
2
   inputrate=fs;          // samples rate
3
   tmin=0;               // Abtastwerte  in 3 ms abgespielt werden
4
   tmax=3;  
5
   samplessize=(tmax-tmin)*fs;       // anzahl der Samples
6
   xmin=-3,14;
7
   xmax=3.14;
8
   xr=(xmax-xmin)/samplessize;  
9

10
   for(X=Xmin;X<Xmax;X+=xr){ 
11
      Y[i]=(int)floor(double)2^14*sin(X));  // Abtastwerte mit 2^14 Amplitudenstuffen
12
     i++
13
     }
Für die Generierung Sägezahnschwingung habe auch das gleich gemacht:
1
  fs=2*B;           // fs abtastfrequenz , ich habe B als maximale Bandreite 2 MHZ gewählt               inputrate=fs;      // samples rate 
2
  tmin=0;
3
  tmax=3;
4
  samplessize=(tmax-tmin)*fs;       // anzahl der Samples
5
  xmin=-3,14;
6
  xmax=3.14;
7
  xr=(xmax-xmin)/samplessize;  
8
   
9
  periode =3;                // anzahl der Perioden zw. xmin und xmax
10
  double T=(double)((xmax-xmin)/periode); 
11
  Amin=-5;                                         // minimale Amplitude
12
  Amax=5;                                         //maximale Amplitude
13
  double rest=0;
14
  for(X=xmin; X<xmax; X+=xr){ 
15
          rest=fmod(X,T); 
16
         Y[i]=(int)floor((double)2^14* (((Amax-Amin)/T)*rest+Amin)/(Amax-Amin)));  
17
         i++
18
   }

nun meine Frage: habe ich die Abtastwerte und die Quantisierung der 
Amplitude richtig gemacht und wie kann ich am besten  die Abtastfrequenz 
bzw Samplesrate und die Anzahl der Samples  auswählen.

bin für jede Hilfe sehr dankbar.

Gruß
Ctoly

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 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.