Информация о Системном объекте фильтра
Получите формат short и информацию о длинном формате о фильтре.
d = fdesign.lowpass;
f = design(d,'SystemObject',true);
info(f)ans = 6x35 char array
'Discrete-Time FIR Filter (real) '
'------------------------------- '
'Filter Structure : Direct-Form FIR'
'Filter Length : 43 '
'Stable : Yes '
'Linear Phase : Yes (Type 1) '
info(f,'long')ans = 45x45 char array
'Discrete-Time FIR Filter (real) '
'------------------------------- '
'Filter Structure : Direct-Form FIR '
'Filter Length : 43 '
'Stable : Yes '
'Linear Phase : Yes (Type 1) '
' '
'Design Method Information '
'Design Algorithm : equiripple '
' '
'Design Options '
'Density Factor : 16 '
'Maximum Phase : false '
'Minimum Order : any '
'Minimum Phase : false '
'Stopband Decay : 0 '
'Stopband Shape : flat '
'SystemObject : true '
'Uniform Grid : true '
' '
'Design Specifications '
'Sample Rate : N/A (normalized frequency) '
'Response : Lowpass '
'Specification : Fp,Fst,Ap,Ast '
'Passband Ripple : 1 dB '
'Stopband Atten. : 60 dB '
'Passband Edge : 0.45 '
'Stopband Edge : 0.55 '
' '
'Measurements '
'Sample Rate : N/A (normalized frequency)'
'Passband Edge : 0.45 '
'3-dB Point : 0.46957 '
'6-dB Point : 0.48314 '
'Stopband Edge : 0.55 '
'Passband Ripple : 0.89042 dB '
'Stopband Atten. : 60.945 dB '
'Transition Width : 0.1 '
' '
'Implementation Cost '
'Number of Multipliers : 43 '
'Number of Adders : 42 '
'Number of States : 42 '
'Multiplications per Input Sample : 43 '
'Additions per Input Sample : 42 '
Примечание: Если вы используете R2016a или более ранний релиз, заменяете каждый вызов объекта с эквивалентным синтаксисом шага. Например, obj(x) становится step(obj,x).
Создайте dsp.CICDecimator Система object™ с DecimationFactor установите на 4. Десятикратно уменьшите сигнал от 44,1 кГц до 11,025 кГц.
cicdec = dsp.CICDecimator(4);
cicdec.FixedPointDataType = 'Minimum section word lengths';
cicdec.OutputWordLength = 16;Создайте фиксированную точку синусоидальный входной сигнал 1 024 выборок с частотой дискретизации 44.1e3 Гц.
Fs = 44.1e3;
% 0.0232 sec signal
n = (0:1023)';
x = fi(sin(2*pi*1e3/Fs*n),true,16,15);Создайте dsp.SignalSource объект.
src = dsp.SignalSource(x,64);
Десятикратно уменьшите выход с 16 выборками на систему координат.
y = zeros(16,16); for ii = 1:16 y(ii,:) = cicdec(src()); end
Постройте первую систему координат исходных и подкошенных сигналов. Выходная задержка является 2 выборками.
D = cicdec.DecimationFactor; diffDelay = cicdec.DifferentialDelay; NumSect = cicdec.NumSections; gainCIC = ... (D*diffDelay)^NumSect; stem(n(1:56)/Fs,double(x(4:59))) hold on; stem(n(1:14)/(Fs/D),double(y(1,3:end))/gainCIC,... 'r','filled') xlabel('Time (sec)') ylabel('Signal Amplitude') legend('Original signal',... 'Decimated signal',... 'Location','north') hold off;

Используя info метод в 'long' формат, получите размеры слова и дробные длины разделов фильтра фиксированной точки и фильтра выход.
info(cicdec,'long')ans =
'Discrete-Time FIR Multirate Filter (real)
-----------------------------------------
Filter Structure : Cascaded Integrator-Comb Decimator
Decimation Factor : 4
Differential Delay : 1
Number of Sections : 2
Stable : Yes
Linear Phase : Yes (Type 1)
Implementation Cost
Number of Multipliers : 0
Number of Adders : 4
Number of States : 4
Multiplications per Input Sample : 0
Additions per Input Sample : 2.5
Fixed-Point Info
Section word lengths : 20 19 19 18
Section fraction lengths : 15 14 14 13
Output word length : 16
Output fraction length : 11
'
Примечание: Если вы используете R2016a или более ранний релиз, заменяете каждый вызов объекта с эквивалентным step синтаксис. Например, obj(x) становится step(obj,x).
Создайте dsp.CICInterpolator Система object™ с InterpolationFactor установите на 2. Интерполируйте сигнал фиксированной точки на коэффициент 2 от 22,05 кГц до 44,1 кГц.
cicint = dsp.CICInterpolator(2)
cicint =
dsp.CICInterpolator with properties:
InterpolationFactor: 2
DifferentialDelay: 1
NumSections: 2
FixedPointDataType: 'Full precision'
Создайте dsp.SineWave объект с SampleRate установите на 22,05 кГц, SamplesPerFrame установите на 32, и OutputDataType установите на 'Custom'. Чтобы сгенерировать сигнал фиксированной точки, установите CustomOutputDataType свойство к numerictype объект. В целях этого примера, установленного значение к numerictype([],16). Дробная длина вычисляется на основе значений сгенерированного синусоидального сигнала дать самую лучшую точность.
Чтобы сгенерировать сигнал фиксированной точки, установите Method свойство dsp.SineWave возразите против 'Table lookup'. Этот метод генерации синусоидального сигнала требует, чтобы период каждой синусоиды в выходе был равномерно делимым к периоду расчета. Таким образом, должно быть целочисленное значение для каждого канала i = 1, 2..., N. Значение равняется , переменная частота синусоидального сигнала, и частота дискретизации сигнала. Другими словами, отношение должно быть целое число. Для получения дополнительной информации смотрите раздел Algorithms по dsp.SineWave объектная страница.
В этом примере, установлен в 22 050 Гц и установлен в 1 050 Гц.
Fs = 22.05e3; sine = dsp.SineWave('Frequency',1050,... 'SampleRate',Fs,... 'SamplesPerFrame',32,... 'Method','Table lookup',... 'OutputDataType','Custom')
sine =
dsp.SineWave with properties:
Amplitude: 1
Frequency: 1050
PhaseOffset: 0
ComplexOutput: false
Method: 'Table lookup'
TableOptimization: 'Speed'
SampleRate: 22050
SamplesPerFrame: 32
OutputDataType: 'Custom'
Show all properties
В каждом цикле итерации потока в системе координат фиксированной точки синусоидальный сигнал производится на уровне 22,05 кГц. Интерполируйте переданный потоком сигнал на коэффициент 2. Интерполированный выход имеет 64 выборки на систему координат.
for i = 1:16 x = sine(); y = cicint(x); end
Выход фильтра интерполяции CIC усилен определенным значением усиления. Можно определить это значение с помощью gain функция. Это усиление равняется усилению этап интерполяции CIC фильтрует, и равняется , где коэффициент интерполяции, дифференциальная задержка, и количество разделов интерполятора CIC.
gainCIC = gain(cicint)
gainCIC = 2
Чтобы настроить этот усиленный выход и совпадать с ним к амплитуде исходного сигнала, разделите CIC интерполированный сигнал с вычисленным значением усиления.
Сравните последние системы координат оригинала и интерполированных сигналов. При графическом выводе объясните выходную задержку 2 выборок.
n = (0:63)'; stem(n(1:31)/Fs,double(x(1:31)),'r','filled') hold on; I = cicint.InterpolationFactor; stem(n(1:61)/(Fs*I), ... double(y(4:end))/gainCIC,'b') xlabel('Time (sec)') ylabel('Signal Amplitude') legend('Original Signal',... 'Interpolated Signal',... 'location','north') hold off;

Используя info функция в 'long' формат, получите размеры слова и дробные длины разделов фильтра фиксированной точки и фильтра выход.
info(cicint,'long')ans =
'Discrete-Time FIR Multirate Filter (real)
-----------------------------------------
Filter Structure : Cascaded Integrator-Comb Interpolator
Interpolation Factor : 2
Differential Delay : 1
Number of Sections : 2
Stable : Yes
Linear Phase : Yes (Type 1)
Implementation Cost
Number of Multipliers : 0
Number of Adders : 4
Number of States : 4
Multiplications per Input Sample : 0
Additions per Input Sample : 6
Fixed-Point Info
Section word lengths : 17 17 17 17
Section fraction lengths : 14 14 14 14
Output word length : 17
Output fraction length : 14
'
sysobj — Введите фильтрОдин из следующих типов Системных объектов фильтра:
infoType — Объем информации, чтобы отобразиться'short' (значение по умолчанию) | 'long'Сумма информации о фильтре, которая будет отображена. Когда это свойство установлено в:
'short' – Функция отображает ту же информацию как info(sysobj), который является основной информацией о фильтре.
'long' – Функция возвращает следующую информацию о фильтре:
Технические требования, такие как структура фильтра и порядок фильтра.
Информация о методе разработки и опциях.
Измерения эффективности для ответа фильтра, такие как сокращение полосы пропускания или затухание в полосе задерживания, включенное в measure метод
.
Стоимость реализования фильтра в терминах операций, требуемых применять фильтр к данным, включенным в cost метод.
Когда фильтр использует вычисления с фиксированной точкой, функция возвращает дополнительную информацию о фильтре, включая арифметическую установку и детали о внутренностях фильтра.
Типы данных: char | string
arithType — Арифметический тип'double' (значение по умолчанию) | 'single' | 'Fixed'Арифметика используется в анализе фильтра в виде 'double'единственный, или 'Fixed'. Когда арифметический вход не задан, и Системный объект фильтра разблокирован, аналитический инструмент принимает фильтр с двойной точностью. Когда арифметический вход не задан, и Системный объект заблокирован, функция выполняет анализ на основе типа данных заблокированного входа.
'Fixed' значение применяется к Системным объектам фильтра со свойствами фиксированной точки только.
Когда 'Arithmetic' входной параметр задан как 'Fixed' и объект фильтра имеет тип данных содействующего набора к 'Same word length as input', арифметический анализ зависит от того, разблокирован ли Системный объект или заблокирован.
разблокированный – аналитическая функция объекта не может определить содействующий тип данных. Функция принимает, что содействующий тип данных подписывается, имеет 16-битный размер слова и автоматический масштабируемый. Функция выполняет анализ фиксированной точки на основе этого предположения.
заблокированный – Когда типом входных данных является 'double' или 'single', аналитическая функция объекта не может определить содействующий тип данных. Функция принимает, что тип данных коэффициентов подписывается, имеет 16-битный размер слова и автоматический масштабируемый. Функция выполняет анализ фиксированной точки на основе этого предположения.
Чтобы проверять, заблокирован ли Системный объект или разблокирован, используйте isLocked функция.
Когда арифметический вход задан как 'Fixed' и объект фильтра имеет тип данных содействующего набора к пользовательскому числовому типу, объектная функция выполняет анализ фиксированной точки на основе пользовательского типа числовых данных.
s — храните информацию фильтраОтфильтруйте информацию, возвращенную как символьный массив.
Когда infoType 'short', функция отображает основную информацию о фильтре. Когда infoType 'long', функция отображает следующую информацию:
Технические требования, такие как структура фильтра и порядок фильтра
Информация о методе разработки и опциях
Измерения эффективности для ответа фильтра, такие как сокращение полосы пропускания или затухание в полосе задерживания, включенное в measure метод
Стоимость реализования фильтра в терминах операций, требуемых применять фильтр к данным, включенным в cost метод
Когда фильтр использует вычисления с фиксированной точкой, функция возвращает дополнительную информацию о фильтре, включая арифметическую установку и детали о внутренностях фильтра.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.