精华内容
参与话题
问答
  • 下两个滤波器都是切比雪夫I型数字滤波器,不是巴特沃尔滤波器,请使用者注意!1.低通滤波器使用说明:将下列代码幅值然后以m文件保存,文件名要与函数名相同,这里函数名:lowp。function y=lowp(x,f1,f3,rp,rs,Fs) ...

    本文为转载内容,原文地址为点击打开链接

    下两个滤波器都是切比雪夫I型数字滤波器,不是巴特沃尔滤波器,请使用者注意!

    1.低通滤波器

    使用说明:将下列代码幅值然后以m文件保存,文件名要与函数名相同,这里函数名:lowp。

    function y=lowp(x,f1,f3,rp,rs,Fs)
    %低通滤波
    %使用注意事项:通带或阻带的截止频率的选取范围是不能超过采样率的一半
    %即,f1,f3的值都要小于 Fs/2
    %x:需要带通滤波的序列
    % f 1:通带截止频率
    % f 3:阻带截止频率
    %rp:边带区衰减DB数设置
    %rs:截止区衰减DB数设置
    %FS:序列x的采样频率
    % rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值
    % Fs=2000;%采样率
    %
    wp=2*pi*f1/Fs;
    ws=2*pi*f3/Fs;
    % 设计切比雪夫滤波器;
    [n,wn]=cheb1ord(wp/pi,ws/pi,rp,rs);
    [bz1,az1]=cheby1(n,rp,wp/pi);
    %查看设计滤波器的曲线
    [h,w]=freqz(bz1,az1,256,Fs);
    h=20*log10(abs(h));
    figure;plot(w,h);title('所设计滤波器的通带曲线');grid on;
    %
    y=filter(bz1,az1,x);%对序列x滤波后得到的序列y
    end
    --------------------------------------

    低通滤波器使用例子的代码

    fs=2000;
    t=(1:fs)/fs;
    ff1=100;
    ff2=400;
    x=sin(2*pi*ff1*t)+sin(2*pi*ff2*t);
    figure;
    subplot(211);plot(t,x);
    subplot(212);hua_fft(x,fs,1);
    %低通测试
    % y=filter(bz1,az1,x);
    y=lowp(x,300,350,0.1,20,fs);
    figure;
    subplot(211);plot(t,y);
    subplot(212);hua_fft(y,fs,1);%hua_fft()函数是画频谱图的函数,代码在下面给出,要保存为m文件调用
    %这段例子还调用了我自己写的专门画频谱图的函数,也给出,不然得不出我的结果;

    %画信号的幅频谱和功率谱
    %频谱使用matlab例子表示
    function hua_fft(y,fs,style,varargin)
    %当style=1,画幅值谱;当style=2,画功率谱;当style=其他的,那么花幅值谱和功率谱
    %当style=1时,还可以多输入2个可选参数
    %可选输入参数是用来控制需要查看的频率段的
    %第一个是需要查看的频率段起点
    %第二个是需要查看的频率段的终点
    %其他style不具备可选输入参数,如果输入发生位置错误
    nfft=2^nextpow2(length(y));%找出大于y的个数的最大的2的指数值(自动进算最佳FFT步长nfft)
    %nfft=1024;%人为设置FFT的步长nfft
      y=y-mean(y);%去除直流分量
    y_ft=fft(y,nfft);%对y信号进行DFT,得到频率的幅值分布
    y_p=y_ft.*conj(y_ft)/nfft;%conj()函数是求y函数的共轭复数,实数的共轭复数是他本身。
    y_f=fs*(0:nfft/2-1)/nfft;�T变换后对应的频率的序列
    % y_p=y_ft.*conj(y_ft)/nfft;%conj()函数是求y函数的共轭复数,实数的共轭复数是他本身。
    if style==1
        ifnargin==3
           plot(y_f,2*abs(y_ft(1:nfft/2))/length(y));%matlab的帮助里画FFT的方法
           %ylabel('幅值');xlabel('频率');title('信号幅值谱');
           %plot(y_f,abs(y_ft(1:nfft/2)));%论坛上画FFT的方法
        else
           f1=varargin{1};
           fn=varargin{2};
           ni=round(f1 * nfft/fs+1);
           na=round(fn * nfft/fs+1);
           plot(y_f(ni:na),abs(y_ft(ni:na)*2/nfft));
        end
    
    elseif style==2
               plot(y_f,y_p(1:nfft/2));
               %ylabel('功率谱密度');xlabel('频率');title('信号功率谱');
        else
           subplot(211);plot(y_f,2*abs(y_ft(1:nfft/2))/length(y));
           ylabel('幅值');xlabel('频率');title('信号幅值谱');
           subplot(212);plot(y_f,y_p(1:nfft/2));
           ylabel('功率谱密度');xlabel('频率');title('信号功率谱');
    end
    end

    下面三幅图分别是滤波前的时频图,滤波器的滤波特性曲线图和滤波后的时频图,通过图可以看出成功留下了100Hz的低频成分而把不要的高频成分去除了。

    2.高通滤波器

    function y=highp(x,f1,f3,rp,rs,Fs)
    %高通滤波
    %使用注意事项:通带或阻带的截止频率的选取范围是不能超过采样率的一半
    %即,f1,f3的值都要小于 Fs/2
    %x:需要带通滤波的序列
    % f 1:通带截止频率
    % f 2:阻带截止频率
    %rp:边带区衰减DB数设置
    %rs:截止区衰减DB数设置
    %FS:序列x的采样频率
    % rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值
    % Fs=2000;%采样率
    %
    wp=2*pi*f1/Fs;
    ws=2*pi*f3/Fs;
    % 设计切比雪夫滤波器;
    [n,wn]=cheb1ord(wp/pi,ws/pi,rp,rs);
    [bz1,az1]=cheby1(n,rp,wp/pi,'high');
    
    %查看设计滤波器的曲线
    [h,w]=freqz(bz1,az1,256,Fs);
    h=20*log10(abs(h));
    figure;plot(w,h);title('所设计滤波器的通带曲线');grid on;
    y=filter(bz1,az1,x);
    end

    下面是高通滤波器的例子

    fs=2000;
    t=(1:fs)/fs;
    ff1=100;
    ff2=400;
    x=sin(2*pi*ff1*t)+sin(2*pi*ff2*t);
    figure;
    subplot(211);plot(t,x);
    subplot(212);hua_fft(x,fs,1);
    
    %------高通测试
    z=highp(x,350,300,0.1,20,fs);
    figure;
    subplot(211);plot(t,z);
    subplot(212);hua_fft(z,fs,1);


    下面三幅图分别是滤波前的时频图,滤波器的滤波特性曲线图和滤波后的时频图,通过图可以看出成功留下了400Hz的高频成分而把不要的低频成分100Hz去除了。


    3.带通滤波器

    function y=bandp(x,f1,f3,fsl,fsh,rp,rs,Fs)
    %带通滤波
    %使用注意事项:通带或阻带的截止频率与采样率的选取范围是不能超过采样率的一半
    %即,f1,f3,fs1,fsh,的值小于 Fs/2
    %x:需要带通滤波的序列
    % f 1:通带左边界
    % f 3:通带右边界
    % fs1:衰减截止左边界
    % fsh:衰变截止右边界
    %rp:边带区衰减DB数设置
    %rs:截止区衰减DB数设置
    %FS:序列x的采样频率
    % f1=300;f3=500;%通带截止频率上下限
    % fsl=200;fsh=600;%阻带截止频率上下限
    % rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值
    % Fs=2000;%采样率
    %
    wp1=2*pi*f1/Fs;
    wp3=2*pi*f3/Fs;
    wsl=2*pi*fsl/Fs;
    wsh=2*pi*fsh/Fs;
    wp=[wp1 wp3];
    ws=[wsl wsh];
    %
    % 设计切比雪夫滤波器;
    [n,wn]=cheb1ord(ws/pi,wp/pi,rp,rs);
    [bz1,az1]=cheby1(n,rp,wp/pi);
    %查看设计滤波器的曲线
    [h,w]=freqz(bz1,az1,256,Fs);
    h=20*log10(abs(h));
    figure;plot(w,h);title('所设计滤波器的通带曲线');grid on;
    y=filter(bz1,az1,x);
    end

    带通滤波器使用例子

    %--------------
    %带通滤波器测试程序
    fs=2000;
    t=(1:fs)/fs;
    ff1=100;
    ff2=400;
    ff3=700;
    x=sin(2*pi*ff1*t)+sin(2*pi*ff2*t)+sin(2*pi*ff3*t);
    figure;
    subplot(211);plot(t,x);
    subplot(212);hua_fft(x,fs,1);
    % y=filter(bz1,az1,x);
    y=bandp(x,300,500,200,600,0.1,30,fs);
    figure;
    subplot(211);plot(t,y);
    subplot(212);hua_fft(y,fs,1);


    %调用到的hua_fft()函数代码如下

    function hua_fft(y,fs,style,varargin)
    %当style=1,画幅值谱;当style=2,画功率谱;当style=其他的,那么花幅值谱和功率谱
    %当style=1时,还可以多输入2个可选参数
    %可选输入参数是用来控制需要查看的频率段的
    %第一个是需要查看的频率段起点
    %第二个是需要查看的频率段的终点
    %其他style不具备可选输入参数,如果输入发生位置错误
    nfft=2^nextpow2(length(y));%找出大于y的个数的最大的2的指数值(自动进算最佳FFT步长nfft)
    %nfft=1024;%人为设置FFT的步长nfft
      y=y-mean(y);%去除直流分量
    y_ft=fft(y,nfft);%对y信号进行DFT,得到频率的幅值分布
    y_p=y_ft.*conj(y_ft)/nfft;%conj()函数是求y函数的共轭复数,实数的共轭复数是他本身。
    y_f=fs*(0:nfft/2-1)/nfft;�T变换后对应的频率的序列
    % y_p=y_ft.*conj(y_ft)/nfft;%conj()函数是求y函数的共轭复数,实数的共轭复数是他本身。
    if style==1
        ifnargin==3
           plot(y_f,2*abs(y_ft(1:nfft/2))/length(y));%matlab的帮助里画FFT的方法
           %ylabel('幅值');xlabel('频率');title('信号幅值谱');
           %plot(y_f,abs(y_ft(1:nfft/2)));%论坛上画FFT的方法
        else
           f1=varargin{1};
           fn=varargin{2};
           ni=round(f1 * nfft/fs+1);
           na=round(fn * nfft/fs+1);
           plot(y_f(ni:na),abs(y_ft(ni:na)*2/nfft));
        end
    
    elseif style==2
               plot(y_f,y_p(1:nfft/2));
               %ylabel('功率谱密度');xlabel('频率');title('信号功率谱');
        else
           subplot(211);plot(y_f,2*abs(y_ft(1:nfft/2))/length(y));
           ylabel('幅值');xlabel('频率');title('信号幅值谱');
           subplot(212);plot(y_f,y_p(1:nfft/2));
           ylabel('功率谱密度');xlabel('频率');title('信号功率谱');
    end
    end
    运行结果如下图,第一幅是滤波前测试信号的时频图,第二幅是滤波器的滤波曲线图,第三幅是经滤波后的测试信号时频图。

    4.带阻滤波器

    function y=bands(x,f1,f3,fsl,fsh,rp,rs,Fs)
    %带阻滤波
    %使用注意事项:通带或阻带的截止频率与采样率的选取范围是不能超过采样率的一半
    %即,f1,f3,fs1,fsh,的值小于 Fs/2
    %x:需要带通滤波的序列
    % f 1:通带左边界
    % f 3:通带右边界
    % fs1:衰减截止左边界
    % fsh:衰变截止右边界
    %rp:边带区衰减DB数设置
    %rs:截止区衰减DB数设置
    %FS:序列x的采样频率
    % f1=300;f3=500;%通带截止频率上下限
    % fsl=200;fsh=600;%阻带截止频率上下限
    % rp=0.1;rs=30;%通带边衰减DB值和阻带边衰减DB值
    % Fs=2000;%采样率
    %
    wp1=2*pi*f1/Fs;
    wp3=2*pi*f3/Fs;
    wsl=2*pi*fsl/Fs;
    wsh=2*pi*fsh/Fs;
    wp=[wp1 wp3];
    ws=[wsl wsh];
    %
    % 设计切比雪夫滤波器;
    [n,wn]=cheb1ord(ws/pi,wp/pi,rp,rs);
    [bz1,az1]=cheby1(n,rp,wp/pi,'stop');
    %查看设计滤波器的曲线
    [h,w]=freqz(bz1,az1,256,Fs);
    h=20*log10(abs(h));
    figure;plot(w,h);title('所设计滤波器的通带曲线');grid on;
    y=filter(bz1,az1,x);
    end

    使用例子

    %带阻滤波器测试
    fs=1000;
    t=(1:fs)/fs;
    y=sin(2*pi*100*t)+sin(2*pi*150*t)+sin(2*pi*200*t);
    figure;hua_fft(y,fs,1);
    z=bands(y,110,190,140,160,0.1,30,fs);
    figure;hua_fft(z,fs,1);

    运行结果如下图,第一幅是滤波前测试信号的频谱图,第二幅是滤波器的滤波曲线图,第三幅是经滤波后的测试信号频谱图。




    展开全文
  • 一阶高通滤波器 一阶高通滤波器包含一个RC电路,将一阶低通滤波器的R与C对换位置,即可构成一阶高通滤波器。如图所示为一阶高通滤波器。  图6-3-1所示的滤波器是反相放大器。其传递函数为  其中,幅频...
  • 高通滤波器

    2018-05-08 12:49:21
    各种高通多阶滤波器,有源、无源高通滤波器Multisim仿真实例
  • 高通滤波器应用非常广泛,下面列举几个典型高通滤波器的应用电路。 1.100Hz高通滤波器 如图所示为100Hz高通滤波器。此有源高通滤波器的截止频率fc=100Hz,R1与R2之比和C1与C2之比,可以是各种值。如选择R1=R2和...
  • mfc高通滤波器

    2012-05-06 14:39:44
    mfc制作高通滤波器 滤波算法 double c=0.098531; y[0]=c*x[0]; y[1]=c*x[1]-3*c*x[0]-0.486441*y[0]; y[2]=c*x[2]-3*c*x[1]+3*c*x[0]-0.486441*y[1]-0.421787*y[0]; for(i=3;i;i++) { y[i]=c*x[i]-3*c*x[i-1...
  • 1、高斯高通滤波器 传递函数: 高斯低通滤波器 传递函数: D0指截止频率。 2、巴特沃斯高通滤波器 传递函数: 巴特沃斯低通滤波器 传递函数: 描述:在公式中,D(u,v)代表频域当中,...

    一、目标:

    1. 对lena图像采用高频强调滤波增强方法,并分析方法的效果。(理想、巴特沃斯、高斯)。其结果好不好?能否有改善的方法?

     

    二、函数分析:

    1、高斯高通滤波器

    传递函数:

     

    高斯低通滤波器

    传递函数:

    D0指截止频率。

     

    2、巴特沃斯高通滤波器

        传递函数:

     

    巴特沃斯低通滤波器

    传递函数:

    描述:在公式中,D(u,v)代表频域当中,点(u,v)到中心点的距离。而D0就是截止距离了,就相当于在频域当中画一个圈,对圈内或者圈外保留就可以达到所谓的低通和高通了,这个D0就相当于一维当中的截止频率

     

    3、高频强调滤波方法

        传递函数:

       Hhfe(u,v) = a + bHhp(u,v)

    描述:加入一个偏移量同时乘以一个大于1的常数,使用原图像中的一部分低频分量进入高频区域,而在高频滤波后被保留下来,从而不仅保持一些光滑区域灰度,又使边缘得到增强,而且整幅图像的层次也较丰富,不那么昏暗了。

    总的来说高频强调滤波方法是保留了高频分量的同时,加入了背景的低频分量。

     

    三、代码展示:

    % 1、对lena图像采用高频强调滤波增强方法,
    %    并分析方法的效果。(理想、巴特沃斯、高斯)
    %    其结果好不好?能否有改善的方法?
    %
    % @author: jackma
    % @time:   2020-10-19 10:15
    % @URL:    www.jackmark.top
    % @edit:   
    
    % 1. Lena图像采用高频强调滤波增强方法
    clc
    clear
    imgrgb = imread('x.jpg'); %读取彩色图像
    f = rgb2gray(imgrgb); %将rgb图像转换成灰度图像
    subplot(2, 2, 1);
    imshow(f)
    title('原始图像')
    
    %高斯高通滤波
    I = double(f);
    g = fft2(I);%二维傅立叶变换
    g = fftshift(g);%频移
    [M, N] = size(g);
    D0 = 5;%截止频率为5
    m = fix(M / 2); n = fix(N / 2);
    
    for i = 1:M
    
        for j = 1:N
            D = sqrt((i - m)^2 + (j - n)^2);
            H = exp(-(D.^2) ./ (2 * (D0^2)));
            result(i, j) = (1 - H) * g(i, j);
        end
    
    end
    
    result = ifftshift(result);
    J1 = ifft2(result);
    J2 = uint8(real(J1));
    subplot(2, 2, 2);
    imshow(J2)
    title('高斯高通滤波后的图像')
    
    %高频强调滤波
    F = 0.5 + 0.75 * (1 - H);
    G = F * g;
    result2 = ifftshift(G);
    J3 = ifft2(result2);
    J4 = uint8(real(J3));
    subplot(2, 2, 3)
    imshow(J4)
    title('高频强调滤波后的图像')
    
    %对高频强调滤波后图像进行直方图均衡化
    J5 = histeq(J4, 256);
    J5 = uint8(J5);
    subplot(2, 2, 4);
    imshow(J5)
    title('直方图均衡化后的图像')
    
    %%%%%巴特沃斯高通滤波
    figure('Name', '图像加入巴特沃斯高通滤波'); %标题
    [M, N] = size(f);
    a = fft2(f);
    a = fftshift(a);
    m1 = fix(M / 2); n1 = fix(N / 2);
    
    for u = 1:M
    
        for v = 1:N
            D1 = sqrt((u - m1)^2 + (v - n1)^2);
    
            if D1 == 0
                H1(u, v) = 0;
            else
                %    H(u,v)=1/(1+0.414*(500/D1)^4);%截至频率为500
                H1(u, v) = 1 / (1 + (500 / D1)^4); %2阶巴特沃斯高通滤波器,截至频率为500
            end
    
        end
    
    end
    
    F1 = H1 .* a;
    F1 = ifftshift(F1);
    I2 = abs(ifft2(F1));
    subplot(2, 2, 1);
    imshow(f)
    title('原始图像')
    subplot(2, 2, 2);
    imshow(I2)
    title('巴特沃斯高通滤波后的图像')
    
    %高频强调滤波
    FF = 0.5 + 0.75 * (1 - H1);
    G1 = FF .* a;
    result3 = ifftshift(G1);
    J8 = ifft2(result3);
    J9 = uint8(real(J8));
    subplot(2, 2, 3)
    imshow(J9)
    title('高频强调滤波后的图像')
    
    %对高频强调滤波后图像进行直方图均衡化
    J10 = histeq(J9, 256);
    J10 = uint8(J10);
    subplot(2, 2, 4);
    imshow(J10)
    title('直方图均衡化后的图像')
    

    四、结果展示及分析:

    图1 原始灰度图像和高斯高通滤波的图像,使用高频强调滤波增强图像

    图2 原始灰度图像和巴特沃斯高通滤波的图像,使用高频强调滤波增强图像

    显然通过图像对比可得,高频强调滤波增强和直方图均衡化效果远比高斯高通滤波和巴特沃斯高通滤波效果好,背景更加清晰。

    展开全文
  •  在归一化LC低通滤波器中,简单地把电容和电感互相替换,并且替换后的元件值为原来的倒数,可以变换成相应的高通滤波器。这可以表示为  信号源内阻和端接电阻不受影响。  归一化椭圆函数低通滤波器的传输零点...
  • 切比雪夫高通滤波器

    2018-03-08 17:25:45
    fc=0.3KHz,δ=0.8dB,fr=0.2KHz,At=20dB,T=1ms;设计一个切比雪夫高通滤波器,观察其通带损耗和阻带衰减是否满足要求
  • FIR滤波器设计文献集-基于MATLAB的FIR数字高通滤波器分析和设计.pdf 本帖最后由 zyzhang 于 2012-4-24 18:52 编辑 载自各大数据库希望能帮到大家 基于Matlab的FIR带通滤波器的设计与仿真.pdf ...
  • 都是频率域滤波里的东西,还有高斯低通滤波器
  • 要求 有源高通滤波器,在100Hz处衰减3dB,在25Hz处最小衰减为75dB。  解 ①计算高通滤波器的陡度系数:    ②首先选择归一化低通滤波器,使其在频率变换比4:1的范围内,衰减由3dB变换为75dB。图1所示曲线表明...
  •  在微波集成电路中,为了抑制低频杂散,通常要使用小型化的高通滤波器,对于微波集成电路来说,微波高通滤波器一般有两大类设计方法,第一类是用集中或半集中的元件实现,高通滤波器的衰减特性由相应的低通原型的...
  • 微带高通滤波器

    2015-05-27 15:23:35
    利用ADS做的一个微带高通滤波器,可观察出较好的波形,交趾结构,微带元件设计
  • Butterworth高通滤波器

    2018-05-31 15:44:16
    巴特沃斯滤波器是电子滤波器的一种。巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑。
  •  ③为了变换归一化低通滤波器为高通滤波器电路,可把电容、电感互相替换且元件值是原值的倒数。归一化高通滤波器如图2(b)所示。电感现在可以用图1所示的GIC电感替换,得到如图2(c)所示的高通滤波器
  • 椭圆函数高通滤波器的椭圆函数的VCVS电路结构设计。这种结构可以实现极点位置以上或者以下的传输函数零点,因此满足椭圆函数高通要求。  归一化低通的极点和零点必须首先变换为高通形式。每个复数低通极点包含的...
  • 如果无源LC低通电路变换为高通滤波器,则可获得接地并联电感,它可用GIC实现。得出的归—化滤波器可进行频率和阻抗变换。如果使R可调,则可调整等效电感。这个特点特别适合于陡峭的椭圆函数高通滤波器,因为电感直接...
  • MATLAB高通滤波器程序

    2018-08-29 16:30:56
    本程序是基于MATLAB软件数字高通滤波器
  • 在微波集成电路中,为了抑制低频杂散,通常要使用小型化的高通滤波器,对于微波集成电路来说,微波高通滤波器一般有两大类设计方法,第一类是用集中或半集中的元件实现,高通滤波器的衰减特性由相应的低通原型的衰减...
  • 高通滤波器分析

    万次阅读 2018-05-29 21:06:52
    转载自玩转嵌入式公众号--点击打开链接曾经为了学高通滤波器的原理,还亲自用示波器测过信号的波形,自从做了那个实验,从此对高通滤波器有了更深一步的理解。要制作高通滤波器或者低通滤波器,必须要先明白他们呢的...

    转载自玩转嵌入式公众号--点击打开链接

    曾经为了学高通滤波器的原理,还亲自用示波器测过信号的波形,自从做了那个实验,从此对高通滤波器有了更深一步的理解。要制作高通滤波器或者低通滤波器,必须要先明白他们呢的含义,他们的特性如下:

    高通滤波:高频信号可以通过,而低频信号不能通过。

    低通滤波:低频信号可以通过,而高频信号不能通过。

    高通滤波器的制作

    如下图所示为高通滤波电路的原理图,它的原理很简单,一个电容和一个电阻就构成了高通滤波电路,它只运用了一个原理:就是电容的“隔直通交”,即高频电流能通过电容,电容对高频电来说就是短路;而由于电容的“隔直通交”,对于低频信号而言,电容就是断路的,低频信号不能通过。



    现在虽然知道了高频信号能通过,那么这时候就又有了疑问,就是这个高频信号最低是多少呢,低于这个值信号就不能通过了。这就涉及到RC公式了,在模电中,有一个名词叫做截止频率,这现在的情况而言就是,它的最低频率,低于截止频率的信号不能通过,截止频率的公式为:f=1/(2πRC),假如上述电阻为10K,电容为0.78uf,则截止频率为;f=1/(2πRC)=20Hz.


    低通滤波器的制作

    如果高通滤波器学会了,低通滤波电路自然就迎刃而解了,下面对低通滤波电路做一个简短的分析,对于高频信号,电容相当于对地短路,所以高频信号就到此为止了,低频信号由于不能通过电容,这时候会作为输出信号传输给我们。


    同样,低通滤波信号也有一个截止频率,这个截止频率是指的能通过的最高频的信号,当再高于这个信号时,会对地短路,它的公式和高通滤波是一样的即:f=1/(2πRC)。假如上述电阻为1K,电容为0.13uf,则截止频率为f=1/(2πRC)=1224Hz,也就是只有低于1224Hz的信号能通过。

    展开全文
  • 提出了一种新型m推演型梯形声表面波高通滤波器结构,给出了该结构的元件参数与滤波器频率响应指标参数之间的计算关系,并从滤波器传通截止条件和特性仿真两方面验证了该结构的正确性;基于单端对谐振器建模原理(模型)...
  • 1.高通滤波器  首先,对一副图像进行如下二维傅里叶变换。 我们将u=0和v=0带上式,我们可以得到如下式子。 根据上式,可以到F(0,0)的值是非常大的。这里,我们将F(0,0)称为直流分量,直流分量比其他的...

           1.高通滤波器

           首先,对一副图像进行如下二维傅里叶变换。

    我们将u=0和v=0带上式,我们可以得到如下式子。

    根据上式,可以到F(0,0)的值是非常大的。这里,我们将F(0,0)称为直流分量,直流分量比其他的成分要大好几个数量级。所以,这也就是傅里叶谱为什么需要使用对数变换才能看清楚的原因。
           这里,对于高通滤波器而言,由于直流分量被衰减,所以,所得到的图像的动态范围是非常狭窄的,也就造成了图像偏灰。进一步而言,保持直流(DC)分量,对别的部分进行增幅,可以增强图像的细节。这样的滤波器称为锐化滤波器。这一小节主要介绍高通滤波器与锐化滤波器。

            1.1理想高通滤波器

            
            这里的D0是滤波器的阻带半径,而D(u,v)是点到滤波器中央的距离。理想高通的滤波器的振幅特性如下所示。

    用这个滤波器对图像进行处理,可得到如下所示的结果。我们可以看到,与理想的低通滤波器一样,所得到的图像有很明显的振铃现象。结果图像从视觉上来看,有些偏暗,这是因为图像的直流分量被滤掉的原因。


           1.2巴特沃斯高通滤波器

           同样的,巴特沃斯高通滤波器也可以通过改变次数n,对过度特性进行调整。过大的n会造成振铃现象。


           1.3高斯高通滤波器

           高斯滤波器的过度特性很好,所以不会发生振铃现象。


           1.4 上述三种滤波器的实现Matlab代码

    close all;
    clear all;
    
    %% ---------Ideal Highpass Filters (Fre. Domain)------------
    f = imread('characters_test_pattern.tif');
    f = mat2gray(f,[0 255]);
    
    [M,N] = size(f);
    P = 2*M;
    Q = 2*N;
    fc = zeros(M,N);
    
    for x = 1:1:M
        for y = 1:1:N
            fc(x,y) = f(x,y) * (-1)^(x+y);
        end
    end
    
    F = fft2(fc,P,Q);
    
    H_1 = ones(P,Q);
    H_2 = ones(P,Q);
    
    for x = (-P/2):1:(P/2)-1
         for y = (-Q/2):1:(Q/2)-1
            D = (x^2 + y^2)^(0.5);
            if(D <= 60)  H_1(x+(P/2)+1,y+(Q/2)+1) = 0; end    
            if(D <= 160) H_2(x+(P/2)+1,y+(Q/2)+1) = 0; end
         end
    end
    
    G_1 = H_1 .* F;
    G_2 = H_2 .* F;
    
    g_1 = real(ifft2(G_1));
    g_1 = g_1(1:1:M,1:1:N);
    
    g_2 = real(ifft2(G_2));
    g_2 = g_2(1:1:M,1:1:N);         
    
    for x = 1:1:M
        for y = 1:1:N
            g_1(x,y) = g_1(x,y) * (-1)^(x+y);
            g_2(x,y) = g_2(x,y) * (-1)^(x+y);
        end
    end
    %% -----show-------
    figure();
    subplot(1,2,1);
    imshow(f,[0 1]);
    xlabel('a).Original Image');
    
    subplot(1,2,2);
    imshow(log(1 + abs(F)),[ ]);
    xlabel('b).Fourier spectrum of a');
    
    figure();
    subplot(1,2,1);
    imshow(H_1,[0 1]);
    xlabel('c).Ideal Highpass filter(D=60)');
    
    subplot(1,2,2);
    h = mesh(1:20:P,1:20:Q,H_1(1:20:P,1:20:Q));
    set(h,'EdgeColor','k');
    axis([0 P 0 Q 0 1]);
    xlabel('u');ylabel('v');
    zlabel('|H(u,v)|');
    
    figure();
    subplot(1,2,1);
    imshow(log(1 + abs(G_1)),[ ]);
    xlabel('d).Result of filtering using c');
    
    subplot(1,2,2);
    imshow(g_1,[0 1]);
    xlabel('e).Result image');
    
    figure();
    subplot(1,2,1);
    imshow(H_2,[0 1]);
    xlabel('f).Ideal Highpass filter(D=160)');
    
    subplot(1,2,2);
    h = mesh(1:20:P,1:20:Q,H_2(1:20:P,1:20:Q));
    set(h,'EdgeColor','k');
    axis([0 P 0 Q 0 1]);
    xlabel('u');ylabel('v');
    zlabel('|H(u,v)|');
    
    figure();
    subplot(1,2,1);
    imshow(log(1 + abs(G_2)),[ ]);
    xlabel('g).Result of filtering using e');
    
    subplot(1,2,2);
    imshow(g_2,[0 1]);
    xlabel('h).Result image');
    close all;
    clear all;
    
    %% ---------Butterworth Highpass Filters (Fre. Domain)------------
    f = imread('characters_test_pattern.tif');
    f = mat2gray(f,[0 255]);
    
    [M,N] = size(f);
    P = 2*M;
    Q = 2*N;
    fc = zeros(M,N);
    
    for x = 1:1:M
        for y = 1:1:N
            fc(x,y) = f(x,y) * (-1)^(x+y);
        end
    end
    
    F = fft2(fc,P,Q);
    
    H_1 = zeros(P,Q);
    H_2 = zeros(P,Q);
    
    for x = (-P/2):1:(P/2)-1
         for y = (-Q/2):1:(Q/2)-1
            D = (x^2 + y^2)^(0.5);
            D_0 = 100;
            H_1(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D_0/D)^2);   
            H_2(x+(P/2)+1,y+(Q/2)+1) = 1/(1+(D_0/D)^6);
         end
    end
    
    
    G_1 = H_1 .* F;
    G_2 = H_2 .* F;
    
    g_1 = real(ifft2(G_1));
    g_1 = g_1(1:1:M,1:1:N);
    
    g_2 = real(ifft2(G_2));
    g_2 = g_2(1:1:M,1:1:N);         
    
    for x = 1:1:M
        for y = 1:1:N
            g_1(x,y) = g_1(x,y) * (-1)^(x+y);
            g_2(x,y) = g_2(x,y) * (-1)^(x+y);
        end
    end
    
    %% -----show-------
    figure();
    subplot(1,2,1);
    imshow(f,[0 1]);
    xlabel('a).Original Image');
    
    subplot(1,2,2);
    imshow(log(1 + abs(F)),[ ]);
    xlabel('b).Fourier spectrum of a');
    
    figure();
    subplot(1,2,1);
    imshow(H_1,[0 1]);
    xlabel('c)Butterworth Lowpass (D_{0}=100,n=1)');
    
    subplot(1,2,2);
    h = mesh(1:20:P,1:20:Q,H_1(1:20:P,1:20:Q));
    set(h,'EdgeColor','k');
    axis([0 P 0 Q 0 1]);
    xlabel('u');ylabel('v');
    zlabel('|H(u,v)|');
    
    figure();
    subplot(1,2,1);
    imshow(log(1 + abs(G_1)),[ ]);
    xlabel('d).Result of filtering using c');
    
    subplot(1,2,2);
    imshow(g_1,[0 1]);
    xlabel('e).Result image');
    
    figure();
    subplot(1,2,1);
    imshow(H_2,[0 1]);
    xlabel('f).Butterworth Lowpass (D_{0}=100,n=3)');
    
    subplot(1,2,2);
    h = mesh(1:20:P,1:20:Q,H_2(1:20:P,1:20:Q));
    set(h,'EdgeColor','k');
    axis([0 P 0 Q 0 1]);
    xlabel('u');ylabel('v');
    zlabel('|H(u,v)|');
    
    figure();
    subplot(1,2,1);
    imshow(log(1 + abs(G_2)),[ ]);
    xlabel('g).Result of filtering using e');
    
    subplot(1,2,2);
    imshow(g_2,[0 1]);
    xlabel('h).Result image');
    close all;
    clear all;
    
    %% ---------Gaussian Highpass Filters (Fre. Domain)------------
    f = imread('characters_test_pattern.tif');
    f = mat2gray(f,[0 255]);
    
    [M,N] = size(f);
    P = 2*M;
    Q = 2*N;
    fc = zeros(M,N);
    
    for x = 1:1:M
        for y = 1:1:N
            fc(x,y) = f(x,y) * (-1)^(x+y);
        end
    end
    
    F = fft2(fc,P,Q);
    
    H_1 = zeros(P,Q);
    H_2 = zeros(P,Q);
    
    for x = (-P/2):1:(P/2)-1
         for y = (-Q/2):1:(Q/2)-1
            D = (x^2 + y^2)^(0.5);
            D_0 = 60;
            H_1(x+(P/2)+1,y+(Q/2)+1) = 1 - exp(-(D*D)/(2*D_0*D_0));   
            D_0 = 160;
            H_2(x+(P/2)+1,y+(Q/2)+1) = 1 - exp(-(D*D)/(2*D_0*D_0));
         end
    end
    
    G_1 = H_1 .* F;
    G_2 = H_2 .* F;
    
    g_1 = real(ifft2(G_1));
    g_1 = g_1(1:1:M,1:1:N);
    
    g_2 = real(ifft2(G_2));
    g_2 = g_2(1:1:M,1:1:N);         
    
    for x = 1:1:M
        for y = 1:1:N
            g_1(x,y) = g_1(x,y) * (-1)^(x+y);
            g_2(x,y) = g_2(x,y) * (-1)^(x+y);
        end
    end
    
    
    %% -----show-------
    figure();
    subplot(1,2,1);
    imshow(f,[0 1]);
    xlabel('a).Original Image');
    
    subplot(1,2,2);
    imshow(log(1 + abs(F)),[ ]);
    xlabel('b).Fourier spectrum of a');
    
    figure();
    subplot(1,2,1);
    imshow(H_1,[0 1]);
    xlabel('c)Gaussian Highpass (D_{0}=60)');
    
    subplot(1,2,2);
    h = mesh(1:20:P,1:20:Q,H_1(1:20:P,1:20:Q));
    set(h,'EdgeColor','k');
    axis([0 P 0 Q 0 1]);
    xlabel('u');ylabel('v');
    zlabel('|H(u,v)|');
    
    figure();
    subplot(1,2,1);
    imshow(log(1 + abs(G_1)),[ ]);
    xlabel('d).Result of filtering using c');
    
    subplot(1,2,2);
    imshow(g_1,[0 1]);
    xlabel('e).Result image');
    
    figure();
    subplot(1,2,1);
    imshow(H_2,[0 1]);
    xlabel('f).Gaussian Highpass (D_{0}=160)');
    
    subplot(1,2,2);
    h = mesh(1:20:P,1:20:Q,H_2(1:20:P,1:20:Q));
    set(h,'EdgeColor','k');
    axis([0 P 0 Q 0 1]);
    xlabel('u');ylabel('v');
    zlabel('|H(u,v)|');
    
    figure();
    subplot(1,2,1);
    imshow(log(1 + abs(G_2)),[ ]);
    xlabel('g).Result of filtering using e');
    
    subplot(1,2,2);
    imshow(g_2,[0 1]);
    xlabel('h).Result image');
    

           1.5 锐化滤波器

           按照之前所说的,锐化滤波器是将傅里叶谱的直流分量保留,然后将其余的成分增幅。使用锐化滤波器,可以对图像的细节进行增强,使得细节凸显出来。锐化滤波器的表达式如下所示。

          其实上式的目的很明显,就是先将原图的傅里叶保留下来,然后叠加上高通滤波器的结果,所得到的图像就是锐化后的图像了。这里为了调整锐化程度,引入了两个变量可以调整直流分量的衰减程度,可以调整高频分量的增幅程度。

           下面是代码。
    close all;
    clear all;
    clc;
    
    %% ---------The High-Fre-Emphasis Filters (Fre. Domain)------------
    f = imread('blurry_moon.tif');
    f = mat2gray(f,[0 255]);
    
    [M,N] = size(f); 
    P = 2*M;
    Q = 2*N;
    fc = zeros(M,N);
    
    for x = 1:1:M
        for y = 1:1:N
            fc(x,y) = f(x,y) * (-1)^(x+y);
        end
    end
    
    F = fft2(fc,P,Q);
    
    H_HP = zeros(P,Q);
    
    for x = (-P/2):1:(P/2)-1
         for y = (-Q/2):1:(Q/2)-1
            D = (x^2 + y^2)^(0.5);
            D_0 = 80;
            H_HP(x+(P/2)+1,y+(Q/2)+1) = 1 - exp(-(D*D)/(2*D_0*D_0));   
         end
    end
    
    G_HP = H_HP .* F;
    
    G_HFE = (1 + 1.1 * H_HP) .* F;
    
    g_1 = real(ifft2(G_HP));
    g_1 = g_1(1:1:M,1:1:N);
    
    g_2 = real(ifft2(G_HFE));
    g_2 = g_2(1:1:M,1:1:N);
    
    for x = 1:1:M
        for y = 1:1:N
            g_1(x,y) = g_1(x,y) * (-1)^(x+y);
            g_2(x,y) = g_2(x,y) * (-1)^(x+y);
        end
    end
    
    g = histeq(g_2);
    
    %g_1 = mat2gray(g_1);
    %% -----show-------
    figure();
    subplot(1,2,1);
    imshow(f,[0 1]);
    xlabel('a).Original Image');
    
    subplot(1,2,2);
    imshow(log(1 + abs(F)),[ ]);
    xlabel('b).Fourier spectrum of a');
    
    figure();
    subplot(1,2,1);
    imshow(g_1,[0 1]);
    xlabel('c).Result image of High-pass Filter');
    
    subplot(1,2,2);
    imshow(log(1 + abs(G_HP)),[ ]);
    xlabel('d).Result of filtering using e');
    
    figure();
    subplot(1,2,1);
    imshow(g_2,[0 1]);
    xlabel('e).Result image of High-Fre-Emphasis Filter');
    
    subplot(1,2,2);
    imshow(log(1 + abs(G_HFE)),[ ]);
    xlabel('f).Result of filtering using e');
    

           2.带阻滤波器

           同样的,带阻滤波器也有三种特性。高斯、巴特沃斯和理想,三种类型,其数学表达式如下所示。

           其带通滤波器可以使用上面的表格转化而得。

           带阻滤波器可以用于去除周期性噪声,为了体现带阻滤波器的特性,我们先对一幅图像增加很严重的噪声。


           在原图的傅里叶谱上添加了几个很明显的亮点。在对其做IDFT,可以看到,原图被严重的周期噪声污染了。此时,我们可以使用带阻滤波器,可以有很好的去噪效果。为了避免振铃现象,选择使用如下所示巴特沃斯带阻滤波器,所用滤波器的次数为2次。使用空间域的操作,要去除这种噪声基本是不可能的,这也是频域内的操作的优点。

      
    close all;
    clear all;
    clc;
    %% ---------------------Add Noise-------------------------
    f = imread('left.tif');
    f = mat2gray(f,[0 255]);
    
    [M,N] = size(f);
    P = 2*M;
    Q = 2*N;
    fc = zeros(M,N);
    
    for x = 1:1:M
        for y = 1:1:N
            fc(x,y) = f(x,y) * (-1)^(x+y);
        end
    end
    
    F = fft2(fc,P,Q);
    
    H_NP = ones(P,Q);
    
    for x = (-P/2):1:(P/2)-1
         for y = (-Q/2):1:(Q/2)-1
            D = 2;
            
            v_k = -200; u_k = 150;
            D_k = ((x+u_k)^2 + (y+v_k)^2)^(0.5);
            H_NP(x+(P/2)+1,y+(Q/2)+1) = H_NP(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            D_k = ((x-u_k)^2 + (y-v_k)^2)^(0.5);
            H_NP(x+(P/2)+1,y+(Q/2)+1) = H_NP(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            
            v_k = 200; u_k = 150;
            D_k = ((x+u_k)^2 + (y+v_k)^2)^(0.5);
            H_NP(x+(P/2)+1,y+(Q/2)+1) = H_NP(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            D_k = ((x-u_k)^2 + (y-v_k)^2)^(0.5);
            H_NP(x+(P/2)+1,y+(Q/2)+1) = H_NP(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            
            v_k = 0; u_k = 250;
            D_k = ((x+u_k)^2 + (y+v_k)^2)^(0.5);
            H_NP(x+(P/2)+1,y+(Q/2)+1) = H_NP(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            D_k = ((x-u_k)^2 + (y-v_k)^2)^(0.5);
            H_NP(x+(P/2)+1,y+(Q/2)+1) = H_NP(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            
            v_k = 250; u_k = 0;
            D_k = ((x+u_k)^2 + (y+v_k)^2)^(0.5);
            H_NP(x+(P/2)+1,y+(Q/2)+1) = H_NP(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            D_k = ((x-u_k)^2 + (y-v_k)^2)^(0.5);
            H_NP(x+(P/2)+1,y+(Q/2)+1) = H_NP(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            
            
            H_NP(x+(P/2)+1,y+(Q/2)+1) = 1 + 700*(1 - H_NP(x+(P/2)+1,y+(Q/2)+1));
         end
    end
    
    G_Noise = F .* H_NP;
    
    g_noise = real(ifft2(G_Noise));
    g_noise = g_noise(1:1:M,1:1:N);     
    
    for x = 1:1:M
        for y = 1:1:N
            g_noise(x,y) = g_noise(x,y) * (-1)^(x+y);
        end
    end
    
    
    %% ---------Bondpass Filters (Fre. Domain)------------
    H_1 = ones(P,Q);
    
    for x = (-P/2):1:(P/2)-1
         for y = (-Q/2):1:(Q/2)-1
            D = (x^2 + y^2)^(0.5);
            D_0 = 250;
            W = 30;
            H_1(x+(P/2)+1,y+(Q/2)+1) = 1/(1+((D*W)/((D*D) - (D_0*D_0)))^6);   
         end
    end
    
    G_1 = H_1 .* G_Noise;
    
    g_1 = real(ifft2(G_1));
    g_1 = g_1(1:1:M,1:1:N);     
    
    for x = 1:1:M
        for y = 1:1:N
            g_1(x,y) = g_1(x,y) * (-1)^(x+y);
        end
    end
    
    %% -----show-------
    close all;
    
    figure();
    subplot(1,2,1);
    imshow(f,[0 1]);
    xlabel('a).Original Image');
    
    subplot(1,2,2);
    imshow(log(1 + abs(F)),[ ]);
    xlabel('b).Fourier spectrum of a');
    
    
    figure();
    subplot(1,2,2);
    imshow(log(1 + abs(G_Noise)),[ ]);
    xlabel('c).Fourier spectrum of b');
    
    subplot(1,2,1);
    imshow(g_noise,[0 1]);
    xlabel('b).Result of add noise');
    
    
    figure();
    subplot(1,2,1);
    imshow(H_1,[0 1]);
    xlabel('d).Butterworth Bandpass filter(D=355 W=40 n =2)');
    
    subplot(1,2,2);
    h = mesh(1:20:Q,1:20:P,H_1(1:20:P,1:20:Q));
    set(h,'EdgeColor','k');
    axis([0 Q 0 P 0 1]);
    xlabel('u');ylabel('v');
    zlabel('|H(u,v)|');
    
    
    figure();
    subplot(1,2,2);
    imshow(log(1 + abs(G_1)),[ ]);
    xlabel('e).Fourier spectrum of f');
    
    subplot(1,2,1);
    imshow(g_1,[0 1]);
    xlabel('f).Result of denoise');
    

           3.陷波滤波器(Notch Filter)

           陷波滤波器也用于去除周期噪声,虽然带阻滤波器也能可以去除周期噪声,但是带阻滤波器对噪声以外的成分也有衰减。而陷波滤波器主要对,某个点进行衰减,对其余的成分不损失。使用下图将更容易理解。

           从空间域内看,图像存在着周期性噪声。其傅里叶频谱中,也能看到噪声的所在之处(这里我用红圈标注出来了,他们不是数据的一部分)。我们如果使用带阻滤波器的话,是非常麻烦的,也会使得图像有损失。陷波滤波器,能够直接对噪声处进行衰减,可以有很好的去噪效果。
           其表达式如下所示,陷波滤波器可以通过对高通滤波器的中心,进行位移就可以得到了。

    这里,由于傅里叶的周期性,傅里叶频谱上不可能单独存在一个点的噪声,必定是关于远点对称的一个噪声对。这里的需要去除的噪声点,其求取的方式如下所示。
           针对于上图,我们设计如下滤波器,去进行去噪。
    (图片下标错了,后续更新改过来!)
           所得到的结果,如下所示。噪声已经被去除了,画质得到了很大的改善。

                                                                  (图片下标错了,后续更新改过来!)
    close all;
    clear all;
    clc;
    
    %% ---------Butterworth Notch filter (Fre. Domain)------------
    f = imread('car_75DPI_Moire.tif');
    f = mat2gray(f,[0 255]);
    
    [M,N] = size(f);
    P = 2*M;
    Q = 2*N;
    fc = zeros(M,N);
    
    for x = 1:1:M
        for y = 1:1:N
            fc(x,y) = f(x,y) * (-1)^(x+y);
        end
    end
    
    F = fft2(fc,P,Q);
    
    H_NF = ones(P,Q);
    
    for x = (-P/2):1:(P/2)-1
         for y = (-Q/2):1:(Q/2)-1
            D = 30;
            
            v_k = 59; u_k = 77;
            D_k = ((x+u_k)^2 + (y+v_k)^2)^(0.5);
            H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            D_k = ((x-u_k)^2 + (y-v_k)^2)^(0.5);
            H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            
            v_k = 59; u_k = 159;
            D_k = ((x+u_k)^2 + (y+v_k)^2)^(0.5);
            H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            D_k = ((x-u_k)^2 + (y-v_k)^2)^(0.5);
            H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            
            v_k = -54; u_k = 84;
            D_k = ((x+u_k)^2 + (y+v_k)^2)^(0.5);
            H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            D_k = ((x-u_k)^2 + (y-v_k)^2)^(0.5);
            H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            
            v_k = -54; u_k = 167;
            D_k = ((x+u_k)^2 + (y+v_k)^2)^(0.5);
            H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
            D_k = ((x-u_k)^2 + (y-v_k)^2)^(0.5);
            H_NF(x+(P/2)+1,y+(Q/2)+1) = H_NF(x+(P/2)+1,y+(Q/2)+1) * 1/(1+(D/D_k)^4);
         end
    end
    
    G_1 = H_NF .* F;
    
    g_1 = real(ifft2(G_1));
    g_1 = g_1(1:1:M,1:1:N);     
    
    for x = 1:1:M
        for y = 1:1:N
            g_1(x,y) = g_1(x,y) * (-1)^(x+y);
        end
    end
    
    %% -----show-------
    close all;
    
    figure();
    subplot(1,2,1);
    imshow(f,[0 1]);
    xlabel('a).Original Image');
    
    subplot(1,2,2);
    imshow(log(1 + abs(F)),[ ]);
    xlabel('b).Fourier spectrum of a');
    
    figure();
    subplot(1,2,1);
    imshow(H_NF,[0 1]);
    xlabel('c).Butterworth Notch filter(D=30 n=2)');
    
    subplot(1,2,2);
    h = mesh(1:10:Q,1:10:P,H_NF(1:10:P,1:10:Q));
    set(h,'EdgeColor','k');
    axis([0 Q 0 P 0 1]);
    xlabel('u');ylabel('v');
    zlabel('|H(u,v)|');
    
    figure();
    subplot(1,2,2);
    imshow(log(1 + abs(G_1)),[ ]);
    xlabel('e).Fourier spectrum of d');
    
    subplot(1,2,1);
    imshow(g_1,[0 1]);
    xlabel('d).Result image');
    
    原文发于博客:http://blog.csdn.net/thnh169/ 

    展开全文
  • 理想高通滤波器

    万次阅读 2016-07-07 22:17:12
    高通滤波器 首先,对一副图像进行如下二维傅里叶变换。 我们将u=0和v=0带上式,我们可以得到如下式子。 根据上式,可以到F(0,0)的值是非常大的。这里,我们将 F(0,0)称为直流分量,直流分量比其他的成分要...
  • 要求 LC高通滤波器,在1MHz处衰减3dB,在500kHz处最小衰减为28dB,RS=RL=300Ω。  解 ①为了将已知参数归一化,计算高通的陡度系数As:  ②选择归一化低通滤波器,使其在2rad/s处提供超过28dB的衰减。  ″=...
  • 多重反馈型高通滤波器

    千次阅读 2012-12-23 13:43:10
    将多重反馈型低通滤波器上的电阻和电容的位置对换后就成为了高通滤波器,其形式如图1 所示。 图1: 多重反馈型低通滤波器 列写电路方程如下: 化简后可得到: 当C1 = C2 = C3 = C 时,上面的式子可以化简为...
  • 可帮助大家进行基础学习,二阶高通滤波器电路原理图。
  • 一阶高通滤波器

    千次阅读 2017-06-21 08:08:10
    RC电路如下: 推导过程如下: 参考博文:http://blog.csdn.net/luoshi006/article/details/51459884

空空如也

1 2 3 4 5 ... 20
收藏数 23,407
精华内容 9,362
关键字:

高通滤波器