Zaloguj się
Blog na Matlab.pl
MATLAB & Simulink, seminaria, projekty, przykłady Witamy na stronach Matlab.pl!!!
Możesz tu znaleźć wiele inforamcji na temat
najpopularniejszego na świecie pakietu oprogramowania
do obliczeń naukowych i inżynierskich.
 
UŻYTKOWNICY GRUPY PROFIL Zaloguj się, by sprawdzić wiadomości FAQ
 



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

Generacja sygnału i widma sygnału.
Forum MATLAB Strona Główna-> Przetwarzanie sygnałów
Post Wysłany: 26 Lipca 2010, Pon 6:26 pm Temat postu: Generacja sygnału i widma sygnału. Odpowiedz z cytatem
 
AUTOR:
Marcin_krk



Dołączył: 26 Lip 2010
Posty: 1


Ogląda profil użytkownika Wyślij prywatną wiadomość
witam Szanownych Użytkowników,

chciałbym prosić Was o pomoc, mianowicie, napisałem program, który nie jest do końca dobry, gdyż występują w nim 2 zasadnicze problemy:

1. Wykres sygnału przefiltrowanego i zdecymowanego jest "przesunięty" nieznacznie względem wykresu sygnału podstawowego.

2.(ważniejszy) nie mam pojęcia dlaczego program nie chce mi wyrysować widma sygnału po zagęszczeniu

bardzo proszę o pomoc, a oto ten program:

Cytat:
clear all:
clc;

k=0.001;
t=0:k:10-k; %czas

disp('Program generuje sygnal: sygnal=sin(100.*t)+2*sin(125.*t)+sin(150.*t)+rand(1,10000)')


%Generacja sygnału

sygnal=sin(100.*t)+2*sin(125.*t)+3*sin(150.*t)+rand(1,10000); % rand "losuje" liczbę z przedziału (0,1)
%rand(m,n) powoduje wylosowanie macierzy liczb z przedziału m,n
subplot(3,2,1);
plot(t,sygnal,'k');
title('Sygnał stały')

%generowanie widma za pomocą transformacji Fouriera

nt=length(t);
fx = fft(sygnal);
nx = length(fx);
base =k\(0:(nt/2-1))/nt; %wyznaczenie osi częstotliwości
powerx = abs(fx(1:nx/2)); %wyznaczenie widma
powerxn = 2*powerx./nx; %normalizacja odpowiedzi
subplot(3,2,2)
plot(base,powerxn,'r');
title('Widmo sygnału stałego');


%Filtrowanie sygnału filtrem eliptycznym

[a,b]=ellip(4, 1, 70, [10/1000, 100/1000] ); % ellip wyznaczanie transmitancji filtru eliptycznego (analogowego lub cyfrowego)
filtrSygn=filter(a,b,sygnal); %[b,a] = ellip(n, Rp, Rs, Wn, opcje)
%b,a - wektory wierszowe współczynników wielomianów transmitancji (lub równania różnicowego) filtru;
%n - rząd filtru;
%Rp - tętnienia w pasmie przepustowym (w dB);
%Rs - tłumienie w pasmie zaporowym (w dB);
%Wn - 3-decybelowa
%górna pulsacja graniczna pasma przepustowego dla filtrów

subplot(3,2,3);
plot(t,filtrSygn,'k');

%Decymacja, wybieramy co 10 próbkę z sygnału "filtrSygn"

hold on

dr=10; %rząd decymacji
y=decimate(filtrSygn,dr);
fd=k*dr; %częstotliwość decymacji
ny=length(y);
ty=fd-k:fd:ny*fd;
subplot(3,2,3)
plot(ty,y,'g');
title('Przefiltrowany i zdecymowany sygnał stały');

%Generowanie widma sygnału zdecymowanego za pomocą transformacji Fouriera

nt1=length(ty);
fx1 = fft(y);
nx1 = length(fx1);
base1 =k\(0:(nt1/2-1))/(dr*nt1);
powerx1 = abs(fx1(1:nx1/2));
powerxn1 = 2*powerx1./nx1;
subplot(3,2,4)
plot(base1,powerxn1,'r');
title('Widmo przefiltrowanego i zdecymowanego sygnału');


%Interpolacja liniowa sygnału stałego z zagęszczeniem 2-krotnym

subplot(3,2,5);
plot(ty,y,'m');

hold on

ti=0:0.005:10;
yi=interp1(ty,y,ti,'linear');
subplot(3,2,5);
plot(ti,yi,'xb');
title('Charakterystyka interpolacji liniowej sygnału stałego z zagęszczeniem 2-krotnym')

%Generowanie widma sygnału zdecymowanego stałego z zagęszczeniem 2-krotnym za pomocą transformacji Fouriera

nt2=length(ti);
fx2 = fft(yi);
nx2 = length(fx2);
base2 =k\(0:(nt2/2-1))/nt2;
powerx2 = abs(fx2(1:nx2/2));
powerxn2 = 2*powerx2./nx2;
subplot(3,2,6)
plot(base2,powerxn2,'r');
title('Widmo przefiltrowanego i zdecymowanego sygnału z zagęszczeniem 2-krotnym');


 

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 3958189
Najwięcej użytkowników 90 było obecnych 29 Maj 2010, Sob 7:37 pm

Aktualnie online:




Najnowsze posty na forum:
Zbiór błędów  (3 Września 2010, Pią 1:36 pm)
blok żyrokompasu idealnego  (3 Września 2010, Pią 12:45 pm)
Maxima lokalne  (2 Września 2010, Czw 10:52 pm)
identyfikacja dynamiczna  (2 Września 2010, Czw 9:40 pm)
otwieranie *.wav Error using ==> load  (1 Września 2010, Sro 3:52 pm)
POMOCY !!!!! PROBLEM z Funkcją NEWPNN sieci neuronowej.  (31 Sierpnia 2010, Wto 8:25 pm)
Problem z zapisaniem danych w GUID  (31 Sierpnia 2010, Wto 5:41 pm)
Zapisanie Demosa jako nowy projekt ?  (31 Sierpnia 2010, Wto 2:07 pm)
charakterystyka rezonansowa ukł. wibrującego  (31 Sierpnia 2010, Wto 12:06 pm)
Curve fitting na wykresie zapisanym w .bmp  (31 Sierpnia 2010, Wto 12:01 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