Информация о Системном объекте фильтра
Получите формат 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;
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'
. Этот метод генерации синусоидального сигнала требует, чтобы период каждой синусоиды в выходе был равномерно делимым к периоду расчета. Таким образом, должно быть целочисленное значение для каждого канала 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.