线性插值的频域特性

news2024/11/27 22:46:05

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.coloradmin.cn/o/1708459.html

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

相关文章

卧槽!这项目开源了!【送源码 】

随着科技的飞速发展&#xff0c;个人财务管理变得越来越重要。一个名为‘Maybe’的创新型个人财务与财富管理应用程序随之诞生&#xff0c;它以其丰富的功能和用户友好的界面受到了广大用户的关注。 现在项目方将这个价值 100万美元的个人理财应用项目开源了 Maybe Maybe应用…

利用cherry pick巧妙地将某次提交单独合并到其他分支

0. 引言 最近在进行系统的多版本并行开发&#xff0c;涉及一些共有基础功能提交时就遇到了麻烦&#xff0c;一份代码需要向多个版本分支进行同步&#xff0c;以保证多版本都能有更新该基础功能。 多次对比提交的方式显然会带来巨大的工作量。但实际上我们可以通过git的cherry…

5,串口编程---实现简单的用串口发送接收数据

单片机通过串口向PC机发送数据 PC机通过串口接收单片机发过来的数据 1.UART和USART的区别&#xff1a; USART支持同步通信方式,可以通过外部时钟信号进行同步传输,而UART仅支持异步通信方式 本开发板STM32F103ZET6有5个串口&#xff0c;用串口1作调试串口&#xff0c;因为串…

git教程(IDEA + 命令行)

首先假设你已经安装 git 且 已经初始化完成&#xff1a; // 初始化git config --global user.name "你的用户名" git config --global user.email "你的邮箱"在当前文件夹下创建一个仓库&#xff0c;且该文件夹下会有多个项目 首先在当前文件夹下新建git…

网工内推 | 高校、外企网工,IE认证优先,年薪最高18w

01 上海外国语大学贤达经济人文学院 &#x1f537;招聘岗位&#xff1a;高校网络主管 &#x1f537;职责描述&#xff1a; 1、负责总机房、网络规划及管理&#xff0c;包括容量规划、成本评估、建设管理等; 2、负责设计、实施及维护全网络架构及规划网络变更计划 3、负责网络功…

什么是“SQL注入攻击”?如何预防和应对?

一、SQL注入攻击的概念 SQL注入攻击是一种针对数据库驱动的应用程序的攻击技术&#xff0c;其中攻击者通过在应用程序的输入字段中插入或“注入”恶意的SQL代码&#xff0c;试图非法访问、操作或破坏后端数据库。当应用程序不正确地处理用户输入&#xff0c;并将其直接拼接到SQ…

C++学习/复习7--泛型编程/函数模板/类模板

一、泛型编程 1.Swap()函数的模板实现 二、函数模板 1.概念 2.格式 3.实例化 &#xff08;1&#xff09;隐式与显示 注意事项&#xff1a;隐式与显示类型转换会产生临时变量&#xff0c;临时变量有常性&#xff0c;所以形参前加const 三、类模板 1.定义 2.例1 3.例2 4.注意事…

错误模块路径: ...\v4.0.30319\clr.dll,v4.0.30319 .NET 运行时中出现内部错误,进程终止,退出代码为 80131506。

全网唯一解决此BUG的文章&#xff01;&#xff01;&#xff01; 你是否碰到了以下几种问题&#xff1f;先说原因解决思路具体操作1、首先将你C:\Windows\Microsoft.NET\文件夹的所有者修改为你当前用户&#xff0c;我的是administrator。2、修改当前用户权限。3、重启电脑4、删…

力扣225. 用队列实现栈

Problem: 225. 用队列实现栈 文章目录 题目描述&#xff1a;思路Code 题目描述&#xff1a; 思路 1.对一个queue模拟栈的操作&#xff0c;同时用一个int类型的变量topElem记录每次每次队列队尾的元素&#xff08;也即是模拟stack中的stack的栈顶元素&#xff09;&#xff1b; 2…

Java Web集成开发环境Eclipse的安装及web项目创建

第一步&#xff1a;下载安装JDK http://t.csdnimg.cn/RzTBXhttp://t.csdnimg.cn/RzTBX 第二步&#xff1a;下载安装Tomcat Tomcat下载安装以及配置_tomcat下载配置-CSDN博客文章浏览阅读2.5k次&#xff0c;点赞2次&#xff0c;收藏13次。Tomcat下载安装及其配置_tomcat下载配…

调整图片和表格尺寸的命令:resizebox

\resizebox 是 LaTeX 中的一个命令&#xff0c;用于调整插入的内容&#xff08;如图像、表格、文本等&#xff09;的大小。它的语法如下&#xff1a; \resizebox{<width>}{<height>}{<content>}其中&#xff1a; <width> 和 <height> 分别表示…

【MATLAB】数字滤波器的设计

一、引言 在信号处理过程中&#xff0c;所处理的信号往往混有噪声&#xff0c;从接收到的信号中消除或减弱噪声是信号传输和处理中十分重要的问题。根据有用信号和噪声的不同特性&#xff0c;提取有用信号的过程称为滤波,实现滤波功能的系统称为滤波器。在以往的模拟电路中用的…

【算法】位运算算法——丢失的数字

题解&#xff1a;丢失的数字(位运算算法) 目录 1.题目2.题解3.位运算异或4.总结 1.题目 题目链接&#xff1a;LINK 2.题解 哈希数组查漏高斯求和排序位运算异或… 3.位运算异或 class Solution { public:int missingNumber(vector<int>& nums) {int ret 0;for…

[Android]项目打包APK时报错PKCS12 keystore not in version 3 format

报错&#xff1a; PKCS12 keystore not in version 3 format Execution failed for task :app:packageRelease. > A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable > com.android.ide.commo…

Java客户端SpringDataRedis(RedisTemplate)上手

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

AI图书推荐:终极ChatGPT企业手册—借助Python和Java实现

《终极ChatGPT企业手册—借助Python和Java实现》&#xff08;Ultimate ChatGPT Handbook for Enterprises&#xff09;是一本关于ChatGPT的手册&#xff0c;旨在帮助企业利用AI能力、提示工程和ChatGPT的解决方案循环来改变企业景观。这本书提供了深入探讨ChatGPT的演变、能力以…

Linux 实验报告3-4

&#xff08;大家好&#xff0c;今天我们来学习Linux的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 目录 实验三 vi编辑器 一、实验目的 二、实验内容 三、主要实验步骤 实验报告 1.进入 vi。 2.建立一个文件&…

磁盘管理后续——盘符漂移问题解决

之前格式化磁盘安装了文件系统&#xff0c;且对磁盘做了相应的挂载&#xff0c;但是服务器重启后挂载信息可能有问题&#xff0c;或者出现盘符漂移、盘符变化、盘符错乱等故障&#xff0c;具体是dev/sda, sdb, sdc 等等在某些情况下会混乱掉 比如sda变成了sdb或者sdc变成了sdb等…

贪心算法[1]

首先用最最最经典的部分背包问题来引入贪心的思想。 由题意可知我们需要挑选出价值最大的物品放入背包&#xff0c;价值即单位价值。 我们需要计算出每一堆金币中单位价值。金币的属性涉及两个特征&#xff0c;重量和价值。 所以我们使用结构体。 上代码。 #include <i…

信息学奥赛初赛天天练-14-阅读程序-字符数组、唯一分解定理应用

更多资源请关注纽扣编程微信公众号 1 2019 CSP-J 阅读程序1 (程序输入不超过数组或字符串定义的范围&#xff1b;判断题正确填√,错误填&#xff1b;除特殊说明外&#xff0c;判断题1.5分&#xff0c;选择题3分&#xff0c;共计40分) 1 输入的字符串只能由小写字母或大写字母组…