Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Przetwarzanie sygnałów w języku C.

dicappo 15 Oct 2015 18:48 1134 4
  • #1
    dicappo
    Level 20  
    Nie wiem w ogóle jak wytworzyć sygnał w języku C. A mam zrobić program generujący sygnał arcsin (omegat) o podanej przez użytkownika częstotliwości, amplitudzie. Ma on trwać przez odcinek czasu równy liczbie okresów podanych przez użytkownika. Na tym sygnale powinien wygenerować się sygnał losowy zakłócenia ( szpilka o podanym przez użytkownika prawdopodobieństwie występowania oraz amplitudzie). I te dwa sygnały mają się do siebie dodać. I trzeba zapisać te sygnały(niezaszumiony, szum, zaszumiony) do plików csv. I format ma wyglądać ( # - komentarz, t - czas, a - wartość sygnału)



    Na razie napisałam tylko tyle:

    Code: c
    Log in, to see the code



    I jeszcze jedno jak w Microsoft Visual Studio zrobić, żeby nie wyrzucał błędu użycia polecenia scanf. Dziękuję za pomoc
  • #2
    penknife
    Level 21  
    Code: c
    Log in, to see the code

    błędna linia: switch(Liczba = 0)
  • #3
    dicappo
    Level 20  
    Staram się wszystko pozmieniać, ale nadal mam jakieś drobne błędy w rozumowaniu.

    Czy ktoś mógłby mi powiedzieć gdzie mam błąd? I teraz chciałam napisać jeszcze tylko, żeby liczyło wartości funkcji i potem zapisywało je do pliku, ale nie wiem jak to zrobić. Bo program ma liczyć wartości na przedziale podanym przez użytkownika co konkretną daną do zmieniania. Zastanawiałam się tylko czy nie muszę robić zabezpieczenia przed tym, aby początek przedziału nie był większy od końca. Do liczenia wartości chcę użyć funkcji z biblioteki asin.

    Code: c
    Log in, to see the code


    Program kompiluje się, ale po uruchomieniu nie działają konkretne polecenia wyświetla się tylko prośba o podanie początku przedziału i po podaniu nawet 9 program nie wyrzuca błędu i prośby o podanie innej liczby tylko się wyłącza i wyskakuje: "Error 1 error MSB8020: The build tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, please install v140 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution...". C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets 64 5 ConsoleApplication1"


    Dziękuję za kolejne porady.
  • #4
    penknife
    Level 21  
    błędne linie:
    if(Poczatek<=-1 && Poczatek>1) //prawdopodobnie chodziło o: if(Poczatek<-1 || Poczatek>1)
    if(Koniec<=-1 && Koniec>1 ) //prawdopodobnie chodziło o: if(Koniec<-1 || Koniec>1 )
    while(Zadanie=4); //prawdopodobnie chodziło o: while(Zadanie==4); lub while(Zadanie!=4);

    prawdopodobnie błąd:
    switch(Zadanie=Liczba) //chyba powinno być: switch(Zadanie)


    Czemu zmienne: Poczatek, Koniec, Zmiennosc nie są typu zmiennoprzecinkowego float lub double :?:
  • #5
    dicappo
    Level 20  
    Code: c
    Log in, to see the code


    Co teraz powinnam jeszcze zmienić?