Dim ListArray(4) As String Dim ComboArray(5) As String Dim DataFileName As String Dim DataDirectory As String Dim SaveDirectory As String Dim gain As New Spreadsheet Dim phase As New Spreadsheet Dim coherence As New Spreadsheet Dim FileNumber As Integer Dim strFileNames(1 To 9) As String Dim strPrefix, strSuffix As String Dim NumberOfRows As Integer Dim NumberOfColumns As Integer Sub Main NumberOfRows=9 NumberOfColumns=10 DataDirectory = "C:\Documents and Settings\Julie\My Documents\CarFol_Vel_Analysis\car_follow_processing\" SaveDirectory = "C:\Documents and Settings\Julie\My Documents\CarFol_Vel_Analysis\car_follow_processing\" strPrefix="CarFollowV2_Follow_Sub" strSuffix="_1" strFileNames(1) = "JL_" strFileNames(2) = "ME_" gain.SetSize(NumberOfRows+1, 6) phase.SetSize(NumberOfRows+1, 6) coherence.SetSize(NumberOfRows+1, 6) gain.Visible =True phase.Visible =True coherence.Visible =True For i = 1 To NumberOfRows For j=1 To 5 gain.Value (i+1,j+1)=0.0 phase.Value (i+1,j+1)=0.0 coherence.Value (i+1,j+1)=0.0 Next j FileNumber = i Fourier Next i gain.Value (1,1)="SubjectName" phase.Value (1,1)="SubjectName" coherence.Value (1,1)="SubjectName" For i=1 To 3 gain.Value (1,1+i)="Freq"+Right(Str(i),1) phase.Value (1,1+i)="Freq"+Right(Str(i),1) coherence.Value (1,1+i)="Freq"+Right(Str(i),1) Next i gain.SaveAs (SaveDirectory + "SumSin_gain_"+ ".sta") phase.SaveAs (SaveDirectory + "SumSin_phase_" + ".sta") coherence.SaveAs (SaveDirectory + "SumSin_coherence_" + ".sta") Finish: End Sub Sub Fourier Dim sum As Double sum=0.0 Dim filename As String For j=1 To 2 filename = DataDirectory + strPrefix+strFileNames(FileNumber)+Right(Str(j),1)+strSuffix + ".txt" Dim S1 As Spreadsheet Set S1 = Spreadsheets.Open (filename) S1.Visible = True S1.SaveAs (DataDirectory + strFileNames(FileNumber)+Right(Str(j),1) + ".sta") For i=1 To NumberOfColumns/2 'i=2 Dim newanalysis3 As Analysis Set newanalysis3 = Analysis (scTimeSeries, S1) With newanalysis3.Dialog .Variables = "1-10" .LockTimeSeriesVariable = "Locked Locked Locked Locked Locked Locked Locked Locked Locked Locked" .SeriesShortName = "Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8 Var9 Var10" .SeriesLongName = "" + vbLf + _ "" + vbLf + _ "" + vbLf + _ "" + vbLf + _ "" + vbLf + _ "" + vbLf + _ "" + vbLf + _ ""+ vbLf + _ "" + vbLf + _ "" .FocusTimeSeriesVariable = 3 .NumberOfBackupsPerVariable = 3 .InterpolateMDFromAdjacentPoints = True .NumberOfAdjacentPointsForMeanMDReplacement = 1 .NumberOfAdjacentPointsMedianMDReplacement = 2 End With newanalysis3.Dialog.SpectralFourierAnalysis 'This little routine below creates a string with the right name for the Dependent Variable in the Fourier analysis. 'I'm using the Right function below to remove a space that was occuring between "Var" and the number when I left it out. Dim DependentVar As String DependentVar = Str(2*i-1) + " Var" DependentVar = DependentVar + Right(Str(2*i-1),1) With newanalysis3.Dialog .LockTimeSeriesVariable = "Locked Locked Locked Locked Locked Locked Locked Locked Locked Locked" .SeriesShortName = "VAR1 VAR2 VAR3 VAR4 VAR5 VAR6 VAR7 VAR8 VAR9 VAR10" .SeriesLongName = "" + vbLf + _ "" + vbLf + _ "" + vbLf + _ "" + vbLf + _ "" + vbLf + _ "" + vbLf + _ "" + vbLf + _ "" + vbLf + _ "" + vbLf + _ "" .FocusTimeSeriesVariable = (2*i) .NumberOfBackupsPerVariable = 3 .DependentVariable = DependentVar .Taper = False .SubtractMeanFromInputSeries = True .DetrendInputSeries = True .PadLengthToAPowerOf2 = True .DisplayPlotSubsetOfCasesOnly = True .DisplayPlotSubsetFrom = 1 'should change according to specific raw data file, the same as the following line .DisplayPlotSubsetTo = 3600 .ScaleXAxisInPlotsManually = False .LabelDataPointsWithCaseNumbers = True .PLevelForHighlighting = 0.050000 .WhiteNoiseStandardErrors = True .NumberOfLags = 15 End With newanalysis3.Dialog.TwoSeriesFourierAnalysis With newanalysis3.Dialog .HighlightValuesInSpreadsheet = True .HighlightValuesGreaterThan = 1.000000 .NLargestValues = 10 .DisplayLargestCrossPeriodogramReal = True .DataWindowForDensityEstimatesHamming = True .UserDefinedDataWindow = "0.0357143 0.241071 0.446429 0.241071 0.0357143 " .WidthOfDataWindow = 5 .AppendToWorkAreaFrequencyValues = False .AppendToWorkAreaPeriodValues = False .AppendToWorkAreaCosineCoefficients = False .AppendToWorkAreaSineCoefficients = False .AppendToWorkAreaPeriodogram = False .AppendToWorkAreaSpectralDensity = False .AppendToWorkAreaCrossPeriodogram = False .AppendToWorkAreaCospectralDensity = False .AppendToWorkAreaQuadratureSpectrum = False .AppendToWorkAreaCrossAmplitude = False .AppendToWorkAreaCoherency = False .AppendToWorkAreaGain = False .AppendToWorkAreaPhaseSpectrum = False .ExamineSubsetOfPeriodogram = False .SelectedResultCosineCoeffs = False .SelectedResultSineCoeffs = False .SelectedResultPeriodogram = False .SelectedResultSpectralDensity = False .SelectedResultCrossPeriodogram = Fals .SelectedResultCospectralDensity = True .SelectedResultQuadratureSpectrum = True .SelectedResultCrossAmplitude = False .SelectedResultCoherency = True .SelectedResultGain = False .SelectedResultPhaseSpectrum = False .PlotByFrequency = True End With Set r=newanalysis3.RouteOutput(newanalysis3.Dialog.Summary) If (r.HasWorkbook=True) Then Dim w As Workbook Set w=r.Workbook Dim wi As WorkbookItem Set wi=w.Root.Child While (wi.Type<>scWorkbookItemTypeSpreadsheet) Set wi=wi.Child Wend Dim s As Spreadsheet Set s=wi.Extract(scWorkbookExtractCopy) s.Visible=True End If 'newanalysis3.RouteOutput(newanalysis3.Dialog.Summary).Visible = True gain.Value(FileNumber+1,2)=s.Value(3,18)/10+gain.Value(FileNumber+1,2) gain.Value(FileNumber+1,3)=s.Value(6,18)/10+gain.Value(FileNumber+1,3) gain.Value(FileNumber+1,4)=s.Value(13,18)/10+gain.Value(FileNumber+1,4) gain.Visible = True phase.Value(FileNumber+1,2)=s.Value(3,19)/10+phase.Value(FileNumber+1,2) phase.Value(FileNumber+1,3)=s.Value(6,19)/10+phase.Value(FileNumber+1,3) phase.Value(FileNumber+1,4)=s.Value(13,19)/10+phase.Value(FileNumber+1,4) phase.Visible = True coherence.Value(FileNumber+1,2)=s.Value(3,16)/10+coherence.Value(FileNumber+1,2) coherence.Value(FileNumber+1,3)=s.Value(6,16)/10+coherence.Value(FileNumber+1,3) coherence.Value(FileNumber+1,4)=s.Value(13,16)/10+coherence.Value(FileNumber+1,4) coherence.Visible = True newanalysis3.Close newanalysis3.Close Set newanalysis3 = Nothing s.Close w.Close Next i S1.Close Set S1 = Nothing Next j gain.Value(FileNumber+1,1)=strFileNames(FileNumber) phase.Value(FileNumber+1,1)=strFileNames(FileNumber) coherence.Value(FileNumber+1,1)=strFileNames(FileNumber) End Sub