Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekte:iqmod:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projekte:iqmod:start [2014/02/17 12:15]
thasti
projekte:iqmod:start [2014/02/17 16:40] (aktuell)
thasti
Zeile 25: Zeile 25:
 C2 und C3 sind dabei Trimmkondensatoren(3-10pF) mit 47pF Keramikkondensator parrallel geschalten. C2 und C3 sind dabei Trimmkondensatoren(3-10pF) mit 47pF Keramikkondensator parrallel geschalten.
  
-{{simulation.png?600|}}+{{projekte:iqmod:simulation.png?600|}}
  
-{{simulationsergebnis.png?600|}}+{{projekte:iqmod:simulationsergebnis.png?600|}}
  
-{{2m-filter.asc|LTSpice-File}}+{{projekte:iqmod:2m-filter.asc|LTSpice-File}}
  
 Erreichbare Daten: Erreichbare Daten:
Zeile 41: Zeile 41:
 Überblick Spektrum bei Sollfrequenz 144,6MHz: Überblick Spektrum bei Sollfrequenz 144,6MHz:
  
-{{si570_direct.jpg?200|}}+{{projekte:iqmod:si570_direct.jpg?200|}}
  
 Spektrum mit 2m-Filter: Spektrum mit 2m-Filter:
  
-{{si570_2m_filter.jpg?200|}} +{{projekte:iqmod:si570_2m_filter.jpg?200|}} 
-{{si570_2m_filter_1.jpg?200|}}+{{projekte:iqmod:si570_2m_filter_1.jpg?200|}}
   * Leistung: -1,6dBm   * Leistung: -1,6dBm
  
 Spektrum mit 70cm-Filter: Spektrum mit 70cm-Filter:
  
-{{si570_70cm_filter.jpg?200|}} +{{projekte:iqmod:si570_70cm_filter.jpg?200|}} 
-{{si570_70cm_filter_1.jpg?200|}}+{{projekte:iqmod:si570_70cm_filter_1.jpg?200|}}
   * Leistung: -9dBm   * Leistung: -9dBm
 </spoiler> </spoiler>
Zeile 60: Zeile 60:
 Überblick Spektrum bei Sollfrequenz 144,6MHz: Überblick Spektrum bei Sollfrequenz 144,6MHz:
  
-{{vnwa_direct.jpg?200|}}+{{projekte:iqmod:vnwa_direct.jpg?200|}}
  
 Spektrum mit 2m-Filter: Spektrum mit 2m-Filter:
  
-{{vnwa_2m_filter.jpg?200|}} +{{projekte:iqmod:vnwa_2m_filter.jpg?200|}} 
-{{vnwa_2m_filter_1.jpg?200|}}+{{projekte:iqmod:vnwa_2m_filter_1.jpg?200|}}
   * Leistung: -27,2dBm   * Leistung: -27,2dBm
  
 Überblick Spektrum bei Sollfrequenz 433,8MHz: Überblick Spektrum bei Sollfrequenz 433,8MHz:
  
-{{vnwa_70_direct.jpg?200|}}+{{projekte:iqmod:vnwa_70_direct.jpg?200|}}
  
 Spektrum mit 70cm-Filter: Spektrum mit 70cm-Filter:
  
-{{vnwa_70_filter.jpg?200|}} +{{projekte:iqmod:vnwa_70_filter.jpg?200|}} 
-{{vnwa_70_filter_1.jpg?200|}}+{{projekte:iqmod:vnwa_70_filter_1.jpg?200|}}
   * Leistung: -32,6dBm   * Leistung: -32,6dBm
 </spoiler> </spoiler>
Zeile 83: Zeile 83:
 Spektrum APRS(144,800MHz) links direkt, rechts mit 2m-Filter: Spektrum APRS(144,800MHz) links direkt, rechts mit 2m-Filter:
  
-{{rpi_direct_aprs.jpg?200|}} +{{projekte:iqmod:rpi_direct_aprs.jpg?200|}} 
-{{rpi_filter_aprs.jpg?200|}}+{{projekte:iqmod:rpi_filter_aprs.jpg?200|}}
  
 Spektrum 145,450MHz links direkt, rechts mit 2m-Filter: Spektrum 145,450MHz links direkt, rechts mit 2m-Filter:
  
-{{rpi_145_450_direct.jpg?200|}} +{{projekte:iqmod:rpi_145_450_direct.jpg?200|}} 
-{{rpi_145_450_filter.jpg?200|}}+{{projekte:iqmod:rpi_145_450_filter.jpg?200|}}
  
 C-Code zur Ansteuerung: C-Code zur Ansteuerung:
Zeile 257: Zeile 257:
 Der I/Q-Modulator will -10dBm..0dBm am LO-Eingang. Der LO-Buffer verstärkt das LO-Signal wie folgt: Der I/Q-Modulator will -10dBm..0dBm am LO-Eingang. Der LO-Buffer verstärkt das LO-Signal wie folgt:
  
-{{max2470_amp.png?300|}}+{{projekte:iqmod:max2470_amp.png?300|}}
  
 Somit muss der LO mindestens -26dBm liefern. Somit muss der LO mindestens -26dBm liefern.
Zeile 270: Zeile 270:
 Revision: 3 Revision: 3
  
-{{iqmod_sch.png?650|}}+{{projekte:iqmod:iqmod_sch.png?650|}}
  
-  * als {{iqmod_sch.pdf|PDF-Datei}} +  * als {{projekte:iqmod:iqmod_sch.pdf|PDF-Datei}} 
-  * als {{iqmod.sch|Eagle-Datei}}+  * als {{projekte:iqmod:iqmod.sch|Eagle-Datei}}
  
 Vorberechnung des Dämpfungsglieds Vorberechnung des Dämpfungsglieds
Zeile 324: Zeile 324:
 Revision: 3 Revision: 3
  
-{{iqmod_pcb.png?200|}}+{{projekte:iqmod:iqmod_pcb.png?200|}}
  
-  * als {{iqmod_pcb.pdf|PDF-Datei}} +  * als {{projekte:iqmod:iqmod_pcb.pdf|PDF-Datei}} 
-  * als {{iqmod.brd|Eagle-Datei}}+  * als {{projekte:iqmod:iqmod.brd|Eagle-Datei}}
 ==== Änderungen ==== ==== Änderungen ====
 === Revision 1: === === Revision 1: ===
Zeile 363: Zeile 363:
     - Verpolungstest: 0..-30V, Spannung an Betriebsspannung der Schaltkreise: max. -0,8V     - Verpolungstest: 0..-30V, Spannung an Betriebsspannung der Schaltkreise: max. -0,8V
   - Bestückung X1(SMA, LO-Eingang) und Filter ohne Dämpfungsglied; Koax von Mittenanzapfung L3/L4 zu VNA   - Bestückung X1(SMA, LO-Eingang) und Filter ohne Dämpfungsglied; Koax von Mittenanzapfung L3/L4 zu VNA
-    - VNWA-Messung LO-Filter: {{lo-filter_wo_trimmer.png?100|}} +    - VNWA-Messung LO-Filter: {{projekte:iqmod:lo-filter_wo_trimmer.png?100|}} 
-    - Spektrum Si570 mit Filter: {{si570_lo_filter.jpg?100|Spektrum Si570 mit Filter}}+    - Spektrum Si570 mit Filter: {{projekte:iqmod:si570_lo_filter.jpg?100|Spektrum Si570 mit Filter}}
   - Bestückung Rest, 50Ohm-Abschluss an X1 + X2   - Bestückung Rest, 50Ohm-Abschluss an X1 + X2
     - Stromaufnahme bei VIN=5V: //xxx mA// (Soll:90..120mA) **TODO**     - Stromaufnahme bei VIN=5V: //xxx mA// (Soll:90..120mA) **TODO**
Zeile 377: Zeile 377:
     - LO Leakage: //xxx dBc//     - LO Leakage: //xxx dBc//
  
-{{iqmod_sch_inbetrieb.pdf|Inbetriebnahme-Schaltplan}}+{{projekte:iqmod:iqmod_sch_inbetrieb.pdf|Inbetriebnahme-Schaltplan}}
  
 ===== Ansteuerung ===== ===== Ansteuerung =====
-Um normale Audio-Dateien FM-moduliert als I/Q-Signale mit einer Soundkarte ausgeben zu können, gibt es folgendes kleines Tool: **fmmod** +Um normale Audio-Dateien FM-moduliert als I/Q-Signale mit einer Soundkarte ausgeben zu können, gibt es folgendes kleines Tool: **fmmod**. Dieses ist im [[https://github.com/loetlab-jena/xplorer|Xplorer-Github]] zu finden.
- +
-<file c fmmod.c> +
-/* complex frequency modulator for i/q signal processing +
- * Sebastian Weiss <dl3yc@darc.de> +
- * Di 4. Feb 16:10:01 CET 2014 +
- */ +
- +
-#include <stdio.h> +
-#include <stdlib.h> +
-#include <sndfile.h> +
-#include <math.h> +
- +
-#define BUFFER_LEN  1024 +
- +
-void usage(void) +
-+
-    printf("Usage: fmmod inputfile outputfile [carrier] [freqdev]\n \ +
-            inputfilepath to input file(needs to be single channel)\n \ +
-            outputfile: path to output file\n \ +
-            carrier: carrier frequency in Hz(standard: 0.0)\n \ +
-            freqdev: frequency deviation in Hz(standard: 3000)\n"); +
-+
- +
-void process_data(double *data, int count, int fs, double fc, double freqdev) +
-+
-    static double old_phase = 0.0; +
-    double cumsum[BUFFER_LEN]; +
-    double phase; +
-    int i; +
- +
-    if (count == 0) +
-        return; +
- +
-    cumsum[0] = data[0]/fs; +
-    for (i = 1; i < count; i++) { +
-        cumsum[i] = cumsum[i-1] + data[i]/fs; +
-    } +
- +
-    for (i=0; i < count; i++) { +
-        phase = 2*M_PI*fc/fs*(i+1) + 2*M_PI*freqdev*cumsum[i] + old_phase; +
-        data[2*i] = cos(phase); +
-        data[2*i + 1] = -sin(phase); +
-    } +
- +
-    old_phase = fmod(phase, 2*M_PI); +
-    return; +
-+
- +
-int main(int argc, char *argv[]+
-+
-    static double data[2*BUFFER_LEN]+
-    SNDFILE *infile, *outfile; +
-    SF_INFO sfinfo; +
-    int readcount; +
-    double carrier; +
-    double freqdev; +
- +
-    if ((argc > 5) || (argc < 3)) { +
-        usage(); +
-        return 1; +
-    } +
- +
-    freqdev = (argc == 5) ? atof(argv[4]) : 3000.0; +
-    carrier = (argc > 3) ? atof(argv[3]) : 0.0; +
- +
-    infile = sf_open(argv[1], SFM_READ, &sfinfo); +
-    if (!infile) { +
-        printf("%s: Not able to open input file %s\n", argv[0], argv[1]); +
-        sf_perror(NULL); +
-        return 1; +
-    } +
- +
-    if (sfinfo.channels > 1) { +
-        printf("%s: Not able to process more than 1 channel\n", argv[0]); +
-        return 1; +
-    } +
- +
-    sfinfo.channels = 2; +
- +
-    outfile = sf_open(argv[2], SFM_WRITE, &sfinfo); +
-    if (!outfile) { +
-        printf("%s: Not able to open output file %s\n", argv[0], argv[2]); +
-        sf_perror(NULL); +
-        return 1; +
-    } +
- +
-    while ((readcount = sf_read_double(infile, data, BUFFER_LEN))) { +
-        process_data(data, readcount, sfinfo.samplerate, carrier, freqdev); +
-        sf_write_double(outfile, data, 2*readcount); +
-    } +
- +
-    sf_close(infile); +
-    sf_write_sync(outfile); +
-    sf_close(outfile); +
- +
-    return 0; +
-+
- +
-</file>+
projekte/iqmod/start.1392639358.txt.gz · Zuletzt geändert: 2014/02/17 12:15 von thasti