Так значит ОКНО это Один Отсчет ? Окно через которое реальный сигнал попадает в MCU для обработки ???
У меня есть русский вариант в печатном издании. Читается очень легко, так как нет кучи ненужного и неинтересного матана. Выглядит примерно так: https://www.books.ru/books/tsifrova...lya-inzhenerov-i-nauchnykh-rabotnikov-612048/ Только, боюсь, печатные версии уже все распроданы.
Я же кидал ссылку на википедию. Конкретно по Стивену Смиту вот окно: http://www.dspguide.com/ch16/1.htm
Да. Вот если ты все вектора возьмешь и сложишь во времени то получишь исходный сигнал. Один отсчет (семпл), а окно это какой-то набор семплов промодулированных оконной функцией. Если ты просто берешь часть данных, то считай что ты берешь и умножаешь все на 1. К примеру ты берешь FFT 1024, получается ты берешь бесконечный периодический дискретный сигнал и первые 1024 отчета умножаешь на 1, остальные на 0. Получается прямоугольник.
И все таки, допустим имеем на входе сигнал с уровнем +1,-1 Вольт. Почему с использованием вышеприведенной программы спектр отображается с уровнями 150-250 ... Что это Вольты?, Или не правильный расчет ????? https://scontent-arn2-1.xx.fbcdn.ne...=6fbd784fd1b8963be4b56f9279c06538&oe=5B518D77 Если на входе синус с размахом 1 вольт, то в спектре должно быть ну никак не больше, в чем ошибка ??? Почему вычисленное значение много больше исходного ????? Если ошибка то какая???
Во-первых, нормализации нет и поэтому величина зависит от количества входных отсчетов. Во-вторых, неправильно считается модуль комплексного числа sqrt(r^2 + i^2).
Насчет sqrt понял, а вот насчет нормализации нет, нужно результат делить на N(количество отсчетов) ???
Ок, Thetrik , а Вы можете посмотреть методику программирования фильтров ЗДЕСЬ ... Интересует Ваше мнение
Кац предлагает сдаться !!!!! Русские не сдаются ...., только практика спасет отца русской демократии...!!!
Нашел в сети программу генерации отсчетов , но что то не то получается вот код Код (C++): float samplerate; // частота дискретизации float wavefrequency; // частота float wavevolume; // уровень int samplelenght // кол-во отсчетов АЦП float period=samplerate/wavefrequency/2; //вычисляем период float pi=3.14; //число pi int n; for(int a=0;a<samplelenght;a++) //устанавливаем цикл на количество отсчетов { n=wavevolume*sin(a*pi/period); //вычисление значения отсчета buffer[a]=n; //заносим вычисленное значение в буфер }
Я даже не знаю, 6 страниц читать нет желания. Фильтры программируются исходя из задачи. К примеру я делал фильтр для синтезатора, мне вполне хватало MA фильтра, и БИХ 2-го порядка. Для вокодера я использовал FFT для эквализации. Если нужен какой-то определенный фильтр, к примеру узкополосный убирающий 50гц, то используются другие методы расчета. Также все зависит от требуемой ФЧХ. Можешь сразу рассчитывать в z-плоскости, нули соответственно спады, а полюса подъемы на АЧХ вдоль единичной окружности:
У меня такая специальность. ЦОС не было, но вот по аналоговым цепям нас гоняли. И аналоговая фильтрация сигналов была. А чтобы сделать из аналогового фильтра цифровой, надо просто перенести все нули и полюсы из плоскости Лапласа в Z-плоскость.