[Matlab] Jak zmienić indeks próbki na częstotliwość

Polma
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 4 lip 2016, o 17:54
Płeć: Kobieta
Lokalizacja: Polska

[Matlab] Jak zmienić indeks próbki na częstotliwość

Post autor: Polma »

Witam, jest w stanie ktoś podpowiedzieć, jak zamienić indeks próbek na częstotliwość przy widmie? Poniższy kod oblicza mi indeks próbek, a mnie interesuje częstotliwość.

Kod: Zaznacz cały

clc;
clf;
clear;
U=20;
T=0.1;
f=1/T;
N=20;
t= [-T/2:T/N:5*T/2-T/N];
w=2*pi*f;

y = mod(t+T/2,T)-T/2; 
u1 = U*w*y.*sin(w*y);
plot(u1);


u11 = U-(U/2)*cos(w*t)-2*U*(cos(2*w*t)/(2^2-1)); 

u110 = U-(U/2)*cos(w*t)-2*U*(cos(2*w*t)/(2^2-1)-cos(3*w*t)/(3^2-1)+cos(4*w*t)/(4^2-1)-cos(5*w*t)/(5^2-1)+cos(6*w*t)/(6^2-1)-cos(7*w*t)/(7^2-1)+cos(8*w*t)/(8^2-1)-cos(9*w*t)/(9^2-1)+cos(10*w*t)/(10^2-1)+cos(11*w*t)/(11^2-1));  


subplot(2,2,1)
plot(t,u1)
title('U1');grid on;
xlabel('Czas [s]'); ylabel('Napiecie')    
    

subplot(2,2,3)
stem(abs(fft(u1)),'.')
title('Widmo U1');grid on;
xlabel('Czestotliwosc'); ylabel('')
    
subplot(2,2,2)
plot(t,u110)
title('U2');grid on;
xlabel('Czas [s]'); ylabel('Napiccie')
 

subplot(2,2,4)
stem(abs(fft(u110)),'.')
title('Widmo U2');grid on;
xlabel('Czestotliwosc'); ylabel('')
Awatar użytkownika
mdd
Użytkownik
Użytkownik
Posty: 1897
Rejestracja: 14 kwie 2013, o 10:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 2 razy
Pomógł: 512 razy

[Matlab] Jak zmienić indeks próbki na częstotliwość

Post autor: mdd »

\(\displaystyle{ f_k=\frac{k}{N}f_p \\
\\
k=0, 1, 2, ..., N-1}\)


Czy symbole trzeba wyjaśniać?
Polma
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 4 lip 2016, o 17:54
Płeć: Kobieta
Lokalizacja: Polska

[Matlab] Jak zmienić indeks próbki na częstotliwość

Post autor: Polma »

Jakbyś mógł wyjaśnić to bym była wdzięczna. \(\displaystyle{ N}\) to liczba próbek?
Ostatnio zmieniony 6 lip 2016, o 08:20 przez Afish, łącznie zmieniany 1 raz.
Powód: Całe wyrażenia matematyczne umieszczaj w tagach [latex] [/latex].
Awatar użytkownika
mdd
Użytkownik
Użytkownik
Posty: 1897
Rejestracja: 14 kwie 2013, o 10:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 2 razy
Pomógł: 512 razy

[Matlab] Jak zmienić indeks próbki na częstotliwość

Post autor: mdd »

Polma pisze:\(\displaystyle{ N}\) to liczba próbek?
Tak.
\(\displaystyle{ f_p}\) - częstotliwość próbkowania
Polma
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 4 lip 2016, o 17:54
Płeć: Kobieta
Lokalizacja: Polska

[Matlab] Jak zmienić indeks próbki na częstotliwość

Post autor: Polma »

Czyli bym wpisała.

\(\displaystyle{ t_s}\) = czas próbkowania
\(\displaystyle{ f_p}\) = częstotliwość próbkowania

\(\displaystyle{ t_s=\frac{T}{N}\\
f_p=\frac{1}{t_s}}\)


A jak teraz wykres zrobić dla częstotliwości? Jak zmienić indeks prążka na częstotliwość przy plocie?
Ostatnio zmieniony 6 lip 2016, o 08:20 przez Afish, łącznie zmieniany 1 raz.
Powód: Całe wyrażenia matematyczne umieszczaj w tagach [latex] [/latex].
Awatar użytkownika
mdd
Użytkownik
Użytkownik
Posty: 1897
Rejestracja: 14 kwie 2013, o 10:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 2 razy
Pomógł: 512 razy

[Matlab] Jak zmienić indeks próbki na częstotliwość

Post autor: mdd »

Polma pisze:A jak teraz wykres zrobić dla częstotliwości? Jak zmienić indeks prążka na częstotliwość przy plocie?
W poleceniu stem() należy podać dwa argumenty; pierwszy argument będzie wektorem częstotliwości, drugi-wektorem próbek widma (podobnie jest z poleceniem plot()).
Polma
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 4 lip 2016, o 17:54
Płeć: Kobieta
Lokalizacja: Polska

[Matlab] Jak zmienić indeks próbki na częstotliwość

Post autor: Polma »

Czyli u1 zostawiam, a próbek podaje \(\displaystyle{ f_p}\)?

Tak to powinno wyglądać?

Kod: Zaznacz cały

subplot(2,2,3)
stem(abs(fft(u1, fp)),'.')
title('Widmo U1');grid on;
xlabel('Czestotliwosc'); ylabel('')
Ostatnio zmieniony 6 lip 2016, o 08:21 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Awatar użytkownika
mdd
Użytkownik
Użytkownik
Posty: 1897
Rejestracja: 14 kwie 2013, o 10:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 2 razy
Pomógł: 512 razy

[Matlab] Jak zmienić indeks próbki na częstotliwość

Post autor: mdd »

Polma pisze:Czyli u1 zostawiam, a próbek podaje fp?
Przecież \(\displaystyle{ f_p}\) jest częstotliwością próbkowania, a nie wektorem próbek widma.
Polma pisze:Tak to powinno wyglądać?

Kod: Zaznacz cały

subplot(2,2,3)
stem(abs(fft(u1, fp)),'.')
title('Widmo U1');grid on;
xlabel('Czestotliwosc'); ylabel('')
Nie. Wyraźnie pisałem o argumentach funkcji stem(), plot(), a nie o argumentach funkcji fft().
ODPOWIEDZ