ALICE 1.3  1.3.14
Developer documentation
syntax-test.py
Go to the documentation of this file.
1 # Example script to generate waveform data for a valid stereo-FM multiplex (MPX) signal
2 # with ADALM1000 arbritrary waveform generator
3 
4 LeftFreq = float(eval(AWGAFreqEntry.get())) # Use AWG A Freq entry 700.0
5 RightFreq = float(eval(AWGBFreqEntry.get())) # Use AWG B Freq entry 700.0
6 CarrierFreq = 38000.0
7 PilotFreq = CarrierFreq/2
8 
9 # BaseSampleRate = 100000.0
10 RecLength = 100000.0
11 print(RecLength)
12 Leftperiodvalue = (BaseSampleRate*2)/LeftFreq
13 Rightperiodvalue = (BaseSampleRate*2)/RightFreq
14 Pilotperiodvalue = (BaseSampleRate*2)/PilotFreq
15 Carrierperiodvalue = (BaseSampleRate*2)/CarrierFreq
16 
17 LeftCycles = int(RecLength/Leftperiodvalue)
18 print(LeftCycles)
19 RightCycles = int(RecLength/Rightperiodvalue)
20 PilotCycles = int(RecLength/Pilotperiodvalue)
21 CarrierCycles = int(RecLength/Carrierperiodvalue)
22 #
23 AWGAwaveform = numpy.cos(numpy.linspace(0, 2*LeftCycles*numpy.pi, RecLength))
24 AWGBwaveform = numpy.cos(numpy.linspace(0, 2*RightCycles*numpy.pi, RecLength))
25 LminusR = AWGAwaveform - AWGBwaveform
26 Pilot = 0.1*numpy.cos(numpy.linspace(0, 2*PilotCycles*numpy.pi, RecLength))
27 Carrier = numpy.cos(numpy.linspace(0, 2*CarrierCycles*numpy.pi, RecLength))
28 #
29 AWGAwaveform = Left + Right + Pilot + (Carrier * LminusR)
30 
31 Time = numpy.linspace(0, RecLength, RecLength) # Time vector for plotting
32 
33 plt.figure()
34 plt.grid()
35 plt.plot(Time, AWGAwaveform , 'g', label='Stereo')
36 plt.title('Stereo Gen')
37 plt.xlabel('Time')
38 plt.ylabel('Volts')
39 plt.legend(loc='best')
40 plt.tight_layout()
41 plt.show(block=True) #
42 # Write Waveform to file
43 # numpy.savetxt("Stereo-gen.csv", AWGAwaveform, delimiter=",", fmt='%2.4f')