G00dWIN
Участник-
Постов
8 -
Зарегистрирован
-
Посещение
Репутация
0 Обычный-
Ких-фильтр нижних частот на visualdsp
G00dWIN ответил G00dWIN тема в Алгоритмы ЦОС (DSP)
Господа. Вот, собственно, реализовал: #define N 1024 #define P 110 .section/data data1; .VAR input[N]="signal.dat"; .VAR out[N]; .VAR dm_inp[P]; //.section/pm pm_da; .VAR pm_koef[P]="fir_new1.dat"; .section/pm interrupts; __reset:JUMP start; rti; rti; rti; // 0x0000: reset rti; rti; rti; rti; // 0x0004: IRQ2 rti; rti; rti; rti; // 0x0008: IRQL1 rti; rti; rti; rti; // 0x000c: IRQL0 rti; rti; rti; rti; // 0x0010: SPORT0 tx rti; rti; rti; rti; // 0x0014: SPORT1 rx rti; rti; rti; rti; // 0x0018: IRQE rti; rti; rti; rti; // 0x001c: BDMA rti; rti; rti; rti; // 0x0020: SPORT1 tx or IRQ1 rti; rti; rti; rti; // 0x0024: SPORT1 rx or IRQ0 rti; rti; rti; rti; // 0x0028: timer rti; rti; rti; rti; // 0x002c: power down .section/pm program; start: M0=1; M1=1; M2=1; M4=1; I0=input; L0=N; I1=out; L1=N; I2=dm_inp; L2=P; fir: I4=pm_koef; L4=P; CNTR=N; DO out_ UNTIL CE; AX0=DM(I0,M0); DM(I2,M2)=AX0; MR=0; CNTR=P; DO calc UNTIL CE; MX0=DM(I2,M2); MY0=PM(I4,M4); MR=MR+MX0*MY0(RND); calc: IF MV SAT MR; out_: DM(I1,M1)=MR1; end: IDLE; Где P - порядок фильтра. Файл с отсчётами входного сигнала формировался в С++ следующим кодом: #include <fstream> #include <iostream> #include <cstdio> #include <cmath> using namespace std; double x; double f; int main () { ofstream out("C:\\signal.dat"); for (x=0;x<256;x++) { f=sin(3000*x); out<<f<<"r"<<"\n"; } for (x=256;x<512;x++) { f=sin(50000*x); out<<f<<"r"<<"\n"; } for (x=256;x<768;x++) { f=sin(80000*x); out<<f<<"r"<<"\n"; } for (x=768;x<1024;x++) { f=sin(10000*x); out<<f<<"r"<<"\n"; } out.close(); system("PAUSE"); return 0; } В итоге получился такой результат (см приложение). Но мне кажется, что что-то не так... Подскажите, правильно ли всё сделано? -
Входные значения в visualdsp
G00dWIN опубликовал тема в Алгоритмы ЦОС (DSP)
Всем доброго времени суток. Работаю в VisualDSP++ с процессором adsp-2181. Есть файл, в котором дискретные значения функции, например, синуса. 1024 отсчёта, всё ок, программа всё принимает, график строит. Однако, если, например, у меня сумма синусов, то дискретные значения могу быть за пределами интервала -1;1. Тут то программа и ругается на это, вот такая ошибка вылазит: [Error ea1036] "signal.dat":1019 '-1.66051r' out of range. Fract constants must be greater than or equal to -1 and less than 1. Constants .5r and .2r are examples of legal fracts in assembly source. Так вот, программа работает только в этих пределах? Дальше этого интервала нельзя? -
Ких-фильтр нижних частот на visualdsp
G00dWIN ответил G00dWIN тема в Алгоритмы ЦОС (DSP)
Курсовая :( Честно говоря, не понял Вашего поста... Блин, ну кто-нибудь, пожалуйста, реализуйте мне этот проект :3 -
Ких-фильтр нижних частот на visualdsp
G00dWIN ответил G00dWIN тема в Алгоритмы ЦОС (DSP)
Так, пара вопросов. 1. Надо организовать файл с дискретными значениями входного сигнала. Если частота дискретизации 200 кГц, то какое должно быть число отсчётов? 200000, я полагаю? 2. Каким конкретно образом рассчитать все коэффициенты и засунуть их в текстовый файл в нужном формате? Помогите пожалуйста, хотя бы этим, желательно, примерами. -
Ких-фильтр нижних частот на visualdsp
G00dWIN ответил G00dWIN тема в Алгоритмы ЦОС (DSP)
Это печально, весьма печально! Господа, ну хоть кто-нибудь может мне помочь? Я готов даже заплатить за ваш час работы! А то и меньше... -
Ких-фильтр нижних частот на visualdsp
G00dWIN ответил G00dWIN тема в Алгоритмы ЦОС (DSP)
Можете написать мне на почту: evv93@mail.ru, или сообщите, пожалуйста свою мне в ЛС, либо другой удобный для Вас способ связи. У меня почему-то нет возможности отправлять ЛС на форуме... По поводу 2181 - так поставлена задача... -
Ких-фильтр нижних частот на visualdsp
G00dWIN ответил G00dWIN тема в Алгоритмы ЦОС (DSP)
Да, видел, но это не то! Там входной сигнал берётся с одного из портов. Мне надо, чтобы входной сигнал задавался .dat файлом. А ещё у меня не blackfin, a adsp-2181! -
Ких-фильтр нижних частот на visualdsp
G00dWIN опубликовал тема в Алгоритмы ЦОС (DSP)
Ребята, прошу помощи в связи с тем, что совсем не хватает времени. Нужен алгоритм реализации ких-фильтрна нижних частот, желательно, целым проектом. (VisualDSP) Я сделал: 1. Рассчёт коэффициентов в FDAtool 2. С помощью проги на с++ добавил в конец каждого коэффициента символ "r" (где-то вычитал, что это нужно для правильной работы с числами с плавающей запятой. В проекте нужно: 1. Собсно, сам когд. 2. Файл с коэффициентами входного сигнала. Исходные данные: Ких-фильтр нижних частот. Частота среза: 60 кГц + 20 Гц Подавление: 40 дБ Неравномерность в полосе пропускания: 3 дБ Частота дискретизации: 200 кГц Так же прикрепляю скриншот из FDAtool и полученный файл с коэффициентами. Ребята, нужен проект со всем этим, помогите пожалуйста, сроки очень поджимают!!!(((( PS: adps-2181 files.rar
