Programming Example for a Downlink PESQ Measurement
This example is to test the mobile station's speech quality using the PESQ measurements in Downlink mode.
The following procedure assumes that the mobile station's antenna output is connected to the test set's front-panel RF IN/OUT connector. The analog audio from the mobile phone speaker is fed back to the test set's AUDIO IN port. The mobile station supports SO17 service option.
!The simple test executive allows you to do downlink PESQ Measurement
COM Testset
!
Testset=714 ! Set "Testset" to equal GPIB address of 8960
!
CLEAR SCREEN
!
!**************************************************************
! SET UP GPIB TIMEOUT
!**************************************************************
!
ON TIMEOUT 7,30 CALL Timeout ! Calls "Timeout" routine
!
!**************************************************************
! VARIABLE DECLARATIONS FOR CALL SET UP - MOBILE SPECIFIC
!**************************************************************
Systype$="DIGITAL2000" !Cell System Type
Band$="USPCs" !PCS band
Channel=525 !RF Channelfor call setup
Sid=331 !System Identification
Nid=1 !Network Identification
Radio_config$="F2R2" !Radio Configuration
Service_opt$="SO17" !Voice Service Option
!
!*************************************************************
! Test Executive
!*************************************************************
!
GOSUB Preset_test_set
GOSUB Set_call_parms
GOSUB Register
GOSUB Connect
GOSUB Pesq_down
GOTO End_program !Jumps to end of program
!
!**************************************************************
! PRESET TEST SET
!**************************************************************
Preset_test_set: !
!
PRINT "Reset 8960"
OUTPUT Testset;"*Rst" !RESET TEST SET
OUTPUT Testset;"*OPC?"
ENTER Testset;Opc$
RETURN
!
!***************************************************************
! SET UP CALL PARAMETERS
!***************************************************************
Set_call_parms: !
!
PRINT "Setup Network/Base station Parameter"
OUTPUT Testset;"CALL:SYSTEM ";Systype$ !Sets System Type
OUTPUT Testset;"CALL:BAND ";Band$
!Sets Cell Band for selected System Type
OUTPUT Testset;"CALL:CHAN ";Channel
!Sets RF Channel for selected System Type and Cell Band
OUTPUT Testset;"CALL:POW -55" !Sets and turns on Cell Power
OUTPUT Testset;"CALL:SID ";Sid !Sets System Identification
OUTPUT Testset;"CALL:NID ";Nid !Sets Network Identification
OUTPUT Testset;"CALL:CELL:RCONFIG ";Radio_config$
OUTPUT Testset;"CALL:SOPTION ";Service_opt$
!Sets service option for selected System Type
!* and Radio Configuration
OUTPUT Testset;"CALL:PAG:DRAT FULL"
!Sets Paging data rate to full rate
OUTPUT Testset;"CALL:PIL -7" !Sets pilot to default
OUTPUT Testset;"CALL:SYNC -16" !Sets sync to default
OUTPUT Testset;"CALL:PAG -12" !Sets paging to default
RETURN !Sub-routine return
!
!***************************************************************
! REGISTER MOBILE
!***************************************************************
Register: !
!
PRINT "Turn on mobile station...press continue when it has found service and registered"
PAUSE
OUTPUT Testset;"CALL:REGISTER:TIMER:STATE OFF" !turns off timer-based registration
WAIT 2 !Waits 2 seconds for any timer-based registrations in progress to complete
!
PRINT "Mobile Registration Complete"
PRINT
!
!**************************************************************
! PRINT MOBILE REGISTRATION INFO
!**************************************************************
!
!Read registration information
!
OUTPUT Testset;"CALL:MS:REP:ESN:HEX?"
ENTER Testset;Esn$
OUTPUT Testset;"CALL:MS:REP:MCC?"
ENTER Testset;Mcc$
OUTPUT Testset;"CALL:MS:REP:MNC?"
ENTER Testset;Mnc$
OUTPUT Testset;"CALL:MS:REP:MSIN?"
ENTER Testset;Msin$
OUTPUT Testset;"CALL:MS:REP:BCLASS?"
ENTER Testset;Bclass$
OUTPUT Testset;"CALL:MS:REP:EIRP?"
ENTER Testset;Eirp$
OUTPUT Testset;"CALL:MS:REP:OPER:MODE?"
ENTER Testset;Opmode$
OUTPUT Testset;"CALL:MS:REP:PREV?"
ENTER Testset;Prev$
PRINT "Mobile Registration Information:"
PRINT
Print_res_str("Mobile ESN:",Esn$)
Print_res_str("Mobile MCC:",Mcc$)
Print_res_str("Mobile MNC:",Mnc$)
Print_res_str("Mobile MSIN:",Msin$)
Print_res_str("Mobile BAND CLASS:",Bclass$)
Print_res_str("Mobile EIRP:",Eirp$)
Print_res_str("Mobile OP MODE:",Opmode$)
Print_res_str("Mobile P_REV:",Prev$)
PRINT
!
RETURN
!
!**************************************************************
! CONNECT CALL
!**************************************************************
Connect: !
!
!***Page the mobile station***
!
Connect_tries=0
PRINT "Paging mobile station..."
LOOP
!
OUTPUT Testset;"CALL:ORIG" !Pages the mobile station
OUTPUT Testset;"CALL:CONNECTED:STATE?"
!Queries for connected/idle state
ENTER Testset;Call_connected
Connect_tries=Connect_tries+1
IF NOT Call_connected THEN
WAIT .2
END IF
EXIT IF Call_connected OR Connect_tries=50
!try 3 times to connect
END LOOP
IF NOT Call_connected THEN
PRINT "Call attempt failed"
GOTO End_program
ELSE
PRINT "Call connected"
Current_chan=Primary_channel
END IF
PRINT
RETURN
!
!*************************************************************
! PESQ_down: Downlink PESQ measurement mode is used to
! test the analog signals presented at the AUDIO IN port of
! the test set so that the downlink speech quality of the mobile
! station can be verified
!*************************************************************
Pesq_down: !
!
OUTPUT Testset;"CALL:FCHannel:SOURce PESQ"
!Set up the Voice SO Mode required for the downlink measurement.
!*** PESQ measurement setup ***
!1. Set up PESQ parameters for downlink test
OUTPUT Testset;"SETup:PESQuality:CONTinuous OFF"
!Set the trigger arm to Single.
OUTPUT Testset;"SETup:PESQuality:MEASurement:MODE DOWN"
!Set the measurement mode to Downlink
OUTPUT Testset;"SETup:PESQuality:SPEech MALE"
!Set the speech source to Male
OUTPUT Testset;"SETup:PESQuality:INPut:VOLTage 300 MV"
!Set the expected audio in peak voltage to 300mV
OUTPUT Testset;"SETup:PESQuality:TIMeout 30 s"
!Set the Measurement Timeout to 30s.
!
!Measure downlink PESQ
PRINT "PESQ Downlink Test Result"
OUTPUT Testset;"INITiate:PESQ"
!Initiates an PESQ measurement
OUTPUT Testset;"FETCh:PESQ?"
ENTER Testset;Integrity,Pesq_u_score,Pesq_d_score,Pesq_u_headroom,Pesq_d_headroom
PRINT "Integrity indicator = ";Integrity
PRINT "PESQ Uplink Score = ";Pesq_u_score
PRINT "PESQ Downlink Score = ";Pesq_d_score
PRINT "PESQ Uplink Headroom = ";Pesq_u_headroom
PRINT "PESQ Downlink Headroom = ";Pesq_d_headroom
!
RETURN
!
!**************************************************************
! End of All Testing Cleanup
!**************************************************************
End_program: !
!
OUTPUT Testset;"CALL:END"
PRINT "End of Program"
END
!
!**************************************************************
! Sub-program Section
!**************************************************************
!
Timeout: SUB Timeout ! Global timeout handler (from Step 1)
COM Testset
PRINT "Program timed out"
CLEAR 7
CLEAR Testset
STOP
SUBEND
Print_res_str: SUB Print_res_str(String_name$,Results$)
!
PRINT USING "5X,30A,5X,20A";String_name$;Results$
!
SUBEND
!