Contente
MATLAB é uma ferramenta de programação que pode ser usada para analizar e processar sinais detalhadamente. Uma operação comum no processamento de sinais em uma ou várias dimensões é a remoção do ruído de alta frequência. Um filtro passa-baixas, por definição, está desenhado para remover de um sinal as frequências que estejam por cima de um certo valor. Usar a função filter2() em MATLAB é uma forma de implementar tal filtro.
Instruções
A função filter2() do MATLAB permite implementar um filtro passa-baixas (Hemera Technologies/AbleStock.com/Getty Images)-
Importe os seus dados em MATLAB. Frequentemente, os sinais que precisam ser filtrados são guardados em formato binário, requerendo uma função de E/S de baixo nível, tais como fread(), para serem importados. No entanto, o MATLAB inclui importadores de imagens para os formatos mais comuns.
my_data = fread(file_handle, n_samples, data_type); my_image = imread('my_image_file.tif','TIFF');
-
Converta os dados para uma matriz bidimensional antes de processá-la com a função filter2(). Você pode fazê-lo convertendo um array binário unidimensional para uma matriz por meio da função reshape(), ou selecionando uma imagem de uma série. Use a função squeeze() para remover dimensões "singleton" ao selecionar uma parte de uma matriz com mais de duas dimensões.
my_image = reshape(my_data, width, height); my_other_image = squeeze(my_image_series(:, :, image_number));
-
Desenhe o seu filtro e armazene o resultado em uma matriz bidimensional H. Geralmente um filtro passa-baixas usa uma "janela gaussiana" que pode ser criada com a função fspecial(). Os filtros também podem ser desenhados com a função especial de processamento de sinais sptool(). Você pode ver a resposta em frequência da janela do seu filtro usando a função wvtool(). No código de exemplo, H é uma matriz de 24x24 que contém uma janela gaussiana de desvio padrão 10.
H = fspecial('gaussian',[24 24], 10); wvtool(H);
-
Realize a filtragem usando o algoritmo de convolução bidimensional implementado por meio de filter2(). Por padrão, o resultado de filter2() tem as mesmas dimensões do que o conjunto de dados de entrada.
my_filtered_data = filter2(my_data, H);