Здравствуйте,
подскажите как сделать так, чтобы АЧХ (CIC,CFIR,и результирующая) отображались визуально "гладко, без изломов" при увеличении для моего примера при больших коэффициентах децимации.
Начальная частота семплирования Fs = 100MHz. На выходе хочу, например, 10kHz.
data @100MHz -> CIC (decimate by 5000) -> CFIR (decimate by 2) -> data @10kHz
P.S.
можно ли отобразить результат последнего fvtool(CICDecim, CICCompDecim, filtCasc, ... от 0 до целевой 10кГц?
Код
clc, clear, close all;
%% CIC
Fs_init = 100e6; % Hz
CIC_output_sample_rate = 20e3; % integer multiple of Fs_init
CIC_decim_factor = Fs_init/CIC_output_sample_rate; % decimatin factor
CICDecim = dsp.CICDecimator( ...
'DecimationFactor', CIC_decim_factor, ...
'DifferentialDelay', 1, ... % нули АЧХ cic будут на частотах кратных 20кГц
'NumSections', 4);
Gain_CIC = gain(CICDecim);
f_CICDecim = fvtool(CICDecim,'Analysis','freq','ShowReference','off');
f_CICDecim.NormalizeMagnitudeto1 = 'on';
legend(f_CICDecim,'CIC decimator');
%% CFIR with decimation by 2
fs = CIC_output_sample_rate; % sample rate @compensator input
fPass = 2e3;
fStop = 4e3;
CICCompDecim = dsp.CICCompensationDecimator(CICDecim, ...
'DecimationFactor',2, ...
'PassbandFrequency',fPass, ...
'StopbandFrequency',fStop, ...
'PassbandRipple', 0.25, ...
'StopbandAttenuation', 80, ...
'SampleRate',fs);
f_CICCompDecim = fvtool(CICCompDecim,'Analysis','freq');
legend(f_CICCompDecim, 'CIC compensator decimator');
filtCasc = dsp.FilterCascade(CICDecim,CICCompDecim);
f = fvtool(CICDecim, CICCompDecim, filtCasc, ...
'ShowReference','off', ...
'Fs', [fs*CIC_decim_factor fs fs*CIC_decim_factor]);
f.NormalizeMagnitudeto1 = 'on';
legend(f,'CIC Decimator','CIC Compensation Decimator', ...
'Overall Response');
-спасибо
Сообщение отредактировал dcs - Aug 7 2018, 14:54
Эскизы прикрепленных изображений