lennox 0 7 августа, 2018 Опубликовано 7 августа, 2018 (изменено) · Жалоба Здравствуйте, подскажите как сделать так, чтобы АЧХ (CIC,CFIR,и результирующая) отображались визуально "гладко, без изломов" при увеличении для моего примера при больших коэффициентах децимации. Начальная частота семплирования Fs = 100MHz. На выходе хочу, например, 10kHz. data @100MHz -> CIC (decimate by 5000) -> CFIR (decimate by 2) -> data @10kHz P.S. можно ли отобразить результат последнего fvtool(CICDecim, CICCompDecim, filtCasc, ... от 0 до целевой 10кГц? clc, clear, close all; %% CIC Fs_init = 100e6; % Hz CIC_output_sample_rate = 20e3; % integer multiple of Fs_init CIC_decim_factor = Fs_init/CIC_output_sample_rate; % decimatin factor CICDecim = dsp.CICDecimator( ... 'DecimationFactor', CIC_decim_factor, ... 'DifferentialDelay', 1, ... % нули АЧХ cic будут на частотах кратных 20кГц 'NumSections', 4); Gain_CIC = gain(CICDecim); f_CICDecim = fvtool(CICDecim,'Analysis','freq','ShowReference','off'); f_CICDecim.NormalizeMagnitudeto1 = 'on'; legend(f_CICDecim,'CIC decimator'); %% CFIR with decimation by 2 fs = CIC_output_sample_rate; % sample rate @compensator input fPass = 2e3; fStop = 4e3; CICCompDecim = dsp.CICCompensationDecimator(CICDecim, ... 'DecimationFactor',2, ... 'PassbandFrequency',fPass, ... 'StopbandFrequency',fStop, ... 'PassbandRipple', 0.25, ... 'StopbandAttenuation', 80, ... 'SampleRate',fs); f_CICCompDecim = fvtool(CICCompDecim,'Analysis','freq'); legend(f_CICCompDecim, 'CIC compensator decimator'); filtCasc = dsp.FilterCascade(CICDecim,CICCompDecim); f = fvtool(CICDecim, CICCompDecim, filtCasc, ... 'ShowReference','off', ... 'Fs', [fs*CIC_decim_factor fs fs*CIC_decim_factor]); f.NormalizeMagnitudeto1 = 'on'; legend(f,'CIC Decimator','CIC Compensation Decimator', ... 'Overall Response'); -спасибо Изменено 7 августа, 2018 пользователем dcs Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 7 августа, 2018 Опубликовано 7 августа, 2018 · Жалоба подскажите как сделать так, чтобы АЧХ (CIC,CFIR,и результирующая) отображались визуально "гладко, без изломов" ... можно ли отобразить результат последнего fvtool(CICDecim, CICCompDecim, filtCasc, ... от 0 до целевой 10кГц? По первому вопросу: f = fvtool(...); f.NumberofPoints = 100500; По второму: f = fvtool(...); f.FrequencyRange = 'Specify freq. vector'; f.FrequencyVector = [0:10:10000]; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lennox 0 7 августа, 2018 Опубликовано 7 августа, 2018 · Жалоба По первому вопросу: По второму: спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lennox 0 15 августа, 2018 Опубликовано 15 августа, 2018 · Жалоба здравствуйте. подскажите, вот как у меня в посте выше есть cic и cfir условно говоря, с выхода cic разрядность пусть 96 бит, это много для входа корректирующего. Например, я округляю до 32 бит (беру старшие 32 значащих по результатам моделирования или есть другой способ? есть ли смысл окргулять по правилу 0.5 или именно так и надо? имею ввиду примерно следющее cic_out[96:65]+cic_out[64] если >0 и наоборот если отрицательный результат) Так вот на сколько давить внеполосные сигналы в корректирующем фильтре? на 20*log10(2^32) = 193дБ ? как правильно? -спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kluwer 0 21 августа, 2018 Опубликовано 21 августа, 2018 · Жалоба Слушайте, у вас исходная частота выборок 100МГц, а конечная - 20КГц, если нигде опечатки нет. Передискретизация в 5000 раз?! Вы точно этого хотите? Это некая учебная задача? Потому что я не очень могу представить откуда в практических задачах мог приехать НЧ-сигнал с полосой порядка 20КГц оцифрованный на 100МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soldat_shveyk 2 21 августа, 2018 Опубликовано 21 августа, 2018 · Жалоба Потому что я не очень могу представить откуда в практических задачах SDR-приемник? Самое то :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lennox 0 21 августа, 2018 Опубликовано 21 августа, 2018 · Жалоба я не очень могу представить откуда в практических задачах мог приехать НЧ-сигнал с полосой порядка 20КГц оцифрованный на 100МГц. опечатки нет. fs=1.5e9, bw=3.2e3 (единственный такой режим. однополосная, КВ) 100e6, 20e3 - это условный пример. все-таки повторю вопрос , при каскадной реализации фильтров из каких условий выбирается уровень подавления в каждом следующем фильтре? из каких условий выбирается разрядность данных между фильтрами? где бы почитать об этом на конкретном примере ? -спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
soldat_shveyk 2 22 августа, 2018 Опубликовано 22 августа, 2018 · Жалоба При каскадной реализации фильтров из каких условий выбирается уровень подавления в каждом следующем фильтре? Все определяется Вашими требованиями к избирательности КВ приемника. Самый простой и наглядный способ - постройте сквозную АЧХ всех каскадов фильтрации. Для этого надо импульсные характеристики всех фильтров привести к частоте дискретизации АЦП, то есть интерполировать на величину коэффициента децимации перед фильтром. Все интерполированные импульсные характеристики свернуть между собой. fvtool() от результирующей импульсной характеристики покажет сквозную АЧХ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lennox 0 22 августа, 2018 Опубликовано 22 августа, 2018 · Жалоба Все определяется Вашими требованиями к избирательности КВ приемника. Самый простой и наглядный способ - постройте сквозную АЧХ всех каскадов фильтрации. Для этого надо импульсные характеристики всех фильтров привести к частоте дискретизации АЦП, то есть интерполировать на величину коэффициента децимации перед фильтром. Все интерполированные импульсные характеристики свернуть между собой. fvtool() от результирующей импульсной характеристики покажет сквозную АЧХ. спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dlsh 1 21 мая, 2020 Опубликовано 21 мая, 2020 · Жалоба Доброе времени суток коллеги. Есть вопрос связанный с применением fvtool для верификации своего алгоритма реализации фильтра на С. Написал алгоритм реализации КИХ фильтра на С в виде функции принимающая один аргумент в качестве входного отсчета данных с АЦП и возвращающий значение с выхода фильтра. Коэффициенты взяты из Filter Designer. Код реализация на С через mex конвертируется в функцию матлаб. Есть желание отобразить в fvtool АЧХ моего алгоритма. Каким образом это можно реализовать? Есть примеры где можно это посмотреть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 22 мая, 2020 Опубликовано 22 мая, 2020 · Жалоба 16 часов назад, dlsh сказал: Доброе времени суток коллеги. Есть вопрос связанный с применением fvtool для верификации своего алгоритма реализации фильтра на С. Написал алгоритм реализации КИХ фильтра на С в виде функции принимающая один аргумент в качестве входного отсчета данных с АЦП и возвращающий значение с выхода фильтра. Коэффициенты взяты из Filter Designer. Код реализация на С через mex конвертируется в функцию матлаб. Есть желание отобразить в fvtool АЧХ моего алгоритма. Каким образом это можно реализовать? Есть примеры где можно это посмотреть? Как вариант, можно подать дельта-функцию на вашу реализацию, получите ИХ. А с ИХ уже работайте дальше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dlsh 1 25 мая, 2020 Опубликовано 25 мая, 2020 · Жалоба В 22.05.2020 в 16:48, _sda сказал: Как вариант, можно подать дельта-функцию на вашу реализацию, получите ИХ. А с ИХ уже работайте дальше. Так и не разобрался каким образом подать дельта функцию для получения ИХ. Решил пойти другим путем. В Simulinke сделал блок фильтра - указав в качестве его реализации .с/.h файлы. Подключил к фильтру синусоидальный сигнал+шум, а к выходу спектроанализатор. Спойлер В результате получил на каждый фильтр два спектра Спойлер Здесь есть непонятный момент связанный с установкой параметра RBW спектроанализатора, при значении RBW < 0.15 Гц - график не строится. Далее решил получить АЦХ данного фильтра. Выбрал LPF1, задал вх/вых (Input Perturbation/Output Measurement) и добавил Simulink Control Disign->Linear Analysis Plots->Bode Plot для снятия АФЧХ. Спойлер Однако результата нет, ошибок тоже. Возможно это связано с дискретностью источника сигнала и/или настройки нужно задать верные - так и не разобрался. Собственно вопрос как можно построить АЧХ данной модели? В какую сторон здесь надо копать? Проект FIR_v1.zip прикрепил. FIR_v1.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться