精华内容
下载资源
问答
  • 信号检测MATLAB

    2009-11-27 15:38:48
    、国王囚犯问题 算法: 囚犯共有100人,把他们分为3类:第一天被抽到的人,称为解放者,状态值为2;出去过的人,状态值为1;没有出去过的人,状态值为0。使用矩阵pri来存储他们的状态,不同状态的人具有不同的任务,...
  • 雷达信号检测matlab程序,函数齐全,并且带有实际效果图。可以进行充分比对。
  • 信号检测matlab代码无线局域网 基于WiFi的活动识别数据集///////////////////////////// WiAR数据集:基于WiFi的活动识别数据集///// /////////////////////// WiAR数据集包含16种活动,其中包括10位志愿者进行的粗...
  • 信号检测matlab代码MTCNN_face_detection_caffe 关于 这是Detection and Alignment using Multi-task Cascaded Convolutional Neural Networks进行Detection and Alignment using Multi-task Cascaded Convolutional...
  • 包含线性信号检测算法MRC,ZF,MMSE和非线性信号检测算法ZF-SIC和MMSE-SIC,亲测可用
  • 随机共振微弱信号检测龙格库塔方式对信号进行滤波。其中信号为正弦信号
  • 信号检测与估计matlab程序
  • DTMF信号Matlab仿真,采用戈泽尔算法实现对DTMF信号检测
  • MATLAB信号检测仿真例子 参数都已知的GLRT检测
  • 雷达信号检测程序,包括MTI,多普勒滤波器组,恒虚警处
  • 随机共振描述了过阻尼布朗粒子受周期性信号和随机噪声的共同作用下,在非线性双稳态系统中所发生的跃迁现象. 随机共振可用于弱信号检测,编写的matlab程序,a_b_f是主程序
  • DTMF电话音信号的产生,添加白噪声、工频干扰,双带通滤波,检测matlab实现
  • 基于贝叶斯准则的信号检测,基于最小平均错误概率的信号检测,基于最大后验概率的信号检测,基于极小化极大准则下的信号检测,基于奈曼-皮尔逊准则的信号检测,基于最大似然准则的多元的信号检测,基于经典贝叶斯准...
  • matlab程序双门限法语音信号端点检测(可实现多段检测
  • 通过MATLAB对MIMO检测算法MMSE信号检测算法进行仿真,可进行天线数量设置。
  • 一维信号峰值检测Matlab实现

    万次阅读 2018-07-16 22:34:08
    先使用3点运动均值滤波器处理一维信号,先前向再后向处理。作为例子,这里先生成正弦信号波形图,然后执行3点前向运动均值滤波,再3点均值后向运动滤波。信号S(n)={s1,s2,s3,s4,…,sn}. x = 0:0.05:50*...

    参考论文:https://pdfs.semanticscholar.org/56f1/49e51aa9fb9b0b46412b864839f34701d421.pdf
    先使用3点运动均值滤波器处理一维信号,先前向再后向处理。作为例子,这里先生成正弦信号波形图,然后执行3点前向运动均值滤波,再3点均值后向运动滤波。信号S(n)={s1,s2,s3,s4,…,sn}.

    x = 0:0.05:50*pi;
    row_acc = sin(x);
    m = length(row_acc);
    row_acc1 = linspace(0,0,m);
    row_acc1(1) = row_acc(1);
    row_acc1(m) = row_acc(m);
    for i=2:m-1
       row_acc1(i)=(row_acc(i-1) + row_acc(i)+row_acc(i+1))/3;
    end
    figure;
    plot(row_acc1);
    
    for i=m-1:-1:2
        row_acc(i) = (row_acc1(i-1) + row_acc1(i)+row_acc1(i+1))/3;
    end

    找到局部最小值和局部最大值及其对应的位置,波峰点、波谷点满足:
    这里写图片描述

    peaks = linspace(0,0,m);
    valleys = linspace(0,0,m);
    peakindexs = linspace(0,0,m);
    valleyindexs = linspace(0,0,m);
    peakindex = 1;
    valleyindex = 1;
    for i = 2:m-1
        if row_acc(i) >row_acc(i-1) && row_acc(i)>=row_acc(i+1)
            peaks(peakindex)=row_acc(i);
            peakindexs(peakindex)=i;
            peakindex = peakindex+1;
        end
        if row_acc(i) < row_acc(i-1) && row_acc(i)<row_acc(i+1)
            valleys(valleyindex)=row_acc(i);
            valleyindexs(valleyindex)=i;
            valleyindex=valleyindex+1;
        end
    end

    计算VPD,VPD(n)表示第n个波谷点的值与第n个波峰点的值的差,VPD用来去掉那些假的波峰点,
    这里写图片描述
    计算了VPD之后,搜索VPD,如果满足:
    这里写图片描述,则这个波峰点是假的,移除。

    程序流程如下:
    这里写图片描述
    matlab代码:

    pcount = peakindex-1;
    vcount = valleyindex-1;
    peakindices = linspace(0,0,pcount);
    for i = 1:pcount
        peakindices(i) = peakindexs(i);
    end
    
    valleyindices = linspace(0,0,vcount);
    for i = 1:vcount
        valleyindices(i) = valleyindexs(i);
    end
    
    figure;
    plot(x, row_acc,'-o', 'MarkerIndices',peakindices,'MarkerFaceColor','red','MarkerSize',5);
    
    figure;
    plot(x, row_acc,'-s', 'MarkerIndices',valleyindices,'MarkerFaceColor','red','MarkerSize',5);
    
    if pcount>2 && vcount>2
        if peakindexs(1) < valleyindexs(1)
            peakindex=2;
        else
            peakindex=1;
        end
        vindex=1;
    end
    
    if peakindex == 2
        for i = 1:m-1
            peaks(i)=peaks(i+1);
        end
        pcount = pcount-1;
        pindex=1;
    end
    
    vpd = linspace(0,0,m);
    vpd1 = linspace(0,0,m);
    for i=1:pcount
        vpd(i) = peaks(i) - valleys(i);
    end
    
    dels = linspace(0,0, pcount);
    peakindexs1 = linspace(0,0,pcount);
    if pcount > 2
        lastcount=pcount;
        curcount = 1;
        while lastcount ~= curcount
            lastcount = curcount;
            del_count = 0;
            for i = 2:pcount-1
                if vpd(i) <= 0.7 * (vpd(i-1) + vpd(i)+vpd(i+1)) / 3
                    dels(i)=1;
                end
            end
    
            count = 1;
            for i = 1:pcount
              if dels(i) ~= 1
                  vpd1(count) = vpd(i); 
                  peakindexs1(count) = peakindexs(i);
                  count = count+1;
              else
                   del_count = del_count + 1;
                   dels(i) = 0;
               end
            end
    
            pcount = pcount - del_count;
            for i = 1:pcount
                vpd(i) = vpd1(i); 
                peakindexs(i) = peakindexs1(i);
            end
            peakindexs(pcount+1) = 0;
            vpd(pcount+1) = 0;
    
            indices = linspace(0,0,pcount);
            for i = 1:pcount
                indices(i) = peakindexs1(i);
            end
            figure;
            plot(x, row_acc,'-o', 'MarkerIndices',indices,'MarkerFaceColor','red','MarkerSize',10);
            curcount = pcount;
        end
    end
    展开全文
  • 根据雷达信号的时宽带宽乘积为常量, 不能兼顾作用距离和距离分辨率的原理, 使含有噪声的Chirp 信号经过匹配滤波器加以检测, 并对其进行了MATLAB 仿真
  • 信号检测中多用户协作检测的软判决,MATLAB仿真,信噪比
  • 其中包含了三种线性信号检测算法MRC,ZF,MMSE和两种非线性信号检测算法ZF-SIC和MMSE-SIC,实测可用
  • MATLAB进行MIMO检测算法中的ZF检测算法仿真,可进行天线数量设置。
  • MATLAB模拟信号检测和复原实验.pdf
  • 语音信号双门限法端点检测MATLAB

    千次阅读 2019-10-28 17:53:37
    语音信号双门限法端点检测MATLAB 可以仔细阅读这篇文章,了解一下MATLAB基本语法知识。 // An highlighted block clear all; clc; close all; [x,fs]=audioread('C4_1_y.wav'); % 读入数据文件 x=x/max(abs(x)); .....

    语音信号双门限法端点检测MATLAB

    可以仔细阅读这篇文章,了解一下MATLAB基本语法知识。

    // An highlighted block
    clear all; clc; close all;
    
    [x,fs]=audioread('C4_1_y.wav');                    % 读入数据文件
    x=x/max(abs(x));                        % 幅度归一化
    N=length(x);                            % 取信号长度
    time=(0:N-1)/fs;                        % 计算时间
    subplot 311
    plot(time,x,'k');         
    title('双门限法的端点检测');
    ylabel('幅值'); axis([0 max(time) -1 1]); 
    xlabel('时间/s');
    wlen=200; inc=80;                       % 分帧参数
    IS=0.1; overlap=wlen-inc;               % 设置IS
    NIS=fix((IS*fs-wlen)/inc +1);           % 计算NIS
    fn=fix((N-wlen)/inc)+1;                 % 求帧数
    frameTime=FrameTimeC(fn, wlen, inc, fs);% 计算每帧对应的时间
    [voiceseg,vsl,SF,NF,amp,zcr]=vad_TwoThr(x,wlen,inc,NIS);  % 端点检测
    subplot 312
    plot(frameTime,amp,'k');         
    ylim([min(amp) max(amp)])
    title('短时能量');
    ylabel('幅值'); 
    xlabel('时间/s');
    subplot 313
    plot(frameTime,zcr,'k');     
    ylim([min(zcr) max(zcr)])
    title('短时过零率');
    ylabel('幅值'); 
    xlabel('时间/s');
    for k=1 : vsl                           % 画出起止点位置
        subplot 311
        nx1=voiceseg(k).begin; nx2=voiceseg(k).end;
        nxl=voiceseg(k).duration;
        line([frameTime(nx1) frameTime(nx1)],[-1.5 1.5],'color','r','LineStyle','-');
        line([frameTime(nx2) frameTime(nx2)],[-1.5 1.5],'color','b','LineStyle','--');
        subplot 312
        line([frameTime(nx1) frameTime(nx1)],[min(amp) max(amp)],'color','r','LineStyle','-');
        line([frameTime(nx2) frameTime(nx2)],[min(amp) max(amp)],'color','b','LineStyle','--');    
        subplot 313
        line([frameTime(nx1) frameTime(nx1)],[min(zcr) max(zcr)],'color','r','LineStyle','-');
        line([frameTime(nx2) frameTime(nx2)],[min(zcr) max(zcr)],'color','b','LineStyle','--');    
    end
    `
    

    运行后的图片

    展开全文
  • crossdet 返回交叉值及其在输入信号中出现的位置。 它可以检测下一个超过阈值或零的第一个点。 信号数据需要具有实值元素的行或列向量。 如果没有本地交叉返回空。
  • 心电信号特征点检测matlaB源程序

    热门讨论 2011-04-08 09:36:14
    本文是用小波变换的方法,实现心电信号特征点算法的研究,算法比较复杂,
  • 好东西啊,欢迎下载

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,121
精华内容 4,448
关键字:

信号检测matlab

matlab 订阅