精华内容
下载资源
问答
  • 匹配滤波matlab

    2018-04-21 11:12:30
    运用matlab实现匹配滤波,文件中有匹配滤波的文档说明
  • %%用与发送端相同的根升余弦匹配滤波 yt=y2((size(yf)+1)/2:8:end);%%匹配滤波后抽取 figure(2); stem(x(1:40)); grid;title('原始信号输出'); figure(3); plot(y1(1:100));grid;title('成型信号输出'); figure(4...

    转载自:https://blog.csdn.net/yuan1164345228/article/details/45919315

     

    Fd=1;  
    Fs=8;   
    Delay=3;   
    R=0.5;   
    [yf,tf]=rcosine(Fd,Fs,'fir/sqrt',R,Delay);  
    figure(1);
    plot(yf); grid;title('根升余弦滤波器时域波形')
    x=randint(100,1)*2-1;%原始输入信号为+1,-1码    
    xt=zeros(1,800);    
    xt(1:8:end)=x; %%插值后信号
    y1=filter(yf,tf,xt); %%成型滤波  
    y2=filter(yf,tf,y1); %%用与发送端相同的根升余弦匹配滤波
    yt=y2((size(yf)+1)/2:8:end);%%匹配滤波后抽取        
    figure(2);    
    stem(x(1:40)); grid;title('原始信号输出');
    figure(3);
    plot(y1(1:100));grid;title('成型信号输出');
    figure(4);
    plot(y2(1:100));grid;title('匹配滤波信号输出');
    figure(5);    
    stem(yt(1:40)); grid;title('抽取后信号输出') ;
    

      

    滤波器的截止频率是Fd/2;Fs/Fd是内插倍数;其频响可以由滚降系数和窗长(FIR阶数)确定。 
    delay * (Fs / Fd) * 2 + 1就是滤波器的阶数

    转载于:https://www.cnblogs.com/waimen/p/9774730.html

    展开全文
  • 文章目录前言二、仿真1、生成2PAM信号:2、模拟信号的匹配滤波仿真3、LFP的仿真: 前言 二、仿真 1、生成2PAM信号:  理论基础部分: 双极性NRZ矩形脉冲信号的最小平均误码率表现比较优秀,因此选用双极性NRZ...


    前言


    一、理论部分

    (在书本中,以后补充)

    二、仿真

    1、生成2PAM信号

     理论基础部分:

    • 双极性NRZ矩形脉冲信号的最小平均误码率表现比较优秀,因此选用双极性NRZ矩形脉冲信号作为生成仿真的PAM脉冲信号;
    • matlab中,有一个生成阶跃信号的函数——stepfun(t,t0),而矩形的脉冲信号就是由一个一个时间长度为1的矩形信号在各个时段内“拼接” 形成。

     核心代码部分:

    %源信号
    t=0:0.01:10;
    st_yuan=[1,1,1,0,1,0,0];
    st_length=length(st_yuan);
    st=0;
    st_abs = 1;
    for i=1:st_length
        if st_yuan(i)==1
            st=st_abs*(stepfun(t,i-1)-stepfun(t,i))+st;
        elseif st_yuan(i)==0
            st=-st_abs*(stepfun(t,i-1)-stepfun(t,i))+st;
        end
    end
    

     仿真效果展示:

    2、模拟信号的匹配滤波仿真

     理论基础部分:

    • 匹配滤波器的内部,存在一个跟原信号相匹配(时域取反移动)的信号,这个信号和输入信号卷积之后,可以确保在每个周期的最后时刻得到信噪比达到最大;
    • 卷积就是能量的累积,而当两个信号完全重合的时候,能量最强,相应地,也就能够确定信号的周期。

     核心代码部分:

    nt=randn(1,1001);
    t=0:0.1:100;
    st=0.1*t.*(stepfun(t,0)-stepfun(t,60));
    xt=nt+st;
    mf=0.1*(60-t).*(stepfun(t,0)-stepfun(t,60));
    yt=conv(st,mf);
    

     仿真效果展示:


    3、LFP的仿真

     理论基础部分:

    • 由生成源信号的stepfun函数可知,信号的BT=100Hz,而不是BT=1Hz;
    • 理论上,低通滤波器的滤波范围应该为100Hz,也就是保证信号的BT都在滤波的范围内,但是为了确保仿真的效果,应该选用B=200Hz。

     核心代码部分:

    %源信号
    t=0:0.01:10;
    st_yuan=[1,1,1,0,1,0,0];
    st_length=length(st_yuan);
    st=0;
    for i=1:st_length
        if st_yuan(i)==1
            st=st_abs*(stepfun(t,i-1)-stepfun(t,i))+st;
        elseif st_yuan(i)==0
            st=-st_abs*(stepfun(t,i-1)-stepfun(t,i))+st;
        end
    end
    figure('NumberTitle', 'off', 'Name', '源信号');
    plot(t,st);
    xlabel('t(s)');
    ylabel('s(t)');
    
    %信道噪声
    nt=randn(1,1001);
    
    %输入信号
    xt=st+nt;
    
    %输入信号的FT变换
    fs=1000;
    xt_length=length(xt);
    NFFT_xt = 2^nextpow2(xt_length);
    F_XT_domain = (fs/2)*linspace(0,1,NFFT_xt/2);  
    XT = fft(xt,NFFT_xt);  
    Amp_XT = 2*abs(XT(1:NFFT_xt/2)); 
    
    %LPF滤波器
    f_LPF=0:1:1023;
    LPF=stepfun(f_LPF,0)-stepfun(f_LPF,200);
    
    %滤波
    YT=XT.*LPF;
    

     仿真效果展示:

    4、MF的仿真

     理论基础部分:

    • 由匹配滤波的定义可知:MF滤波器里面的匹配信号就是源信号经过时域取反然后移位得到的;
    • MF中的匹配信号是与矩形脉冲信号相匹配的信号,而不是与源信号相匹配的信号;

     核心代码部分:

    mf=stepfun(t,0)-stepfun(t,1);
    yt_MF=conv(xt,mf);
    %查看每个周期最后一个时刻的输出信号
    sample_yt_MF = [yt_MF(1*100),yt_MF(2*100),yt_MF(3*100),yt_MF(4*100),yt_MF(5*100),yt_MF(6*100),yt_MF(7*100)]
    

     仿真效果展示:

    三、拓展知识

    1、“假”的[1,1,1,0,1,0,0]序列

     理论基础:

    • 使用matlab跑信号仿真的时候,我们需要明确一个最基本的概念:MATLAB只能处理或者生成离散的数字序列;
    • 在本次仿真中,矩形脉冲信号是使用stepfun() 函数生成的,stepfun()函数的第一个参数是向量,意思是说,这个参量确定了每两个相邻冲激之间的步进,而这个步进就表明,在时域图中,连续的信号并不连续,只是因为使用了plot()函数,使得信号看起来是连续的;
    • LPF的滤波带宽参数设置为大于等于两倍源信号的带宽,就可以实现比较好的滤波效果;
    • 验证方法:分别使用带宽为B=2Hz和B=200Hz的LPF进行滤波处理,看最后出来的效果图。如果2Hz的LPF得到的输出信号比较平滑,而200Hz的LPF得到的输出信号比较陡峭,那就说明输出信号的带宽为100Hz。

     效果验证:

    • 输入信号
    %输入信号
    fs=1000;
    xt_length=length(xt);
    NFFT_xt = 2^nextpow2(xt_length);
    F_XT_domain = (fs/2)*linspace(0,1,NFFT_xt/2);  
    XT = fft(xt,NFFT_xt);  
    Amp_XT = 2*abs(XT(1:NFFT_xt/2)); 
    

    • LPF的带宽=2Hz
    LPF的带宽=2Hz:
    LPF=stepfun(f_LPF,0)-stepfun(f_LPF,2);
    

    • LPF的带宽=200Hz:
    LPF的带宽=200Hz:
    LPF=stepfun(f_LPF,0)-stepfun(f_LPF,200);
    

    展开全文
  • 是利用DnCNN模型,但是为了比较该算法的效果,另外实现了四种传统的图像去噪算法(均值滤波、中值滤波、非局部均值滤波NLM和三维块匹配滤波BM3D)作为对照组。1.2 噪声强度和类型项目中实现五种算法对噪声强度为10,15,...

    1. 项目介绍

    1.1 项目的背景

    该项目是为了研究基于深度卷积神经网络的图像去噪算法,是利用DnCNN模型,但是为了比较该算法的效果,另外实现了四种传统的图像去噪算法(均值滤波、中值滤波、非局部均值滤波NLM和三维块匹配滤波BM3D)作为对照组。

    1.2 噪声强度和类型

    项目中实现五种算法对噪声强度为10,15,20...60,65,70的高斯白噪声进行处理。

    1.3 评价指标

    图像去噪后,如何评估算法去噪效果的好坏呢?项目中采用峰值信噪比PSNR和结构相似性SSIM作为评价指标。一般来说,PSNR越大,去噪效果越好。SSIM取值为0到1,越接近1,表示效果越好。

    2. 数据集介绍

    该项目中只是对Set12数据集进行处理,也就是项目中的Set12目录下的12张图片。如果觉得数据量不够充分,可以自行添加其他数据集,在代码中修改一下数据集的目录即可。

    3. 代码介绍

    对于均值滤波、中值滤波、和NLM,MATLAB都已经实现了,所以我们直接调用MATLAB自带的函数就可以。

    BM3D和DnCNN的代码都是从别人那儿clone下来,做了一些小的修改。

    五种算法都是对Set12数据集进行去噪,去噪的结果并没有保存,只是在运行过程中能看到去噪前和去噪后的图像对比,感兴趣的朋友可以自己将图像保存下来观察。

    4. 代码运行

    五种算法分别在五个不同的目录中,所以你只需要进行对应的目录,运行代码即可。

    均值滤波、中值滤波、NLM算法对应的目录分别为avefilter、medainfilter、nlm-image-denoising。每个目录下只有一个.m文件,所以只需要运行对应的文件即可。

    BM3D对应的目录是BM3D,运行该目录下的main.m程序即可。

    DnCNN对应的目录是DnCNN,运行该目录下的Demo_test_DnCNN.m程序即可,该算法目录中对应的还有好几个代码,都是原项目中有的,我没有动过,感兴趣的朋友可以自己看看。

    展开全文
  • 应用背景:机器的模式识别所要解决的问题,就是用机器代替人去认识图像和找出一幅图像中人们感兴趣的...基于相关的图像模板匹配过程类似于滤波过程,设图像f(x,y)的大小为M*N和模板子图像w(x,y)的大小为J*K,则f与w的

    应用背景:机器的模式识别所要解决的问题,就是用机器代替人去认识图像和找出一幅图像中人们感兴趣的目标物。如何找到目标物即图像的区域呢,这里介绍在空间域使用模板在图像中寻找与模板匹配的区域。

    基本原理:在空间滤波中,相关是指滤波器模板移过图像并计算每个像素位置的灰度乘积之和的过程。基于相关的图像模板匹配过程类似于滤波过程,设图像f(x,y)的大小为M*N和模板子图像w(x,y)的大小为J*K,则f与w的相关表示为:

                 (1)

     其中,x=0,1,2,3.....N-K,y=0,1,2.....M-J,计算相关c(x,y) 的过程就是在图像f(x,y) 中逐像素地移动模板子图像w(x,y) 的原点像素,在每一次移动的过程中根据式(1)计算每个像素位置的相关。对式(1)的向量表达式进行归一化后如下式所示:

                         (2)

        MATLAB实现如下:     

    [plain] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. clear;  
    2. reource_p=imread('F:\picture\pattern.bmp');  
    3. reource_p_sub=imread('F:\picture\sub_pattern.bmp');  
    4. [m,n]=size(reource_p);  
    5. [m0,n0]=size(reource_p_sub);  
    6. result=zeros(m-m0+1,n-n0+1);  
    7. vec_sub = double( reource_p_sub(:) );  
    8. norm_sub = norm( vec_sub );  
    9. for i=1:m-m0+1  
    10.     for j=1:n-n0+1  
    11.         subMatr=reource_p(i:i+m0-1,j:j+n0-1);  
    12.         vec=double( subMatr(:) );  
    13.         result(i,j)=vec'*vec_sub / (norm(vec)*norm_sub+eps);  
    14.     end  
    15. end  
    16. %找到最大相关位置  
    17. [iMaxPos,jMaxPos]=find( result==max( result(:)));  
    18. figure,  
    19. subplot(121);imshow(reource_p_sub),title('匹配模板子图像');  
    20. subplot(122);  
    21. imshow(reource_p);  
    22. title('标记出匹配区域的原图'),  
    23. hold on  
    24. plot(jMaxPos,iMaxPos,'*');%绘制最大相关点  
    25.  %用矩形框标记出匹配区域  
    26. plot([jMaxPos,jMaxPos+n0-1],[iMaxPos,iMaxPos]);  
    27. plot([jMaxPos+n0-1,jMaxPos+n0-1],[iMaxPos,iMaxPos+m0-1]);  
    28. plot([jMaxPos,jMaxPos+n0-1],[iMaxPos+m0-1,iMaxPos+m0-1]);  
    29. plot([jMaxPos,jMaxPos],[iMaxPos,iMaxPos+m0-1]);  

    运行结果如下图所示


    原文链接:http://blog.csdn.net/yi_tech_blog/article/details/70199021

    展开全文
  • 文章目录线性调频与脉冲压缩1 线性调频信号1.1 线性调频信号(时域)1.1.1 线性调频信号模型1.1.2 线性调频信号时域...匹配滤波实现2.2.1 时域匹配滤波2.2.2 频域匹配滤波2.2.2.1 方法一2.2.2.2 方法二2.2.2.3 方法三
  • 摘 要 在现代通信系统中由于信号中经常混有各种复杂成分所以很多信号分 析都是基于滤波器而进行的而数字滤波器是通过数值运算实现滤波具有处理 精度高稳定灵活不存在阻抗匹配问题可以实现模拟滤波器无法实现的特 殊...
  • 图像融合的MATLAB实现

    2018-11-07 22:35:23
    因为需要对两幅图像采用频域滤波,编写的imfilter函数用于频域乘积算法。根据图像融合的原理,需要对前景图像进行高通滤波,将背景...图像融合成功的关键在于图像本身的匹配和选择的获取轮廓和细节的滤波器是否合适。
  • (1)本程序使用的是频域匹配滤波,书本上的可能是时域匹配滤波,所以结果有一些出入;但是趋势是一样的,能够用来理解书本内容 (2)程序添加了迭代画图的功能,能够以动画的形式得到图3.15的结果 (3)程序可以...
  • 指纹识别算法的matlab 实现 摘 要 由于指纹所具有的普遍性唯一性和不变性以及指纹识别技术具 有很高的可行性和实用性使之成为目前最流行也最可靠的个人身份认证 技术之一 本文主要对指纹图像进行三方面处理图像...
  • 仿真结果 本文以QPSK为调制体制进行仿真,以下结果为比特信噪比Eb/N0=10dB(此时符号信噪比Es/N0=13dB,SNR信噪比=3.98dB,换算关系在...收端匹配滤波模块 下采样模块 确定正确的采样起始点和采样间隔,获取收端信息
  • 指纹识别算法的 matlab 实现 专业电子信息工程 姓名马飞 指导老师刘文博 摘 要 由于指纹所具有的普遍性唯一性和不变性以及指纹识别技术具 有很高的可行性和实用性使之成为目前最流行也最可靠的个人身份认证 技术之一...
  • (1)如果是非基带信号,频域匹配滤波的关键在于找到DFT一个宽度内的实际频率值 matlab代码如下: % initial matlab workspace % figure 3.9; page 55 and page 56 clc clear close all %% 参数设置 % 设置时间宽度...
  • 数字图像处理的MATLAB实现(第2版) XIV 3.5 在频域中直接生成滤波器 ......... 105 3.5.1 建立网格数组以实现 频域滤波器 ........................... 105 3.5.2 频域低通(平滑)滤波器 .......... 106 3.5.3 ...
  • 函数histeq实现直方图匹配,如g=histeq(f,hspec),其中f为输入图像,hspec为指定的直方图(一个由指定值构成的行向量),g为输出函数,其直方图近似于指定的直方图hspec。 图像的直方图显示的是每个灰度级的像素...
  • 基于MATLAB平台以线性调频信号为例通过仿真研究了...最后基于匹配滤波算法对雷达回波信号进行了脉冲压缩仿真,仿真结果表明采用线性调频信号可以有效地实现雷达回波信号脉冲压缩、实现雷达测距并且提高雷达的距离分辨力
  • 灰度变换 灰度 灰度可以认为是亮度,灰色图片中黑白的深浅程度,范围一般为0~255。图像数字化为二维矩阵后,每个点的值都代表一个像素点的灰度值。 灰度级 ...灰度变换 空间滤波 空间域处理图...
  • 基于matlab的特征匹配的英文印刷字符识别,研究灰度转换、中值滤波、二值化处理、形态学滤波、图像与字符分隔等算法,形成了一套效果明显的字符图像识别算法。采用字符的归一化和细化处理方法,通过二值化和字体类型...
  • 雷达原理---匹配滤波器原理及MATLAB仿真

    千次阅读 多人点赞 2020-11-16 20:26:22
    对应于不同的输入信号和噪声干扰,为了使接收机输出端的信号噪声比最大,波形失真最小,要求滤波器有一个最佳的频带宽度和频率特性形状,以实现最佳滤波匹配滤波器的基本概念 匹配滤波器是在
  • 基于matlab的特征匹配的英文印刷字符识别,研究灰度转换、中值滤波、二值化处理、形态学滤波、图像与字符分隔等算法,形成了一套效果明显的字符图像识别算法。采用字符的归一化和细化处理方法,通过二值化和字体类型...
  • 基于matlab的特征匹配的英文印刷字符识别,研究灰度转换、中值滤波、二值化处理、形态学滤波、图像与字符分隔等算法,形成了一套效果明显的字符图像识别算法。采用字符的归一化和细化处理方法,通过二值化和字体类型...
  • 以单片机和可编程逻辑器件(FPGA)为控制核心,设计了一个程控滤波器,实现了小信号程控放大、程控调整滤波器截止频率和幅频特性测试的功能。其中放大模块由可变增益放大器AD603实现,最大增益60dB,10dB步进可调,...
  • 基于matlab的特征匹配的英文印刷字符识别,研究灰度转换、中值滤波、二值化处理、形态学滤波、图像与字符分隔等算法,形成了一套效果明显的字符图像识别算法。采用字符的归一化和细化处理方法,通过二值化和字体类型...

空空如也

空空如也

1 2 3 4
收藏数 61
精华内容 24
关键字:

匹配滤波matlab实现

matlab 订阅