Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
136 / 130 / 87
Регистрация: 18.05.2013
Сообщений: 399
1

Цифровые фильтры (КИХ и БПФ)

04.02.2015, 17:22. Просмотров 3216. Ответов 5
Метки нет (Все метки)

Всем привет,

На сайте MSDN нашел готовые классы, реализующие фильтры FIR (КИХ) и FFT (БПФ), но как с ними работать-не могу разобраться.
У меня есть массив координат, по которым я построил график, теперь нужно наложить на этот график КИХ-фильтр и БПФ (в результате, получится 3 графика: без фильтра, с КИХ и БПФ).

Сделал так, но не знаю, правильно ли:
C#
1
2
3
4
5
6
7
8
 //FIR
Series input = new Series();
input = chart1.Series[0];
Series output = new Series();
 
FIRFilters fir = new FIRFilters();
fir.CurrentAlgorithm = FFT.Algorithm.Blackman;
fir.HighPassFilter(input, output);
как теперь построить график по значениям, которые содержатся в output (если, конечно, я правильно сделал)?

С БПФ я не разобрался как работать, пока использую MathNet.Numerics.
Возможно, есть более простые бесплатные библиотеки для обработки цифрового сигнала?

Сам я плохо разбираюсь в цифровых фильтрах
0
Вложения
Тип файла: zip DigitalFilter.zip (5.0 Кб, 29 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2015, 17:22
Ответы с готовыми решениями:

КИХ фильтры с несимметричной ИХ в MATLAB
Здравствуйте. Подскажите, пожалуйста, можно ли проектировать КИХ фильтры с несимметричной ИХ в...

цифровые полосовые фильтры
Решил разобраться с фильтрацией сигналов Для начала курил статью из википедии...

Целочисленные цифровые фильтры
Современное проектирование целочисленных цифровых фильтров (ЦЦФ) - это проектирование по...

Цифровые рекурсивные фильтры
Часть 1. Часть 2. Часть 3. Я долго думал, как назвать тему. Вариантов было много: от...

5
141 / 180 / 44
Регистрация: 25.04.2012
Сообщений: 2,624
Записей в блоге: 5
04.02.2015, 18:08 2
Вроде в LabVIEW можно как-то с C# работать.
0
136 / 130 / 87
Регистрация: 18.05.2013
Сообщений: 399
04.02.2015, 18:13  [ТС] 3
Alex9, спасибо, но нет. LabVIEW не бесплатен, требуется реализовать средствами C#, используя только бесплатные библиотеки и компоненты.
0
148 / 129 / 18
Регистрация: 29.04.2015
Сообщений: 626
19.08.2015, 09:59 4
Статьи по цифровой фильтрации (БИХ, КИХ) для начинающих:
http://we.easyelectronics.ru/blog/Theory/
БИХ 5-го порядка:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <math.h>
    double F0,Fs,Pi,Psi,Psi0,Psi2,Psi3,Psi4,Psi5,a0Psi,z1,z2;
    double b_1,b_2,b_3,b_4,b_5,a0,a_1,a_2,a_3,a_4,a_5,Omega_p,O2,O3,O4,O5;
    double A[11], B[11];
    int i;
    void main(void){
    //!F0- относительная центральная частота
    //!A,B - выходные массивы коэффициентов
    Pi=3.1415926535897932;
    F0=0.3;
    Fs=0.2;   //!Частота среза ФНЧ (относительная) или полоса фильтра
    Omega_p=tan(Fs*0.5*Pi);
    O2=Omega_p*Omega_p;
    O3=O2*Omega_p;
    O4=O3*Omega_p;
    O5=O4*Omega_p;
    //!Эллиптический фильтр
    b_1=0.02974*Omega_p;
    b_2=0.;
    b_3=0.16652*O3;
    b_4=0.;
    b_5=0.2042*O5;
    a_1=0.92546*Omega_p;
    a_2=1.81487*O2;
    a_3=1.09691*O3;
    a_4=0.74668*O4;
    a_5=0.20420*O5;
    // Или    Фильтр Чебышева 2 рода    (коэффициенты из статьи)
    //b_1=0.15819*Omega_p;
    //b_2=0.;
    //b_3=0.63277*O3;
    //b_4=0.;
    //b_5=0.50622*O5;
    //a_1=2.64719*Omega_p;
    //a_2=3.49129*O2;
    //a_3=2.91421*O3;
    //a_4=1.51981*O4;
    //a_5=0.50622*O5;
 
    Psi0=1./cos(Fs*0.5*Pi);
    Psi=-2.*cos(F0*Pi)*Psi0;
    Psi2=Psi*Psi;
    Psi3=Psi2*Psi;
    Psi4=Psi3*Psi;
    Psi5=Psi4*Psi;
    a0=1./(1+a_1+a_2+a_3+a_4+a_5);
    a0Psi=a0*Psi;
    A[0]=1.;
    A[10]=a0*(1-a_1+a_2-a_3+a_4-a_5);
    z1=a0Psi*(5+3* a_2+a_4);
    z2=-2*a0Psi*(2*a_1+ a_3);
    A[1]=z1-z2;
    A[9]=z1+z2;
    z1=a0*(5+Psi2*(10+3*a_2)+a_2-3*a_4);
    z2=a0*(-(3+6*Psi2)*a_1-(Psi2-1)*a_3+5*a_5);
    A[2]=z1-z2;
    A[8]=z1+z2;
    z1=a0Psi*(20+Psi2*(10+ a_2)-4* a_4);
    z2=a0Psi*(-(8+4*Psi2)*a_1+4*a_3);
    A[3]=z1-z2;
    A[7]=z1+z2;
    z1=a0*(10+30*Psi2+5*Psi4-(2+3*Psi2)*a_2+2*a_4);
    z2=a0*(-(2+6*Psi2+Psi4)*a_1+(2+3*Psi2)*a_3-10*a_5);
    A[4]=z1-z2;
    A[6]=z1+z2;
    A[5]=a0Psi*(30+20*Psi2+Psi4-(6+2*Psi2)*a_2+6* a_4);
    B[0]=a0*(b_1+b_2+b_3+b_4+b_5);
    B[10]=a0*(-b_1+b_2-b_3+b_4-b_5);
    z1=a0Psi*(+3* b_2+ b_4);
    z2=a0Psi*(-4*b_1-2*b_3);
    B[1]=z1-z2;
    B[9]=z1+z2;
    z1=a0*(+(1+3*Psi2)*b_2-3*b_4);
    z2=a0*(-(3+6*Psi2)*b_1-(Psi2-1)*b_3+5*b_5);
    B[2]=z1-z2;
    B[8]=z1+z2;
    z1=a0Psi*(Psi2*b_2-4* b_4);
    z2=a0Psi*(-(8+4*Psi2)*b_1+4* b_3);
    B[3]=z1-z2;
    B[7]=z1+z2;
    z1=a0*(2*b_4);
    z2=a0*(-(2+6*Psi2+Psi4)*b_1+(2+3*Psi2)*b_3-10*b_5);
    B[4]=z1-z2;
    B[6]=z1+z2;
    B[5]=a0Psi*(-(6+2*Psi2)*b_2+6* b_4);
    return;             
    }
0
Модератор
873 / 782 / 326
Регистрация: 03.02.2015
Сообщений: 5,077
Записей в блоге: 9
19.08.2015, 10:05 5
Книга спасет? Там правда для С. Или Вы больше на готовые библиотеки ориентируетесь?
0
Вложения
Тип файла: 7z Numerical_Recipes_C.7z (7.17 Мб, 21 просмотров)
148 / 129 / 18
Регистрация: 29.04.2015
Сообщений: 626
20.08.2015, 08:33 6
Мощная книга :-)
Начинающим по фильтрации я всё-таки бы посоветовал статьи на dsplib.ru
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2015, 08:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

БПФ, поиск максимума спектральной плотности, поиск экстремума (максимума) в отсчетах БПФ
Всем добра! В математике я нуб, нужна помощь в решение задачи в Matlab!!! Дано: 1) Частота...

VBA Excel автофильтр: вместо "фильтры по дате" предлагается "текстовые фильтры"
Доброго времени суток, уважаемые форумчане! Пожалуйста, подскажите решение следующей дилеммы: С...

КИХ фильтр
как сделать такую характеристику у фильтра?

КИХ-фильтр
Здравствуйте! У меня следующая проблема. В рамках дипломного проекта разрабатывается система...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.