【Matlab】upsample与downsample函数的功能

目录

1 函数定义

2 采样方法

3 举例与绘图

4 代码实现


1 函数定义

  • upsample:按整数倍数增加采样率
  • downsample:按整数倍数降低采样率

2 采样方法

  • upsample:通过在样本之间插入n - 1个零来增加x的采样率。
  • downsample:降低x的采样率,方法是首先保留第一个采样,然后再保留第一个采样后的每第n个采样。

     注:如果x是矩阵,该函数将每列视为一个单独的序列。

3 举例与绘图

以正弦信号x = sin(t),t = 0:0.1:2π为例进行上采样和下采样计算。上采样倍数为4,下采样倍数为2,通过绘图结果可知上采样的基本原理为等间隔补零,下采样为等间隔抽样。当上采样和下采样倍数相等时,恢复原始信号。

4 代码实现

close all;
t = 0:0.1:2*pi;
x = sin(t);
y = upsample(x,4);
z = downsample(y,2);
w = downsample(y,4);

figure('color','w');
subplot(221);
plot(x,'.g');
title('原始信号');
subplot(222);
plot(y,'.r');
title('4倍upsample信号');
subplot(223);
plot(z,'.b');
title('2倍downsample信号');
subplot(224);
plot(w,'.g');
title('4倍downsample信号');

以上为本人在研究二维时域信号升采样时的学习笔记,尚不能达到预期,后续将继续研究fft后高频补零,再ifft时域的方法。难点在于确定高频的位置。

——2024.04.10

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MATLAB中,抽取和内插是通过下采样和上采样函数实现的。下采样函数是通过抽取信号的每隔n个样本的方法来降低信号的采样率。例如,使用downsample函数,可以将信号A降低采样率为原来的1/n,具体用法如下:Y = downsample(A, n),其中n为降低的倍数。 上采样函数是通过在每个样本之间插入n-1个零值来提高信号的采样率。例如,使用upsample函数,可以将信号A提高采样率为原来的n倍,具体用法如下:Y = upsample(A, n),其中n为提高的倍数。 为了实现非整数倍的抽取和插值,可以使用Kronecker张量积函数kron,将原始数据与插值系数进行乘积运算。例如,将信号A插值为原来的n倍,可以使用Kronecker张量积函数kron(A, [1, 1, ..., 1]),其中[1, 1, ..., 1]为长度为n的向量,表示插值系数。 在MATLAB中,还提供了内插函数interp和下采样函数decimate,可以更方便地完成抽取和内插的过程。使用interp函数可以实现任意倍数的插值,使用decimate函数可以实现任意倍数的抽取。具体用法如下: Y_interp = interp(A, n):将信号A插值为原来的n倍。 Y_decimate = decimate(A, n):将信号A抽取为原来的1/n倍。 通过比较使用自己设计的滤波器与MATLAB内置函数的抽取和内插结果,可以评估滤波器的性能和效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值