精华内容
下载资源
问答
  • %输入序列的复共轭(匹配滤波器的脉冲响应) sr_noise_mf = abs(conv(mf,signal_twn)); %加入噪声后的卷积反馈 ty = (0:length(signal_twn)-length(signal)-1)*Ts*1e3; %注意时间这里要减去因为卷积增加的一部分 ...
     
    

    (1) 原理说明

    • 假设目标与雷达的相对距离为 R R R,雷达发射信号 s ( t ) s(t) s(t) ,传播速度为光速 c c c ,则经过时间 R c \displaystyle\frac{R}{c} cR 后电磁波到达目标,照射到目标上的电磁波可写成: s ( t − R c ) s(t-\displaystyle\frac{R}{c}) s(tcR)。电磁波与目标相互作用,一部分电磁波被目标散射,被反射的电磁波为 σ ⋅ s ( t − R c ) σ·s(t-\displaystyle\frac{R}{c}) σs(tcR),其中 σ σ σ 为目标的雷达散射截面。再经过时间 R c \displaystyle\frac{R}{c} cR后,被雷达接收天线接收的信号为 σ ⋅ s ( t − 2 R c ) σ·s(t-2 \displaystyle\frac{R}{c}) σs(t2cR)
       

    • 如果将雷达天线和目标看作一个系统,便得到如图的等效,而且这是一个 LTI(线性时不变)系统。

      等效 LTI 系统的冲激响应可写成:
      h ( t ) = ∑ i = 1 M σ i δ ( t − τ i ) h(t) = \sum_{i=1}^M\sigma_i\delta(t-\tau_i) h(t)=i=1Mσiδ(tτi)

      其中 M M M 表示目标个数, σ i \sigma_i σi 表示目标的散射特性, τ i \tau_i τi 是光速在雷达与目标之间往返一次的时间
      τ i = 2 R i c \tau_i=\frac{2R_i}{c} τi=c2Ri
      R i R_i Ri 为第 i i i 个目标与雷达的相对距离。雷达发射信号 s ( t ) s(t) s(t) 经过该LTI系统,得输出信号(即雷达的回波信号) s r ( t ) sr (t) sr(t)
      s r ( t ) = s ( t ) ∗ h ( t ) = ∑ i = 1 M σ i s ( t − τ i ) sr(t) = s(t)*h(t) = \sum_{i=1}^M\sigma_is(t-\tau_i) sr(t)=s(t)h(t)=i=1Mσis(tτi)

    (2) 代码仿真

    • matlab 代码
      %% 产生线性调频波
      TimeWidth = 10e-6;      %脉冲持续时间10us
      T = 12e-6;              %选取T在12us
      BandWidth = 20e6;       %线性调频信号的频带宽度20MHz
      Fs = 50e6;Ts = 1/Fs;    %采样频率,注意需要满足奈奎斯特频率
      sample_dot_num = round(TimeWidth * Fs);%表示采样点的个数
      
      f0 = 0;%初始频率
      f1 = f0 + BandWidth;%终止频率
      t=0:1/Fs:TimeWidth;%根据结束时间生成时间序列
      signal = chirp_signal(t,f0,f1);
      plot(t*1e6,signal,'LineWidth',2);
      %% 进行传播并接收回波
      c = 3e5;  %光速单位Km/s
      R1 = 80;  %第一个物体80Km
      R2 = 120; %第二个物体120Km
      R3 = 180; %第三个物体180Km
      %计算时间延迟
      tau1 = 2*R1/c;
      tau2 = 2*R2/c;
      tau3 = 2*R3/c;
      
      %产生回波信号
      Nmax = round(1.1*tau3*Fs);
      signal_total = zeros(1, Nmax);
      signal_total(fix(tau1*Fs):fix(tau1*Fs)+length(signal)-1) = signal;
      signal_total(fix(tau2*Fs):fix(tau2*Fs)+length(signal)-1) = signal;
      signal_total(fix(tau3*Fs):fix(tau3*Fs)+length(signal)-1) = signal;
      snr = -20; %添加信噪比为-20dB
      signal_twn = awgn(signal_total,snr, 'measured');
      plot((0:Nmax-1)*Ts*1e3,signal_twn);
      
      mf = fliplr(signal);                    %输入序列的复共轭(匹配滤波器的脉冲响应)
      sr_noise_mf = abs(conv(mf,signal_twn)); %加入噪声后的卷积反馈
      
      ty = (0:length(signal_twn)-length(signal)-1)*Ts*1e3; %注意时间这里要减去因为卷积增加的一部分
      plot(ty,sr_noise_mf(1:length(ty)))
      plot(ty*c/2/1000,sr_noise_mf(1:length(ty)))
      
    • 仿真结果:
    展开全文
  • shell 如何用指定的分隔符来分割字符串让结果为一个字符串数组,类似 java 中的 split, 而 split 关键字已经留给文件分割了,故字符串就分割处理就不能在使用了,那如何来处理字符串串分割呢http://www.cppcns.com?...

    shell 如何用指定的分隔符来分割字符串让结果为一个字符串数组,类似 java 中的 split, 而 split 关键字已经留给文件分割了,故字符串就分割处理就不能在使用了,那如何来处理字符串串分割呢http://www.cppcns.com?方法有两种

    一、对于不包含空格的字符串,使用下面方法

    方法一

    #!/bin/bash

    string="hello,shell,haha"

    array=(${string//,/ })

    for var in ${array[@]}

    do

    echo $var

    done

    方法二

    #!/bin/bash

    string="hello,shell,haha"

    OLD_IFS="$IFS"

    IFS=","

    array=($string)

    IFS="$OLD_IFS"

    for var in ${array[@]}

    do

    echo $var

    done

    方法三:利用tr 指令实现字符替换

    #!/bin/bash

    string="one,two,three,four,five"

    array=(`echo $string | tr ',' ' '` )

    for var in ${array[@]}

    do

    echo $var

    done

    二、对于包含空格的字符串,使用下面方法

    #!/bin/bash

    str='this is a good question, hello shell, look at me, show your enthusiasm'

    i=1

    while((1==1))

    do

    到此这篇关于shell 使用指定的分割符来分割字符串的方法DUjZxszbAv的文章就介绍到这了,更多相关shell 分割字符串内容请搜索我们以前的文章或继续浏编程客栈览下面的相关文章希望大家以后多多支持我们!

    本文标题: shell 使用指定的分割符来分割字符串的方法

    本文地址: http://www.cppcns.com/os/linux/312984.html

    展开全文
  • 关键词变色上一节我们已经基本完成了如何去搜索关键词,我们接下来对搜索显示做美化。在模糊查询语句中加入下面你的代码$row['username']=str_replace($keywords,''.$keywords.'',$row['username']);...

    关键词变色

    上一节我们已经基本完成了如何去搜索关键词,我们接下来对搜索显示做美化。

    在模糊查询语句中加入下面你的代码$row['username'] = str_replace($keywords,''.$keywords.'',$row['username']);

    他的意思是把查询的名字中查询的关键词替换成红色的字体。<?php

    $keywords = isset($_GET['keywords']) ? trim($_GET['keywords']) : '';

    $conn = @mysql_connect("localhost", "root", "root") or die("数据库链接错误");

    mysql_select_db("sql", $conn);

    mysql_query("set names 'utf8'"); //使用utf-8中文编码;

    //PHP模糊查询

    $sql="SELECT * FROM user WHERE username LIKE '%{$keywords}%'";

    $rs= mysql_query($sql);

    $users = array();//保存所以得查询到的用户

    if(!empty($keywords)){

    while ($row=mysql_fetch_assoc($rs)){

    $row['username'] = str_replace($keywords,''.$keywords.'',$row['username']);

    $users[] = $row;

    }

    }

    ?>

    这样,我们的搜索基本就完成了。

    完整代码展示<?php

    $keywords = isset($_GET['keywords']) ? trim($_GET['keywords']) : '';

    $conn = @mysql_connect("localhost", "root", "root") or die("数据库链接错误");

    mysql_select_db("sql", $conn);

    mysql_query("set names 'utf8'"); //使用utf-8中文编码;

    //PHP模糊查询

    $sql="SELECT * FROM user WHERE username LIKE '%{$keywords}%'";

    $rs= mysql_query($sql);

    $users = array();//保存所以得查询到的用户

    if(!empty($keywords)){

    while ($row=mysql_fetch_assoc($rs)){

    $row['username'] = str_replace($keywords,''.$keywords.'',$row['username']);

    $users[] = $row;

    }

    }

    ?>

    html>

    查询器

    .textbox {

    width: 355px;

    height: 40px;

    border-radius: 3px;

    border: 1px solid #e2b709;

    padding-left: 10px;

    }

    .su {

    width: 365px;

    height: 40px;

    background-color: #7fbdf0;

    color: white;

    border: 1px solid #666666;

    }

    table{ background-color: #7fbdf0; line-height:25px;}

    th{ background-color:#fff;}

    td{ background-color:#fff; text-align:center}

    if ($keywords){

    echo '

    查询关键词:'.$keywords.'

    ';

    }

    if ($users){

    echo '

    echo '

    用户名密码邮箱性别爱好';

    foreach ($users as $key=>$value){

    echo '

    ';

    echo '

    '.$value['username'].'';

    echo '

    '.$value['password'].'';

    echo '

    '.$value['sex'].'';

    echo '

    '.$value['email'].'';

    echo '

    '.$value['hobby'].'';

    echo '

    ';

    }

    }else{

    echo '没有查询到相关用户';

    }

    ?>

    展开全文
  • 期刊文献《Removal of bone in CT angiography of the cervical arteries by piecewise matched mask bone elimination》阅读笔记,主要是在CTA影像中分段掩模匹配方法。


    by HPC_ZY

    期刊文献《Removal of bone in CT angiography of the cervical arteries by piecewise matched mask bone elimination》阅读笔记,主要是在CTA影像中分段掩模匹配方法。

    1. Introduction

    Arteries and veins can be visualized in a minimally invasive way with CT angiography (CTA). Resulting data sets are often visualized by means of maximum intensity projection (MIP) images. In a CTA data set, however, the maximum value along a line in the direction of projection is often that of bone, which obscures the vessels; therefore, the voxels that represent bone have to be removed from the data set, prior to the generation of the MIP image.1–3 We present a method to remove the bone in a fully automatic way.

    CTA可以很好的显示动静脉,最常用的就是MIP可视化,但是骨骼会遮挡血管。所以需要事先去除骨骼。

    Because arteries are often in close proximity of the bone, for example, in the skull base and near the vertebrae, manual removal of bone can be time consuming or virtually impossible. Methods that use image processing techniques such as thresholding and region growing to identify the bone, have been reported as an alternative.

    动脉离骨骼较近,手动去骨工作量大,因此使用图像处理技术自动去骨。

    As CT values of the edges of the bones are in the same Our approach is to use an additional scan to make a mask. This scan is made prior to the injection of contrast agent; therefore, a relatively low and constant threshold can be used to acquire the mask.

    可以在注射造影剂之前进行一次扫描,在该影像上获得稳定的骨骼。

    A disadvantage of subtraction of two scans is that the noise of the two scans is added. With MMBE, the original quality of the CTA images is retained. Due to inevitable motion of the patient in between the two scans, the CTA data set and the additional data set have to be registered.

    用MMBE法降低两次扫描累积的噪声,并进行配准消除头动。

    In this paper, an improved method is introduced to be able to register volumes containing multiple bones. In this method, called piecewise MMBE, the bones are separated first and then registered individually.

    这篇文章提出了一种改进的多骨骼体配准方法——piecewise MMBE。先分割出骨骼,再单独进行配准。


    2. Piecewise MMBE method

    A. Overview

    简单讲就是注射前扫描一组CT,注射后扫描一组CTA;提取CT中的骨骼,配准到CTA中。然后用配好的CT骨骼作为mask,消去CTA中对应部分。如下图
    在这里插入图片描述

    B. Identification and separation of the bones

    Each bone in the nonenhanced data set is surrounded by soft tissue with relatively low CT values. However, at a considerable number of locations, only a small distance between the bones is present. Because of the spatial blurring of the CT imaging process, the voxels that represent soft tissue have relatively high CT values at these locations.

    原本骨头周围的软组织CT值相对较低,但因为CT成像容积效应,相邻的软组织灰度会被拉高。

    The separation of the individual bones is done by using a watershed algorithm.

    使用分水岭算法分离单个骨骼

    In order to speed up the watershed algorithm, the nonenhanced data set is clipped first, so that the initial number of catchment basins is significantly reduced. Voxels with CT values lower than bmin are set to bmin. Voxels with CT values higher than bmax are set to bmax. The value of bmin should assure that both the transition region from bone to tissue is not affected and that all soft tissues are set to a constant value. In order to avoid that contiguous bones are merged, the upper boundary bmax should be considerably higher than the highest CT value of soft tissue between these bones. The depth of a catchment basin is defined as the difference between the value of the local minimum and the lowest value at the boundary of the basin. The number of basins is reduced by merging relatively shallow basins.

    为了提高分水岭算法的速度,首先对非增强的数据集进行裁剪,从而大大减少了初始的集水岭数目。CT值低于bmin的体素设置为bmin。CT值高于bmax的体素设置为bmax。bmin值应确保从骨到组织的过渡区域不受影响,并且所有软组织都设置为一个恒定值。为了避免相邻骨骼合并,上边界bmax应大大高于这些骨骼之间软组织的最高CT值。汇水盆地的深度定义为盆地边界处局部最小值和最小值之间的差值。通过合并相对较浅的盆地,减少了盆地的数量。

    C.Registration of the bones

    For an accurate determination of the mask, both the bones and the transition zone from bone to surrounding tissue, has to be available in the registered nonenhanced data set. Therefore, the whole region Ri containing each bone and the surrounding soft tissue is registered.

    为了得到精准的掩模,需要从配准好的CT中获得骨骼和过渡区(骨骼与相邻组织之间)。所以要记录每个骨骼和包围它的软组织,记为Ri

    In the registration procedure, voxels are used that lie at the edges of the bones.

    配准时,使用骨骼边缘的体素,CT值在特定范围 [ s m i n , s m a x ] [s_{min},s_{max}] [smin,smax],CT中选的体素集合为 S B S_B SB,CTA中选的为 S C S_C SC

    配准分为三步,每一步进行一次校正(由三个方向的平移和绕三个轴的旋转组成),变换函数通过最小化一个依赖于变换的六个参数的代价函数来确定。为了使这些代价函数最小化,采用了下坡单纯形法【14】。在前两步中,采用了切角匹配法【15】。


    因此,用CTA数据集制作了一个模板 D ( x ) D(x) D(x),描述体素坐标x到 S C S_C SC中最近的选定骨骼体素之间的距离。为了减少计算时间,使用了城市块距离。

    【第一步】,通过最小化代价函数来确定描述两次扫描之间所有骨骼的整体运动的变换T1

    F 1 ( T 1 ) = ∑ x ∈ S B D ( T 1 x ) (1) F_1(T_1) = \sum_{x \in S_B}D(T_1x) \tag{1} F1(T1)=xSBD(T1x)(1)
    它表示CT数据集中变换的骨骼体素与CTA数据集中变换的骨骼体素之间的平均距离。

    【第二步】每个骨骼 i i i通过附加变换 T 2 , i T_{2,i} T2,i单独配准,与T1连接。第二步的成本函数如下所示:

    F 2 , i ( T 2 , i ) = ∑ x ∈ S B , i D ( T 2 , i T 1 x ) (2) F_{2,i}(T_{2,i}) = \sum_{x \in S_{B,i}}D(T_{2,i}T_1x) \tag{2} F2,i(T2,i)=xSB,iD(T2,iT1x)(2)

    其中 S B , i = S B ∩ R i S_{B,i}=S_B \cap R_i SB,i=SBRi

    【第三步】为每个骨骼计算额外变换矩阵,以获得更高精度。以CT值的平方差之和作为代价函数,
    F 3 , i ( T 3 , i ) = ∑ x ∈ S B , i [ B ( x ) − C ( T 3 , i T 2 , i T 1 x ) ] 2 (3) F_{3,i}(T_{3,i}) = \sum_{x \in S_{B,i}}[B(x)-C(T_{3,i}T_{2,i}T_1x)]^2 \tag{3} F3,i(T3,i)=xSB,i[B(x)C(T3,iT2,iT1x)]2(3)

    最后,配准方法采用三线性插值。

    D.Conversion of bone to a mask

    通过配准后的CT数据集,进行二值化再适当膨胀得到掩模。

    The mask is constructed by thresholding the registered nonenhanced data set, followed by dilation.

    3. Experiments

    后文是实验与结果,不详细阅读了


    其他

    [1] Van Straten M, Venema H W, Streekstra G J, et al. Removal of bone in CT angiography of the cervical arteries by piecewise matched mask bone elimination: Removal of bone in CT angiography[J]. Medical physics, 2004, 31(10): 2924-2933.
    [14] Crimins F. Numerical recipes in C++: The art of scientific computing[J]. Applied Biochemistry and Biotechnology, 2003, 104(1): 95.
    [15] van Herk M, Kooy H M. Automatic three‐dimensional correlation of CT‐CT, CT‐MRI, and CT‐SPECT using chamfer matching[J]. Medical physics, 1994, 21(7): 1163-1178.

    展开全文
  • KNN+约会网站匹配分类

    2021-04-05 10:23:02
    KNN+约会网站匹配分类 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler #进行归一化处理 from sklearn.neighbors import ...
  • 比如有文章表 Article(Id,Category,InsertDate),现在要用SQL找出每种类型中时间最新的前N个数据组成的集合,一段不错的代码,留存备用SELECT A1.*FROM Article AS A1INNER JOIN (SELECT A.Category,A....
  • 浅谈压缩感知(二十五):压缩感知重构算法之分段正交匹配追踪(StOMP)主要内容:StOMP的算法流程StOMP的MATLAB实现一维信号的实验与结果门限参数Ts、测量数M与重构成功概率关系的实验与结果一、StOMP的算法流程分段...
  •  【更正】:由于89点处的底分型有缺口,因此,X1X2…X5属于分段第二种情况的第二个序列,要严格按照包含关系处理,不能当作“第一笔破坏”。因此,应改为:X3与(1)、(2)以及X4为顺次包含关系,“向上”合并后的元素...
  • Linux的分段机制

    2021-01-27 05:56:57
    一.内存地址分类对于程序员来说,可以...该类地址在著名的80x86分段体系架构中得到了很好体现,因此DOS程序员和windows程序员都不得不把他们的程序分成一段一段的(如代码段、数据段、堆栈段等等)。每一个逻辑地址都...
  • 然而,环境中的一些剧烈变化会导致位姿估计误差的突然增加,例如碰撞、漂移或特征点检测和匹配误差。这些条件在 SLAM 系统中反映为速度的快速变化或增加的重投影误差。分裂点的位置应该反映这些意外的变化。 因此,...
  • 本文实例讲述了C++对cin输入字符的判断及分段函数处理方法。分享给大家供大家参考,具体如下:这两个本来也不是什么问题,然而真正遇到还是有地方可以研究的。首先是C++对于cin输入的判断,有时候你定义了一个整形,...
  • 但切记不要写出很复杂的正则表达式,更不要试图用正则去“无缺陷、普适的”匹配HTML,因为你迟早会失败。 PHP的HTML解析可以通过PHP原生的DOM模块(某些服务器环境下可能需要安装对应扩展),或者第三方HTML解析库来...
  • Java实现IP动态匹配

    2021-03-10 16:01:46
    Java实现IP动态匹配 最近接触了个新的数据结构: Trie 树/ 前缀树/ 字典树 等,都是指的一个意思。想了想,刚好能用来做IP地址的动态匹配,那就实践一下,学以致用。 文章目录Java实现IP动态匹配需求描述分析设计普通...
  • 反置页表二、分段存储管理方式1. 分段存储管理方式的引入2. 分段系统的基本原理3. 信息共享4. 段页式存储管理方式 连续存储会产生许多的“碎片”,虽然“紧凑”方法可以将许多碎片拼接可以的大块空间,但需为之很...
  • 问题描述: POI读出来的时候内容${tablexudongmaster3}分开了。 但是我模板却是以下这样子的,内容${tablexudongmaster3}是连在一起的。 ...1、内容${tablexudongmaster3}不是一次性输入的,所以内容被分为多段。...
  • % 这是MATLAB里面的pchip.m文件,这里把它的注释改写成汉语,主要是想弄清楚它是怎么计算在节点处的导数的。...%输出:分段三次Hermite插值结果。% PCHIPPiecewise Cubic Hermite Interpolating Polynomial.% P...
  • 如12abc这种,就会被转换成12,而abc12,就会转换失败,个人认为是开头匹配的原因吧 所以我们只需要直接传入flag即可令其在switch中匹配到 case 0,因为没有break的原因,所以能进入case 2,输出flag 最后的payload...
  •  //公式不匹配错误,代码编写错误 (8)case 3:y= //语法错误,代码不完整 (9)case 4:y=log10(x-2*x);break; //公式不正确,log10和log是不同的 (10)printf(“y=%d\n”,y); //输入数据类型错误 (11)闪退...
  • nbsp图形图像使用线性变换、分段线性变换和非线性变换增强图像对比度.doc15页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接...
  • 虚拟内存的分页和分段 分页 虽然存在基于分段的虚拟内存,术语虚拟内存通常与使用分页的系统联系在一起。第一个使用分页实现虚拟内存的是Atlas计算机[KILB62],随后很快广泛应用于商业用途。 在讲述简单分页时,曾...
  • 文章目录1.分页存储管理定义2.分页存储管理地址的转换3.页表4.基本地址变换机构5.具有快表的地址变换机构6....分段的引入目的11.分段存储管理结构12.分段存储管理地址变换机构13.分页和分段13.1 分页和分
  • Eason最近遇到一个需求,需要去展示分段式的进度条,为了给这个进度条想要的外观和感觉,在构建用户界面 (UI) 时,大家通常会依赖 SDK 提供的可用工具并尝试通过调整SDK来适配当前这个UI需求;但悲伤的是,大多数...
  • 分页与分段存储

    2020-12-29 20:11:41
    分页与分段存储1 分页存储管理方式1.1 分页存储管理的基本方法 1 分页存储管理方式 分页存储管理方式 : 将用户程序的地址空间分为若干个固定大小的区域,称为“页”或“页面”。相应的,也将内存空间分为若干个物理...
  • 操作系统的分区分页与分段式内存管理 计算存储的层次结构: 当前技术没有能够提供这样的存储器,因此大部分的计算机都有一个存储器层次结构,即少量的非常快速、昂贵、易变的高速缓存(cache);若干兆字节的中等...
  • 3粘连节点C粘连节点C收到报文后,识别出栈顶的标签100为粘连标签,将粘连标签100交换为与其关联的标签栈{1005,1009,1010},然后根据新的栈顶的标签1005匹配链路,找到对应的转发出接口为C->D链路,之后将标签1005弹...
  • mysql 的 find_in_set函数使用方法有个表里面有个type字段,他存储的是字段类型,有 "1条件,2条件,3条件,4条件 …“等等现在有个对象里面选择的几个标签"1条件,3条件…”,要跟上表进行匹配查询,那么我们该怎么拆分...
  • js正则表达式匹配img标签,p标签,div标签和其他自定义标签的解决方案 作为前端开发,肯定会有处理字符串的时候,如果只是替换,删除,截取固定的字符串,那么问题不是很大。 但是如果字符串不是固定的呢?例如处理...
  • java 正则表达式高级篇,介绍四种常用的处理方式:匹配、分割、替代、获取,具体内容如下package test;import java.util.regex.Matcher;import java.util.regex.Pattern;/*** 正则表达式* 正则表达式 的用法主要是4种...
  • 基本上你的问题是树问题,在每个级别,形成树前缀的所有单词形成分支。 不留下字符串一部分的分支是正确的解决方案。thisisinsane||(this)isinsane/ \/ \(this,i)sinsane (this,is)insane/ / \/ ...
  • 当然也可在代码运行之后就根据二维数组直接运算出每一段的k和b,或由工程师直接运算出每一段的k和b,放入代码中,每次只需要匹配温度区间即可直接运算温度,无需每次都进行拟合。 谢谢阅读,有任何问题或新思路,均...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,550
精华内容 15,820
关键字:

分段匹配