int main() { float wsp[L_WSPOLCZ]; float xmin, xmax; int rozmiar = 0; float* sygnalPodstawowy = NULL; float* sygnalSzum = NULL; float* sygnalFiltrM = NULL; float* sygnalFiltrS = NULL; printf("----------MENU---------\n"); int menu = -1; while (menu != 0) { printf("Wybierz opcje:\n1. Generuj\n2. Zapisz\n3. Dosaj szum\n4.Filtruj szum\n0. Wyjdz\n"); scanf("%d", &menu); switch (menu) { case 1: { pobierzWspolczynniki(wsp); pobierzDziedzine(&xmin, &xmax); rozmiar = wielkoscTab(); if (sygnalPodstawowy != NULL) { free(sygnalPodstawowy); sygnalPodstawowy = NULL; } sygnalPodstawowy = (float*)malloc(rozmiar * sizeof(float)); sygnalSzum = (float*)malloc(rozmiar * sizeof(float)); sygnalFiltrM = (float*)malloc(rozmiar * sizeof(float)); sygnalFiltrS = (float*)malloc(rozmiar * sizeof(float)); if (sygnalPodstawowy == NULL || sygnalSzum == NULL || sygnalFiltrM == NULL || sygnalFiltrS == NULL) { perror("Blad alokacji pamieci"); return 1; } generujSygnal(wsp, xmin, xmax, sygnalPodstawowy, rozmiar); drukujSygnal(sygnalPodstawowy, rozmiar); printf("Wygenerowano sygnal\n"); break; } case 2: { if (sygnalSzum != NULL) { csv(rozmiar, sygnalSzum); printf("Zapisano sygnal zaszumiony \n"); } else if(sygnalSzum == NULL && sygnalPodstawowy!= NULL) { csv(rozmiar, sygnalPodstawowy); printf("zapisano sygnal podstawowy\n"); } else { printf("Brak sygnalu do zapisania. Najpierw wygeneruj sygnal.\n"); } break; } case 3: if (sygnalPodstawowy != NULL && sygnalSzum != NULL) { dodajSzum(wsp, xmin, xmax, sygnalPodstawowy, rozmiar, sygnalSzum); printf("dodano szum\n"); break; } else { perror("brak sygnalu do zaszumienia \n"); break; } case 4: //FILTR MEDIANA if (sygnalPodstawowy != NULL) { filtrMediana(sygnalSzum, sygnalFiltrM, wielkoscTab, 5); printf("odfiltrowano sygnal\n"); } else { perror("brak sygnaly do filtrowania\n "); } break; case 5 : { // FILTR SREDNIA if (sygnalPodstawowy != NULL) { filtrSrednia(sygnalSzum, sygnalFiltrS, rozmiar, 5); printf("odfiltrowano sygnal\n"); } else { perror("Brak sygnału do filtrowania\n"); } break; case 0: printf("Zakonczenie programu\n"); break; default: printf("Nieprawidlowa opcja!\n"); } } if (sygnalPodstawowy != NULL) { free(sygnalPodstawowy); } if (sygnalSzum != NULL) { free(sygnalSzum); } if (sygnalFiltrM != NULL) { free(sygnalFiltrM); if (sygnalFiltrS != NULL) { free(sygnalFiltrM); } return 0; }