16+
Пятница
22 июня
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Программируемая логика и ЦОС

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
fk0  (28.12.2017 13:29, файл(ы), ссылка) , в ответ на Большой К -- большие погрешности. Хотя в цифре оно конечно может и не страшно. Скорей нужен фильтр Баттерворта (с "гладкой" АЧХ). автор: fk0
Например: 
Summary
You specified the following parameters:
filtertype	=	Butterworth
passtype	=	Bandstop
ripple	=	
order	=	4
samplerate	=	8000
corner1	=	300
corner2	=	500
adzero	=	
logmin	=	
Results
Command line: /www/usr/fisher/helpers/mkfilter -Bu -Bs -o 4 -a 3.7500000000e-02 6.2500000000e-02
raw alpha1    =   0.0375000000
raw alpha2    =   0.0625000000
warped alpha1 =   0.0376744577
warped alpha2 =   0.0633157730
gain at dc    :   mag = 1.228117168e+00   phase =   0.0000000000 pi
gain at centre:   mag = 2.625838338e-04   phase =  -0.1007860644 pi
gain at hf    :   mag = 1.228117167e+00   phase =   0.0000000000 pi

S-plane zeros:
	  0.0000000000 + j   0.3068734601	4 times
	  0.0000000000 + j  -0.3068734601	4 times

S-plane poles:
	 -0.0381253082 + j  -0.3887681161
	 -0.0820853942 + j  -0.3302289594
	 -0.0820853942 + j   0.3302289594
	 -0.0381253082 + j   0.3887681161
	 -0.0235284888 + j   0.2399226833
	 -0.0667600386 + j   0.2685751624
	 -0.0667600386 + j  -0.2685751624
	 -0.0235284888 + j  -0.2399226833

Z-plane zeros:
	  0.9539973718 + j   0.2998149672	4 times
	  0.9539973718 + j  -0.2998149672	4 times

Z-plane poles:
	  0.8936865359 + j  -0.3612167241
	  0.8740091229 + j  -0.2972270418
	  0.8740091229 + j   0.2972270418
	  0.8936865359 + j   0.3612167241
	  0.9493412214 + j   0.2311265590
	  0.9032562103 + j   0.2473278641
	  0.9032562103 + j  -0.2473278641
	  0.9493412214 + j  -0.2311265590

Recurrence relation:
y[n] = (  1 * x[n- 8])
     + ( -7.6319789745 * x[n- 7])
     + ( 25.8426636502 * x[n- 6])
     + (-50.6797285443 * x[n- 5])
     + ( 62.9381593930 * x[n- 4])
     + (-50.6797285443 * x[n- 3])
     + ( 25.8426636502 * x[n- 2])
     + ( -7.6319789745 * x[n- 1])
     + (  1 * x[n- 0])

     + ( -0.6630104844 * y[n- 8])
     + (  5.3195795874 * y[n- 7])
     + (-18.9433682149 * y[n- 6])
     + ( 39.0847521667 * y[n- 5])
     + (-51.0880587708 * y[n- 4])
     + ( 43.3162291990 * y[n- 3])
     + (-23.2667680099 * y[n- 2])
     + (  7.2405861811 * y[n- 1])
Ansi ``C'' Code
/* Digital filter designed by mkfilter/mkshape/gencode   A.J. Fisher
   Command line: /www/usr/fisher/helpers/mkfilter -Bu -Bs -o 4 -a 3.7500000000e-02 6.2500000000e-02 -l */

#define NZEROS 8
#define NPOLES 8
#define GAIN   1.228117167e+00

static float xv[NZEROS+1], yv[NPOLES+1];

static void filterloop()
  { for (;;)
      { xv[0] = xv[1]; xv[1] = xv[2]; xv[2] = xv[3]; xv[3] = xv[4]; xv[4] = xv[5]; xv[5] = xv[6]; xv[6] = xv[7]; xv[7] = xv[8];

        xv[8] = next input value / GAIN;
        yv[0] = yv[1]; yv[1] = yv[2]; yv[2] = yv[3]; yv[3] = yv[4]; yv[4] = yv[5]; yv[5] = yv[6]; yv[6] = yv[7]; yv[7] = yv[8];

        yv[8] =   (xv[0] + xv[8]) -   7.6319789745 * (xv[1] + xv[7]) +  25.8426636500 * (xv[2] + xv[6])
                     -  50.6797285440 * (xv[3] + xv[5]) +  62.9381593930 * xv[4]
                     + ( -0.6630104844 * yv[0]) + (  5.3195795874 * yv[1])
                     + (-18.9433682150 * yv[2]) + ( 39.0847521670 * yv[3])
                     + (-51.0880587710 * yv[4]) + ( 43.3162291990 * yv[5])
                     + (-23.2667680100 * yv[6]) + (  7.2405861811 * yv[7]);
        next output value = yv[8];
      }
  }
Прикреплённые файлы:
4414391F.gif:2 K


[ZX]
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7526 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVIII