多速率系统中的两个基本操作是减小/下采样(抽取)和增加(内插)信号的采样速率。
在下采样中,我们从恒定时间信号x(t)开始,将其转换为一系列测试x [n];在抽取过程中,我们从离散时间信号x [n]开始,并将其转换为另一个离散时间信号y [n],包括x [n]的子测试。
我们将使用decimate()和stem()函数。
decimate()函数用于将采样率降低整数倍。
Syntax: a = decimate(x, r)
Parameters:
- x: input signal,
- r: decimation factor
Return Value: Decimated Signal
stem()函数用于绘制离散序列数据。
Syntax: stem(y)
Parameter:
- y: data sequence
Return Value: Plot of data sequence in discrete time
用于下采样的MATLAB代码:
% Time vector
t = 0 : .00025 : 1;
% Original signal
x = sin(2 * pi * 50 * t) + sin(2 * pi * 100 * t);
% Reduces the sample rate of original signal by factor of 4
y = decimate(x, 4);
figure()
subplot(2, 2, 1);
% Plot few samples of the Original signal
stem(x(1:75))
title('Original Signal');
subplot(2, 2, 2);
% Plots few samples of the Decimated signal
stem(y(1:75));
title('Decimated Signal');
输出