Zaloguj się
Blog na Matlablog
Forum polskich użytkowników
 
UŻYTKOWNICY GRUPY PROFIL Zaloguj się, by sprawdzić wiadomości FAQ
 



Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Wycięcie sygnału z pliku za pomocą skryptu.
Forum MATLAB Strona Główna-> Przetwarzanie sygnałów
Post Wysłany: 20 Kwietnia 2017, Czw 2:34 pm Temat postu: Wycięcie sygnału z pliku za pomocą skryptu. Odpowiedz z cytatem
 
AUTOR:
dany5538
Początki pisania


Dołączył: 25 Mar 2017
Posty: 5


Ogląda profil użytkownika Wyślij prywatną wiadomość
Mam zagwozdkę dotycząca skryptu wycięcia sygnału z pliku.
Sygnał na początku ma szumy które odrzucam 4000 wartości.
Następnie chcę aby było wycinane od 5% wartości maksimum przez 7 kolejnych pełnych sinusoid.
Dodatkowo jest brana poprawka około 15 od pierwszego wycinanego pkt.

Proszę o podpowiedź co ja tu robię źle i w jaki sposób mam uwzględnić te 7 sinusoid.

(dopiero zaczynam przygodę z matlabem każda pomoc nawet najmniejsza jest dla mnie bardzo istotna).

Kod:

tab
=load('C:/A1B11.opt')-128;
tab(1:4000)=[]
ile=4000;
[
a b]=max(tab);
for
i=1:1:length(tab)
    if
abs(tab(i))>a*0.05
        poczatek
=i;
        break;
    
end
end
poczatek
=poczatek-15;
ile=ile+poczatek
tab
(1:poczatek)=[];
for
i=1:1:length(tab)
    if
tab(i)>0
        tb
(i)=1;
    elseif 
tab(i)==0
        tb
(i)=0;
    else
        
tb(i)=-1;


w załączniku przykładowy plik który chcę obrobić.




Ostatnio zmieniony przez dany5538 dnia 22 Kwietnia 2017, Sob 2:11 pm, w całości zmieniany 1 raz
 

Post Wysłany: 20 Kwietnia 2017, Czw 9:07 pm Temat postu: Dziwny skrypt Odpowiedz z cytatem
 
AUTOR:
Jacek Konieczny
Może pisać książki


Dołączył: 31 Mar 2009
Posty: 320
Skąd: Poznań


Ogląda profil użytkownika Wyślij prywatną wiadomość Odwiedź stronę autora
Dlaczego obie pętle `for` przebiegają po całej długości wektora `tab`, tj. począwszy od jego pierwszego elementu ? Przecież pierwsze 4000 próbek ( początkowych elementów ) zostało "unieważnionych" przez przypisanie im elementu pustego ( równie dobrze można byłoby je wyzerować ). Przy dalszych pętlach te element należałoby zignorować, tj. zaczynać pętlę od elementu nr 4001. Ponadto inne fragmenty skryptu można byłoby rozwiązać inaczej : na przykład pierwsza pętla 'for' ma znaleźć położenie elementu o wartości równej 5% wartość maksymalnej. Być może z tej pętli dałoby się zrezygnować i odpowiednio wykorzystać funkcję `find`.


 

Post Wysłany: 25 Kwietnia 2017, Wto 3:07 pm Temat postu: Ciąg dalszy Odpowiedz z cytatem
 
AUTOR:
dany5538
Początki pisania


Dołączył: 25 Mar 2017
Posty: 5


Ogląda profil użytkownika Wyślij prywatną wiadomość
a i dodatkowo muszę:


Na podstawie częstotliwości fali (2MHz) i prędkości fali (1500) obliczyć długość fali [m]. Na podstawie tej wartości oraz częstotliwości próbkowania (1MHz) wyznaczyć czas trwania jednej długości fali.
Jeżeli częstotliwość próbkowania jest 1MHz to czas jaki upływa pomiędzy kolejnymi punktami (na wykresie) wynosi 1/1e6
Na tej podstawie można wyznaczyć liczbę punktów przypadających na pełną sinusoidę.
Wartości częstotliwości fali i próbkowania proszę wpisać w skrypcie jako stałe, tak aby można było zmodyfikować te wartości w przypadku zmiany parametrów układu pomiarowego (liczba punktów dla pełnej sinusoidy zostanie wtedy wyliczona z uwzględnieniem nowych wartości).
Następnie od punktu, w którym występuje wartość maksymalna pozostawić liczbę punktów zależną od siedmiu pełnych sinusoid, a resztę obciąć.

Jak ja mam to w ogóle uwzględnić? Ma ktoś pomysł?


 

Post Wysłany: 25 Kwietnia 2017, Wto 9:59 pm Temat postu: Wartość częstotliwości próbkowania ? Odpowiedz z cytatem
 
AUTOR:
Jacek Konieczny
Może pisać książki


Dołączył: 31 Mar 2009
Posty: 320
Skąd: Poznań


Ogląda profil użytkownika Wyślij prywatną wiadomość Odwiedź stronę autora
Częstotliwość próbkowania jest dwa razy mniejsza od częstotliwości analizowanej ? Powinno być raczej na odwrót - choćby ze względu na tzw. "kryterium Nyquista" :

http://www.cdrinfo.pl/slownik/kryterium-nyquista-286


 

Post Wysłany: 27 Kwietnia 2017, Czw 6:05 pm Temat postu: Poprawka Odpowiedz z cytatem
 
AUTOR:
dany5538
Początki pisania


Dołączył: 25 Mar 2017
Posty: 5


Ogląda profil użytkownika Wyślij prywatną wiadomość
Dziś dowiedziałem się, że:
Skrypt który będzie wycinał sygnał 500 pkt przed maksymalną amplitudą i 500 pkt po maksimum.Reszta punktów musi zostać odrzucona. Powyższy skrypt nie sprawdził się ponieważ w jednym na 10 przykładów 5% z maksimum było za niskim parametrem i skrypt zaczynał wyłapywać szumy (nie mogę uwzględnić 5tyś odrzuconych pkt na początku tylko max 2-2,5 tyś.


 

Post Wysłany: 28 Kwietnia 2017, Pią 12:52 pm Temat postu: Prośba Odpowiedz z cytatem
 
AUTOR:
dany5538
Początki pisania


Dołączył: 25 Mar 2017
Posty: 5


Ogląda profil użytkownika Wyślij prywatną wiadomość
Gdzie mogę doczytać jak mam wykonać te zadanie, stoję w miejscu i nie wiem co robić.

1. Skrypt który podałem nie musi opierać się na tym co napisałem. Ma działać.
2. Skrypt ma wczytywać plik taki jak w załączniku. Następnie trzeba odrzucić pierwsze 2000 pkt które widać ponieważ są to szumy które tylko przeszkadzają.
3. Wyszukujemy maksymalną dostępną amplitudę w tym sygnale co nam zostaje.
od tego maksimum muszę wyciąć 500 pkt przed i 500 pkt po maksimum. Reszta zostaje odrzucona.
 
I to tyle. Już bardziej wytłumaczyć tego nie potrafię. Skrypt ma automatycznie wyłapywać te maksimum i wycinać ten obszar w każdym z plików który załaduje.

No i trzeba wyrównać wykres do zera bo jest podniesiony o 128 do góry. Akurat to było u mnie już zawarte.
Sad


 

Forum MATLAB Strona Główna-> Przetwarzanie sygnałów
Wyświetl posty z ostatnich:   

Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Wszystkie czasy w strefie CET (Europa)

Skocz do:  

Statystyki forum:



Od dnia 08.06.2006 forum odwiedzano 39379287
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
Zamiana elementĂłw macierzy  (22 Listopada 2017, Sro 8:36 pm)
The Walking Dead Sezon 8 odc 6 Cda Cały Odcinek  (22 Listopada 2017, Sro 2:12 am)
Dobrze płatna praca  (21 Listopada 2017, Wto 6:21 pm)
Dla kaĹźdego  (21 Listopada 2017, Wto 1:59 pm)
problemy skĂłrne  (21 Listopada 2017, Wto 12:03 pm)
Gwiezdne Wojny Ostatni Jedi Cda  (20 Listopada 2017, Pon 7:38 pm)
Macierz odwrotna  (19 Listopada 2017, Nie 3:43 pm)
OdbiĂłr obrazu z kamery IP  (19 Listopada 2017, Nie 2:39 pm)
[S03E10] Outlander CDA Sezon 3 Odcinek 10 Online Zalukaj PL  (18 Listopada 2017, Sob 11:01 pm)
KrĂłlowe Ĺźycia 3 Sezon 12 Odcinek Online CDA (s03e12)  (18 Listopada 2017, Sob 5:36 pm)
Twoje prawa:
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać plików na tym forum