petrov 7 4 августа, 2021 Опубликовано 4 августа, 2021 · Жалоба Lmx2315 да Нет. Нужна задержка порядок/2. C2000 Гильберта делают с чётным порядком и симметричной АЧХ относительно частоты дискретизации/4, тогда коэффициенты получаются антисимметричными и каждый второй равен 0, соответственно получается экономия на вычислениях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 4 августа, 2021 Опубликовано 4 августа, 2021 · Жалоба 3 минуты назад, petrov сказал: Гильберта делают с чётным порядком и симметричной АЧХ относительно частоты дискретизации/4, тогда коэффициенты получаются антисимметричными и каждый второй равен 0 Только это фильтр нечетного порядка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 4 августа, 2021 Опубликовано 4 августа, 2021 · Жалоба Самурай Только это фильтр нечетного порядка. Нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 4 августа, 2021 Опубликовано 4 августа, 2021 · Жалоба C2000 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 4 августа, 2021 Опубликовано 4 августа, 2021 · Жалоба 20 minutes ago, petrov said: C2000 Это я видел, вот что с этим делать... Пробовал разные варианты, но либо порядок фильтра высокий, либо АЧХ не стабильна. Возможно ли сделать симметричный фильтр, пусть не до 2000КГц, хотя бы до 1КГц (дальше в середине может быть и провал АЧХ, но выше 0 не желательно), но чтобы от 20Гц до 1Кгц АЧХ была постоянная. Или для КИХ только увеличением порядка можно для низкой частоты нормальную характеристику получить? Есть ли подобные решения для БИХ фильтров, там за счёт обратной связи можно было бы снизить порядок фильтра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 4 августа, 2021 Опубликовано 4 августа, 2021 · Жалоба C2000 100 умножений на выходной отсчёт. Это я видел, вот что с этим делать... Продумывать алгоритмы, хотите широкополосный Гилберт, значит получаете большой порядок. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stealthisname 7 4 августа, 2021 Опубликовано 4 августа, 2021 · Жалоба 11 hours ago, C2000 said: Нужно посчитать мощности в сети. Активная просто, интеграл от U*I А вот для расчёта реактивной напряжение нужно сдвинуть на 90 град, причем в идеале нужно подвинуть и гармоники. для расчета активной и реактивной мощностей на известных гармониках, можно пойти и другим путем построим модель сигнала. Сначала сгенерим на нужной тактовой частоте нужную основную гармонику. Смоделируем вторую с заданной разностью фаз. (здесь я беру медленно линейно возрастающую до 60°). эти два сигнала будут имитировать принятые напряжение и ток Spoiler добавим дополнительных кратных гармоник, добавим шум. Spoiler в обработке сигнала перенесем с заданной известной частоты в ноль, при этом получится комплексный сигнал Spoiler результат продецимируем, например в CIC фильтре Spoiler по отфильтрованному продецимированному сигналу, найдем произведение напряжения и комплексно сопряженного с током Spoiler накопим значения для очищения от шума (можно с помощью еще одно CIC фильтра) Spoiler эта комплексная величина как-раз пропорциональна мощности гармоники: действительная часть пропорциональна активной составляющей, мнимая часть пропорциональна реактивной составляющей. теперь можем рассчитать значение коэффициента, на который нужно домножить активную мощность, чтобы получить реактивную делим Spoiler чтобы убедиться, что алгоритм расчета устойчив к изменению входной частоты, изменим входную частоту на 58 Гц Spoiler заметно изменился только сигнал после первого дециматора, частота ушла с центра на величину внесенной отстройки. в дальнейшем в алгоритме учтено что частота может быть отстроена, а начальная фаза неизвестна, на решение влияет именно разность фаз, поэтому дальше расчеты не изменились. такой алгоритм вычисляет отношение мощностей реактивной к активной только для одной гармоники, и поэтому дает хорошую оценку, только если большая часть мощности находится на основной гармонике. Если известно, что значимая для расчетов часть мощности находится на определенных кратных гармониках, то можно повторить этот алгоритм для этих определенных картых гармоник отдельными каналами, изменив только частоту переноса в начале. в алгоритме использованы простые по реализации фильтры и вычисления, для облегчения необходимой производительности. часть вычислений лежит за децимацией, что снижает требования к производительности в этой части вычислений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 5 августа, 2021 Опубликовано 5 августа, 2021 · Жалоба 10 hours ago, stealthisname said: эти два сигнала будут имитировать принятые напряжение и ток Спасибо, интересно, но вряд ли возможно в МК, в реальном времени, когда данные идут непрерывным потоком, и пропуски в обработке недопустимы. Да и считать нужно в диапазоне 5Гц - 2КГц (желательно). В отличии например от той же Алисы или Гугл помощника, которые могут записать фразу, а потом анализировать её секунду или несколько. Хотя конечно там алгоритмы куда сложнее, но и ресурсы другие. А бывают еще интергармоники. В общем фильтр видится идеальным решением, но порядок великоват. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 5 августа, 2021 Опубликовано 5 августа, 2021 · Жалоба On 8/4/2021 at 8:29 AM, C2000 said: Активная просто, интеграл от U*I Это же полная мощность. Активную, надо еще на cos(фи) умножать. Хотя может вам уже это дальше растолковали. Можете попробовать найти угол между током и напряжением. Найти активную. И из полной, вычесть активную - получите реактивную. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 5 августа, 2021 Опубликовано 5 августа, 2021 · Жалоба 1 hour ago, Tpeck said: Это же полная мощность. Активную, надо еще на cos(фи) умножать. Хотя может вам уже это дальше растолковали. Можете попробовать найти угол между током и напряжением. Найти активную. И из полной, вычесть активную - получите реактивную. Смешно) Почитайте внимательно, с самого начала Может для себя что-нибудь растолкуете. Вообще как можно такими словами оперировать, когда Вы сами не в теме вообще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tpeck 0 5 августа, 2021 Опубликовано 5 августа, 2021 · Жалоба 40 minutes ago, C2000 said: Смешно) Почитайте внимательно, с самого начала Может для себя что-нибудь растолкуете. Вообще как можно такими словами оперировать, когда Вы сами не в теме вообще. U, I - обычно обозначают амплитуду, а не мгновенное значение которое вы хотите проинтегрировать. PS и чем вас не устраивает первый метод, который приведен? По сути, это то что я написал. Реальное посчитать можете. Полную посчитать можете. Вычесть одну из другой, тоже можете. Операция возведения в квадрат и извлечения корня, не так часто надо делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 5 августа, 2021 Опубликовано 5 августа, 2021 · Жалоба On 8/4/2021 at 8:34 AM, stealthisname said: для проверки расчитаных коэффициентов сравним передаточную функцию фильтра с передаточной функцией просто задержанного сигнала посмотрим ИХ Можно код для Matlab в качестве примера, где сначала рассчитывается фильтр, потом к нему добавляется задержка в сэмплах и это всё выводиться. Можно ли также построить АЧХ и ФЧХ двух фильтров каскадом или разницу между выходами двух фильтров. Если есть такие примеры буду очень признателен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stealthisname 7 5 августа, 2021 Опубликовано 5 августа, 2021 (изменено) · Жалоба 6 hours ago, C2000 said: Можно код для Matlab в качестве примера, где сначала рассчитывается фильтр, потом к нему добавляется задержка в сэмплах и это всё выводиться. вот пример, аналогичный тому что я пиводил ранее, но с учетом подсказки выше в обсуждении, о том что выгодно считать симметричную характеристику. % FIR least-squares Hilbert transformer % filter designed using the FIRLS function. Fs = 8; % Частота дискретизации (кГц) N = 40; % порядок фильтра F = [0.005, Fs/2-0.005]; % Frequency Vector A = [1, 1]; % Amplitude Vector W = [1]; % Weight Vector b = firls(N, F/(Fs/2), A, W, 'hilbert'); % b0 = zeros(size(b)); b0((end+1)/2) = 1; hfvt = fvtool(b0,1,b,1); hfvt.Analysis = 'freq'; hfvt.PhaseUnits = 'degrees'; тут b - импульсная характеристика рассчитанного фильтра, b0 - ИХ задержки на половину порядка рассчитанного фильтра. половина коэффициентов действительно получается нулевыми я не нашел, как в fvtool построить отношение амплитудных характеристик двух фильтров и разность фазовых характеристик но есть пример расчета частотных характеристик вручную, с выводом разности фаз w = 0:1e-4:.5; % цифровая нормированная частота f = w*Fs; % частота (кГц) % комплексные частотные харатеристики h = sum(b .'.*exp(-1i*2*pi*w.*(1:N+1).')); h0 = sum(b0.'.*exp(-1i*2*pi*w.*(1:N+1).')); % АЧХ (дБ) h_magn = mag2db(abs(h)); h0_magn = mag2db(abs(h0)); % ФЧХ (°) h_phas = rad2deg(unwrap(angle(h))); h0_phas = rad2deg(unwrap(angle(h0))); % % plot(f,h0_magn,f,h_magn); % plot(f,h0_phas,f,h_phas); % разность ФЧХ plot(f,h0_phas-h_phas); Изменено 5 августа, 2021 пользователем stealthisname Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stealthisname 7 5 августа, 2021 Опубликовано 5 августа, 2021 · Жалоба 6 hours ago, C2000 said: Можно ли также построить АЧХ и ФЧХ двух фильтров каскадом или разницу между выходами двух фильтров. ИХ двух фильтров каскадом - свертка ИХ отдельных фильтров. по рассчитанной ИХ можно построить АЧХ и ФЧХ для КИХ фильтров в матлабе можно рассчитать например так % b1, b2 - ИХ отдельных фильтров в каскаде % общая ИХ b = conv(b1,b2); % вывод fvtool(b1,1,b2,1,b,1); для БИХ фильтров аналогично % b1, b2 - коэфф числителя передаточной % a1, a2 - коэфф знаменателя передаточной % общая передаточная b = conv(b1,b2); a = conv(a1,a2); % вывод fvtool(b1,a1,b2,a2,b,a); ИХ суммы/разности сигналов с двух фильтров - это сумма/разность ИХ отдельных фильтров. По рассчитанной ИХ можно построить АЧХ и ФЧХ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
C2000 3 5 августа, 2021 Опубликовано 5 августа, 2021 · Жалоба 1 hour ago, stealthisname said: ИХ двух фильтров каскадом - свертка ИХ отдельных фильтров. по рассчитанной ИХ можно построить АЧХ и ФЧХ для КИХ фильтров в матлабе можно рассчитать например так. Спасибо с фильтрами получилось. Еще не подскажите как в Матлабе вот эти вильтры получить: Все пропускающие фильтры (dsplib.ru) В fdatool таких не нашёл Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться