Кодер поддерживает генерацию кода для мультирейтовых преобразователей частоты дискретизации Фэрроу (dsp.FarrowRateConverter
). dsp.FarrowRateConverter
является многоскоростной фильтр структурой, которая реализует преобразователь частоты дискретизации с произвольным коэффициентом преобразования, определяемым его интерполяцией и факторами десятикратного уменьшения.
В отличие от односкоростного фильтра Фэрроу (см. «Односкоростные фильтры Фэрроу»), многократный преобразователь частоты дискретизации Фэрроу не имеет дробной задержки входа. Для получения общей информации об этой структуре фильтра смотрите dsp.FarrowRateConverter
страница с описанием в документации DSP System Toolbox™.
Можно сгенерировать HDL-код для автономного dsp.FarrowRateConverter
объект или каскад, включающий dsp.FarrowRateConverter
объект. В этом разделе приведены простые примеры для каждого случая.
В следующем примере создается экземпляр автономного преобразователя частоты дискретизации Фэрроу с фиксированной точкой. Объект преобразуется между двумя стандартными скоростями звука, от 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
открывает диалоговое окно Сгенерировать HDL для dsp.FarrowRateConverter
фильтр, как показано на следующем рисунке.
Следующие опции генерации кода не поддерживаются для dsp.FarrowRateConverter
фильтры и отключены в пользовательском интерфейсе:
Использование регистров трубопроводов (AddPipelineRegisters
)
Распределённая арифметическая архитектура (DARadix
и (DALUTPartition
))
Полностью или частично последовательные архитектуры (SerialPartition
и ReuseAccum
)
Входы нескольких синхроимпульсов (ClockInputs
)