7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FIR and spectrum tools30.06.2018, 01:01. Показов 1732. Ответов 26
Метки нет Все метки)
(
afrtohtcoefs -program for converting AFR coeffs to h(t) coeffs for FIR
Код
afrcoefs.txt
hcoefs1.txt
Program for converting h(t) coefficients of the FIR to AFR data Кликните здесь для просмотра всего текста
Implementation of the FIR Кликните здесь для просмотра всего текста
input.txt
0
|
30.06.2018, 01:01 | |
Ответы с готовыми решениями:
26
DSP FIR выбор функции КИХ фильтр (FIR) по Куприянову, Матюшкину. Как подружить мать p45c neo-fir с новой памятью? |
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|||||||||||
30.06.2018, 01:03 [ТС] | 2 | ||||||||||
Program for spectrum calculating, using CDFT,CIDFT, Mathlab's algorithm for Hilbert transform
You can use complex.h, vector.h for data arrays and pointered arrays for arrays. How to use radix more then 20000 in #define NMAX , how to fix memory mapping error in arrays if NMAX>20000...32768?
0
|
30.06.2018, 06:30 | 3 | ||||||
0
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
||||||
30.06.2018, 21:20 [ТС] | 4 | |||||
Как использовать в Дельфи ( или FPC /Lazarus) статическте массивы переменных , уничтожаемые после команды деструктор класса фильтра? Нужно ли использовать внешний класс-хранитель с деструктором, как избежать "утечки" памяти? (В fir.cpp :
Нужно использовать статический тип переменных , как в С++, чтобы программа была модульной (чтобы создать массив классов FIR, требуемой архитектуры ), чтобы не выкладывать переменные на шару, а задавать внутри процедуры как статические (в Си++ смысле).
0
|
442 / 371 / 132
Регистрация: 09.09.2011
Сообщений: 1,339
|
|
06.07.2018, 02:07 | 5 |
USERPC01, для вас какой язык родной?
можно статические как в с++, они будут в стеке хранится и уничтожаться при выходе из функции - утечек не будет, либо используй динамические массивы как тут написано: https://www.freepascal.org/doc... #QQ2-38-57
0
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
||||||||||||||||
27.07.2018, 20:46 [ТС] | 6 | |||||||||||||||
исправлено чтение из файлов и запись в файл
afr.pas
Как сделать аналог функции deconv в матлабе на Дельфи для перехода от полинома H(p) к частному P(p)/Q(p) ?
0
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
||||||
18.08.2018, 09:37 [ТС] | 7 | |||||
Вариант с использование сетки StringGrid
unit1.pas
0
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
18.08.2018, 09:43 [ТС] | 8 |
Как сделать x[i]; y[i] статическими переменными ( PArrayOfReal , static как в Си++), создавать вместе с другим классом (Filter1: TFilter, Filter1.Init(jmax,h)
y:=Filter1.FIR(x1)), дописав другой модуль , деинициализировать (Filter1.Destroy) ?
0
|
442 / 371 / 132
Регистрация: 09.09.2011
Сообщений: 1,339
|
|
21.08.2018, 11:09 | 9 |
USERPC01, вы пишете огромное кол-во сообщений на форуме, но очень сложно понять что вы спрашиваете. Какая-то проблема в формулировке своих мыслей и желаний у Вас.
Напишите что Вы хотите, а не "static как в C++", static может давать совершенно разные эффекты в зависимости где это ключевое слово указано... Возможно Вы хотите глобальные переменные, возможно переменные класса - как они объявляются написано в документации к компилятору free pascal. и что такое по Вашему "деинициализировать"??? инициализация - это присваивание начального значения переменной, Вы чего хотите? присвоить переменной случайное значение - это можно рассматривать как некое приведение ее в начальное, "не инициализированное" состояние.
0
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
23.08.2018, 15:04 [ТС] | 10 |
static массив здесь - висит в памяти процедуры, независимо от ее вызова, пока не вычисляется новый отсчет, учитывает предыдущее состояние фильтра, инициализируется для каждого класса фильтр( в массиве классов фильтров в дальнейшем ) после первого и последующих вычислений семплов, после удаления класса фильтр удаляется деструктором из памяти .
Добавлено через 1 минуту С переменными класса глючило, может, правильнее их объявлять ? Как правильнее?
0
|
442 / 371 / 132
Регистрация: 09.09.2011
Сообщений: 1,339
|
|
23.08.2018, 22:01 | 11 |
Переменные класса не связаны с конкретными экземплярами - объектами. Это натурально статические переменные, которые имеют время жизни от, практически, начала и до конца работы программы - никакими деструкторами не удаляются, но в деструкторе можем переменную класса обнулить и/или если переменная это ссылка на динамическую структуру, то освободить память.
Опять же понятие - "удаление класса" не применимо к паскалю. Есть класс, есть иго инстанс - объект, объект создается в куче, после вызова деструктора, объект уничтожается и память в куче освобождается. С классом и переменными класса в это время ничего не происходит. В зависимости от модификаторов доступа, переменные класса могут изменять, как методы объектов класса либо любой вообще код, если модификатор доступа public. Добавлено через 6 минут советую иногда заглядывать в документацию по языку и синтаксису: https://www.freepascal.org/doc... fsu24.html Добавлено через 8 минут опять же очень сложно понять что вы хотите: у процедуры нет какой-то "своей" памяти между ее вызовами. Все переменные объявленные внутри процедуры - локальные, память под них выделяется на стеке, как только происходит выход из процедуры, указатель стека возвращается в начальное положение и все эти переменные перестают существовать. если хотите что-бы какое-то состояние существовало между вызовами, то это либо переменные в более глобальном контексте, либо переменные переданные через параметры по ссылке (var, или указатели на переменные в куче). Если процедуры у вас это методы класса, то переменные класса, это хорошее решение.
0
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|||||||||||
24.08.2018, 09:19 [ТС] | 12 | ||||||||||
Вариант с классом : не хочет инициализироваться массив x,y,h :
mainform.pas
Файлі с брейкпоинтом в аттаче.
0
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|||||||||||||||||||||
24.08.2018, 12:39 [ТС] | 13 | ||||||||||||||||||||
Пробовал в классе фильтра private с var и без , глючит. С какими директивами компилятора как правильнее на Лазарусе 1.8.4 FPC 3.0.4 win32/win64 ?
Добавлено через 5 минут В дальнейшем нужно, чтобы создавался массив фильтров,поэтому внутримодульно внеклассово выкладывать массив переменных не надо. А вот про класс -хранитель-записыватель-считыватель массивов вместо структуры-записи можно подумать. Как добавить
Добавлено через 2 часа 11 минут Отладка модулей в простой консольной программе(IIR -часть с ошибкой, использовать getFIRpartsample( x ) ![]() getFIRpartsample и и способ объявления переменных, порядок фильтра исправлен, работает
Вариант с формой (IIR-часть не отлажена) mainform.pas
0
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|||||||||||
24.08.2018, 14:02 [ТС] | 14 | ||||||||||
Проект с IIR-фильтром работает, переименовываю методы и класс, адаптирую вызов , глючит конструктор , выходит в ассемблер . Папки в аттаче .
mainform.pas
firfilter.pas
0
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
24.08.2018, 14:07 [ТС] | 15 |
Пробовал в главном модуле с {$M+ } {$X+ }, тоже глючит .
Добавлено через 1 минуту Как внести var fir_data : TFIRTempData ; внутри класса ? Среда глючит, не размещается класс в памяти. Может, версия компилятора? Добавлено через 55 секунд Добавил мемо окно до конструктора класса работает, дальше глючит .(Винда Win7 x64)
0
|
442 / 371 / 132
Регистрация: 09.09.2011
Сообщений: 1,339
|
||||||||||||||||||||||||||
24.08.2018, 14:11 | 16 | |||||||||||||||||||||||||
Не по теме: судя по проскакивающей i в тексте, понятно что скорее всего с украины, так что ошибки в грамматики понятны - не будем к ним придираться, но ошибки изложения мысли... надо стараться излагать свои мысли понятным языком. Не спешить вываливать портянки кода. Подумать как сделать так что-бы стороннему человеку было понятно. что касается сообщения https://www.cyberforum.ru/post12857857.html достаточно привести вот этот фрагмент:
вызывать напрямую деструктор считается не очень хорошим стилем, вместо:
0
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
||||||||||||||||
24.08.2018, 14:51 [ТС] | 17 | |||||||||||||||
0
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
||||||||||||||||
24.08.2018, 16:04 [ТС] | 19 | |||||||||||||||
Добавлено через 10 минут Как правильнее записывать коэффициенты, чтобы они подходили из Матлаба
0
|
7 / 7 / 0
Регистрация: 29.06.2018
Сообщений: 1,536
|
|
24.08.2018, 16:22 [ТС] | 20 |
В книге Куприянов М.С., Матюшкин Б.Д. - Цифровая обработка Сигналов 1999, с. 331-333 альтернативное представление в отличие от ece2610_chap8.pdf альтернативное представление коэффициентов( более обычное, с минусом).
0
|
24.08.2018, 16:22 | |
Помогаю со студенческими работами здесь
20
Кассеты / ZX Spectrum bass spectrum Игры на ZX-Spectrum Эмулятор ZX Spectrum на STM32f4 Задача spread spectrum Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Введение в Dapr для разработчиков .NET
UnmanagedCoder 18.03.2025
Разработка распределенных систем никогда не была настолько востребованной и одновременно такой сложной. Если вы . NET разработчик, то наверняка сталкивались с необходимостью жонглировать обнаружением. . .
|
Собеседование по Spring Boot: продвинутые вопросы и ответы
Javaican 18.03.2025
Собеседования на позиции старших разработчиков и архитекторов требуют глубокого понимания внутренних механизмов Spring Boot, нюансов конфигурирования, подходов к оптимизации и построению сложных. . .
|
Перечисления в TypeScript: использование и лучшие практики
run.dev 18.03.2025
Пишете код и устали от разбросанных по проекту "волшебных" строк и чисел? Знакомая ситуация: где-то в глубине кода притаилась строка "ADMIN", а в другом месте используется "admin". И вот уже. . .
|
Фишки Kotlin, которые все любят
Javaican 18.03.2025
Помню, как скептически относился к появлению "ещё одного языка для JVM" — мол, зачем нам что-то новое, когда есть Java? Но первый же проект на Kotlin заставил меня пересмотреть свое мнение. Код стал. . .
|
Списки и кортежи в Python: различия, особенности, применение
py-thonny 18.03.2025
Если вы когда-нибудь писали код на Python, то наверняка сталкивались с конструкциями вида или ('имя', 25, 'инженер'). Это и есть списки и кортежи — последовательности, хранящие упорядоченные наборы. . .
|
Интеграция JavaScript в Haskell
golander 18.03.2025
Ключевая особенность нового JS-бэкенда GHC — возможность создавать колбэки из JavaScript в Haskell-код. Это открывает дорогу разработке полноценных браузерных приложений, позволяя реагировать на. . .
|
Циклы for в Python
py-thonny 17.03.2025
Существует множество ситуаций, когда нам нужно выполнить одно и то же действие несколько раз. Цикл for в Python — настоящий рабочий конь для большинства программистов. Если вам нужно пройтись по всем. . .
|
Предсказание ветвлений - путь к высокопроизводительному C++
NullReferenced 17.03.2025
В высокопроизводительном программировании на C++ каждый такт процессора на счету. Когда речь заходит о разработке систем с низкой задержкой — будь то высокочастотная торговля, обработка потоковых. . .
|
Паттерн CQRS в C#
UnmanagedCoder 17.03.2025
Создание сложных корпоративных приложений часто требует нестандартных подходов к архитектуре. Один из таких подходов — паттерн CQRS (Command Query Responsibility Segregation), предлагающий простую,. . .
|
Паттерн Цепочка ответственности в C#
UnmanagedCoder 17.03.2025
Цепочка ответственности — это поведенческий паттерн проектирования, который позволяет передавать запросы последовательно по цепочке потенциальных обработчиков, пока один из них не обработает запрос. . . .
|