Сведения об объекте filter System
Получение краткоформатной и длинноформатной информации о фильтре.
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;Создайте синусоидальный входной сигнал с фиксированной точкой из 1024 выборок с частотой дискретизации 44,13 Гц.
Fs = 44.1e3;
n = (0:1023)'; % 0.0232 sec signal
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 выборки.
gainCIC = ... (cicdec.DecimationFactor*cicdec.DifferentialDelay)^cicdec.NumSections; stem(n(1:56)/Fs,double(x(4:59))) hold on; stem(n(1:14)/(Fs/cicdec.DecimationFactor),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'. Этот способ генерирования синусоидального сигнала требует, чтобы период каждой синусоиды на выходе был равномерно разделен на период выборки. То есть ki должно быть целым значением для каждого канала i = 1, 2,..., N. Значение Ts равно 1/Fs, переменная fi - это частота синусоидального сигнала, а Fs - частота дискретизации сигнала. Другими словами, отношение Fs/fi должно быть целым числом. Дополнительные сведения см. в разделе Алгоритмы на dsp.SineWave страница объекта.
В этом примере устанавливается на 22050 Гц, а - на 1050 Гц.
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 и равен N/I, где I - интерполяции, D - дифференциальная задержка, а N - число секций интерполятора 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', 'single', или 'Fixed'. Если арифметический ввод не задан и объект «Система фильтров» разблокирован, инструмент анализа использует фильтр двойной точности. Если арифметический ввод не указан и объект System заблокирован, функция выполняет анализ на основе типа данных заблокированного ввода.
'Fixed' применяется только к фильтру системных объектов со свойствами с фиксированной точкой.
Когда 'Arithmetic' входной аргумент указан как 'Fixed' и объект фильтра имеет тип данных коэффициентов, установленный равным 'Same word length as input'арифметический анализ зависит от того, разблокирован или заблокирован объект System.
unlocked - функция объекта анализа не может определить тип данных коэффициентов. Функция предполагает, что тип данных коэффициентов подписан, имеет 16-битную длину слова и автоматически масштабируется. На основе этого предположения функция выполняет анализ с фиксированной точкой.
locked -- Если входной тип данных 'double' или 'single', функция объекта анализа не может определить тип данных коэффициентов. Функция предполагает, что тип данных коэффициентов подписан, имеет 16-битную длину слова и автоматически масштабируется. На основе этого предположения функция выполняет анализ с фиксированной точкой.
Чтобы проверить, заблокирован или разблокирован объект System, используйте isLocked функция.
Если арифметический вход указан как 'Fixed' и объект фильтра имеет тип данных коэффициентов, установленный на пользовательский числовой тип, функция объекта выполняет анализ с фиксированной точкой на основе пользовательского числового типа данных.
s - сохранить информацию о фильтреФильтрация информации, возвращаемой в виде символьного массива.
Когда infoType является 'short', функция отображает основную информацию фильтра. Когда infoType является 'long', функция отображает следующую информацию:
Спецификации, такие как структура фильтра и порядок фильтрации
Информация о способе и вариантах проектирования
Измерения рабочих характеристик для отклика фильтра, такие как отсечение полосы пропускания или затухание полосы останова, включены в measure метод
Затраты на внедрение фильтра с точки зрения операций, необходимых для применения фильтра к данным, включенные в cost метод
Когда фильтр использует арифметику с фиксированной точкой, функция возвращает дополнительную информацию о фильтре, включая арифметическую настройку и подробные сведения о внутренних элементах фильтра.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.