上采的两种方法

通常用两种办法上采:
第一种:时域插0 再滤波
将采样率增加到M倍可以通过在信号的两个连续值之间插入M-1个样本来实现。具体可以通过:先在信号的两个连续值之间插入M-1个0,再过低通滤波器来实现。
插0:插0后v(n)的频谱是输入序列x(n)的M次周期性重复折叠。
过低通滤波器的作用:1)从时域上看,平滑波形
2)从频域上看,[-pi/M,pi/M]以外的频谱都是该部分频谱的镜像,因此,通过低通滤波器,可去除镜像,仅保留[-pi/M,pi/M]的频谱。

仿真如下:

n = 0:2019;   % 原始样点个数
f1 = 200;
f2 = 400;
Fs = 8000;
x = 2/3*sin(n*2*pi*f1/Fs)+1/6*sin(n*2*pi*f2/Fs);

%% x 的时域幅度及幅频响应
x_abs = abs(x);
x_fft = fft(x);
xx = (-length(n)/2:length(n)/2-1)/length(n)*Fs;
figure,plot(xx,fftshift(abs(x_fft)));title('序列x(n)的幅频响应');

%% 时域插0,再滤波
% 插0
x_upsample = upsample(x,2,0);
x_upsample_fft = fft(x_upsample);
xx = (-length(x_upsample)/2:length(x_upsample)/2-1)/length(x_upsample)*Fs;
figure;plot(xx,fftshift(abs(x_upsample_fft)));title('时域插0的幅频响应');
% 滤波
coef_filter = [-0.0196112477325528,-0.0286446644379778,0.0128744307915927,0.124863719974687,0.256464256890334,0.315842592572361,0.256464256890334,0.124863719974687,0.0128744307915927,-0.0286446644379778,-0.0196112477325528];
x_filter = conv(coef_filter,x_upsample) ;
x_filter = x_filter(6:end-5);
x_filter_fft = fft(x_filter);
xx = (-length(x_upsample)/2:length(x_upsample)/2-1)/length(x_upsample)*Fs; 
figure;plot(xx,fftshift(abs(x_filter_fft)));title('时域插0,滤波后的幅频响应');

图1
图2
在这里插入图片描述
由图2可知,时域插0使得序列的频谱折叠至一半,然后重复了一次。通过低通滤波将镜像滤除。

第二种:频域补0,再IFFT
频域补0分为序列两端补0,和序列中间补0。
1)在序列两端——低频补零,把能量不为0的信号挤到了高频,序列频率变大。
2)在序列中间——高频补零,高频处有频谱,但是没有能量,仍然是低频有能量,频率不变,只是拓宽频谱。

仿真如下:

%% 频域补零,再ifft
x_add_0 = [zeros(1,1010),fftshift(x_fft),zeros(1,1010)];    % fftshift 把低频放在中间
x_add0_ifft = ifft(fftshift(x_add_0));  % 相当于在序列中间补0,即,在高频补0。高频处有频谱,但是没有能量。
x_add0_ifft_fft = fft(x_add0_ifft);
xx = (-length(x_upsample)/2:length(x_upsample)/2-1)/length(x_upsample)*Fs; 
figure;plot(xx,abs(fftshift(x_add0_ifft_fft)));title('频域补零,再ifft后的幅频响应');

在这里插入图片描述
1. 参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值