线性插值的频域特性

1、抽取和插值的简单说明
        抽取和插值是变采样过程中常用的两种手段,其中抽取的目的是降低数据的采样率,以降低对系统存储深度或计算量的要求。插值的目的是提高数据的采样率,以提高系统的计算精度。 M M M倍抽取通常是通过每隔 M M M个样点从原始采样序列中取点来实现的(见图1), M M M倍插值则通常是在原始采样序列中相邻两个采样点之间插入0,使插值后者这两个采样点对应的时间内包含 M M M的采样点(见图2)。
在这里插入图片描述

图1. 抽取效果示意图(红色虚线表示连续信号,红色点表示原始采样点,黑x表示降采样点)

在这里插入图片描述

图2. 插值效果示意图(蓝色线表示连续信号,红色点表示采样点)

       抽取后采样率降低,可能导致抽取后的数据不满足奈奎斯特采样定理(采样率要 ≥ \geq 信号最高速率的2倍),此时会产生频谱混叠(另一种解释是:抽取后信号频谱展宽(从归一化频率的角度理解),导致原来分开的周期延拓的频谱可能重叠到一起)。为此,需要在抽取之前进行低通滤波,保证信号最高频率不大于抽取后采样率的一半(特别注意,这边滤波和抽取的操作是不能调换的,因为滤波是无法将混叠后的频谱分离开的)。这边,低通滤波过程是在原采样率条件下进行的,可表示为
y ^ ( n ) = ∑ k = − ( N − 1 ) / 2 ( N − 1 ) / 2 h ( k ) x ( n − k ) (1) \hat{y}(n)=\sum_{k=-(N-1)/2}^{(N-1)/2}h(k)x(n-k) \tag{1} y^(n)=k=(N1)/2(N1)/2h(k)x(nk)(1)
        在(1)式中 h ( n ) h(n) h(n)表示滤波器冲激响应。需要注意的是,抽取或插值过程中所用到的滤波器通常为FIR类型,且为了保证具有线性相位,要求FIR滤波器系数具有一定的对称性( h ( n ) = h ( − n ) h(n)=h(-n) h(n)=h(n))。在上式中, N N N通常取奇数。滤波完成后,需要进行抽样,抽样结果为
y ( n ) = y ^ ( n M ) = ∑ k = − ( N − 1 ) / 2 ( N − 1 ) / 2 h ( k ) x ( n M − k ) (2) y(n)=\hat{y}(nM)=\sum_{k=-(N-1)/2}^{(N-1)/2}h(k)x(nM-k) \tag{2} y(n)=y^(nM)=k=(N1)/2(N1)/2h(k)x(nMk)(2)
        将冲激响应的对称性 h ( n ) = h ( − n ) h(n)=h(-n) h(n)=h(n)代入上式,可进一步得到
y ( n ) = ∑ k = 1 ( N − 1 ) / 2 h ( k ) [ x ( n M − k ) + x ( n M + k ) ] + h ( 0 ) x ( n M ) (3) y(n)=\sum_{k=1}^{(N-1)/2}h(k)[x(nM-k)+x(nM+k)]+h(0)x(nM) \tag{3} y(n)=k=1(N1)/2h(k)[x(nMk)+x(nM+k)]+h(0)x(nM)(3)
        从上面的表达式可以看出,滤波器数据并没有全用到,因此可以在滤波过程中就不计算这些值,以减小计算量,此外,利用(3)中对称性也可以进一步降低计算量。不过,计算效率并不在本文考虑范围内,为此不再赘述。

       插值后采样升高,从归一化频率的角度理解,插值后信号频谱被压缩,所以采样率内可以容纳更多信号频谱,即原来在不同延拓周期内的频谱都会被包含到新采样率下的同一个延拓周期内,导致在一个采样率范围内,存在多个完全一样的频谱,这些频谱称为镜像频谱,需要用低通滤波器进行滤除。注意,这边滤波和插值的操作同样不能调换顺序。插值后的系列可表示为
v ( n ) = { x ( n / M ) , m o d ( n , M ) = 0 0 , o t h e r s v(n)= \left\{\begin{matrix} x(n/M), mod(n,M)=0 \\ 0,others \end{matrix}\right. v(n)={x(n/M),mod(n,M)=00,others
       此时,滤波后的数据可表示为
y ( n ) = ∑ k = n − ( N − 1 ) / 2 n + ( N − 1 ) / 2 v ( k ) h ( n − k ) y(n)=\sum_{k=n-(N-1)/2}^{n+(N-1)/2} v(k)h(n-k) y(n)=k=n(N1)/2n+(N1)/2v(k)h(nk)
       将 v ( k ) v(k) v(k)的表达式带入,可得
y ( n ) = ∑ k = n − ( N − 1 ) / 2 n + ( N − 1 ) / 2 x ( k / M ) h ( n − k ) = ∑ k = n / M − ( N − 1 ) / 2 M n / M + ( N − 1 ) / 2 M x ( k ) h ( n − k M ) (4) y(n)=\sum_{k=n-(N-1)/2}^{n+(N-1)/2} x(k/M)h(n-k)=\sum_{k=n/M-(N-1)/2M}^{n/M+(N-1)/2M} x(k)h(n-kM) \tag{4} y(n)=k=n(N1)/2n+(N1)/2x(k/M)h(nk)=k=n/M(N1)/2Mn/M+(N1)/2Mx(k)h(nkM)(4)
       在两个采样点间进行插值,等效于以这两个点为起止点,拟合一条曲线,这条拟合的曲线必须经过这两个已知的点,为此上述插值需要满足一定的条件,具体地
y ( r M ) = x ( r M / M ) = x ( r ) = ∑ k = r − ( N − 1 ) / 2 M r + ( N − 1 ) / 2 M x ( k ) h ( r M − k M ) y(rM)=x(rM/M)=x(r)=\sum_{k=r-(N-1)/2M}^{r+(N-1)/2M} x(k)h(rM-kM) y(rM)=x(rM/M)=x(r)=k=r(N1)/2Mr+(N1)/2Mx(k)h(rMkM)
       根据上面的表达式可得,滤波器系数需满足一定条件,具体地
{ h ( 0 ) = 1 , h ( n ) = 0 , n = ± M , ± 2 M , . . . \left\{\begin{matrix} h(0)=1, \\ h(n)=0, n=\pm M, \pm 2M,... \end{matrix}\right. {h(0)=1,h(n)=0,n=±M,±2M...
       这边不对上述抽取或插值滤波器的具体实现做过多的说明,仅仅是为后面线性插值的描述做一些铺垫而已。

2、线性插值
        线性插值是常用的一种插值方法,在两个已有采样点中间插入若干采样点的原则是:以这两个采样点为起始和终止点,计算一条直线,插值的点均匀地分布在这条直线上。 设有两个点 x ( 0 ) x(0) x(0) x ( 1 ) x(1) x(1),两者的时间间隔为 T T T,要在这两个点中间插入一些点,使插值后的点数为 M M M,插值后两点之间的时间间隔为 T ′ = T / M T'=T/M T=T/M,则第 n n n个插值点可表示为
y ( n ) = x ( 0 ) + x ( 1 ) − x ( 0 ) M T ′ − 0 ( n T ′ − 0 ) = x ( 0 ) ( 1 − n M ) + x ( 1 ) ( n M ) (5) y(n)=x(0)+\frac{x(1)-x(0)}{MT'-0}(nT'-0)=x(0)(1-\frac{n}{M})+x(1)(\frac{n}{M}) \tag{5} y(n)=x(0)+MT0x(1)x(0)(nT0)=x(0)(1Mn)+x(1)(Mn)(5)
       令 h ( n ) = 1 − n M h(n)=1-\frac{n}{M} h(n)=1Mn,则 h ( n − M ) = n M h(n-M)=\frac{n}{M} h(nM)=Mn,则(5)式可表示为
y ( n ) = x ( 0 ) h ( n ) + x ( 1 ) h ( n − M ) (6) y(n)=x(0)h(n)+x(1)h(n-M) \tag{6} y(n)=x(0)h(n)+x(1)h(nM)(6)
       所以 h ( n ) h(n) h(n)可整理为
h ( n ) = { 1 − ∣ n ∣ / M , ∣ n ∣ < M 0 , o t h e r s h(n)= \left\{\begin{matrix} 1-|n|/M, |n|<M \\ 0,others \end{matrix}\right. h(n)={1n∣/M,n<M0,others
       对比(6)式和(4)式,可知线性插值过程可认为是与滤波器 h ( n ) h(n) h(n)的卷积过程, h ( n ) h(n) h(n)对应的频响可表示为:
H ( e j ω T ′ ) = 1 T [ s i n ( ω M T ′ / 2 ) s i n ( ω T ′ / 2 ) ] 2 (7) H(e^{j\omega T'})=\frac{1}{T}[\frac{sin(\omega M T'/2)}{sin(\omega T'/2)}]^2 \tag{7} H(eT)=T1[sin(ωT/2)sin(ωMT/2)]2(7)

没时间了,未完待续。。。。。
未完待续…
未完待续…
未完待续…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/843338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker安装Nginx 并实现通过nginx部署静态网址

Docker镜像就是一个只读的模板&#xff0c;可以用来创建Docker容器。 例如&#xff1a;一个镜像可以包含一个完整的centos操作系统环境&#xff0c;里面仅安装了mysql、nginx等或用户需要的其他应用程序。 Docker提供了一个非常简单的机制来创建镜像或者更新现有的镜像&#…

GTD时间管理法

Part 1. What is GTD? | 什么是GTD&#xff1f; GTD is a framework that enhances focus and productivity. Through techniques such as capturing all tasks in a trusted system and breaking down complex projects into actionable items, GTD allows individuals to co…

美业系统SaaS收银系统源码-顾客在系统付款了但系统未显示怎么办?美业系统实测

美业SaaS系统 连锁多门店美业收银系统源码 多门店管理 / 会员管理 / 预约管理 / 排班管理 / 商品管理 / 活动促销 PC管理后台、手机APP、iPad APP、微信小程序 1. 提供门店名称、付款凭证和会员手机号 2. 到订单明细查询&#xff0c; 按门店名称和会员手机号查询看是否有相…

百度智能云千帆AppBuilder升级!开放多源模型接入,思考模型再次加速!

>>【v0.5.4版本】 上线时间&#xff1a;2024/5/24 关键发版信息&#xff1a; 大模型优化&#xff1a;开放多源模型接入&#xff0c;思考模型再次加速&#xff01; Agent思考模型&#xff1a;新增AppBuilder专用版模型ERNIE Speed-AppBuilder&#xff0c;自主任务规划…

【软考】下篇 第15章 面向服务架构设计理论与实践

目录 一、SOA定义二、微服务微服务优势微服务与SOA对比微服务架构模式方案微服务设计约束 三、SOA参考架构四、SOA设计的标准要求五、SOA设计原则六、SOA设计模式七、SOA实施 一、SOA定义 面向服务的体系结构 (Service-Oriented Architecture,SOA), 从应用和原理的角度看&…

openLayers加载wms图层并定位到该图层

openLayers定位到wms图层 我们的wms是加载geoserver发布的服务&#xff0c;wms加载的图层是没法通过layer.getSource().getExtent()来获取到extents&#xff08;边界&#xff09;的&#xff1b;实现思路是通过postgis的函数(st_extent(geom))来获取extents; 返回前端后格式化一…

23-LINUX--TCP连接状态

一.TCP服务的特点 传输层协议主要有两个&#xff1a;TCP 协议和 UDP协议。TCP 协议相对于UDP协议的特点是&#xff1a;面向连接、字节流和可靠传输。 使用TCP协议通信的双方必须先建立连接&#xff0c;然后才能开始数据的读写。双方都必须为该连接分配必要的内核资源&a…

lammps案例:reaxff势模拟Fe(OH)3高温反应过程

大家好&#xff0c;我是小马老师。 本文分享一个reaxff反应势的案例。 该案例主要模拟Fe(OH)3在高温下的反应过程&#xff0c;主要代码来自lammps自带的案例。 lammps自带案例没有产物输出&#xff0c;故在此基础上稍加修改&#xff0c;增加了产物输出命令。 反应过程如下图…

JavaWeb开发 3.Web开发 Web前端开发 ③ HTML、CSS

没有一朵花&#xff0c;一开始就是一朵花 —— 24.5.28 HTML、CSS知识在博主前端专栏&#xff0c;可以对照博客大致进行了解 https://blog.csdn.net/m0_73983707/category_12654678.htmlhttps://blog.csdn.net/m0_73983707/category_12654678.html

232转Profinet网关接扫码枪与PLC通讯在物流分拣线上的应用

一、背景 随着生活节奏的加快&#xff0c;网络购物需求非常大&#xff0c;从而造成快递站需要快速提取快递信息已达到快速出站的效果&#xff0c;这就用到了扫码枪&#xff0c;扫码枪作为采集设备&#xff0c;能够迅速准确地读取货物信息。并将数据传输至PLC控制器&#xff0c…

5.28OpenMV入门

10分钟快速上手 OpenMV中文入门教程 使用的元件 先安装好&#xff0c;上述链接上手 IDE显示颜色阈值&#xff0c;同时也配有示例文件&#xff0c;如下图打开&#xff0c;helloworld 你好&#xff0c;世界&#xff01; OpenMV中文入门教程&#xff0c;在官方也有每一个的详细…

音乐系统java在线音乐网站基于springboot+vue的音乐系统带万字文档

文章目录 音乐系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码和万字论文参考&#xff08;9.9&#xffe5;带走&#xff09; 音乐系统 一、项目演示 在线音乐系统 二、项目介绍 基于springbootvue的前后端分离在线音乐系…

Design and implementation of robot impedance controller

机器人阻抗控制器的设计与实现是一个复杂但关键的过程&#xff0c;它涉及到多个方面以确保机器人能够在外界环境的影响下保持稳定的性能。以下是对机器人阻抗控制器设计与实现的详细解答&#xff1a; 一、阻抗控制原理 阻抗控制的基本原理是建立一个期望的机器人位置和接触力…

股票交易vip快速通道有什么门槛?vip交易通道的开通流程!

证券公司的VIP通道通常是为了满足高端客户或高频交易客户的需求而设立的&#xff0c;提供更快速、更便捷的交易服务。证券公司VIP通道适用于有追涨停板需求的投资者&#xff0c;以及一些喜爱高频交易的投资者&#xff0c;总的来说就是快速&#xff0c;在交易主机排队靠前。 VI…

go-zero 实战(1)

环境准备 go 版本 go version go1.22.2 linux/amd64 goctl 安装 goctl&#xff08;官方建议读 go control&#xff09;是 go-zero微服务框架下的代码生成工具。使用 goctl 可以显著提升开发效率&#xff0c;让开发人员将时间重点放在业务开发上&#xff0c;其功能有&#xff1a…

pands使用openpyxl引擎实现EXCEL条件格式

通过python的openpyxl库&#xff0c;实现公式条件格式。 实现内容&#xff1a;D列单元格不等于E列同行单元格时标红。 #重点是formula后面的公式不需要“”号。 from openpyxl.styles import Color, PatternFill, Font, Border from openpyxl.styles.differential import Dif…

Java客户端SpringDataRedis(RedisTemplate)上手

文章目录 ⛄概述⛄快速入门❄️❄️导入依赖❄️❄️配置文件❄️❄️测试代码 ⛄数据化序列器⛄StringRedisTemplate⛄RedisTemplate的两种序列化实践方案总结 ⛄概述 SpringData是Spring中数据操作的模块&#xff0c;包含对各种数据库的集成&#xff0c;其中对Redis的集成模…

HDU 2196 Computer(树形dp)

H D U 2196 C o m p u t e r &#xff08;树形 d p &#xff09; \Huge{HDU 2196 Computer&#xff08;树形dp&#xff09;} HDU2196Computer&#xff08;树形dp&#xff09; 文章目录 题意思路标程 题目链接&#xff1a;Problem - 2196 (hdu.edu.cn) 题意 给出一个n个节点的无…

git将某次提交合并到另一个分支

一、需求背景 将分支b中的某一次提交单独合并到分支a 二、实现方案 需求&#xff1a;将分支b中的某一次提交单独合并到分支a 1.在git上查看指定某次提交的id&#xff0c;如下图所示&#xff1a; 也可以通过git log命令查看提交的id&#xff0c;如下图&#xff1a; git log…

Android13 基座充电屏保

屏幕保护有两个设置可选&#xff1a;默认为插入基座充电时 通过DreamBackend启用屏保&#xff0c;并且保存选择的时机 //QSSI.13\packages\apps\Settings\src\com\android\settings\dream\WhenToDreamPicker.java Override protected boolean setDefaultKey(String key) {mBac…