Адаптивная фильтрация — фильтр локального шума в MATLAB

Опубликовано: 21 Февраля, 2023

К ухудшенному изображению, которое содержит как исходное изображение, так и шум, применяется адаптивный фильтр. При предопределенной области окна mxn среднее значение и дисперсия являются двумя статистическими показателями, от которых зависит локально адаптивный фильтр.

Адаптивные фильтры:

Адаптивные фильтры также являются цифровыми фильтрами, которые изменяют свои коэффициенты с целью приблизить фильтр к оптимальному состоянию. Критерием оптимизации служит функция стоимости, обычно являющаяся средним квадратом сигнала ошибки между выходным сигналом адаптивного фильтра и желаемым сигналом. Среднеквадратическая ошибка (MSE) сходится к своему минимальному значению, когда фильтр корректирует свои коэффициенты. Коэффициенты сошлись к решению, и в этот момент фильтр был изменен. Говорят, что полезный сигнал d(k) очень близко соответствует выходному сигналу фильтра y(k). Фильтр приспосабливается к новой среде, генерируя новый набор коэффициентов для новых данных, когда характеристики входных данных изменяются, процесс, который называется «средой фильтрации».

Применение адаптивного фильтра:

  1. Идентификация системы: идентификация неизвестных систем с использованием адаптивного фильтра. Идентификация неизвестной системы, такой как отклик неизвестного канала связи или частотная характеристика аудитории, для выбора достаточно различных приложений является одним из распространенных применений адаптивных фильтров. Идентификация канала и подавление эха — два дополнительных приложения.
  2. Использование адаптивного фильтра для удаления шума из неизвестной системы: подавление шума или помех. При подавлении шума универсальные каналы позволяют постоянно устранять шум из знака. Шум и полезная информация объединяются здесь в полезный сигнал, который нужно очистить. Подайте на адаптивный фильтр сигнал n'(k), который коррелирует с шумом, который нужно удалить из желаемого сигнала, чтобы избавиться от шума.
  3. Идентификация обратной реакции на неизвестную систему с помощью адаптивного фильтра обратной системы становится обратной неизвестной системе, поскольку e(k) уменьшается, когда неизвестная система помещается последовательно с ней. Чтобы синхронизировать данные при суммировании, процедура требует добавления задержки к пути полезного сигнала d(k), как показано на рисунке. Система остается причинно-следственной, когда добавляется задержка.
  4. Будущие значения периодического сигнала можно предсказать с помощью предсказания. Чтобы предсказать сигналы, вы должны сделать важные предположения. Предположим, что сигнал является периодическим и либо устойчивым, либо медленно изменяющимся во времени.

Использование адаптивного фильтра:

В современных продуктах цифровой обработки сигналов (DSP) адаптивные фильтры широко используются в таких приложениях, как активное подавление шума (ANC), системы адаптивного управления, подавление телефонного эха, шумоподавление, выравнивание каналов связи и усиление биомедицинских сигналов.

Пример 1:

Matlab




% MATLAB CODE for Adaptive filtering- Local Noise filter  
X = imread("GeeksforGeeks.png");
Y = rgb2gray(X);
sz = size(Y,1)*size(Y,2);
  
% Add gaussian noise with mean 0 and variance 0.010
y = imnoise(y,"gaussian",0,0.010);
figure,imshow(y); title("Image with gaussian noise");
  
y = double(y);
  
% Define the window size mxn
U = 10;
V = 10;
  
% Fill the matrix up on all sides with zeros.
Z = padarray(Y,[floor(N/2),floor(M/2)]);
  
lvar = zeros([size(y,1) size(y,2)]);
lmean = zeros([size(y,1) size(y,2)]);
temp = zeros([size(y,1) size(y,2)]);
NewImg = zeros([size(y,1) size(y,2)]);
  
for i = 1:size(Z,1)-(N-1)
    for j = 1:size(Z,2)-(M-1)
  
 temp = Z(i:i+(N-1),j:j+(M-1));
        tmp =  temp(:);
             % Determine the region"s local mean and variance.        
        lmean(i,j) = mean(tmp);
        lvar(i,j) = mean(tmp.^2)-mean(tmp).^2;
          
    end
end
  
% Commotion fluctuation and normal 
% of the neighborhood change
nvar = sum(lvar(:))/sz;
  
% If noise_variance > local_variance 
% then local_variance=noise_variance
 lvar = max(lvar,nvar);     
  
% Final_Image = Y- (noise variance/
% local variance)*(Y-local_mean);
 NewImg = nvar./lvar;
 NewImg = NewImg.*(Y-lmean);
 NewImg = Y-NewImg;
  
% Convert the image to uint9 format.
 NewImg = uint9(NewImg);
figure,imshow(NewImg);title("Restored Image using Adaptive Local filter");

Выход:

Адаптивное шумоподавление:

Переменный широкополосный шум, такой как шум ветра, грохот и фоновые звуки, быстро устраняется эффектом Noise Reduction/Restore > Adaptive Noise Reduction. Вы можете применить этот эффект в многодорожечном редакторе и комбинировать его с другими эффектами в стойке эффектов, поскольку он работает в режиме реального времени.