matlab抽取与插值

什么是抽取?

我们假设一个数字信号 x ( n ) , n = 1 , 2 , . . . , N x(n),n=1,2,...,N x(n),n=1,2,...,N共有 N N N个点,抽取就是每个几个点抽1个点,比如2倍抽取,那么抽取后的信号为 y ( n ) , y ( 1 ) = x ( 1 ) , y ( 2 ) = x ( 3 ) , y ( 3 ) = x ( 5 ) , . . . , y ( N / 2 ) = x ( N − 1 ) y(n),y(1)=x(1),y(2)=x(3),y(3)=x(5),...,y(N/2)=x(N-1) y(n),y(1)=x(1),y(2)=x(3),y(3)=x(5),...,y(N/2)=x(N1),可以看到抽取之后信号的长度变短了。

什么是插值?

插值和抽取相反,插值之后信号会变得越来越密集,注意绝对时间长度是不变的。例如数字信号 x ( n ) , n = 1 , 2 , . . . , N x(n),n=1,2,...,N x(n),n=1,2,...,N共有 N N N个点,2倍插值之后,就会变成 2 N 2N 2N个点,但是假设 N N N个点时间向量对应的是 t 0 < t < t 1 t_0<t<t_1 t0<t<t1,那么插值之后对应的时间还是它,只不过采样率提高了。

抽取仿真

假设, x ( n ) = c o s ( 2 π f n ) , f = 1 H z x(n)=cos(2\pi fn),f=1Hz x(n)=cos(2πfn),f=1Hz,信号的采样率 f s = 16 H z f_s=16Hz fs=16Hz,每个周期内可以采到16个点,我们进行 M = 2 M=2 M=2倍的抽取。
抽取可以用matlab的decimate函数。

%% 信号的抽取和插值
f = 1;  %信号频率
fs = 16;%采样频率
N = 33; %采样点数
n = 0:1:N-1;
xn = cos(2*pi*f*n*(1/fs));
figure; 
stem(n,xn); %绘制原信号
title('x(n)');
xlabel('n');
ylabel('amplitude');M = 2; %抽取的倍数
xn1 = decimate(xn,M); %抽取之后的信号
stem(xn1)%注意对上m和xn1
title('进行M=4倍抽取后的x(n)图像')
xlabel('n')
ylabel('幅度')

绘制的信号如下:
在这里插入图片描述

图1 原始信号

在这里插入图片描述

图2 抽取后的信号

插值可以用interp函数

L = 3; %L倍插值
xn2 = interp(xn,L);  %以L倍采样率进行插值
stem(xn2)
title('进行L=3倍插值后的x(n)图像')
xlabel('n')
ylabel('幅度')

3倍插值后的信号
在这里插入图片描述

图3 3倍插值后的信号

指定插值方法的interp1函数使用方法

上面的插值,只需要指定倍数就可以了,matlab还有一种方法能够能够做插值,并且可以指定插值方法
interp1函数是Matlab中用于数据插值的工具,它能够根据给定的一组数据点(x、y),以及所要得到的插值点(xq),计算出插值点对应的函数值(vq)。interp1函数支持的插值方式包括:线性、样条、分段常数、分段线性和分段三次等。其中线性插值是最简单的插值方法,其他插值方法可以满足更高的精度要求。

vq = interp1(x, y, xq) 
vq = interp1(x, y, xq, method) 
vq = interp1(x, y, xq, method, extrapval)

interp1函数的语法格式包含3~5个输入参数和一个输出参数,具体参数说明如下:

  • x:一维向量,表示数据点的自变量;
  • y:一维向量,表示数据点的因变量;
  • xq:一维向量,表示插值点的自变量;
  • method: 字符串,表示插值方式,可选值为‘linear’、‘nearest’、‘next’、‘previous’、‘pchip’、‘cubic’和‘spline’;linter是线性插值,spline是样条插值,pchip是分段多项式插值;
  • extrapval:数字或字符串,表示在插值点xq超出x的范围时用于外推的值,默认为NaN
  • 一维向量,表示插值点对应的函数值

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

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

相关文章

IO 专题

使用try-with-resources语句块&#xff0c;可以自动关闭InputStream [实践总结] FileIUtils 共通方法最佳实践 [实践总结] java 获取在不同系统下的换行符 [实践总结] StreamIUtils 共通方法最佳实践 斜杠“/“和反斜杠“\“的区别 路径中“./”、“…/”、“/”代表的含义…

你真的会数据结构吗:顺序表

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载&#xff0c;请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主&#xff0c;代码兴国&#xff01;❤❤❤ 又和大家见面啦&#xff01;在大家看到这个标题的时候其实就已经发现了&#xff1a;我们的C语言的基础知识大…

【GitHub项目推荐--不错的 Go开源项目】【转载】

开源实时性能分析平台 Pyroscope 是基于 Go 的开源实时性能分析平台&#xff0c;在源码中添加几行代码 pyroscope 就能帮你找出源代码中的性能问题和瓶颈、CPU 利用率过高的原因&#xff0c;调用树展示帮助你理解程序&#xff0c;支持 Go、Python、Ruby 语言。 Pyroscope 可以…

java程序判等问题

注意 equals 和 的区别 对基本类型&#xff0c;比如 int、long&#xff0c;进行判等&#xff0c;只能使用 &#xff0c;比较的是直接值。因为基本类型的值就是其数值。对引用类型&#xff0c;比如 Integer、Long 和 String&#xff0c;进行判等&#xff0c;需要使用 equals 进…

智能解决方案——体脂秤芯片CSU18M91

现在的年轻人爱健身&#xff0c;十分关注身材、形体&#xff0c;减肥、健身成了生活日常&#xff1b;中老年人则关注健康指数、有无病症&#xff0c;实时把握身体情况。现在一台体脂称通过测试体重、体脂、BMI、水分等数据并给出相应提示&#xff0c;并且许多人都将体脂检测数据…

MySQL分组,获取组内最新的10条数据

一、记录 记录一次SQL&#xff0c;最近在项目中遇到了一个相对比较复杂的SQL。 要求依据分组&#xff0c;获取每个分组后的前10条数据。 分组查询最新的数据&#xff0c;应该都做过&#xff0c;但是获取前10条数据&#xff0c;还是没处理过的。 二、处理 2.1 前期数据准备 …

开发知识点-Flutter移动应用开发

支持 安卓 IOS Android 鸿蒙 第一章dart基础章节介绍 移动电商——Flutter-广告Banner组件制作 移动电商——Flutter实战课程介绍 Flutter实例——路由跳转的动画效果

Elment UI的el-table-column表头旁边有点击按钮类似的操作

Elment UI的el-table-column表头旁边有点击按钮类似的操作 <el-table-column fixed"right" label"操作" ><!-- 表头 --> {{-- <template slot"header" header"scope">--}} {{-- <span…

精通 VS 调试技巧,学习与工作效率翻倍!

​ ✨✨ 欢迎大家来到贝蒂大讲堂✨✨ ​ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; ​ 所属专栏&#xff1a;C语言学习 ​ 贝蒂的主页&#xff1a;Betty‘s blog 1. 什么是调试 当我们写代码时候常常会遇见输出结果不符合我们预…

单轴测径仪在线缆电缆测控中的应用

线缆电缆在生产中能进行品质测量与控制&#xff0c;对其生产模式而言&#xff0c;是更为合适的&#xff0c;毕竟其生产模式决定了其任何品质问题出现都会造成产品的品质下降或不合格。要想进行生产高品质的产品&#xff0c;对产线的要求较高。 单轴测径仪作为测控一体&#xff…

安卓开发之自动缩放布局

AutoScalingLayout 适用于 Android 的自动缩放布局。 替换布局&#xff1a; 我们只需要替换根布局所需的自动缩放&#xff0c;子布局也将实现自动缩放。 原始布局AutoScalingLayout相对布局ASRelativeLayout线性布局ASLinearLayoutFrameLayout&#xff08;框架布局&#xff…

项目一:踏上Java开发之旅

文章目录 一、实战概述二、实战步骤任务1&#xff1a;安装配置JDK并开发第一个Java程序步骤一&#xff1a;安装JDK步骤二&#xff1a;配置JDK环境变量步骤三&#xff1a;开发第一个Java程序 课堂练习任务1、打印个人信息任务2、打印直角三角形任务3、打印一颗爱心任务4、打印史…

Linux服务器系统修改SSH端口教程

修改端口号是通过修改SSH的配置文件实现的&#xff0c;在服务器终端先激活root用户&#xff0c;然后输入&#xff1a; vim /etc/ssh/sshd_config找到#Port 22这个位置 键盘按i进入编辑模式 删除掉Port 22前面的#&#xff0c;然后键盘按一下回车键&#xff08;如果没有#可不必…

记一次SPI机制导致的BUG定位【不支持:http://javax.xml.XMLConstants/property/accessExternalDTD】

1、前因 今天在生产环境启用了某个功能&#xff0c;结果发现有个文件上传华为云OBS失败了&#xff0c;报错如下&#xff1a; Caused by: java.lang.IllegalArgumentException: 不支持&#xff1a;http://javax.xml.XMLConstants/property/accessExternalDTDat org.apache.xal…

C++参悟:数值运算相关

数值运算相关 一、概述二、常用数学函数1. 基础运算1. 浮点值的绝对值&#xff08; |x| &#xff09;2. 浮点除法运算的余数3. 除法运算的有符号余数4. 除法运算的有符号余数和最后三个二进制位5. 混合的乘加运算6. 两个浮点值的较大者7. 两个浮点值的较小者8. 两个浮点值的正数…

Grafana loki配置, 无脑版

使用docker部署Grafana loki 1.创建 docker-compose.yml 文件 touch docker-compose.yml写入以下内容 vim touch docker-compose.yml version: "3"networks:loki:services:loki:image: grafana/loki:latestrestart: unless-stoppedports:- "3100:3100"vo…

LeetCode 14.最长公共前缀(python版)

需求 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 “”。 示例 1&#xff1a; 输入&#xff1a;strs [“flower”,“flow”,“flight”] 输出&#xff1a;“fl” 示例 2&#xff1a; 输入&#xff1a;strs [“dog”,“race…

【高效开发工具系列】Intellj IDEA 2023.3 版本

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

curl命令导致你下载的文件为空原因分析

文章目录 1.前言2. 通过curl -O 下载远端文件2.1 执行curl -O下载远端文件2.2 通过curl -v 查看详细的请求和响应的信息 3.通过在curl -O 中增加 -L 参数保证curl能够自动跟踪和请求远端返回的重定向地址4.结论 1.前言 最近在进行线上项目调试的过程中需要安装调试工具&#xf…

HubSpot能不能对接微信公众号?

在当今数字化时代&#xff0c;企业的数字化营销策略不可或缺。其中&#xff0c;HubSpot作为一体化营销平台&#xff0c;是否能与国内最大的社交平台之一——微信公众号进行无缝对接&#xff0c;成为业界关注的焦点。今天运营坛将深入探讨HubSpot与微信公众号的对接流程、Messag…