реклама на сайте
подробности

 
 
> окно Дольфа-Чебышева, синтез, литература, проблемы, вопросы
1ns1d3r
сообщение Dec 15 2011, 09:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 19-11-09
Пользователь №: 53 738



Необходима литература, в которой описывался бы синтез окна Дольфа-Чебышева, где получена формула для расчета коэффициентов. В статье Фредерика Хэрриса "Использование окон при гармоническом анализе методом дискретного преобразования Фурье" дана только формула для расчета и по этой формуле посчитать коэффициенты не получается, так как при вычислениях получаются большие числа. В статье Хэрриса есть ссылка на Helms H. D. Digital filters with equiripple or minimax responses - возможно у кого-то есть эта статья?
Поделитесь опытом, кто занимался окнами с равновеликими боковыми лепестками.
спасибо)

Сообщение отредактировал 1ns1d3r - Dec 15 2011, 09:51
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
M@kar
сообщение Dec 15 2011, 18:52
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 94
Регистрация: 30-10-09
Пользователь №: 53 318



Запросите статью в Документации по электронике в теме "Запрос стандартов и статей IEEE, у кого есть халявный доступ к IEEE, помогите!"
Go to the top of the page
 
+Quote Post
Alexey Lukin
сообщение Dec 15 2011, 21:40
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 159
Регистрация: 3-01-11
Пользователь №: 62 000



https://ccrma.stanford.edu/~jos/sasp/Dolph_...hev_Window.html
Go to the top of the page
 
+Quote Post
AndeyP
сообщение Jan 10 2012, 09:42
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 25-06-06
Пользователь №: 18 344



Первоисточником считается статья 1946 года C.L.Dolph "A Current Distribution for Broadside Arrays Which Optimizes the Relationship Between Beam Width and Side-Lobe Level"
Код
#define acosh(x)        (log((x) + sqrt((x) * (x) - 1)))

void DolphChebyshev (double * win, int n, double db)
{
    int i, j, m = n-1;
    for (j = 0; j < n; j++)
    {
        win[j] = 0;
        for (i = 0; i < n; i++)
        {
            double t = PI*(i - m*.5)/n;
            double x = cosh(acosh(pow(10, db / 20)) / m) * cos(t);
            double w = fabs(x) <= 1.0 ? cos(m * acos(x)) : cosh(m * acosh(x));
            win[j] += w * cos(t*(j - m*.5)*2);
        }
    }
    double scale = 1./win[n/2];
    for (i = 0; i < n; i++)
    {
        win[i] *= scale;
    }
}

Пример: рассчитать окно на 256 отсчетов с подавлением 100 дб
double win[256];
DolphChebyshev(win, 256, 100);
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 02:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01345 секунд с 7
ELECTRONIX ©2004-2016