private static void WriteAdditionalDataToCells(AdditionalSignalData inputData, Worksheet worksheet, int columnIndex) { if (inputData != null) { worksheet.Cells[1, columnIndex].NumberFormat = "@"; worksheet.Cells[1, columnIndex].Value = "factor: " + inputData.ModulationDepthFactor.ToString(); } }
static void Main(string[] args) { for (int i = 0; i < 5; i++) { Console.WriteLine("Pamietaj! Czestotliwosc probkowania musi byc co najmniej 2x wieksza niz najwyzsza w sygnale!!!!!!"); } /* * * Ustawienia globalne * */ SamplesGenerator.GlobalSamplingRate = 440; SamplesGenerator.GlobalSimulationTimeSeconds = 1; /* * Tworzenie sygnalu informacyjnego */ var signal1 = SamplesGenerator.GenerateSamples(ampl: 3, frequency: 7, out SignalData signalData1, phase: 0); var signal2 = SamplesGenerator.GenerateSamples(ampl: 9, frequency: 14, out SignalData signalData2, phase: 0); var summedInformationSignal = SamplesGenerator.Sum(signal1, signal2); /* * Tworzenie sygnalu nosnego z o wiele wieksza czestotliwoscia */ var carrierSignal = SamplesGenerator.GenerateCarrierSignal(ampl: 20, frequency: 200, out SignalData carrierSignalData, 0); /* * Wygenerowanie zmodulowanego sygnalu z uwzglednieniem wsp. glebokosci modulacji */ double modulationDepthFactor = 2; var modulatedSignal = AmplitudeModifier.Modulate(summedInformationSignal, carrierSignal, modulationDepthFactor); /* * Transformata zmodulowanego i zapisanie do excela */ Fourier.DiscreteTransform(modulatedSignal, out var fourier_modulated); /* * Wprowadzenie danych do EXCEL'A */ ExcelWriter.WriteSamples(CustomFullPath, "Sygnal1.xlsx", signal1, signalData1); ExcelWriter.WriteSamples(CustomFullPath, "Sygnal2.xlsx", signal2, signalData2); ExcelWriter.WriteSamples(CustomFullPath, "SygnalNosny.xlsx", carrierSignal, carrierSignalData); ExcelWriter.WriteSamples(CustomFullPath, "SygnalInformacyjny.xlsx", summedInformationSignal, signalData1, signalData2, null, null, signal1, signal2); AdditionalSignalData additionalData = new AdditionalSignalData(); additionalData.ModulationDepthFactor = modulationDepthFactor; ExcelWriter.WriteSamples(CustomFullPath, "Zmodulowany_Amplituda.xlsx", modulatedSignal, carrierSignalData, signalData1, signalData2, additionalData, summedInformationSignal, carrierSignal); ExcelWriter.WriteSignalDataAndDFTResult(CustomFullPath, "Zmodulowany_DFT.xlsx", fourier_modulated, carrierSignalData); }
public static void WriteSamples(string path, string excelFileName, List <Sample> samples, SignalData inputData1, SignalData inputData2 = null, SignalData inputData3 = null, AdditionalSignalData inputData4 = null, List <Sample> samples1 = null, List <Sample> samples2 = null) { Application app = null; Workbooks workBooks = null; Workbook workbook = null; Sheets worksheets = null; Worksheet worksheet = null; CreateExcelComponents(out app, out workBooks, out workbook, out worksheets, out worksheet); WriteSampleValuesToCells(samples, worksheet, FinalSampleValueColumnIndex, SampleDeltaTimeColumnIndex); WriteSignalDataToCells(inputData1, worksheet, Signal1ColumnDataIndex); WriteSignalDataToCells(inputData2, worksheet, Signal2ColumnDataIndex); WriteSignalDataToCells(inputData3, worksheet, Signal3ColumnDataIndex); WriteAdditionalDataToCells(inputData4, worksheet, AdditionalDataColumnIndex); WriteSampleValuesToCells(samples1, worksheet, Sample1ValueColumnIndex, 0); WriteSampleValuesToCells(samples2, worksheet, Sample2ValueColumnIndex, 0); SaveAndRelease(path, excelFileName, app, workBooks, workbook, worksheets, worksheet); }