2015-11-27 4 views
2

У меня есть вопрос о моем фильтре низких частот. Я хочу, чтобы интерполировать и повышающая дискретизация сигнала, однако, когда я использую фильтр низких частот он лишь частично интерполяцию образцы:Фильтр нижних частот не интерполирует скважину

Interpolation

код моего фильтра выглядит следующим образом:

function Hd = lpf5mhz3 
%LPF5MHZ3 Returns a discrete-time filter object. 

% MATLAB Code 
% Generated by MATLAB(R) 8.6 and the Signal Processing Toolbox 7.1. 
% Generated on: 27-Nov-2015 14:28:27 

% Equiripple Lowpass filter designed using the FIRPM function. 

% All frequency values are in Hz. 
Fs = 10000000; % Sampling Frequency 

N  = 20;  % Order 
Fpass = 1200000; % Passband Frequency 
Fstop = 1250000; % Stopband Frequency 
Wpass = 1;  % Passband Weight 
Wstop = 1;  % Stopband Weight 
dens = 20;  % Density Factor 

% Calculate the coefficients using the FIRPM function. 
b = firpm(N, [0 Fpass Fstop Fs/2]/(Fs/2), [1 1 0 0], [Wpass Wstop], ... 
      {dens}); 
Hd = dfilt.dffir(b); 

% [EOF] 

Ожидаемый результат можно увидеть в моем предыдущем вопросе: Applying low pass filter

Кто-нибудь знает, как это решить? первый взгляд

ответ

0

Давайте на вашем нефильтрованного дискретизированным сигнала xu (от your previous question) в частотной области, чтобы лучше понять, что происходит:

enter image description here

Как вы можете видеть, что есть 8 репликаций оригинала низкого - частотный сигнал (часто называемый образами) на Fs/8, 2*Fs/8, ..., 7*Fs/8. Эти изображения включают как положительные, так и отрицательные частотные составляющие, поэтому изображение вокруг Fs/8 простирается от приблизительно Fs/16 до 3*Fs/16.

Соответственно, дизайн частота среза вашего фильтра должна быть около Fs/(2*M) = Fs/16 или

Fpass = 1200000/2; % Passband Frequency 
Fstop = 1250000/2; % Stopband Frequency 

Полученная величина отклика фильтра разработан с:

N = 20; 
b = firpm(N, [0 Fpass Fstop Fs/2]/(Fs/2), [1 1 0 0], [Wpass Wstop], ... 
      {dens});  

можно увидеть freqz(b,1):

enter image description here

Как вы можете заметить, фильтр обеспечивает очень мало затухания в полосе стоп-сигнала. Изображения, о которых я упоминал ранее, будут, тем не менее, обеспечивать довольно значительный вклад в отфильтрованный вывод. Увеличение количества коэффициентов поможет немного, но вы, вероятно, узнаете, что вам нужно много коэффициентов (порядка 500-1000), чтобы получить приличное ослабление затухания и острая полоса перехода.

Для сравнения, коэффициенты фильтра генерируются с fir1(60, 0.125) (как использовано в my previous answer) обеспечивает гораздо лучшее затухание, где изображения сильнейшие в частотной области, но также имеет гораздо более широкую полосу перехода и использует больше коэффициентов фильтра. Полученный отфильтрованный сигнал на частоте затем:

enter image description here

Так вопрос тогда дошел до компромисса между числом коэффициентов (которые влияют на требования вычислительного и задержку фильтра), ширину полосы передачи и ослабление полосы пропускания. Чтобы правильно ответить, нам нужно знать, каковы требования вашего конкретного приложения.

При условии, что вы пытаетесь интерполировать сигналы с аналогичной полосой пропускания, как половинный гауссовый импульс, который вы использовали в качестве входного сигнала (таким образом, не требуя такой резкой полосы перехода, как указано 50000 Гц), и число коэффициентов является основной задачей, вы можете найти следующий дизайн выполняет немного лучше (хотя это все еще есть некоторые существенные артефакты) для того же числа коэффициентов (т.е. 21):

Fpass = 550000/2; 
Fstop = 1250000/2; 
Wpass = 1; 
Wstop = 22; 
N = 20; 
b = firpm(N, [0 Fpass Fstop Fs/2]/(Fs/2), [1 1 0 0], [Wpass Wstop], ... 
      {dens});  

конечно, увеличение числа коэффициентов (а также ослабление требований к полосе пропускания, как было сделано выше) дополнительно уменьшит ошибку фильтра интерполяции. В качестве альтернативы, использование многоступенчатых фильтров (например, увеличение до 2, затем фильтра три раза в каскаде) также может уменьшить ошибку интерполяции с тем же общим числом коэффициентов и шириной полосы пропускания.