Soru sorZamana bağlı bir veriyi parçalar bölerek grafiğini çizdirmek
senna tarafından 3 yıl önce soruldu

Merhaba. Ben time-expansion nedir ve matlab'de nasıl uygulanır öğrenmek istiyorum. Yardımcı olursanız çok sevinirim

6 Cevap
En iyi cevap
sayginer Yönetici tarafından 3 yıl önce cevaplandı


Bunu MATLAB ile temel matris/vektör işlemi yaparak gerçekleştirebilirsiniz. Bir döngü içerisine alarak bunu otomatize edebilirsiniz. Aşağıdaki örneği inceleyin lütfen.
clear, clc
TumVeri = [linspace(0,20,20)' rand(20,1)];
% Yukarida, Ilk sutun zaman, ikinci sutunu veriyi temsil eden, rastgele bir veri seti olusturalim.
% Dipce: Verisetimiz toplam 20 elemandan olusuyor.
m = 5; % Kacar kacar gruplayalim?
% Onemli: m degeri Veriseti uzunlugumuzun tamsayi kati olmali ki esit araliklarla bolebilelim
for i = 1:20/m %Toplam verimizi kac parcaya ayiriyoruz?
Bitis = i*m; % Her parcanin son element numarasi
Baslangic = Bitis-(m-1); %Her parcanin ilk element numarasi
Zaman = TumVeri(Baslangic:Bitis,1);
Veri = TumVeri(Baslangic:Bitis,2);
figure
plot(Zaman, Veri)
end

sayginer Yönetici tarafından 3 yıl önce cevaplandı

Merhaba,
Time-expansion dediğiniz şey zamana bağlı bir şeyin açılımı anlamına geliyor (Örn bir fonksiyonun). Bu çok genel bir kavram. Uygulama alanınıza göre anlamı değişecektir.

senna tarafından 3 yıl önce cevaplandı

Mesela 200 saniyelik bir sinyal var ben onun sadece 50 saniyesini görmek istiyorum.elle yakınlaştırmak yerine sinyali 50 saniyelik parçalara ayıracak otomatik birşey arıyorum.bunun için time expansion kullanılmış ama matlab de ne kullanılabilir bulamadım

senna tarafından 3 yıl önce cevaplandı
[hasta fs]=audioread("219_2b1_Ar_mc_LittC2SE.wav");
hasta1=hasta(1:22050) %verim çok büyük olduğundan sınırlandırdım
t=(0:(length(hasta1) - 1)) / fs;

m = 10; % Kacar kacar gruplayalim?
% Onemli: m degeri Veriseti uzunlugumuzun tamsayi kati olmali ki esit araliklarla bolebilelim
for i = 1:hasta1/m %Toplam verimizi kac parcaya ayiriyoruz?
Bitis = i*m; % Her parcanin son element numarasi
Baslangic = Bitis-(m-1); %Her parcanin ilk element numarasi
Zaman = t(Baslangic:Bitis);
Veri = hasta1(Baslangic:Bitis);
figure
plot(Zaman, Veri)
end

Ben bu şekilde uyarladım kendi koduma.Sizin kodunuzdaki tümveri gibi birşey oluşturamadım hata aldım.Böyle yazınca çalışmıyor hata bile vermiyor.sebebi ne olabilir?

sayginer Yönetici tarafından 3 yıl önce cevaplandı

Benim tumveri diye bir degisken oldusturmamin sebebi size ornek olarak bir veriseti sunabilmeti. Tabi ki sizin kendinize gore degistirmeniz gerekiyor.
Kodunuzun sadece m'e kadar olan kismi calisiyor mu?
for dongusunu hatali yapmissiniz. hasta1 degeriniz vir vektor. for dongusunu yazarken bu vektorun uzunluguna kadar yani toplam element sayisi kadar calistirmaniz gerekiyor. For dongusundeki length(hasta1) olacak. Muhtemelen dongunuz orada takilip kaliyor olabilir.
Eger MATLAB ogrenmeye yeni basladiysaniz once size verdigim ornegi inceleyerek anlamanizi tavsiye ederim.
Takilirsaniz lutfen sormaktan cekinmeyin.

senna tarafından 3 yıl önce cevaplandı

şimdi düzeldi. Matlab'e yeni başladım sayılır ve tezimde kullanmam gerekiyor. Eminim sizden öğreneceğim çok şey var teşekkür ederim:)