信号的升采样和降采样

为什么需要升采样

  • 频谱分析和处理需求:在某些信号处理应用中(例如滤波、调制解调等),需要更高的采样率以更准确地捕捉信号的特征或频谱信息。
  • 信号的重建与插值:当需要从离散信号重建或插值出更高分辨率的信号时,升采样是必要的。
  • 防止混叠(Aliasing)效应:当对信号进行频谱扩展或非线性变换时,信号的频谱可能会扩展到更高的频率范围。此时,为防止混叠效应,需要先升采样,再进行变换。
  • 多速率信号处理系统:在多速率信号处理系统中,不同模块可能要求不同的采样率。例如,在通信系统中,接收端可能需要对信号进行升采样以匹配发射端的采样率。

为什么需要降采样

  • 减少数据量和存储需求:降采样后,数据的样本数减少,因而数据量也随之减少。这在存储和传输数据时可以大大节省空间和带宽。
  • 提高处理效率:较低的采样率意味着需要处理的数据量减少,从而提高了处理速度和效率。在许多实时系统中,快速处理是关键需求,通过降采样可以减小计算负担,提高系统响应速度。
  • 简化后续处理:某些信号处理算法(如滤波、特征提取、模式识别等)在较低的采样率下实现可能更加简单和高效。
  • 带宽限制:在通信系统中,传输通道的带宽是有限的。降采样可以使信号的频谱范围适应带宽限制,从而有效地利用带宽进行信号传输。
  • 匹配不同的系统需求:在多速率系统中,不同模块可能需要不同的采样率。例如,传感器采集到的高采样率信号可能需要降采样以适应后续处理设备的采样率。

如何升采样和降采样

  • 升采样流程
    插零:在原始信号样本之间插入零值,增加信号的采样率。
    低通滤波:使用低通滤波器去除由插零产生的高频成分(滤掉原采样频率一半以上的成分)。

  • 降采样流程
    低通滤波:使用反混叠滤波器,将信号的高频成分去除(滤掉新采样频率一半以上的成分),确保信号平滑。
    抽取:按照降采样因子 ( M ) 抽取信号样本。
    (参考:信号的采样和插值还原

clear all;close all;clc; %清理工作区,关闭所有窗口,清空文本

Fs = 500;
t = 0:1/Fs:1-1/Fs;
x = cos(2*pi*10*t - pi/4);

% 绘制原信号和线性幅度谱
plot_fig(1, x, Fs, '原信号时域图', '原信号幅度谱')

% 绘制降采样信号和线性幅度谱
coeffs2 = firls(5,[0 0.5 0.52 1],[1 1 0 0]); % FIR filter
y = filter(coeffs2,1,x);
y = downsample(y, 2);

Fs = 250;
plot_fig(2, y, Fs, '降采样信号时域图', '降采样信号幅度谱')


% 绘制升采样信号和线性幅度谱
y = upsample(y, 2);
coeffs1 = firls(5,[0 0.25 0.26 1],[1 1 0 0]); % FIR filter
y = filter(coeffs1,1,y);

Fs = 500;
plot_fig(3, y, Fs, '升采样信号时域图', '升采样信号幅度谱')

function [] = plot_fig(index, x, Fs, title1, title2)
    % 计算单边幅度谱
    temp = abs(fft(x));
    ly = length(temp);
    temp = temp(1:ly/2+1);
    temp(2:end-1) = 2 * temp(2:end-1);
    f = (0:ly/2)/ly*Fs;
    % 绘图
    figure(index)
    subplot(211)
    plot(x)   
    title(title1)
    subplot(212)
    plot(f,temp)   
    title(title2)
end

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值