精华内容
下载资源
问答
  • 2020-10-14 21:19:33
    clc;
    clear all;
    img=imread('lena.jpg');
    img_noise = imnoise(img, 'gaussian', 0, 0.01);
    subplot(2,2,1),imshow(img_noise);
    title('原图像');
    % 将低频移动到图像的中心,这个也很重要
    s=fftshift(fft2(img_noise)); 
    subplot(2,2,3),imshow(log(abs(s)),[]);
    title('图像傅里叶变换取对数所得频谱');
    % 求解变换后的图像的中心,我们后续的处理是依据图像上的点距离中心点的距离来进行处理
    [a,b] = size(img);
    a0 = round(a/2);
    b0 = round(b/2);
    d = min(a0,b0)/12;
    d = d^2;
    for i=1:a
        for j=1:b
            distance = (i-a0)^2+(j-b0)^2;
            if distance<d
                h = 1;
            else
                h = 0;
            end
            low_filter(i,j) = h*s(i,j);
        end
    end
    subplot(2,2,4),imshow(log(abs(low_filter)),[])
    title('低通滤波频谱');
    new_img = uint8(real(ifft2(ifftshift(low_filter))));
    subplot(2,2,2),imshow(new_img,[])
    title('低通滤波后的图像');

    这是学习图像处理使用傅里叶变换做的一个低通滤波,虽然傅里叶变换很复杂,但是matlab直接调用fft和fft2这个确实很方便

    s=fftshift(fft2(img_noise));

    这句话实现的是将低频转移到图像的中间,因为采用fft2变换后的图像高频在中间,低频段分散到四个角落

    [a,b] = size(img);
    a0 = round(a/2);
    b0 = round(b/2)
    

    一开始我也没搞明白这是干嘛的,后来明白了就茅塞顿开,这是在求解图形的中心点,之后的距离计算和滤波都与这个点有关

    for i=1:a
        for j=1:b
            distance = (i-a0)^2+(j-b0)^2;
            if distance<d
                h = 1;
            else
                h = 0;
            end
            low_filter(i,j) = h*s(i,j);
        end
    end

    这里就是基于距离进行滤波,所谓低通就是把距离中心点近的值进行保留,那么同理高通就是把距离远的值保留,这里当然可以直接采用fft2变换之后的图像进行处理,这样应该更方便。至于什么带通带阻都是大同小异
    最后展示一下结果
    在这里插入图片描述

    更多相关内容
  • 低通滤波-matlab低通滤波程序

    千次阅读 2022-05-12 20:52:02
    本例程展示了信号处理中低通滤波的作用,首先生成一个高斯白噪声,然后对其进行低通滤波。低通滤波器的截止频率和Q值可以自己设定,得到低通滤波器的传输函数后,在经过双线性变换法得到其单位脉冲响应。滤波后对...

    本例程展示了信号处理中低通滤波的作用,首先生成一个高斯白噪声,然后对其进行低通滤波。低通滤波器的截止频率和Q值可以自己设定,得到低通滤波器的传输函数后,在经过双线性变换法得到其单位脉冲响应。滤波后对原始信号的频谱和滤波后的信号的频谱进行了对比。

    %% 低通滤波器演示程序
    %% 生成白噪声信号
    clc;clear all; close all;
    N = 1000; %采样点数
    fs = N;   %采样频率
    fre_base = -N/2:N/2-1;
    a = randn(N,1); %生成符合高斯分布的随机噪声
    F = fftshift((fft(a)))*2/N;  %对其进行快速傅里叶变换
    %% 生成低通滤波器
    cut_off_freq = 50;          
    Q = 0.625;                   
    plot_enable_L = 1;            
    [Hs, H_z] = produce_LPF(cut_off_freq, Q, fs, plot_enable_L);  
    %% 进行低通滤波
    filterd_signal = filter(H_z.num{:}, H_z.den{:}, a);    
    filter_sig_f = fftshift(fft(filterd_signal))*2/N;
    %% 绘图
    figure;
    subplot(2,1,1); %绘制子图
    plot(fre_base,abs(F)); %绘制频率图
    xlabel('Hz');
    title('原始信号频谱图');
    subplot(2,1,2); %绘制子图
    plot(fre_base,abs(filter_sig_f)); %绘制频率图
    xlabel('Hz');
    title('低通滤波后信号频谱图');
    

    产生低通滤波器的子函数代码如下:

    function [Hs, H_z] = produce_LPF(cut_off_freq, Q, fs, plot_enable_L)
    %% 构造低通滤波器
    	w0 = 2*pi*cut_off_freq;					% 滤波器截止频率对应的角频率
    	A=1; B=w0/Q; C=w0^2;                    % 传递函数构造因子
    	numerator = C;                          % 传递函数的分子的矩阵表示
    	denominator = [A B C];                  % 传递函数的分母的矩阵表示
    	disp('二阶低通滤波器的传递函数');
    	Hs = tf(numerator, denominator)         % 构造模拟低通滤波器传递函数
    
    	H_z = c2d(Hs, 1/fs, 'tustin');          % 将滤波器的脉冲响应用双线性变换法离散化
        
    %% 绘制图形     
        if plot_enable_L == 1
            %%计算坐标,画模拟滤波器的频率特性
            w = logspace(1,6);                        % 产生10^1到10^4次的对数坐标
            hs = freqs(numerator,denominator,w);      % 滤波器的幅频、相频特性曲线
    
            mag = abs(hs);          % 取幅值 
            phase = angle(hs);      % 取相角
            f = w/(2*pi);                           % 将横坐标的单位由rad变为Hz   
            phase = phase*180/pi;                   % 将纵坐标的单位变为度。
    
            figure; semilogx(f, mag); grid on    
            xlabel('频率(Hz)'); ylabel('增益'); title('滤波器的幅频特性曲线');
        
            figure; semilogx(f, phase); grid on; 
            xlabel('频率(Hz)'); ylabel('相位(°)'); title('滤波器的相频特性曲线');
    
            figure; impulse(Hs); grid on                    
            xlabel('时间'); ylabel('幅度'); title('模拟滤波器脉冲响应');
        
            figure; impz(H_z.num{:}, H_z.den{:}); grid on;     %画双线性变换后的数字滤波器的脉冲响应 
            xlabel('点数'); ylabel('幅度'); title('数字滤波器脉冲响应');
        end
        
    end
    

    在这里插入图片描述

    图1. 低通滤波器的幅频特性曲线

    在这里插入图片描述

    图2. 原始信号及低通滤波后的信号频谱图
    由上图我们可以知道,原始信号的频谱弥漫在整个频率轴上,经过低通滤波后的信号的频谱只剩下低频的通带内,高频的分量被抑制掉了。这就是低通滤波器的作用。
    展开全文
  • matlab频域低通滤波代码 数字图像的频域滤波 1)设定截止频率D0 =100,试分别构建256×256的频域理想低通滤波器(ILPF)和频域理想高通滤波器(IHPF)。编写 MATLAB 代码,分别画出它们的频域滤波器响应 3D图及其...
  • matlab低通滤波

    万次阅读 多人点赞 2018-04-16 21:02:49
    所以低通滤波的效果是图像去噪声平滑增强,但同时也抑制了图像的边界,造成图像不同程度上的模糊。大于大小为M×N的图像,频率点(u,v)与频率中心的距离为D(u,v),其表达式为:1. 理想低通滤波器产生公式为:...

    低通滤波器的功能是让低频率通过而滤掉或衰减高频,其作用是过滤掉包含在高频中的噪声。所以低通滤波的效果是图像去噪声平滑增强,但同时也抑制了图像的边界,造成图像不同程度上的模糊。

    大于大小为M×N的图像,频率点(u,v)与频率中心的距离为D(u,v),其表达式为:

    1. 理想低通滤波器

    产生公式为:

    其中Do为理想低通滤波器的截止频率。理想低通滤波器具有平滑图像的作用,但是有很严重的振铃现象。

    利用理想低通滤波器对图像进行滤波:

    close all;clear all;clc;
    %利用理想低通滤波器对图像进行滤波
    I=imread('coins.png');
    I=im2double(I);
    M=2*size(I,1);  %滤波器的行数
    N=2*size(I,2);  %滤波器的列数
    u=-M/2:(M/2-1);
    v=-N/2:(N/2-1);
    [U,V]=meshgrid(u,v);
    D=sqrt(U.^2+V.^2);
    D0=80;  %截止频率设置为80
    H=double(D<=D0);  %理想低通滤波器
    J=fftshift(fft2(I,size(H,1),size(H,2)));  %时域图像转换到频域
    K=J.*H;  %滤波处理
    L=ifft2(ifftshift(K));  %傅立叶反变换
    L=L(1:size(I,1),1:size(I,2));
    figure;
    subplot(121);imshow(I);  %显示原图像
    subplot(122),imshow(L);  %显示滤波后的图像

    可以看到,右图的图像边缘变得模糊了。
    2. 巴特沃斯低通滤波器
    产生公式为:

    其中Do为巴特沃斯低通滤波器的截止频率,参数n为巴特沃斯滤波器的阶数,n越大则滤波器的形状越陡峭。
    利用巴特沃斯滤波器对图像进行滤波:
    close all;clear all;clc;
    %利用巴特沃斯低通滤波器对图像进行滤波
    I=imread('liftingbody.png');
    I=im2double(I);
    M=2*size(I,1);  %滤波器行数
    N=2*size(I,2);  %滤波器列数
    u=-M/2:(M/2-1);
    v=-N/2:(N/2-1);
    [U,V]=meshgrid(u,v);
    D=sqrt(U.^2+V.^2);
    D0=50;
    n=6;
    H=1./(1+(D./D0).^(2*n));  %构造巴特沃斯滤波器
    J=fftshift(fft2(I,size(H,1),size(H,2)));  %转换到频域
    K=J.*H;
    L=ifft2(ifftshift(K));  %傅立叶反变换
    L=L(1:size(I,1),1:size(I,2));  %改变图像大小
    figure;
    subplot(121),imshow(I);  %显示原始图像
    subplot(122);imshow(L);  %显示滤波后的图像

    该巴特沃斯低通滤波器,截止频率50,阶数为6。可以看到通过低通滤波后,去除了图像的高频部分,图像的边缘变得模糊。

    3.高斯低通滤波器

    产生公式为:

    其中Do为高斯低通滤波器的截止频率


    ------坚持就是胜利------

    展开全文
  • matlab低通滤波源程序

    2013-07-30 10:16:37
    matlab低通滤波器源代码 可以直接运行 注解详细 中文 一看就会 程序部分: %实现了对频率为20和200Hz单频叠加cos信号的低通滤波,使输出仅含有20Hz分量 clear; fs=1200; %采样频率 N=1200; % N/fs 秒数据 n=0:N-1; ...
  • 采用matlab实现巴特沃斯低通滤波,对信号Mix_Signal_1 和 Mix_Signal_2 分别作巴特沃斯低通滤波
  • 完整代码已上传我的资源:[【数字信号去噪】基于matlab低通滤波数字信号去噪【含Matlab源码 964期】](https://download.csdn.net/download/TIQCmatlab/69025952) 备注: 订阅紫极神光博客**付费专栏**,可免费获得*...

    一、获取代码方式

    获取代码方式1:
    通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

    获取代码方式2:
    完整代码已上传我的资源:【数字信号去噪】基于matlab低通滤波数字信号去噪【含Matlab源码 964期】

    备注:
    订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

    二、低通滤波器简介

    滤波器的用途:滤波器主要用来滤除信号中的无用频率成分,让符合频率要求的信号通过,抑制不需要的信号。
    滤波器的分类:低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BEF)。下边介绍的滤波器均为无源的。

    1 无源低通滤波器
    允许信号中较低频率成分通过滤波器时,这种滤波器叫做低通滤波器。
    在这里插入图片描述
    2 二阶低通滤波
    下图为二阶低通滤波器电路和具体bode图,可以发现其下降部分相较于一阶低通滤波更加陡峭。
    在这里插入图片描述
    3 RL电感低通滤波电路
    RL电感低通滤波电路和RC低通滤波电路的功能基本一致,通低频,阻高频,此外还能实现积分电路。

    三、部分源代码

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%设定初始参数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    fs=2048;                          %采样频率
    N=512;                            %采样点数
    n=0:N-1;
    t=n/fs;                           %时间
    f1=100;
    f2=300;                           %低频
    f3=800;                           %高频
    s=cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t);%假定信号
    subplot(121);plot(t,s);
    title('输入信号');xlabel('t/s');ylabel('幅度');%未滤波时  时域波形
    sfft=fft(s);  %傅里叶变换
    subplot(122);  
    plot((1:length(sfft)/2)*fs/length(sfft),2*abs(sfft(1:length(sfft)/2))/length(sfft));  
    title('信号频谱');xlabel('频率/Hz');ylabel('幅度');  %未滤波时  频域波形
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%设计巴特沃斯低通滤波器%%%%%%%%%%%%%%%%%%%%%%%%
    Wp=900/fs;Ws=1000/fs;                     
    [n,Wn]=buttord(Wp,Ws,1,50);                         %阻带衰减大于50db,通带纹波小于1db
                                                        %估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wn
    [a,b]=butter(n,Wn);  
    [h,f]=freqz(a,b,'whole',fs);                        %求数字低通滤波器的频率响应  
    f=(0:length(f)-1)*fs/length(f);                     %进行对应的频率转换  
    figure(2);  
    plot(f(1:length(f)/2),abs(h(1:length(f)/2)));       %绘制巴特沃斯幅频响应图  
    title('巴特沃斯低通滤波器');xlabel('频率/Hz');ylabel('幅度');  
    grid;  
    sF=filter(a,b,s);                                   %叠加函数s经过低通滤波器以后的新函数  
    figure(3);  
    subplot(121);  
    plot(t,sF);                                         %绘制叠加函数s经过低通后时域图形  
    title('输出信号');xlabel('t/s');ylabel('幅度');  
    SF=fft(sF);  
    subplot(122);  
    plot((1:length(SF)/2)*fs/length(SF),2*abs(SF(1:length(SF)/2))/length(SF));  
    title('低通滤波后频谱');xlabel('频率/Hz');ylabel('幅度');
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%时域特征值计算%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    iemg1=sum(abs(sF))/length(sF);
    rms1=sqrt(sum(sF.^2)/length(sF));
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%频域特征值计算%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    L1=length(sF);
    cx1=xcorr(sF,'unbiased');
    cxk1=fft(cx1,L1);
    px1=abs(cxk1);                                                 %求功率谱密度
    pxx1=10*log10(px1);
    figure(4)
    f1=(0:L1-1)*fs/L1;
    plot(f1(1:L1/2),pxx1(1:L1/2))
    figure(4)
    

    四、运行结果

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    五、matlab版本及参考文献

    1 matlab版本
    2014a

    2 参考文献
    [1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
    [2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
    [3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.

    展开全文
  • 实验作业5: 1用理想低通滤波器在频率域实现低通滤波 程序代码 I二imread'd:/jpg; I=rgb2gray(l; figure(1,imshow(l; title'原图像) s=fftshift(fft2 (I; figure(2; imshow(abs(s,[]; title'图像傅里叶变换所得频谱; ...
  • 低通滤波去噪方法

    2015-05-04 14:37:00
    本程序基于matlab平台编写,使用不同的低通滤波算法对含有噪声图形进行处理,以对比其去噪效果。
  • 完整代码,可直接运行
  • Matlab实现图像低通滤波

    热门讨论 2012-03-04 14:04:03
    图像处理的matlab代码:Matlab实现图像低通滤波
  • 巴特沃斯低通滤波matlab实现代码 DIP-Filter 1.概况 项目:实现一个通用的高通、低通、带通和带阻滤波器函数。其中又分别实现理想、巴特沃思和指数等滤波形式。用实现的函数对图1(lena_noise.bmp)进行低通处理,图...
  • 使⽤频域理想低通滤波器对含噪图像进行处理。 低通滤波器尺寸可以较为方便地进行设置。
  • 基于matlab的理想低通滤波图像增强并给出其PSNR指标
  • MatLab理想低通滤波及高通滤波实现高频增强实验报告.pdf
  • 完整代码,可直接运行
  • 可用于图像处理,实现高斯低通滤波
  • Matlab图像处理之低通滤波

    千次阅读 2020-06-09 16:55:48
    MATLAB图像处理中常用的低通滤波有三种。 第一种是理想的低通滤波器。即将设定范围圆半径内的所有频率都可以正常通过,圆以外的频率全部归零。 第二种是布特沃斯低通滤波器(BLPF) 相对平缓的过渡滤波 第三种是...
  • 1) 平方2)下采样3)低通滤波
  • MATLAB巴特沃斯低通滤波图像

    千次阅读 2022-04-11 06:02:34
    title(‘巴特沃斯低通滤波图像’); function im5 = freqfilter_btw_lp(im,D0,n) if ~isa(im,‘double’) im1 = double(im)/255; end im2 = fft2(im1); % 傅里叶变换 im3 = fftshift(im2); % 中心化 [N1, N2] = size...
  • 高斯滤波器的matlab实现,不是matlab自带的函数。
  • Matlab 低通Butterworth滤波仿真m文件//////////////////////////////////////////////////////////////////////clear;P=bodeoptions;P.Grid='on';P.XLim={[0 800]};P.XLimMode={'manual'};P.FreqUnits='Hz';P....
  • 我们已经介绍了频域中三种类型的低通滤波的代码; 1.理想低通滤波器(ILPF)(问题?) 2. 巴特沃斯低通滤波器 (BLPF) 3. 高斯低通滤波器(GLPF) 您可以清楚地观察到低通滤波器输出中的振铃效应问题。 振铃效应的...
  • 如何用MATLAB构建理想低通滤波器,巴特沃斯低知道多少说多少哈 而且金币不多 希望大虾帮忙看够了,听够了,烦够了,什么都不想在去想了,小编累了。比如你要处理的信号叫x(n),是一个N点的序列。 理想低通滤波器最...
  • 傅里叶变化 通过处理得到Butterworth低通滤波图像,经过验证,程序可以运行,有需要的朋友可以下载。
  • 智能车四种常见滤波和 MATLAB 仿真:一阶 RC 低通滤波,二阶 IIR 低通滤波,五阶 FIR 低通滤波,卡尔曼滤波
  • clc,clear,close all % 清理命令区、清理工作区、关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 D0 = 20; % 阻止的频率点与频域中心的距离 im = imread(... title(‘高斯低通滤波图像’);
  • 该程序旨在演示频域滤波的概念,这里我们使用 2D DFT 将给定​​的图像转换为频域。
  • 1.领域:matlab低通滤波和最优陷波滤波算法 2.内容:通过matlab对比低通滤波和最优陷波滤波的图像去噪性能+代码仿真操作视频 3.用处:用于低通滤波和最优陷波滤波算法编程学习 4.指向人群:本硕博等教研学习...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,739
精华内容 3,495
关键字:

matlab低通滤波

matlab 订阅