Войти

Показать полную графическую версию : Народ помогите разобраться в asm'e!


novichek_new
18-12-2005, 19:11
Привет всем! народ помогите разобраться в программе на ассемблере, у меня не получаеться :sorry: очень надо, программа для выделения частот в звуковом потоке, т.е. цифровой фильтр, заранее благодарен :)

pva
22-12-2005, 12:06
Теорию знаешь? Это не цифровой фильтр, а анализатор Фурье.
Совет №1: скачай это же, на приличном языке, почитай книжку про преобразование Фурье.
Совет №2: Разберись, что тебе нужно: анализатор или фильтр? фильтр на C++ в одну строчку пишется, анализатор в ~10 (Алгоритм БПФ).

SergeCpp
22-12-2005, 12:12
Вот тут ещё почитай... (http://www.kamlit.ru/docs/aloritms/algolist.manual.ru/)

Отличный ресурс!

pva
22-12-2005, 13:21
Вот тут...
не получается открыть "Статья: Алгоритмы сжатия изображений"

novichek_new
27-12-2005, 01:00
Теорию знаю очень плохо :( , можно сказать совсем ни как :sorry: , просто очень надо разобраться в этом коде, что там к чему и с чем это едят помогите если такое возможно, ну, а если нет то очень печально :(

pva
28-12-2005, 13:03
Код делает примерно вот что: есть входной поток данных, есть несколько выходных потоков. Входные данные режутся на "окна", каждое окно подвергается быстрому преобразованию Фурье. На выходе - логарифм квадрата амплитуды фурье-коэффициентов. Извиняюсь за сложный язык, так уж оно называется. Если надо понятнее, могу формулы написать.
Для меня не понятно, зачем разбираться в машинном коде, если нужен кусок программы, который пишется максимум за 30 минут. Такая постановка вопроса подразумевает отсутсвие цели. Будет проще, если вы почитаете (даже самую тонкую) книжку про преобразование Фурье, тогда сразу будет понятно, что там делается.

novichek_new
28-12-2005, 20:23
Если вас не затруднит, написать формулы, я буду очень благодарен, а разбираюсь вот зачем, есть подозрения что схема на микроконтроллере, куда эта программа заливается, ни как не связана с входным сигналом, потому что во время тестирования собранного мною устройства, убирался входной сигнал, поступающий с выхода магнитофона, а лампочки продолжали моргать!!! Если интересно то вот это устройство "http://members.cox.net/berniekm/organ.html"

pva
30-12-2005, 10:16
Подправьте амплитуду дискриминации выходного сигнала.
Формула (дискретное преобразование): Fourier[f[x]]=Sum[f[x]*Exp[-i*pi*k*x],{k,0,2*N-1}], где N - количество точек в сигнале (N=16). Ваш агрегат делает вот что: Output[k] = Log[Abs[Fourier[f[x]]]^2] = Log[Re[Fourier[f[x]]]^2 + Im[Fourier[f[x]]]^2]. Быстрое преобразование (FFT) позволяет сделать Fourier за 8 операций (результат тот же).
Если лампочки могут гореть различной интенсивностью, проверьте, может вы перестарались с выходной мощностью.

Я не радиоэлектроник, поэтому возник вопрос: а что, на такой пластиночке уместилось нечтно, что может программу в машинных кодах выполнять?

ivank
30-12-2005, 18:55
pva
Это PIC16fxx у него бывает от 8(!) ног. Памяти до 256 ячеек, процессор RISC - всего 35 инструкций. А если верить картинке, там 20 ног. Туда даже 8051 поместился бы, без двух портов, только вчера с таким игрался, но там не он. Отправные точки: http://microchip.com, http://atmell.com




© OSzone.net 2001-2012