adaptive filter ile gürültü temizleme

Başlatan soyler01, 25 Şubat 2013, 18:01:47

soyler01

arkadaşlar adaptive filtre ile Atatürk'ün eski ses kayıtlarından birini matlab yardımıyla temizlemeye çalışıyorum ve lms algoritmasını kullanmaya çalışıyorum fakat matlaba yükledigim sesi lms algoritmasında bir türlü kullanamadım adaptive filtrede 2 signal gerekiyor input ve desire signal ama bende sadece tek bir kayıt yani tek signal var ne yapmam gerekiyor yardımcı olabilir misiniz?

pisayisi

Öncelikle elinizde gürültüsüz bir işaret x olduğunu düşünün, bu işarete kendi genliğinin 1/10 u oranında rastgele gürültü bindirirsek orjinal işarete nasıl ulaşırız? Amacımız bildiğimiz kabaca tahmin ettiğimiz bu işareti filtrelemektir. Atatürkün sesindeki gürül tipi rastgele gürültülerden hangisine uyuyor önce bunu belirlemek ve filtrenin bastırması gereken işareti random gürültü olarak modellemek gerekir. Bu modelleme doğru yapılabilirse , basitce aşağıdaki örnekteki gibi filtreleme yaparsınız. BurdA desired denen işareti bulmak için random gürültü işaretini siz üretetek giriş işaretinize bu filtreyi uygulamış olursunuz...

http://www.mathworks.com/help/dsp/ref/adaptfilt.adjlms.html

x  = randn(1,1000);      % Noise source
g  = fir1(47,0.4);       % FIR primary path system model
n  = 0.1*randn(1,1000);  % Observation noise signal
d  = filter(g,1,x)+n;    % Signal to be canceled (desired)
b  = fir1(31,0.5);       % FIR secondary path system model
mu = 0.008;              % Adjoint LMS step size
ha = adaptfilt.adjlms(32,mu,1,b);
[y,e] = filter(ha,x,d);
plot(1:1000,d,'b',1:1000,e,'r');
title('Active Noise Control of a Random Noise Signal');
legend('Original','Attenuated');
xlabel('Time Index'); ylabel('Signal Value');  grid on;


Murat

soyler01

Şimdi daha net bir şekilde anlayabildim.Peki bu gürültü çeşidini belirlemek için bana önerebileceğiniz bir yöntem var mı?