matlab理想低通滤波器代码
时间: 2023-10-04 19:01:35 浏览: 113
理想低通滤波MATLAB代码
5星 · 资源好评率100%
在MATLAB中实现理想低通滤波器的代码如下:
```matlab
% 设计理想低通滤波器
function ideal_lowpass_filter()
% 输入信号
signal = imread('input_image.jpg');
signal = im2double(signal);
% 图像尺寸
[rows, cols] = size(signal);
% 理想低通滤波器的截止频率
cutoff_frequency = 0.1;
% 构建理想低通滤波器的频域表示
H = zeros(rows, cols);
for u = 1:rows
for v = 1:cols
distance = sqrt((u - rows/2)^2 + (v - cols/2)^2);
if distance <= cutoff_frequency*sqrt(rows^2 + cols^2)
H(u, v) = 1;
end
end
end
% 对输入信号进行傅里叶变换
signal_fft = fftshift(fft2(signal));
% 将低频部分与理想滤波器相乘
filtered_signal_fft = signal_fft .* H;
% 对处理后的频域信号进行傅里叶反变换
filtered_signal = abs(ifft2(ifftshift(filtered_signal_fft)));
% 显示原始信号和滤波结果
figure;
subplot(121); imshow(signal); title('原始信号');
subplot(122); imshow(filtered_signal); title('滤波结果');
end
```
以上代码实现了理想低通滤波器,首先读入一幅图像作为输入信号,然后根据设定的截止频率,构建理想低通滤波器的频域表示。接下来,对输入信号进行傅里叶变换得到频域信号,通过将低频部分与理想滤波器相乘,得到处理后的频域信号。最后,对处理后的频域信号进行傅里叶反变换得到滤波结果,并显示原始信号和滤波结果。
阅读全文