ich versuche mir gerade einen lowpass filter via fft zu erstellen, allerdings komme ich damit in 2D nicht so gut zurecht.
Ich habe eine Matrix auf der ein Rauschen liegt, welches ich unterdrücken möchte. Im Moment habe ich mir so geholfen, dass ich die Matrix erst zeilen-, dann spaltenweise durchgehe und einen 1D Filter anwende:
for j=1:size(data_noise,1) %zeilenweise
vv(1:101)=data_noise(j,:);
steigung_vv=(vv(end)-vv(1))/100;
vv_detrend=vv-(vv(1)+steigung_vv*(0:100));
% make our noisy function
Y = fft(vv_detrend,101);
r = 7; % range of frequencies we want to preserve rectangle = zeros(size(Y));
rectangle(1:r+1) = 1; % preserve low +ve frequencies % y_half = ifft(Y.*rectangle,100); % +ve low-pass filtered signal rectangle(end-r+1:end) = 1; % preserve low -ve frequencies
vv_detrend_rect = ifft(Y.*rectangle,101); % full low-pass filtered signal
data_neu(j,:)=vv_detrend_rect+(vv(1)+steigung_vv*(0:100));
end
for i=1:size(data_neu,2) %spaltenweise
vv(1:101)=data_neu(:,i);
steigung_vv=(vv(end)-vv(1))/100;
vv_detrend=vv-(vv(1)+steigung_vv*(0:100));
% make our noisy function
Y = fft(vv_detrend,101);
r = 7; % range of frequencies we want to preserve rectangle = zeros(size(Y));
rectangle(1:r+1) = 1; % preserve low +ve frequencies % y_half = ifft(Y.*rectangle,100); % +ve low-pass filtered signal rectangle(end-r+1:end) = 1; % preserve low -ve frequencies
vv_detrend_rect = ifft(Y.*rectangle,101); % full low-pass filtered signal
data_neu2(:,i)=vv_detrend_rect+(vv(1)+steigung_vv*(0:100));
end
Gibt es da eine direkte Möglichkeit dass in 2D zu machen?
Vielen Dank,
smaica
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.