/// <summary> /// Funkcja inicjalizujaca sygnaly i ich wykresy dla lab5 dla demodulacji FSK /// </summary> private void initialize_Lab5_FSK() { Demodulation demodul = new Demodulation(); string word = "10101011"; courseGraph1 = new CourseGraph(10, 24, 150, 500, word); courseGraph2 = new CourseGraph(10, 184, 150, 500, "Kod FSK"); courseGraph3 = new CourseGraph(10, 344, 150, 500, "Kod cyfrowy"); digital = new DigitalSignal(word, 1000, 0.0625); //informacja // s. zmodulowany AnalogSignal FSK = new AnalogSignal(10, 0, 1000, 0.5).GenerateSinusSignal(); FSK.FSK(digital, 2); // Rysowanie przebiegów: // Sygnał nośny courseGraph1.Signal = digital; courseGraph1.Limit(5000); courseGraph1.DrawGraph(); //sygnal zmodulowany FSK courseGraph2.Signal = FSK; courseGraph2.Limit(5000); courseGraph2.DrawGraph(); //Kod cyfrowy courseGraph3.Signal = demodul.demodulationFSK(FSK, 0.0625, 2); // demodulacja courseGraph3.Limit(5000); courseGraph3.DrawGraph(); }
/// <summary> /// Funkcja inicjalizujaca sygnaly i ich wykresy dla lab4 dla modulacji FSK i PSK /// </summary> private void initialize_Lab4_FSK_PSK() { // inicjalizacja obiektow klasy wykresow przebiegu sygnalu courseGraph1 = new CourseGraph(10, 24, 150, 500, "Sygnał Cyfrowy"); courseGraph2 = new CourseGraph(10, 184, 150, 500, "FSK"); courseGraph3 = new CourseGraph(10, 344, 150, 500, "PSK"); // inicjalizacja obiektow klasy wykresow widma spectrumGraph2 = new SpectrumGraph(520, 184, 150, 500, "FSK"); spectrumGraph3 = new SpectrumGraph(520, 344, 150, 500, "PSK"); // inicjalizacja obiektow klasy sygnalow digital = new DigitalSignal("10101011", 1000, 0.0625); // rysowanie wykresow sygnalu 2. courseGraph1.Signal = digital; courseGraph1.Autoscale(); courseGraph1.DrawGraph(); // deklaracja i inicjalizacja obiektu sygnału zmodulowanego FSK AnalogSignal FSK = new AnalogSignal(new AnalogSignal(0, 0, 1000, 0.5)); FSK.FSK(digital, 1); //rysowanie wykresów ASK courseGraph2.Signal = FSK; courseGraph2.Autoscale(); courseGraph2.DrawGraph(); spectrumGraph2.Signal = FSK; spectrumGraph2.Autoscale(); spectrumGraph2.DrawGraph(); // deklaracja i inicjalizacja obiektu sygnału zmodulowanego PSK AnalogSignal PSK = new AnalogSignal(new AnalogSignal(0, 0, 1000, 0.5)); PSK.PSK(digital); //rysowanie wykresów ASK courseGraph3.Signal = PSK; courseGraph3.Limit(5000); courseGraph3.DrawGraph(); spectrumGraph3.Signal = PSK; spectrumGraph3.Autoscale(); spectrumGraph3.DrawGraph(); }
/// <summary> /// Funkcja realizujaca modulacje cyfrową ASK /// </summary> public void ASK(AnalogSignal carrier, DigitalSignal informaion) { course = new double[informaion.LengthOfBuffer]; for (int time = 0; time < informaion.LengthOfBuffer; time++) { if (informaion.Course[time] == 0) { course[time] = 0; } else { course[time] = carrier.Course[time]; } } }
/// <summary> /// Funkcja inicjalizujaca sygnaly i ich wykresy dla lab4 dla modulacji ASK /// </summary> private void initialize_Lab4_ASK() { // inicjalizacja obiektow klasy wykresow przebiegu sygnalu courseGraph1 = new CourseGraph(10, 24, 150, 500, "Sygnał Cyfrowy"); courseGraph2 = new CourseGraph(10, 184, 150, 500, "Nosna"); courseGraph3 = new CourseGraph(10, 344, 150, 500, "ASK"); // inicjalizacja obiektow klasy wykresow widma spectrumGraph2 = new SpectrumGraph(520, 184, 150, 500, "Nośna"); spectrumGraph3 = new SpectrumGraph(520, 344, 150, 500, "ASK"); // inicjalizacja obiektow klasy sygnalow signal1 = new AnalogSignal(50, 100, 1000, 1); // nośna digital = new DigitalSignal("10101011", 1000, 0.125); // Generowanie sygnalow na podstawie // podanych w konstruktorze parametrow signal1.GenerateSinusSignal(); // rysowanie wykresow sygnalu 2. courseGraph1.Signal = digital; courseGraph1.Limit(5000); courseGraph1.DrawGraph(); // rysowanie wykresow sygnalu 1. courseGraph2.Signal = signal1; courseGraph2.DrawGraph(); spectrumGraph2.setSignal(signal1); spectrumGraph2.Autoscale(); spectrumGraph2.DrawGraph(); // deklaracja i inicjalizacja obiektu sygnału zmodulowanego ASK AnalogSignal ASK = new AnalogSignal(signal1); ASK.ASK(signal1, digital); //rysowanie wykresów ASK courseGraph3.Signal = ASK; courseGraph3.DrawGraph(); spectrumGraph3.setSignal(ASK); spectrumGraph3.Autoscale(); spectrumGraph3.DrawGraph(); }
private void initialize_CDMA() { // inicjalizacja obiektow klasy wykresow przebiegu sygnalu courseGraph1 = new CourseGraph(10, 24, 150, 500, "Dane"); courseGraph2 = new CourseGraph(10, 184, 150, 500, "Kod rozpaszający"); courseGraph3 = new CourseGraph(10, 344, 150, 500, "Kod rozpaszający"); // inicjalizacja obiektow klasy wykresow widma spectrumGraph1 = new SpectrumGraph(520, 24, 150, 500, "Dane"); spectrumGraph2 = new SpectrumGraph(520, 184, 150, 500, "Kod rozpaszający"); spectrumGraph3 = new SpectrumGraph(520, 344, 150, 500, "Dane rozszerzone"); // inicjalizacja obiektow klasy sygnalow digital = new DigitalSignal("10101011", 1000, 0.125); // rysowanie wykresow courseGraph1.Signal = digital; courseGraph1.Autoscale(); courseGraph1.DrawGraph(); spectrumGraph1.Signal = digital; spectrumGraph1.DFT(); spectrumGraph1.Autoscale(); spectrumGraph1.DrawGraph(); digital = new DigitalSignal("1010101110101011", 1000, 0.03125); //rysowanie wykresów spectrumGraph2.Signal = digital; spectrumGraph2.DFT(); spectrumGraph2.Autoscale(); spectrumGraph2.DrawGraph(); courseGraph2.Signal = digital; courseGraph2.Autoscale(); courseGraph2.DrawGraph(); //rysowanie wykresów spectrumGraph3.Signal = new DigitalSignal("1010101110101011", 1000, 0.03125) * new DigitalSignal("10101011", 1000, 0.125); spectrumGraph3.DFT(); spectrumGraph3.Autoscale(); spectrumGraph3.DrawGraph(); courseGraph3.Signal = new DigitalSignal("1010101110101011", 1000, 0.03125) * new DigitalSignal("10101011", 1000, 0.125); courseGraph3.Autoscale(); courseGraph3.DrawGraph(); }
private static DigitalSignal operatorMultiplication(DigitalSignal firstSignal, DigitalSignal secondSignal) { DigitalSignal productOfSignals = firstSignal; double[] course; course = new double[productOfSignals.LengthOfBuffer]; for (int time = 0; time < productOfSignals.LengthOfBuffer; time++) { productOfSignals.Course[time] = firstSignal.Course[time] * secondSignal.Course[time]; // Sprawdzenie maksymalnej amplitudy i przypisanie jej do parametru if (productOfSignals.Course[time] > productOfSignals.Amplitude) { productOfSignals.Amplitude = course[time]; } } return(productOfSignals); }
/// <summary> /// Funkcja realizujaca modulacje cyfrową FSK /// </summary> public void FSK(DigitalSignal informaion, int n) { double frequency1 = n / informaion.TimeOfBit; double frequency2 = n * 2 / informaion.TimeOfBit; course = new double[informaion.LengthOfBuffer]; for (int time = 0; time < informaion.LengthOfBuffer; time++) { if (informaion.Course[time] == 0) { course[time] = Math.Sin(2 * Math.PI * frequency1 * time / SamplingFrequency); } else { course[time] = Math.Sin(2 * Math.PI * frequency2 * time / SamplingFrequency); } } }
/// <summary> /// Funkcja realizujaca modulacje cyfrową PSK /// </summary> public void PSK(DigitalSignal informaion) { double frequency = 1 / informaion.TimeOfBit; this.frequency = frequency; lengthOfBuffer = informaion.LengthOfBuffer; course = new double[informaion.LengthOfBuffer]; for (int time = 0; time < informaion.LengthOfBuffer; time++) { if (informaion.Course[time] == 0) { course[time] = Math.Sin(2 * Math.PI * frequency / SamplingFrequency * time); } else { course[time] = Math.Sin(2 * Math.PI * frequency * time / SamplingFrequency + Math.PI); } } }
/// <summary> /// Funkcja inicjalizujaca sygnaly i ich wykresy dla lab5 dla demodulacji ASK /// </summary> private void initialize_Lab5_ASK() { Demodulation demodul = new Demodulation(); string word = "10101011"; courseGraph1 = new CourseGraph(10, 24, 150, 500, "Nośna"); courseGraph2 = new CourseGraph(10, 184, 150, 500, word); courseGraph3 = new CourseGraph(10, 344, 150, 500, "Kod ASK"); signal1 = new AnalogSignal(7, 32.5, 1000, 0.5); // nośna digital = new DigitalSignal(word, 1000, 0.0625); //informacja // s. nośny signal1.GenerateSinusSignal(); // s. zmodulowany AnalogSignal ASK = new AnalogSignal(signal1); ASK.ASK(signal1, digital); // Rysowanie przebiegów: // Sygnał nośny courseGraph1.Signal = signal1; courseGraph1.Autoscale(); courseGraph1.DrawGraph(); //sygnal zmodulowany ASK courseGraph2.Signal = ASK; courseGraph2.Autoscale(); courseGraph2.DrawGraph(); //Kod cyfrowy courseGraph3.Signal = demodul.demodulationASKandPSK(ASK, 0.0625, 200, true); // demodulacja courseGraph3.Autoscale(); courseGraph3.DrawGraph(); }
/// <summary> /// Funkcja inicjalizująca obiekty sygnałów do wybranego labolatorium /// </summary> private void initialize(int lab) { Controls.Remove(courseGraph1); Controls.Remove(courseGraph2); Controls.Remove(courseGraph3); Controls.Remove(courseGraph4); Controls.Remove(spectrumGraph1); Controls.Remove(spectrumGraph2); Controls.Remove(spectrumGraph3); Controls.Remove(spectrumGraph4); courseGraph1 = null; courseGraph2 = null; courseGraph3 = null; courseGraph4 = null; spectrumGraph1 = null; spectrumGraph2 = null; spectrumGraph3 = null; spectrumGraph4 = null; signal1 = null; signal2 = null; signal3 = null; digital = null; ft = new FourierTransform(); this.Controls.Clear(); switch (lab) { case 1: initialize_Lab1_Lab2(); break; case 2: initialize_Lab3(); break; case 3: initialize_Lab4_ASK(); break; case 4: initialize_Lab4_FSK_PSK(); break; case 5: initialize_Lab5_ASK(); break; case 6: initialize_Lab5_PSK(); break; case 7: initialize_Lab5_FSK(); break; case 8: initialize_SquareTriangleSaw(); break; case 9: initialize_MSE(); break; case 10: initialize_MSEPlot(); break; case 11: initialize_Correlation_1(); break; case 12: initialize_Correlation_2(); break; case 13: initialize_IDFT(); break; case 14: initialize_Sinc(); break; case 15: initialize_FilteringOfNoise(); break; case 16: initialize_generateFilter_1(); break; case 17: initialize_generateFilter_2(); break; case 18: initialize_generateFilter_3(); break; case 19: initialize_CDMA(); break; default: initialize_Lab1_Lab2(); break; } Controls.Add(courseGraph1); Controls.Add(courseGraph2); Controls.Add(courseGraph3); Controls.Add(courseGraph4); Controls.Add(spectrumGraph1); Controls.Add(spectrumGraph2); Controls.Add(spectrumGraph3); Controls.Add(spectrumGraph4); InitializeComponent(); }