blackfin 28 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба 1 hour ago, my504 said: Не может ли мне кто нибудь предложить калькулятор поворачивающих коэффициентов для БПФ? А лучше генератор графа БПФ при задании размера входного массива. Даа.. Уровень квалификации местных "экспертов" упал ниже плинтуса.. Про MATLAB и Visual Studio вы, похоже, даже не слышали.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
my504 2 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба 2 hours ago, Xenia said: А я-то что вам говорю? Что именно обработка узким окном во временной области и является их ПРИЧИНОЙ. Не курочьте сигнал во временной области, а обрабатывайте его В ЧАСТОТНОЙ ОБЛАСТИ - и не будет у вас никаких лепестков. Для того и Фурье применяют.. Ксения, не расстраивайте меня... Вы не слышите о чем я Вам говорю. Окно во временной области определяет ПОЛОСУ ОДНОГО ФИЛЬТРА. И не может быть изменено произвольным образом. Это окно (речь конечно о прямоугольном) и создает эти самые лепестки, а точнее паразитные каналы приема ДЛЯ КАЖДОГО ФИЛЬТРА в Фурье. Пусть ближайший лепесток будет на частоте сдвинутой от центральной частоты фильтра на 1 кГц. Тогда сигнал на этой самой сдвинутой на 1 кГц от фильтра частоте будет принят этим фильтром так, как будто он попал прямо в фильтр (с учетом подавления на этом лепестке, конечно). Какое еще окно в частотной области? Вы вообще о чем? У паразитного сигнала в этом боковом лепестке такой спектр РЕАЛЬНО СУЩЕСТВУЕТ. Вы хоть обнакладывайтесь окнами в частотной области, бин будет принимать частоты в своем боковом лепестке. А если обработать оптимальным окном во временной области, то это приведет к подавлению этих спектральных компонент и никаких "ушей" у АЧХ фильтров уже не будет. 1 hour ago, blackfin said: Даа.. Уровень квалификации местных "экспертов" упал ниже плинтуса.. Про MATLAB и Visual Studio вы, похоже, даже не слышали.. Милостивый государь, я канешна понимаю повод по которому Вы тут щеритесь, но от этого Ваше поведение не становится умнее. Я не спрашивал ничего про МАТЛАБ. Я и без вас знаю про МАТЛАБ. Но у меня на работе не стоит МАТЛАБ, по простой и очевидной причине. Мы не используем нелицензионное ПО под страхом увольнения. Даже файлов из сред, на которые нет законной лицензии на рабочих компьютерах нет. А характер решаемых мною задач не требует МАТЛАБа. Даже там, где МАТЛАБ был бы целесообразен с технической точки зрения, он не целесообразен с финансовой. Поэтому мне нужен именно калькулятор и желательно онлайн, а не проприетарный резидентный софт. Я достаточно понятно изложил мотивы моей просьбы, любезный? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба Есть же Octave и NumPy. Шеф конторы ваш видать бывший уголовник. А если еще и не пьете на корпоративах - то и алкоголик :D Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
my504 2 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба Октав я попробую. Если там есть требуемый мне генератор, то буду использовать. Сама среда для собственно тестовых расчетов мне нужна крайне редко. Такова специфика разработок. По сути, во всех изделиях используется одинаковый тип принимаемого сигнала, а методы его приема в линейной части обработки не требуют ничего кроме FIR или IIR (ну и DFT, конечно). Нелинейную фильтрацию я тестирую прямо на железе, поскольку при симуляции практически невозможно создать специфические помехи. Да и быстрее проверить на железе. ЗЫ. Пока предметно не разобрался, просто потестил обычной арифметикой, но в Октаве я не нашел бокса как в МАТЛАБе со специальными тулзами для генерации фильтров и прочих ништяков. Мне ведь не библиотека с ФФТ нужна. Мне нужно написать код на АСМе для FFT длиной 1К под dsPIC33CH. Свой код, а не библиотечный из Микрочиповского dsplib. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
my504 2 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба 1 hour ago, DASM said: Шеф конторы ваш видать бывший уголовник. А если еще и не пьете на корпоративах - то и алкоголик :D Вы просто не в теме относительно тенденций на эту тему. Есть юр.конторы, которые заключают с правообладателями договоры и ищут тех "юриков", которые не брезгуют контрафактом. Затем приходят с ментами и дают на выбор два варианта - либо заплатить им, либо государству и правообладателю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 28 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба 9 hours ago, my504 said: Вы просто не в теме относительно тенденций на эту тему. Это вы не в теме: Visual Studio 11 hours ago, my504 said: Мне нужно написать код на АСМе для FFT длиной 1К Считайте sin/cos в Excel'е.. Excel то у вас есть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
my504 2 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба 4 minutes ago, blackfin said: Это вы не в теме И что? Какое это имеет отношение к моей просьбе? Если Вы знаете встроенный инструмент в бесплатном ПО, который мне сгенерирует граф БПФ, то так и скажите. Не нужно меня отчитывать за то, что у меня не стоит софт, который мне по роду работы не нужен. Даже если он бесплатен. Я не программист. Я радиоинженер. Мои нынешние задачи требуют вполне определенных знаний и навыков. Когда мне их не хватает, я обращаюсь к поисковикам и к сообществу. ЧЯДНТ? ЗЫ. Задачи разработки я решаю в достаточном для этой ниши качестве. Уверяю Вас. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба 11 minutes ago, my504 said: Если Вы знаете встроенный инструмент в бесплатном ПО К сожалению, я не знаю. Но в порядке так сказать помощи))) Поглядите scilab. Он даром. Может быть там найдёте нужный инструмент. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
my504 2 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба 26 minutes ago, blackfin said: Считайте sin/cos в Excel'е.. Да уж... Любезный, как перевести алгебраическую форму комплексного числа в экспоненциальную и наоборот я знаю. Мой вопрос заключался не в расчете коэффициентов, а в самом графе. То есть мне нужны номера коэффициентов и их расстановка в графе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 28 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба 5 minutes ago, my504 said: То есть мне нужны номера коэффициентов и их расстановка в графе. "Может, вам ещё и ключ от квартиры где деньги лежат?" 5 minutes ago, my504 said: Мой вопрос заключался не в расчете коэффициентов, а в самом графе. Напомню: 5 hours ago, my504 said: Не может ли мне кто нибудь предложить калькулятор поворачивающих коэффициентов для БПФ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
my504 2 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба 35 minutes ago, blackfin said: "Может, вам ещё и ключ от квартиры где деньги лежат?" Напомню: Милостивый государь, а давайте Вы не будете кривляться и делать вид что ничего не поняли? Вы выдернули цитату из контекста, обрезав следующее за ней предложение. Но ответ от вас я получил. Вы прямо сказали мне о том, что граф БПФ не является тривиальной сущностью и требует неких трудов по его созданию. Я Вас услышал. И даже сделал выводы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 28 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба 4 minutes ago, my504 said: Вы прямо сказали мне о том, что граф БПФ не является тривиальной сущностью и требует неких трудов по его созданию. Не знаю, о чем вы тут трындите.. Я делал БПФ на 2^3, ..., 2^20 точек на С++ для PC, на ассемблере для blackfin'а и на Verilog'е для FPGA. Никаких графов для 2^20 точек я не рисовал.. Учите матчасть! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
my504 2 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба 4 minutes ago, blackfin said: Я делал БПФ на 2^3, ..., 2^20 точек на С++ для PC, на ассемблере для blackfin'а и на Verilog'е для FPGA. Никаких графов для 2^20 точек я не рисовал.. О! Отлично! Вы то мне и нужны... ))) Есть куча литературы по БПФ в которой в качестве примера приведены графы для 8-ми, максимум для 16-ти точечного БПФ. Есть стандартная общеизвестная формула самой бабочки, в которой индексы поворачивающего коэффициента (угла) привязаны к номеру отсчета. ЛИЧНО У МЕНЯ, возможно в силу туповатости и/или возраста (мне 61-ый пошел) возникли сложности с вычислением этого самого угла через текущий счетчик итераций. И я обратился сюда. Посылать меня учить матчасть не надо. Иначе я пошлю Вас. Довольно далеко. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба Сюда ходи.http://svm-w.jinr.ru/public/Лайонс Цифровая обработка сигналов.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dsl2640free 0 21 января, 2020 Опубликовано 21 января, 2020 · Жалоба кусок кода, детектирующий гармоники в составе сигнала Спойлер public ArrayList<SynthesizableSignal> detectHarmonics() { SignalCutter cutter = new SignalCutter(source, new Signal(source)); SynthesizableComplexExponent heterodinParameter = new SynthesizableComplexExponent(); heterodinParameter.setProperty("frequency", 0.0); Signal heterodin = new Signal(source.getLength()); Signal heterodinedSignal = new Signal(cutter.getCurrentSignal()); Spectrum spectrum = new Spectrum(heterodinedSignal); int harmonic; while ((harmonic = spectrum.detectStrongPeak(min)) != -1) { if (cutter.getCuttersCount() > 10) throw new RuntimeException("Unable to analyze signal! Try another parameters."); double heterodinSelected = 0.0; double signalToNoise = spectrum.getRealAmplitude(harmonic) / spectrum.getAverageAmplitudeIn(harmonic, windowSize); for (double heterodinFrequency = -0.5; heterodinFrequency < (0.5 + heterodinAccuracy); heterodinFrequency += heterodinAccuracy) { heterodinParameter.setProperty("frequency", heterodinFrequency); heterodinParameter.synthesizeIn(heterodin); heterodinedSignal.set(cutter.getCurrentSignal()).multiply(heterodin); spectrum.recalc(); double newSignalToNoise = spectrum.getRealAmplitude(harmonic) / spectrum.getAverageAmplitudeIn(harmonic, windowSize); if (newSignalToNoise > signalToNoise) { signalToNoise = newSignalToNoise; heterodinSelected = heterodinFrequency; } } SynthesizableCosine parameter = new SynthesizableCosine(); heterodinParameter.setProperty("frequency", heterodinSelected); heterodinParameter.synthesizeIn(heterodin); heterodinedSignal.set(cutter.getCurrentSignal()).multiply(heterodin); spectrum.recalc(); parameter.setProperty("amplitude", MathHelper.adaptiveRound(spectrum.getRealAmplitude(harmonic))); parameter.setProperty("frequency", harmonic - heterodinSelected); parameter.setProperty("phase", MathHelper.round(spectrum.getPhase(harmonic), 1)); cutter.addSignal(parameter); cutter.cutNext(); heterodinedSignal.set(cutter.getCurrentSignal()); spectrum.recalc(); } return cutter.getSignalsParameters(); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться