Кодер поддерживает генерацию кода для многоскоростных конвертеров частоты дискретизации Фэрроу (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 кГц четыре, с помощью каскада фильтров полуполосы FIR.
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
)