Я хочу имитировать интерполятор в MATLAB с использованием upsampling, за которым следует фильтр нижних частот. Сначала у меня был опробованный мой сигнал, введя 0.Применение фильтра нижних частот
Теперь я хочу, чтобы применить фильтр нижних частот для интерполяции. Я разработал следующий фильтр:
Фильтр точно 1/8 от нормированной частоты, потому что мне нужно декодируют позже. (Это специфическая Excersise для повышения частоты дискретизации Interpolate и декодирует в этом порядке.)
Однако, если применить этот фильтр, чтобы мои данные с помощью функции генерируется 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);