Proszę o pomoc w naprawieniu funkcji odszumiaj(). Nie wczytuje prawidłowo wartości zapisanych do plik.csv w funkcji generuj().
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define _USE_MATH_DEFINES
#include <math.h>
#include <time.h>
void generuj(float amplituda, float czas, float czestotliwoscProbkowania, float czestotliwoscSygnalu, float przesuniecie)
{
float const_krok;
float szum=0;
float krok=0;
int i;
float *wyniki;
FILE *fb;
int liczbaProbek=floor(czas*czestotliwoscProbkowania);
wyniki=(float*)malloc(liczbaProbek*sizeof(float));
if(wyniki!=NULL)
{
const_krok=(czas)/(liczbaProbek);
fb=fopen("plik.csv","w");
if(fb!=NULL)
{
fprintf(fb,"# %d\n",liczbaProbek);
printf("liczbaprobekgeneruj=%d.\n",liczbaProbek);
srand((unsigned int)time(NULL));
for (i=0;i<(liczbaProbek);i++)
{
szum=2*rand()/(float)RAND_MAX*(amplituda)-(amplituda);
fprintf(fb,"%.4f,%.4f\n",2*M_PI*krok*(czestotliwoscSygnalu), (amplituda)*sin(2*M_PI*krok*(czestotliwoscSygnalu)+(przesuniecie)+szum));
printf("%.4f,%.4f\n",2*M_PI*krok*(czestotliwoscSygnalu), (amplituda)*sin(2*M_PI*krok*(czestotliwoscSygnalu)+(przesuniecie)+szum));
krok+=const_krok;
};
free(wyniki);
}
else printf("Blad pliku.\n");
}
else printf("Blad pamieci.\n");
}
void odszumiaj()
{
FILE *fb;
int i, liczbaProbek=0;
float *x, *y;
fb=fopen("plik.csv","r");
if(fb!=NULL)
{
fscanf(fb,"# %d\n",&liczbaProbek);
printf("Liczbaprobekodszumiaj=%d.\n",liczbaProbek);
x=(float*)malloc(liczbaProbek*sizeof(float));
y=(float*)malloc(liczbaProbek*sizeof(float));
if(x!=NULL && y!=NULL)
{
for(i=0;i<100;i++)
{
fscanf(fb,"%.4f,%.4f\n", x[i], y[i]);
printf("%f %f\n",x[i],y[i]);
}
}
else printf("Blad pamieci.\n");
}
else printf("Blad odczytu pliku.\n");
}
int main (void)
{
int liczbaProbek;
float amplituda, czas, czestotliwoscProbkowania, czestotliwoscSygnalu, przesuniecie;
printf("Podaj amplitude: ");
scanf("%f",&lituda);
printf("Podaj czas: ");
scanf("%f",&czas);
printf("Podaj czestotliwosc probkowania: ");
scanf("%f",&czestotliwoscProbkowania);
printf("Podaj czestotliwosc sygnalu: ");
scanf("%f",&czestotliwoscSygnalu);
printf("Podaj przesuniecie: ");
scanf("%f",&przesuniecie);
liczbaProbek=floor(czas*czestotliwoscProbkowania);
generuj(amplituda, czas, czestotliwoscProbkowania, czestotliwoscSygnalu, przesuniecie);
odszumiaj();
getch();
}