DFT Spektrum Analizi

Başlatan barisertekin, 17 Mart 2014, 12:14:31

barisertekin

Merhaba,
Aşağıda resimler ile gösterdiğim spektrumlar üzerinden konuşursak;

x = sin(2*pi*5*t) + 2*sin(2*pi*50*t) + 2*sin(2*pi*100*t);

Genliği 1 olan 5     hz +
Genliği 2 olan 50   hz +   
Genliği 2 olan 100 hz       

Yani spektrum'da 50 hz ve 100 hz eşit çıkması gerekmiyor mu?



Bir diğer örnek;

x = sin(2*pi*5*t) + 2*sin(2*pi*50*t) + 4*sin(2*pi*100*t) + 2*sin(2*pi*50*t);

Genliği 2 olan 2 adet 50 hz (KIRMIZI İLE GÖSTERİLEN) +
Genliği 4 olan 1 adet 100 hz

yine eşit çıkması gerekmiyor mu? Kaçırdığım yer neresi?


ErsinErce

sinyale bakarsanız daha net görebilirsiniz.

50hz'in genliği 100hz yüzünden yukarı taşınıyor

barisertekin

50hz'in genliği 100hz yüzünden neden yukarı taşınıyor. Biraz daha açıklayıcı olursanız sevinirim.

SpeedyX

x = 2*sin(2*pi*50*t);

ve

y = 2*sin(2*pi*100*t);

grafiklerini ayrı ayrı denklemlerde çizdir ve plotla

barisertekin



Söylediğim şey bu. Genlikleri aynı ama spektrum aynı çıkmıyor.

ErsinErce

birleştirerek çizdirirsen 2 nin üstüne çıktığını görürsün

barisertekin



50   HZ  = KIRMIZI
100 HZ  = MAVİ
TOPLAM = YEŞİL

SpeedyX

Şimdi anladın mı?
Fourier ne diyor? "Her sinyal N tane sinüs sinyalinin toplamı ile ifade edilebilir"

Burada 100hz ve 50hz toplama işlemi olduğu için birbirinden etkilenip birinin genliği büyük çıkıyor.
Ayrı ayrı ele aldığında ise genlikler aynı, frekanslar farklı.

barisertekin

Alıntı YapFourier ne diyor? "Her sinyal N tane sinüs sinyalinin toplamı ile ifade edilebilir"

N burada 2 oluyor.
Yeşil sinyalin dft'sini almaya çalıştığımızda x1 ve x2 nin toplamından oluştu demeli.

Daha açıklayıcı konuşursa;
Genliği 2 olan 50hz lik bir sinyal ve Genliği 2 olan 100hz lik bir sinyal var demeli.

Yani spektrumda 50hz ve 100hz için genlik 2 gösterilmeli.

Benim anladığım bu.

z

#9
Barisertekin gibi düşünüyorum.

50Hz ve 100Hz sinyaller aynı genlikte ise bu sinyallerin toplamı sonucunda elde edilen sinyal analiz edildiğinde genlikteleri aynı 50Hz ve 100Hz sinyal elde edilmeli.

Aşağıdakii grafiği hangi program çıkartıyor?



Alıntı YapFourier ne diyor? "Her sinyal N tane sinüs sinyalinin toplamı ile ifade edilebilir"

Ama burada sözü edilen sinyaller saf sinüs sinyaller.

Saf sinüs sinyalini sinüs sinyallerinin toplamı olarak yazamayız. Yazarsak gene kendisi olan tek bir sinyali elde ederiz.

sin(2a)=2sin(a)cos(a) olarak yazılabilir.

Sanki program hata yapıyor gibi. 2sin(a)cos(a) çarpımında cos(a) yı atıp  2sin(a) almış gibi.

Bu durumda 100Hz sinyal sanki 50Hz sinyalin 2 katı genlikteymiş gibi bir durum oluşur. Ama bu yanlış düşünce tabiki.





Bana e^st de diyebilirsiniz.   www.cncdesigner.com

barisertekin

#10
Matlab'ta çizdiriyorum. Matlab'ın kendi fft'si ve manuel yaptığım dft aynı sonucu veriyor.
clc;
clear;
%Bu kısım FFT için
fs=1000;
ara=0;
t=0:1/fs:1023*(1/fs);;%ZAMANSAL GÖSTERİMİ X EKSENİ İÇİN
X=zeros(1,size(t,2));
x=sin(2*pi*5*t) + 2*sin(2*pi*50*t) + 2*sin(2*pi*100*t);

subplot(3,1,1);
plot(t,x);xlabel('Time Domain');

F = (0:1024/2-1)*fs/1024;%FREKANS GÖSTERİMİ X EKSENİ İÇİN
u=abs(fft(x,1024));
subplot(3,1,2);
plot(F,u(1:512));xlabel('FFT grafiği');

%Bu kısımdan sonrası DFT için 
for k=1:size(t,2)
    for n=1:size(t,2)
           ara=ara+x(n)*exp((-j*2*pi*(k-1)*(n-1))/1024);
    end
    X(k)=ara;
    ara=0;
end

F = (0:1024/2-1)*fs/1024;
subplot(3,1,3);
plot(F,abs(X(1:512)));xlabel('DFT grafiği');


Yukarıdaki kodu bu linkten aldım.
https://www.picproje.org/index.php?topic=44147.0

Kodun çıktısı


N = 2 değil evet onu şimdi fark ettim. Çok daha fazla sinüs ve kosinüslerin toplamı ile ifade ediliyor.
Fakat 50 ve 100 aynı çıkmalı.

SpeedyX

Peki şöyle yap bakalım ne göreceksin?

x = 1.5*sin(2*pi*50*t) + 2.5*sin(2*pi*100*t);

z

Benim de denemeni istediğim bir fonksiyon var.

sin(2pi50t) + sin(2pi50t+pi/2) için ne diyecek bakalım.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

barisertekin

#13
Bildiklerimden şüphe etmeye başlamıştım. z beni karanlıktan çektin kurtardın :)

Farklı kod ile denedim eşit çıkıyor. Kendime düzgün çalışan bir algoritma bulmaya çalışıyım şimdi.  Ama matlabın fft'si ve manuel yazdığım dft nasıl aynı çıkıyor. Sorun örnekleme ile ilgili olabilir mi? Mantıklı gelmiyor.


z

"Matlab"da Ornekleme frekansini artirinca nasil cikiyor sonuclar?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com