【发布时间】:2016-02-29 18:56:33
【问题描述】:
我想在 MATLAB 中使用上采样和低通滤波器来模拟插值器。首先,我通过引入 0 对信号进行了上采样。
现在我想应用一个低通滤波器来进行插值。我设计了以下过滤器:
滤波器正好是归一化频率的 1/8,因为我需要在之后进行下采样。 (按此特定顺序进行上采样插值和下采样是一种特定的练习。)
但是,当我使用函数 filter(myfilter, data) 将此过滤器应用于我的数据时,会生成以下信号:
我真的不知道我的信号发生了什么,因为理论上我知道应该出现一个插值信号。这是我第一次在 MATLAB 中使用滤波器,因为到目前为止我们只有理论并且必须假设理想的滤波器和解析解。
谁能告诉我可能出了什么问题?我使用以下代码:
clear all; close all;
% Settings parameters
fs=10e6;
N=10;
c=3/fs;
k=3;
M=8;
% Settings time and signal
t=0:fs^-1:N*fs^-1;
x=exp(-(t.^2)./(2.*c.^2)); % Gaussian signal
% Upsampling
tu=0:(fs*M)^-1:N*fs^-1;
xu=zeros(1,size(tu,2));
sample_range=1:M:size(xu,2);
for i=1:size(x,2);
xu(sample_range(i))=x(i);
end;
%% Direct Method
xf=filter(lpf5mhz,xu);
【问题讨论】:
标签: matlab filter signal-processing convolution lowpass-filter