Формирование пачки радиоимпульсов и его амплитудный спектр
-
- Сообщения: 64
- Зарегистрирован: 11 сен 2015, 23:37
Re: Формирование пачки радиоимпульсов и его амплитудный спектр
В матлабе есть встроенная функция называется hilbert не могу понять как она работает. По идее я должен взять от сигнала ДПФ потом обнулить половину массива. В этой же функции алгоритм како-то странный формируется массив h как то странно в нем есть и единицы и двойки и нули (что касается двоек и нулей вроде понятно потому что мы спектр умножаем на два и обнуляем вторую половину, а единицы к чему?) Может объясните мне принцип этого алгоритма. В интернете нашел алгоритмm,но все равно не понимаю его
Алгоритм
Аналитический сигнал для последовательности x имеет односторонний спектр, то есть значения его ДПФ для отрицательных частот равны нулю. Для получения аналитического сигнала функция hilbert вычисляет ДПФ входной последовательности отсчетов, обнуляет результаты, соответствующие отрицательным частотам, после чего вычисляет обратное ДПФ.
Ниже более детально приведен четырехшаговый алгоритм, используемый функцией hilbert:
С помощью функции fft вычисляется n-точечное ДПФ входной последовательности, результат сохраняется в векторе x.
1 для i = 1 и i = (n/2)+1;
2 для i = 2, 3, …, (n/2);
0 для i = (n/2)+2, …, n.
Создается вектор h, элементы которого, h(i), имеют следующие значения:
Вычисляется поэлементное произведение векторов x и h.
С помощью функции ifft вычисляется обратное ДПФ последовательности, полученной на предыдущем шаге.
Если входной параметр xr является матрицей, функция hilbert использует тот же алгоритм, расширяя каждый его шаг для обработки матрицы по столбцам.
Алгоритм
Аналитический сигнал для последовательности x имеет односторонний спектр, то есть значения его ДПФ для отрицательных частот равны нулю. Для получения аналитического сигнала функция hilbert вычисляет ДПФ входной последовательности отсчетов, обнуляет результаты, соответствующие отрицательным частотам, после чего вычисляет обратное ДПФ.
Ниже более детально приведен четырехшаговый алгоритм, используемый функцией hilbert:
С помощью функции fft вычисляется n-точечное ДПФ входной последовательности, результат сохраняется в векторе x.
1 для i = 1 и i = (n/2)+1;
2 для i = 2, 3, …, (n/2);
0 для i = (n/2)+2, …, n.
Создается вектор h, элементы которого, h(i), имеют следующие значения:
Вычисляется поэлементное произведение векторов x и h.
С помощью функции ifft вычисляется обратное ДПФ последовательности, полученной на предыдущем шаге.
Если входной параметр xr является матрицей, функция hilbert использует тот же алгоритм, расширяя каждый его шаг для обработки матрицы по столбцам.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Формирование пачки радиоимпульсов и его амплитудный спектр
Если сказать по-русски: для постоянной составляющей и частоты Найквиста умножать на 2 не надо.
Как Модератор, делаю очередное замечание за overquoting, к тому же с ошибками!
С помощью функции fft вычисляется n-точечное ДПФ входной последовательности, результат сохраняется в векторе x.
Создается вектор h, элементы которого, h(i), имеют следующие значения:
1 для i = 1 и i = (n/2)+1;
2 для i = 2, 3, …, (n/2);
0 для i = (n/2)+2, …, n.
Вычисляется поэлементное произведение векторов x и h.
С помощью функции ifft вычисляется обратное ДПФ последовательности, полученной на предыдущем шаге.
Re: Формирование пачки радиоимпульсов и его амплитудный спектр
Не должны. Пребразование Гильберта - инвариантная во времени линейная система, чтобы обнуление ДПФ являлось таковым, оно должно быть скользящим, что совершенно не выгодно по ресурсам. Фильтр Гильберта в виде быстрой свёртки очень длинным быть должен, чтобы это было выгодно. Делайте обычный полосовой КИХ фильтр антисимметричный с нечётным количеством коэффициентов, 4-х кратная экономия на умножениях.Андрей1991 писал(а): По идее я должен взять от сигнала ДПФ потом обнулить половину массива.
-
- Сообщения: 64
- Зарегистрирован: 11 сен 2015, 23:37
Re: Формирование пачки радиоимпульсов и его амплитудный спектр
Я просто не пойму почему такой массив h получается, я думал массив h должен содержать половину нулей и половину двоек и все, объясните а то я не понимаю, тупой наверно
Re: Формирование пачки радиоимпульсов и его амплитудный спектр
ХЗ, не люблю БИХ, лишние искажения, с которыми и так нужно бороться. Обычно ведь не гильберт, а перенос в ноль и фильтрация КИХ ФНЧ, он же согласованный фильтр, он же имеет эффективную полифазную реализацию, не вносит искажений, легко считаются разрядности арифметических устройств(FPGA).Santik писал(а):А это точно будет выгоднее, чем два всепропускающих БИХ -фильтра?
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Формирование пачки радиоимпульсов и его амплитудный спектр
Да так оно в принципе и есть (это я про массив h)
Исключение составляют всего две точки - с 0-частотой и частотой Найквиста.
И скорее всего - в описании ошибка. Должно быть h(1)=0.
-
- Сообщения: 64
- Зарегистрирован: 11 сен 2015, 23:37
Re: Формирование пачки радиоимпульсов и его амплитудный спектр
Скажите, а если умножить двойку на частоту Найквиста и на нулевую частоту, что произойдет? Хочу это физически понять.Почему исключение составляют эти две точки?
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: Формирование пачки радиоимпульсов и его амплитудный спектр
Ну умножь сам и посмотри. А вообще за этот вопрос - тебе ещё одно предупреждение.
Для начала посмотри, что такое БПФ. (Я имею ввиду стандартные программы).
Э.Р. Канасевич "Анализ временных последовательностей в геофизике" стр. 54
-
- Сообщения: 64
- Зарегистрирован: 11 сен 2015, 23:37
Re: Формирование пачки радиоимпульсов и его амплитудный спектр
А почему вы говорите что должно быть h(1)=0? Вы же говорили что в точках h(1)=1 и h((n/2)+1)=1.объясните