exponenta event banner

fdesign.interpolator

Спецификация фильтра интерполятора

Синтаксис

D = fdesign.interpolator(L)
D = fdesign.interpolator(L,RESPONSE)
D = fdesign.interpolator(L,CICRESPONSE,D)
D = fdesign.interpolator(L,RESPONSE,spec)
D = fdesign.interpolator(...,spec,specvalue1,specvalue2,...)
D = fdesign.interpolator(...,Fs)
d = fdesign.interpolator(...,MAGUNITS)

Описание

D = fdesign.interpolator(L) создает объект спецификации фильтра интерполятора D с InterpolationFactor свойство, равное целому положительному значению L и Response свойство имеет значение 'Nyquist'. Значения по умолчанию для ширины перехода и затухания полосы останова в конструкции Найквиста составляют 0,1δ радиан/образец и 80 дБ. Если L не указан, L по умолчанию - 2.

D = fdesign.interpolator(L,RESPONSE) создает объект спецификации интерполятора с коэффициентом интерполяции L и 'Response' свойство имеет один из поддерживаемых типов.

D = fdesign.interpolator(L,CICRESPONSE,D) создает объект спецификации интерполятора CIC или CIC-компенсатора с коэффициентом интерполяции, L, и 'Response' свойство равно 'CIC' или 'CICCOMP'. D - дифференциальная задержка. Дифференциальная задержка, D, должен предшествовать любой опции спецификации.

D = fdesign.interpolator(L,RESPONSE,spec) конструирует объект D и устанавливает его Specification свойство для spec. Записи в spec представляют различные характеристики отклика фильтра, такие как порядок фильтров, которые управляют конструкцией фильтра. Действительные записи для spec зависит от типа конструкции объекта спецификации.

При добавлении spec входной аргумент, необходимо также добавить RESPONSE входной аргумент.

Поскольку вы проектируете многоскоростные фильтры, доступные опции спецификации не совпадают со спецификациями для проектирования односкоростных фильтров с такими методами проектирования, как fdesign.lowpass. Параметры не чувствительны к регистру.

Коэффициент интерполяции L отсутствует в параметрах спецификации. Различные ответы фильтра поддерживают различные спецификации. В следующей таблице перечислены поддерживаемые типы ответов и параметры спецификаций.

Метод проектирования

Допустимые параметры спецификации

'Arbitrary Magnitude'

Посмотрите fdesign.arbmag для описания записей спецификации.

  • 'N,F,A' (опция по умолчанию)

  • 'N,B,F,A'

'Arbitrary Magnitude and Phase'

Посмотрите fdesign.arbmagnphase для описания записей спецификации.

  • 'N,F,H' (опция по умолчанию)

  • 'N,B,F,H'

'Bandpass'

Посмотрите fdesign.bandpass для описания записей спецификации.

  • 'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2' (опция по умолчанию)

  • 'N,Fc1,Fc2'

  • 'N,Fst1,Fp1,Fp2,Fst2'

'Bandstop'

Посмотрите fdesign.bandstop для описания записей спецификации.

  • 'N,Fc1,Fc2'

  • 'N,Fp1,Fst1,Fst2,Fp2'

  • 'Fp1,Fst1,Fst2,Fp2,Ap1,Ast,Ap2' (опция по умолчанию)

'CIC'

'Fp,Ast' - Только действительная спецификация. Fp - частота полосы пропускания и Ast - затухание полосы останова в децибелах.

Чтобы указать интерполятор CIC, включите дифференциальную задержку после 'CIC' перед спецификацией фильтра: 'Fp,Ast'. Например:
d = fdesign.interpolator(2,'cic',4,'Fp,Ast',0.4,40);

'CIC Compensator'

Посмотрите fdesign.ciccomp для описания записей спецификации.

  • 'Fp,Fst,Ap,Ast' (опция по умолчанию)

  • 'N,Fc,Ap,Ast'

  • 'N,Fp,Ap,Ast'

  • 'N,Fp,Fst'

  • 'N,Fst,Ap,Ast'

Чтобы указать интерполятор CIC-компенсатора, включите дифференциальную задержку после 'CICCOMP' и перед спецификацией фильтра. Например:
d = fdesign.interpolator(2,'ciccomp',4);

'Differentiator'

'N' - порядок фильтрации

'Gaussian'

'Nsym,BTNsym - порядок фильтра в символах и BT - продукт времени символа полосы пропускания.

Спецификации должно предшествовать целое число SamplesPerSymbol.

'Halfband

Посмотрите fdesign.halfband для описания записей спецификации.

  • 'TW,Ast' (опция по умолчанию)

  • 'N,TW'

  • 'N'

  • 'N,Ast'

При использовании метода квазилинейного проектирования БИХ iirlinphase, при спецификации полуполосы коэффициент интерполяции должен быть равен 2.

'Highpass'

Посмотрите fdesign.highpass для описания записей спецификации.

  • 'Fst,Fp,Ast,Ap' (опция по умолчанию)

  • 'N,F3db'

  • 'N,Fc'

  • 'N,Fc,Ast,Ap'

  • 'N,Fp,Ast,Ap'

  • 'N,Fst,Ast,Ap'

  • 'N,Fst,Fp'

  • 'N,Fst,Ast,Ap'

  • 'N,Fst,Fp,Ast'

'Hilbert'

Посмотрите fdesign.hilbert для описания записей спецификации.

  • 'N,TW' (опция по умолчанию)

  • 'TW,Ap'

'Inverse-sinc Lowpass'

Посмотрите fdesign.isinclp для описания записей спецификации.

  • 'Fp,Fst,Ap,Ast' (опция по умолчанию)

  • 'N,Fc,Ap,Ast'

  • 'N,Fp,Fst'

  • 'N,Fst,Ap,Ast'

'Inverse-sinc Highpass'

Посмотрите fdesign.isinchp для описания записей спецификации.

  • 'Fst,Fp,Ast,Ap' (опция по умолчанию)

  • 'N,Fc,Ast,Ap'

  • 'N,Fst,Fp'

  • 'N,Fst,Ast,Ap'

'Lowpass'

Посмотрите fdesign.lowpass для описания записей спецификации.

  • 'Fp,Fst,Ap,Ast' (опция по умолчанию)

  • 'N,F3dB'

  • 'N,Fc'

  • 'N,Fc,Ap,Ast'

  • 'N,Fp,Ap,Ast'

  • 'N,Fp,Fst'

  • 'N,Fp,Fst,Ap'

  • 'N,Fp,Fst,Ast'

  • 'N,Fst,Ap,Ast'

'Nyquist'

Посмотрите fdesign.nyquist для описания записей спецификации. Для всех спецификаций Nyquist необходимо указать диапазон Lth. Это обычно соответствует коэффициенту интерполяции, так что ненулевые выборки выходного сигнала повышающей дискретизации сохраняются.

  • 'TW,Ast' (опция по умолчанию)

  • 'N'

  • 'N,Ast'

  • 'N,Ast'

D = fdesign.interpolator(...,spec,specvalue1,specvalue2,...) создает объект D и устанавливает свои технические характеристики во время строительства.

D = fdesign.interpolator(...,Fs) добавляет аргумент Fs, указанный в Гц, для определения используемой частоты дискретизации. В этом случае все частоты в спецификациях также представлены в Гц.

d = fdesign.interpolator(...,MAGUNITS) задает единицы измерения для любой спецификации величины, указанной во входных аргументах. MAGUNITS может быть одним из

  • 'linear' - задать величину в линейных единицах.

  • 'dB' - задать величину в дБ (децибелах).

  • 'squared' - указать величину в энергоблоках.

Когда вы опускаете MAGUNITS аргумент, fdesign предполагает, что все величины находятся в децибелах. Обратите внимание, что fdesign сохраняет все значения в децибелах (при необходимости преобразуя их в децибелы) независимо от способа задания значений.

Примеры

свернуть все

В этих примерах показано, как создавать интерполяционные объекты спецификации фильтра.

Сначала создайте объект спецификации по умолчанию без использования входных аргументов, за исключением коэффициента интерполяции l.

l = 2;
d = fdesign.interpolator(l); %#ok

Теперь создайте объект, передав опцию спецификации fst1, fp1, fp2, fst2, ast1, ap, ast2 и конструкцию - результирующий объект использует значения по умолчанию для всех спецификаций фильтра. При включении спецификации необходимо указать входной аргумент конструкции.

d = fdesign.interpolator(8,'bandpass','fst1,fp1,fp2,fst2,ast1,ap,ast2'); %#ok

Создайте другой объект интерполяционного фильтра, передав значения спецификации объекту, а не принимая значения по умолчанию для, в данном случае, fp, fst, ap, ast.

d = fdesign.interpolator(3,'lowpass',.45,0.55,.1,60); %#ok

Теперь передайте спецификации фильтра, которые соответствуют спецификациям - n, fc, ap, ast.

d = fdesign.interpolator(3,'ciccomp',1,2,'n,fc,ap,ast',...
20,0.45,.05,50);

С помощью объекта спецификации в рабочей области создайте интерполятор, используя метод конструирования equiripple.

hm = design(d,'equiripple','SystemObject',true); %#ok

Передайте новый тип спецификации для фильтра, указав порядок фильтра.

d = fdesign.interpolator(5,'CIC',1,'fp,ast',0.05,55);

С помощью объекта спецификации в рабочей области создайте интерполятор с помощью метода конструирования с несколькими секциями.

hm = design(d,'multisection','SystemObject',true); %#ok

В этом примере частота выборки указывается как самый правый входной аргумент. Здесь устанавливается значение 1000 Гц.

d = fdesign.interpolator(8,'bandpass','fst1,fp1,fp2,fst2,ast1,ap,ast2',...
    0.25,0.35,.55,.65,50,.05,1e3); %#ok

В этом, последнем примере, используйте линейную опцию для объекта спецификации фильтра и укажите затухание пульсаций полосы останова в линейной форме.

d = fdesign.interpolator(4,'lowpass','n,fst,ap,ast',15,0.55,.05,0.001,...
    'linear'); %#ok

Теперь сконструируйте CIC-интерполятор для сигнала, дискретизированного на 19200 Гц. Задайте дифференциальную задержку 2 и установите ослабление информации за пределами 50 Гц не менее 80 дБ.

% The filter object sampling frequency is (l x fs) where fs is the sampling frequency of the input signal.

dd  = 2;     % Differential delay.
fp  = 50;    % Passband of interest.
ast = 80;    % Minimum attenuation of alias components in passband.
fs  = 600;   % Sampling frequency for input signal.
l   = 32;    % Interpolation factor.
d   = fdesign.interpolator(l,'cic',dd,'fp,ast',fp,ast,l*fs);
hm = design(d,'SystemObject',true);  %Use the default design method.

В следующем примере получается компенсатор CIC минимального порядка, который интерполирует на 4 и компенсирует падение полосы пропускания для фильтра CIC hm из предыдущего примера.

nsecs = hm.NumSections;
d = fdesign.interpolator(4,'ciccomp',dd,nsecs,...
50,100,0.1,80,fs);
hmc = design(d,'equiripple','SystemObject',true);

hmc предназначен для компенсации hm. Чтобы увидеть эффект компенсирующего фильтра CIC, используйте fvtool для анализа обоих фильтров по отдельности и включения реакции составного фильтра путем каскадирования hm и hmc.

hfvt = fvtool(hmc,hm,cascade(hmc,hm),'fs',[fs,l*fs,l*fs],'ShowReference','off');
legend(hfvt,'CIC Compensator','CIC Interpolator',...
'Overall Response');

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 3 objects of type line. These objects represent CIC Compensator, CIC Interpolator, Overall Response.

fvtool возвращается с этим графиком.

В третьем примере используйте fdesign.interpolator для создания интерполятора Найквиста минимального порядка, использующего окно Кайзера. Для сравнения создайте многоступенчатый интерполятор и сравните ответы.

l   = 15;   % Set the interpolation factor and the Nyquist band.
tw  = 0.05; % Specify the normalized transition width.
ast = 40;   % Set the minimum stopband attenuation in dB.
d   = fdesign.interpolator(l,'nyquist',l,tw,ast);
hm = design(d,'kaiserwin','SystemObject',true);
hm2 = design(d,'multistage','SystemObject',true); % Design the multistage interpolator.
hfvt = fvtool(hm,hm2);
legend(hfvt,'Kaiser Window','Multistage')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 3 objects of type line. These objects represent Kaiser Window, Multistage.

fvtool показывает оба ответа.

Создайте интерполятор нижних частот для коэффициента интерполяции 8. Сравните одноступенчатую схему с многоступенчатой конструкцией с тем же коэффициентом интерполяции.

l = 8; % Interpolation factor.
d = fdesign.interpolator(l,'lowpass');
hm1 = design(d,'equiripple','SystemObject',true);
% Use halfband filters whenever possible.
hm2 = design(d,'multistage','usehalfbands',true,'SystemObject',true);
hfvt = fvtool(hm1,hm2);
legend(hfvt,'Single-Stage Equiripple','Multistage')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 3 objects of type line. These objects represent Single-Stage Equiripple, Multistage.

Представлен в R2011a