Кодер поддерживает генерацию кода для многоскоростных преобразователей частоты дискретизации Farrow (dsp.FarrowRateConverter). dsp.FarrowRateConverter - структура многоскоростного фильтра, реализующая преобразователь частоты дискретизации с произвольным коэффициентом преобразования, определяемым его коэффициентами интерполяции и прореживания.
В отличие от односкоростного фильтра Farrow (см. Односкоростные фильтры Farrow), многоскоростной преобразователь частоты дискретизации Farrow не имеет ввода дробной задержки. Общие сведения об этой структуре фильтра см. в разделе dsp.FarrowRateConverter справочная страница в документации по Toolbox™ системы DSP.
Можно создать код HDL для отдельного dsp.FarrowRateConverter объект или каскад, включающий dsp.FarrowRateConverter объект. В этом разделе приводятся простые примеры для каждого случая.
В следующем примере создается экземпляр автономного преобразователя частоты дискретизации Farrow с фиксированной точкой. Объект преобразуется между двумя стандартными скоростями звука, от 44,1 кГц до 48 кГц. В примере создается как код VHDL, так и стенд тестирования VHDL.
Hm = dsp.FarrowRateConverter(48,44.1); generatehdl(Hm,'InputDataType',numerictype(1,16,15),... 'GenerateHDLTestbench','on')
В следующем примере создается код HDL для каскада, включающего dsp.FarrowRateConverter фильтр. Кодер требует, чтобы dsp.FarrowRateConverter фильтр находится в последнем положении каскада.
Во-первых, интерполировать исходный сигнал 8-kHz на четыре, используя каскад фильтров полусферического диапазона.
Astop = 50; % Minimum stopband attenuation TW = .125; % Transition Width f2 = fdesign.interpolator(4,'Nyquist',4,'TW,Ast',TW,Astop); hfir = design(f2,'multistage','HalfbandDesignMethod','equiripple','Systemobject',true);
dsp.FarrowRateConverter Система object™ вычисляет кусочно-полиномиальную подгонку с использованием коэффициентов интерполяции Лагранжа. N = 3; % Polynomial Order hfar = dsp.FarrowRateConverter(32,44.1,'PolynomialOrder',N)
dsp.FarrowRateConverter фильтр находится в конце каскада.interp_cascade.addStage(hfar); generatehdl(interp_cascade,'InputDataType',numerictype(1,16,15),... 'GenerateHDLTestbench','on');
dsp.FarrowRateConverter Фильтры в интерфейсе пользователяfilterDesigner и filterBuilder в настоящее время не поддерживают dsp.FarrowRateConverter фильтры. Создание кода для dsp.FarrowRateConverter фильтр в пользовательском интерфейсе генерации кода HDL, используйте fdhdltool , как в следующем примере:
m = dsp.FarrowRateConverter(48,44.1); fdhdltool(m,numerictype(1,16,15));
fdhdltool открывает диалоговое окно Генерировать ЛПВП (Generate HDL) для dsp.FarrowRateConverter фильтр, как показано на следующем рисунке.

Следующие параметры создания кода не поддерживаются для dsp.FarrowRateConverter фильтры и отключены в интерфейсе пользователя:
Использование регистров трубопроводов (AddPipelineRegisters)
Распределенная арифметическая архитектура (DARadix и (DALUTPartition))
Полностью или частично последовательные архитектуры (SerialPartition и ReuseAccum)
Несколько тактовых входов (ClockInputs)