线性插值的频域特性

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)

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全球首个AI代理驱动的元宇宙生态Wondra,让Web3再次伟大

前段时间&#xff0c;因为OpenAI的Sora发布、英伟达财报的发布&#xff0c;英伟达市值直逼2.5万亿美金&#xff0c;使得Crypto行业的AI赛道热度飙升&#xff0c;WLD&#xff0c;AGIX&#xff0c;FET等项目都有了不俗的表现。而这几天&#xff0c;因为大盘整体向好&#xff0c;再…

UVa1466/LA4849 String Phone

UVa1466/LA4849 String Phone 题目链接题意分析AC 代码 题目链接 本题是2010年icpc亚洲区域赛大田赛区的G题 题意 平面网格上有n&#xff08;n≤3000&#xff09;个单元格&#xff0c;各代表一个重要的建筑物。为了保证建筑物的安全&#xff0c;警察署给每个建筑物派了一名警察…

Android11 事件分发流程

在Android 11 输入系统之InputDispatcher和应用窗口建立联系一文中介绍到&#xff0c;当InputDispatcher写入数据后&#xff0c;客户端这边就会调用handleEvent方法接收数据 //frameworks\base\core\jni\android_view_InputEventReceiver.cpp int NativeInputEventReceiver::h…

Jmeter 安装教程:简单易懂

随着互联网的不断发展&#xff0c;网站和应用程序的性能测试变得越来越重要。Apache JMeter 是一款广泛使用的性能测试工具&#xff0c;它强大且使用广泛&#xff0c;适用于各种性能测试需求。不论你是刚刚接触性能测试的新手&#xff0c;还是一位有经验的测试工程师&#xff0…

总线带宽(总线系统的数据传送速率)

定义 总线上每秒钟传输的最大字节数或比特数 表示方法 通常使用“比特率”来表示&#xff0c;单位为比特每秒&#xff08;bps&#xff0c;b/s&#xff09;。 计算公式 总线带宽总线宽度/传输周期 其中&#xff0c;总线宽度是指数据总线的位数&#xff08;单位&#xff1a…

scp问题:Permission denied, please try again.

我把scp归纳三种情况&#xff1a; 源端root——》目标端root 源端root——》目标端mysql&#xff08;任意&#xff09;用户 源端&#xff08;任意用户&#xff09;——》目标端root用户 在scp传输文件的时候需要指导目标端的用户密码&#xff0c;如root用户密码、mysql用户…

solidwork3D草图案例-曲管

单位mm 3D草图 点击线&#xff0c;根据三视图&#xff0c;绘制直线&#xff0c; 圆角 半径25mm 扫描 三视图 如果觉得好的话&#xff0c;或者有疑问&#xff0c;请关注微信公众号咨询

RedHat9 | DNS剖析-配置转发DNS服务器

一、实验环境 1、转发DNS服务器 转发服务器&#xff08;Forwarding Server&#xff09;接受查询请求&#xff0c;但不直接提供DNS解析&#xff0c;而是将所有查询请求发送到另外一台DNS服务器&#xff0c;查询到结果后保存在本地缓存中。如果没有指定转发服务器&#xff0c;D…

Media Encoder 2024 for Mac媒体编码器安装教程ME2024安装包下载

安装 步骤 1&#xff0c;双击打开下载好的安装包。 2&#xff0c;选择install ame_24...双击打开启动安装程序。 3&#xff0c;点击install。 4&#xff0c;输入电脑密码。 5&#xff0c;软件安装中... 6&#xff0c;安装结束点击好。 7&#xff0c;返回打开的镜像 选择激活补…

品牌建设不迷路:系统化方法让品牌成长更高效

很多创始人才创业过程中都会发现&#xff1a; 企业越大&#xff0c;遇到的系统性的底层品牌问题就会越多&#xff0c;品牌的系统化建设底层根基如果不稳&#xff0c;后续的增长也会摇摇欲坠。 所以在当今竞争激烈的市场环境中&#xff0c;品牌的成功不仅仅依靠一个响亮的名字…

LeetCode/NowCoder-链表经典算法OJ练习4

人的才华就如海绵的水&#xff0c;没有外力的挤压&#xff0c;它是绝对流不出来的。流出来后&#xff0c;海绵才能吸收新的源泉。&#x1f493;&#x1f493;&#x1f493; 目录 说在前面 题目一&#xff1a;环形链表 题目二&#xff1a;环形链表 II 题目三&#xff1a;随机…

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

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

算法题目记录

1.最短距离 题目简化&#xff1a; 明确问题 算法提示&#xff1a; 1.如何判断同类之间的最短距离为0 ---> 并查集路径压缩 2.如何存储任意两类的距离 ---> 邻接矩阵存储无向图 3.如何表示每个点属于哪一类 ---> 用数组id[节点]存储属于哪一类 4.如何算出任意两类…

C语言中的位段

位段是通过结构体实现的&#xff0c;可以在一定程度上减小空间浪费&#xff0c;位段的声明和结构体类似&#xff0c;有以下几个不同&#xff1a; ①位段的成员必须是整形&#xff08;int,char,short等&#xff09;。 ②成员后边有冒号和数字&#xff0c;表示该成员占几个bit位…

QA测试开发工程师面试题满分问答24: 用过哪些消息队列,各自的特点和优缺点是什么,结合项目实际说一说

回答思路 回答开头: 首先表达我对这个问题的认真态度,并表示我将根据自己的项目实践经验来回答。 列举使用过的消息队列: 根据我参与过的项目经验,我使用过以下几种主流的消息队列: RabbitMQApache KafkaRedis 的 pub/sub 功能 分别介绍各消息队列的特点: RabbitMQ: 特点: 基于…

Golang | Leetcode Golang题解之第104题二叉树的最大深度

题目&#xff1a; 题解&#xff1a; func maxDepth(root *TreeNode) int {if root nil {return 0}queue : []*TreeNode{}queue append(queue, root)ans : 0for len(queue) > 0 {sz : len(queue)for sz > 0 {node : queue[0]queue queue[1:]if node.Left ! nil {queue…

Matlab-熵权法

文章目录 熵权法一、模型简介二、例题1. 数据标准化2.指标的熵值和变异程度3.权重与评分4.代码实现 熵权法 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要&#xff0c;很多…

大数据量上传FTP

背景 笔者有一个需求是把将近一亿条数据上传到FTP服务器中&#xff0c;这些数据目前是存储在mysql中&#xff0c;是通过关联几张表查询出来的&#xff0c;查询出来的数据结果集一共是6个字段。要求传输的时候拆分成一个个小文件&#xff0c;每个文件大小不能超过500M。我的测试…

迁移基于MicroBlaze处理器的设计

迁移基于MicroBlaze处理器的设计 生成系统基础设施&#xff08;MicroBlaze、AXI_Interconnect&#xff0c; Clk_Wiz、Proc_Sys_Reset&#xff09; 生成系统基础设施&#xff08;MicroBlaze、AXI_Interconnect、Clk_Wiz和 Proc_Sys_Reset&#xff09;&#xff1a; 1.使用所需的板…

多级留言/评论的功能实现——Vue3前端篇

文章目录 思路分析封装组件父组件模板逻辑样式 子组件——二级留言模板逻辑样式 子组件——三级留言以上模板逻辑样式 留言组件的使用 写完论文了&#xff0c;来把评论的前端部分补一下。 前端的实现思路是自己摸索出来的&#xff0c;没找到可以符合自己需求的参考&#xff0c;…