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 для описания записей спецификации. Для всех спецификаций Найквиста необходимо задать полосу Lth. Это обычно соответствует коэффициенту интерполяции так, чтобы ненулевые выборки upsampler вывод были сохранены.

  • '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, ФК, 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

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

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 для сигнала, выбранного на уровне 19 200 Гц. Задайте дифференциальную задержку 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-фильтра гм от предыдущего примера.

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

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

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

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

Для третьего примера используйте fdesign.interpolator, чтобы разработать минимальный заказ интерполятор Найквиста, который использует окно Kaiser. Для сравнения разработайте многоступенчатый интерполятор также и сравните ответы.

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')

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

Разработайте lowpass интерполятор для коэффициента интерполяции 8. Сравните одноступенчатый проект equiripple с многоступенчатым проектом с тем же коэффициентом интерполяции.

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')

Введенный в R2011a