LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

devo generare una sine waveform con una certa fase iniziale ma che sia reentrant

devo generare una sine waveform con una certa fase iniziale ma che sia reentrant, in quanto sto simulando una digital down conversion e genero per ogni simbolo la moltiplicazione dei campioni del simbolo trasmesso con un numero di campioni uguali di una sinusoide con una certa frequenza. Quindi per ogni simbolo devo far partire la sinusoide con la fase con cui ha terminato l'iterazione precedente. Inoltre, dato che sto simulando una 16 QAM ho la necessità di creare due portanti, una seno ed una coseno, entrambe rientranti, ma con fase iniziale sfasata di 90 ° tra loro. Però, il vi SineWaveform ignora la phase se il segnale di Reset è false, come nel mio caso.

 

 

I have to generate a sine waveform with a initial phase but it has to be reentrant.Since I'm simulating a digital down-conversion, I have to multiply the samples of each symbol with an equal number of samples of a sine wave that has a fixed frequency. So, for each symbol I need that sine waveform starts with the phase with which ends the previous sine waveform( related to previous symbol). Also, since I am simulating a 16 QAM modulation,I need to create a sine and a cosine, but the initial phase of 90 ° out of phase with each other. My problem is that SineWaveform ignores phase if reset signal is false, as in my case.

0 Kudos
Message 1 of 4
(2,325 Views)

Ciao Paolo,

  l'operazione di digital down conversion, viene eseguita in un VI?? per poterti aiutare al meglio, avrei bisogno di dare un'occhiata al block diagram che hai sviluppato. sempre che per te non sia un problema inoltrarmelo. comunque sto provando ad effettuare lo stesso tuo tipo di simulazione, ma non ho ben capito che tipo di problema ti si presenta.

 

Resto in attesa di tue notizie.

Saluti.

 

Claudio Cupini

National Instruments

Application Engineer

0 Kudos
Message 2 of 4
(2,312 Views)

Ciao Claudio,

ti allego uno zip in cui trovi un vi "master" che si chiama prova_16QAM. Lì trovi il blocco in cui creo la portante e il subvi si chiama carrier_signal.vi.

 

Grazie,

Paolo

0 Kudos
Message 3 of 4
(2,307 Views)

Ciao Paolo,

 scusami per il ritardo con cui ti rispondo, ma sono stato abbastanza impegnato. Ho dato un'occhiata al tuo codice, e così com'è strutturato la sine carrier waveform non aggiorna la fase iniziale ad ogni ciclo inquanto è sempre e comunque impostata a phase = 0. Ho implementato un semplice codice che, data una waveform in ingresso, ne ricostruisce la fase e ti restituisce quella dell'ultimo campione della sinusoide in ingresso. A questo punto ti suggerisco di introdurre uno shift register nel for loop. Inizializzandolo a 0 (all'esterno del ciclo), collegandolo all'input phase del Sine waveform generator.vi sei sicuro che ad ogni iterazione la sinusoide portante parte con fase iniziale uguale a quella dell'ultimo campione della sinusoide precedente.

Quindi ricapitolando dovresti:

 

1) Aggiungere uno shift register al for loop. inizializzato a 0;

2) Collegare l'estremo sinistro dello shift register all'input phase del tuo waveform generator;

3) Inserire il VI allegato a valle del waveform generator;

4) Riportarti l'uscita del Last element phase reconstr.vi all'estremo destro dello shift register precedentemente inserito.

 

Spero sia tutto abbastanza chiaro, sperando di aver correttamente interpretato le tue problematiche a riguardo.

 

Saluti

 

 

0 Kudos
Message 4 of 4
(2,284 Views)