störfrequenzen herausfiltern in matlab

Um Störfrequenzen aus einem Signal herauszufiltern, können verschiedene Methoden in MATLAB verwendet werden. Eine Möglichkeit ist die Anwendung von Digitalfiltern. Hier ein Beispiel, wie ein Tiefpassfilter zur Filterung von Störfrequenzen verwendet werden kann:

main.m
% Sampled Data.
fs = 1000;              % Sampling frequency
t = 0:1/fs:1-1/fs;      % Time vector of 1 second
f = 50;                 % Signal frequency of 50 Hz
x = cos(2*pi*f*t);      % Generate a 50 Hz cosine wave

% Signal with added noise at 30 Hz.
noise_freq = 30;
noise = 0.5*sin(2*pi*noise_freq*t);
x_noisy = x + noise;    % Combine the clean sine wave with the noise signal


% Design filter coefficients for a 30 Hz lowpass filter using the butter function.
fc = 30;                % Cutoff frequency
[b,a] = butter(4,fc/(fs/2),'low');

% Apply the filter to the noisy signal.
y = filter(b,a,x_noisy);

% Plot the original signal and noisy signal
figure
subplot(2,1,1)
plot(t,x_noisy)
grid on
title('Original and Noisy Signal')
xlabel('Time (s)')
ylabel('Amplitude')
legend('Noisy Signal')
subplot(2,1,2)
plot(t,x)
grid on
xlabel('Time (s)')
ylabel('Amplitude')
legend('Clean Signal')

% Plot the filtered signal
figure
plot(t,y)
grid on
title('Filtered Signal')
xlabel('Time (s)')
ylabel('Amplitude')
1013 chars
43 lines

Hier wird zuerst ein Signal mit einer Signal- und einer Störfrequenz erzeugt. Der Störfrequenz wird ein Rauschen hinzugefügt. Anschließend wird ein Tiefpassfilter mit der Grenzfrequenz von 30 Hz erzeugt, um die Störfrequenz aus dem Signal herauszufiltern. Das Filter wird mit der Funktion filter auf das schmutzige Signal angewandt und der gefilterte Signal wird geplottet.

related categories

gistlibby LogSnag