Цитата(jorikdima @ Sep 6 2016, 19:26)

А в Матлабе усиления нет? Ну то есть на частотах вне выреза режектора характеристика близка к 1?
Нет усиления, характеристика выходит в 0 дБ. В микроконтроллере коэффициенты немного обрезаются (например пишу а1=0.9925637453629, под отладкой показывает а1=а1=0.9925637). Но я смоделировал с обрезанными коэффициентами в маткаде - все нормально получилось, без усиления и характеристика не изменилась.
Реализую вот так:
Код
struct {
float a0;
float a1;
float a2;
float b1;
float b2;
int k;
int k1;
int k2;
float X[4];
float Y[4];
int Y1;
} NotchedFilter;
в прерывании I2S
Код
//выдаю данные
hsai_BlockA1.Instance->DR = noise.NotchedFilter.Y1;
hsai_BlockA1.Instance->DR = noise.NotchedFilter.Y1;
//считаю следующий отсчет
// noise.NotchedFilter.Y[noise.NotchedFilter.k] = noise.NotchedFilter.a2*noise.NotchedFilter.X[noise.NotchedFilter.k2] +
// noise.NotchedFilter.a1*noise.NotchedFilter.X[noise.NotchedFilter.k1] + noise.NotchedFilter.a0*noise.NotchedFilter.X[noise.NotchedFilter.k] -
// noise.NotchedFilter.b1*noise.NotchedFilter.Y[noise.NotchedFilter.k1] - noise.NotchedFilter.b2*noise.NotchedFilter.Y[noise.NotchedFilter.k2];
noise.NotchedFilter.Y[noise.NotchedFilter.k] = noise.NotchedFilter.a2*(noise.NotchedFilter.X[noise.NotchedFilter.k2] + noise.NotchedFilter.X[noise.NotchedFilter.k]) +
noise.NotchedFilter.a1*(noise.NotchedFilter.X[noise.NotchedFilter.k1] - noise.NotchedFilter.Y[noise.NotchedFilter.k1]) -
noise.NotchedFilter.b2*noise.NotchedFilter.Y[noise.NotchedFilter.k2];
noise.NotchedFilter.Y1 = noise.NotchedFilter.Y[noise.NotchedFilter.k];//оптимизировал а0=а2, а1=b1
noise.NotchedFilter.k = (noise.NotchedFilter.k + 1)&BUFFMASK;
noise.NotchedFilter.k1 = (noise.NotchedFilter.k - 1)&BUFFMASK;//посчитали индекс Xk-1
noise.NotchedFilter.k2 = (noise.NotchedFilter.k - 2)&BUFFMASK;//посчитали индекс Xk-2