Wie man Sinus zu sqr Welle von ADC Proben?

X

xtcx

Guest
Hallo Freunde!,
Brauche ich, um den Sinus einer konstanten oder variablen Frequenz in der Regel in der Größenordnung von wenigen MHz in ein Rechteck, so dass ich kann die Häufigkeit Informationen in diesem Quadrat Welle sehr easily.My Konfiguration ist
ADC 12-Bit, die über x "4000" Proben insgesamt mit 0 bis 2000 in den negativen Quadranten und 2000 bis 4000 bei den positiven Quadranten.Also ich um zu überprüfen, ob die eingehenden Daten-Stream von ADC-Werte über 2000 für die'1 's und unter 2000 für'0' s.In dieser Hinsicht möchte ich nutzen, um den Sinus zu sqr.Dies ist sehr einfach in VHDL, aber es gibt einige Einschaltdauer Probleme in diesem Ansatz.Ich kann keine genaue Entscheidung über diesen Wert.Coz gibt es nur 20 Proben in der Sinus-(I übermittelt nur 20).So dass die Quantisierung kann nicht immer gewährleistet, die gleiche Spannung Punkte ..... also Sperren der Daten scheint unberechenbar .. Gibt es eine Möglichkeit, um eine Sinus-Welle in sqr mit einigen anderen Techniken? Dank ..

 
Hallo,

Ich habe bereits erläutert den PLL Punkt.Es wäre eine angemessene Lösung für ein optimales Signal-Rausch-Abstand Leistung, aber er darf nicht notwendig sein, so dass ich nicht sprechen, der ihn weiter.

easy.

Wenn Sie sich mit nahezu ideale Sinuswellen ist alles sehr
einfach.Ich sehe nicht die Notwendigkeit, die ideale 50%
Tastverhältnis für FSK-Decodierung in Ihrem Fall, so einfach unterschreiben sollte ein geeignetes Rechtecksignal ehemaligen.Aber Sie sollten mit einem Hochpass-Filter zu entfernen ADC DC-Offset-Platz vor der Welle Generation.Auch ein Tiefpassfilter (entweder anlog oder digital) könnten ein Mittel zur Verringerung der Lärm-und wieder Sinus-Form.

Grüße,
Frank

 
Wie wäre es mit dieser Schaltung?. Es wird konvertieren Sinuswelle in quadratische Welle, aber das gibt ein umgekehrtes output.If Sie das untere Ende des Sinus-Generator für die Quellengewichtung BJT, erhalten Sie in der Phase-Platz Welle der Sinuswelle .<img src="http://images.elektroda.net/92_1202826289.jpg" border="0" alt=""/>
 
FVM schrieb:

Ich sehe nicht die Notwendigkeit, die ideale 50% Tastverhältnis für FSK Dekodierung
 
Hallo,

70% Duty Cycle ist sicherlich nicht auf Sinus-Verzerrung, sondern die DC-Offset.DC-Offset, sollten beseitigt werden, indem Hochpass, wie ich vorgeschlagen.

Grüße,
Frank

 
Zitat:sondern DC-Offset.
DC-Offset, sollten beseitigt werden, indem Hochpass, wie ich vorgeschlagen.

 
Ok danke!
Lassen Sie mich darauf, und nach die Ergebnisse .....Hinzugefügt nach 23 Minuten:Hallo,
Ich gestehe, ich habe mein Problem erarbeitet in einer mehrdeutigen way.My ADC ist mit Bipolar \ - 2V Bereich.Ich denke, DC-Offset ist kein Problem, hier bin ich richtig? .. Das Problem hier ist, dass die Signale, die ich im ADC wird nur 20/10 verschiedenen Proben für 2MHz/4MHz freq.Von diesen Mindest-Proben, wie kann ich erkennen, die Null-Kreuzung und ve Zyklus und Ve-Zyklus? ... Ich
bin nicht in der Lage genau zu erkennen, die "Null-Kreuzung Zeitpunkt der Sinus von der ADC-Daten.Da ich nur 20 verschiedene Spannungsebenen,
ist es schwer zu beheben meine steigen und fallen je nach den Sinus ..... also die Veränderung der Pflicht cyle tritt .... .. Ich glaube, eine Lösung zur Verbesserung der Codierung?.Hinzugefügt nach 5 Minuten:umery2k75 schrieb:

Wie wäre es mit dieser Schaltung?. Es wird konvertieren Sinuswelle in quadratische Welle, aber das gibt ein umgekehrtes output.If Sie das untere Ende des Sinus-Generator für die Quellengewichtung BJT, erhalten Sie in der Phase-Platz Welle der Sinuswelle .<img src="http://images.elektroda.net/92_1202826289.jpg" border="0" alt=""/>
 
Es
ist so einfach im FPGA.Verwenden Sie einen digitalen Komparator.Nehmen wir an, Sie haben eine 8-Bit-Linear-unsigned Probe.Sie sollten es mit einer Reihe.typicaly es sholud werden 128 = 2 ^ 8 / 2, um 50% Platz Welle), wenn Sie 70% Platz Wellenform comapre Sie sollten mit einer Reihe Abou 190.wenn er höher Set 1 Set sonst 0.

Wenn Ihr Wellenform ist keine gute Sünde, können Sie ein Tiefpassfilter
ist es gleich, dass ein durchschnittlich Filter.Verwenden Sie drei oder mehr Kaskade 8-Bit-Register und einen Durchschnitt von ihm.Ich bevorzuge die Verwendung 2 oder 4 Kaskade registrieren, je nachdem, wie es
ist laut.und sie dann zu oben Vergleichsperson.

Auch können Sie eine Schmith Trigger System mit zwei Grenzstanderfassung.Wenn Sie eine Frage haben, dann kontaktieren Sie mich.

 
Dank "ZEROX100", als ich den letzten Teil meiner Test, bevor ich da verloren hoffe versucht einen Vergleich der Daten mit der Hälfte des Wertes für zB meine ADC Proben seit 4096 gibt es 12-Bit-ADC.Also habe ich im Vergleich die Werte in HEX als "FFF", wie die Max-Gipfel für ( ve) und "000" als Höhepunkt für max (-ve).So habe ich x "500" als den Mittelpunkt und wie diese codiert
Process (clk, adc_data)
beginnen

IF rising_egde (CLK), dann
if (adc_data> = X "500") THEN
fsk_dem <='1 ';
sonst
fsk_dem <='0 ';
end if;
end if;

Idealerweise nach den Code Betrieb, die Ausgabe sollte uns die positiven Quadranten der Sinus als "ON"-Zeit und der Sinus-ve-Quadranten als "OFF"-Zeit.Aber in Echtzeit, da die Proben sind so niedrig wie 20 ~ 10, und eine hohe Frequenz von Sinus als 2 & 4MHz, es scheint eine problem.the Wert von Sinus scheint nicht, konstant zu sein.Ich
bin nicht in der Lage, hacken die Wellenform in 2 sqr.If Sie haben eine Lösung, können Sie mir empfehlen ... Auf jeden Fall danke

 
Lieb,

Kann es daran, dass der synchrone Natur des Designs.Ich habe eine andere Idee: Wenn Ihr Sinus hat eine gute Qualität mit einem asynchronen Natur.Nur ompare es mit 0x500if (adc_data> = X "500") THEN
fsk_dem <='1 ';
sonst
fsk_dem <='0 ';
end if;

Wenn es nicht eine gute Sinuswelle mit einem Mittelwert Wie ich bereits sagte.Es filtert die Geräusche und auch hohe frequncy unerwünschte Harmonien.Anyawy falls es sich um ein sehr schlechtes Signal nach Filterung und tun alles, was es
ist unmöglich, eine Geldbuße von 50% Platz Welle.Wenn es Ihre Situation und versuchen, einen Schmitt-Trigger.Es wird Ihnen helfen, sich einen besseren Platz Welle, aber noch immer nicht in Ordnung.Zum Beispiel können Sie mit der 0x600-Signal zu setzen und 0x400 zur Aufrechnung.Wenn es nicht gut für Sie versuchen, andere Werte.Es
ist wie ein Spiel, dann sollten Sie spielen mit Zahlen.
Wenn Sie ein anderes Problem, lassen Sie mich wissen, und sich gerne an, schreiben Sie mir!

Ich habe eine Frage zu Ihrer Nähe!Ich interessiere mich für einen Job Chance.Ich würde mich freuen, wenn Sie mir helfen, eine freie Stelle zu finden.

Grüße,

 
Hi xtcx, von Ihrem bisherigen Nachrichten, es klingt wie Ihre FPGA mit einem digitalisierten Sinus (zwischen 2 und 4 MHz) von einem ADC,
der Probenahme
ca. 50 MHz.Es würde helfen, die Diskussion, wenn man klären, was Sie bauen, oder die Eigenschaft des Sinus Sie versuchen zu messen.

 
Gute Frage, ja.Ich hatte in den vorangegangenen Threads im Zusammenhang mit dem Projekt, es
ist eine serielle Thema.Es wurde gesagt, dass das Problem ist FSK Demodulation, die Abtastrate liegt bei 40 MHz, denke ich.Wie ich bereits erwähnt, kann dies einfach mit reinen Sinus-oder gehen Sie auf die technischen Grenzen mit einem Minimum an SNR.

PS: Auch mit reiner Sinus-Welle, dass könnte demodulierten "trivial" von einem Komparator, sollte man mindestens machen symmetrisch, anstatt der Schwelle zum 0x500 und sich über den Duty Cycle ...

 
Hallo Freunde!
Sorry meine Verbindung vom Server war für einen Tag.OK, ich mache ein Projekt zur SZR.Die Idee zu entwickeln, ist alles von mir (es
ist nur ein Prototyp). Ich habe folgende Peripheriegeräte in meinem Mainboard.
1) Xilinx Virtex 4 FPGA
2) Einstellbarer Master Clock von 1 MHz bis 100MHz.
3) 40MHz ADC/125MHz Dac *
4) Codec (2 CH) **
5) XILINX ISE 8.2i, Modelsim6
* ADC \ DAC verfügt über einen eigenen Filter-Schaltungen.Es
ist bipolar Gerät, haben Reihe 2Vpp
** Codec wieder Filter Schaltungen gebaut um ihn herum.So Codec Offset-Fehler kann abgelehnt werden

In meinem Projekt (auf FPGA nur) gibt es verschiedene Schichten von Operationen innerhalb FPGA
Layer 1: - Daten aus Codec @ 2MHz Bitrate enthält 16 LCH 16 Forschung (32bits)
Layer 2: - Hinzufügen von Kopf-, Marker, Prüfsumme (CRC)
Layer-3: -
Coding (Manchester, NRZ, 8b \ 10b, etc, wenn vorhanden)
Layer 4: - MODULATION & DEMODULATION

Getriebe: Layer1 ---> layer2 ---> Layer3 ---> Layer 4 ---> HF
EMPFANG: Layer1 <--- layer2 <--- Layer3 <--- LAYER 4 <--- HF

Layer 1: --
In diesem Teil habe ich alle in \ OUT von einem Standard-Voice-Codec mit AD73322.Ich Stichprobe der Daten auf 16kHz und Nutzung 2MHz Bit Uhr mit 8US Zeit zwischen sync1 und sync2.Aber die Zeit ist 64us.Der Codec sendet Daten in Höhe von 2MHz.It kontinuierlich sendet die ch1 (16 Bit) auf 8US und CH2 (16 Bit) auf 8US.Gesamtprobenahme Zeit ist 64us.Aus dieser, gibt es noch 48us.In dieser Zeit, die ich hinzufügen, Marker und andere Gemeinkosten im steps.My Ziel ist die Erreichung aller dieser Arbeiten auch die Modulation in dieser Zeit.Orelse I erhalten Verschiebung oder fehlt bei der receiver.This ist ein Grund, warum habe ich als etwas 2MHz Taktfrequenz für Codec
Layer 2: - noch umgesetzt werden
Layer-3: - noch umgesetzt werden
Layer 4: --
Art der Modulation techniqes umgesetzt werden mit Virtex 4 FPGA auf
1) ASK (auch Typ)
2) FSK
3) PSK
4) QPSK
Dies ist der Teil, an dem ich derzeit festgefahren mit.
Ich habe einfach durch die ASK-Modulation mit Schmitt-Trigger-Konzept.So Demodulation war kein Problem, auch bei höheren freqs wie 2 oder 4MHz.Während ich versuchte zu beweisen, FSK zu niedrigeren Frequenz um 20KHz/40KHz Carrier, ich hatte nie das Gefühl, ein Problem in der Wiederherstellung von Daten aus dem Sinus auf der Empfängerseite.Als ich 2MHz und 4MHz als meine FSK Träger für eine Datenrate von 2MHz, schrie Problem vieles mehr.Ich 20 Proben bei 40MHz, um 2MHz von DAC für "1" und ich 10 Proben bei 40MHz, um 4MHz von DAC für'0 's.Ich Umstellung dieser sine freqs abhängig von Daten über eine CASE-Anweisung.Also hat mein
Datenrate = 2MHz
F1 = 2MHz
F2 = 4MHz
Beispiel Ausführung Uhr = 40MHz.
so für das Senden von 20 Proben, ich 2MHz und 4MHz für 10 Proben
Ich habe keine Möglichkeit, alle RF mittel bis jetzt.Alles, was ich zunächst zu beweisen, ist die Modulation Technik.Also habe ich direkt von der FSK-Feed dieser Tx in der Rx ADC.So
der Lärm auf der Grundlage Außerdem ist nicht möglich.Hier ist die problem.Like gesagt, ich dachte, der Umwandlung von Strom in der FSK sqr Welle, so dass ich sperren können diese beiden oszillierenden Frequenzen sehr einfach.Aber jetzt kann ich nicht die Spur sqr Welle der FSK-Signal mit 50% Zoll cycle.As ein Ergebnis,
bekomme ich 1 SQR Welle für 1 (2MHz) Sinus mit 70% Zoll cylce und zwei Sqr Wellen für 2 (4MHz) Sinus mit 70 % Einschaltdauer bei konstanter Geschwindigkeit.Nun, wenn ich das Zählen der auf \ Aus Zeit-Technik zur Rückgewinnung von 1s und 0s, dann die Werte nicht konstant bleiben.Als Ergebnis der recoverd Daten auf die Zeit etwas höher Zeitraum sagen 300ns als OFF Zeit sagen 200ns.So jetzt meine Daten 1s und 0s sind nicht in konstanten timeperiod.Data'1 'Aber das Wunder ist, dass, wenn ich Futter dieser Ausgabe in die anderen Schichten, ich war in der Lage, um die Audio-back.Why ?.... Dies liegt daran, dass der Codec Proben 2MHz Bit Uhr.Meine Daten 1's und 0 sind
die Proben auf ihren Ebenen (fallende Flanke von 2MHz clk). So eine leichte mehr Zeit hat keinen Einfluss auf den Fall ab.Aber ich denken, dass dies nicht eine angemessene Art und Weise.Ich hoffe, Sie haben sich über meine Fortschritte.Wenn Sie diesbezüglich Zweifel, plz fragen me.I wird versuchen, mehr information.I nicht wissen, wie man Bilder.Oder aber ich konnte gezeigt
haben Sie die Dinge mit Details.Vielen Dank für Ihre Zeit Freunden .. erwarten einige bessere Lösung ....

 

Welcome to EDABoard.com

Sponsor

Back
Top