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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Реализация фильтра
_Anatoliy
сообщение Jun 18 2013, 05:13
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Всем доброго времени суток.Есть задача - сделать фильтр согласованный с входным сигналом.Входной сигнал представляет собой радиоимпульс ЛЧМ с полосой 300МГц и длительностью 25 мкс. При оцифровке сигнала,например,с частотой 1ГГц получается окно для фильтрации 25000 отсчётов.Ясно что такой фильтр ни в какую FPGA не поместится,это если делать в лоб,во времеННой области.Как делать в частотной области - вообще не понятно,ведь время прихода сигнала не известно.Может есть какие хитрые приёмы реализации подобных фильтров?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Jun 18 2013, 05:48
Сообщение #2


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



..я может глупость скажу, но мне интересно - почему нельзя этот сигнал не спеша в компе фильтровать после записи? ( ну или спеша фильтровать на быстром компе) .


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 18 2013, 06:12
Сообщение #3


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Lmx2315 @ Jun 18 2013, 06:48) *
..я может глупость скажу, но мне интересно - почему нельзя этот сигнал не спеша в компе фильтровать после записи? ( ну или спеша фильтровать на быстром компе) .

Думаю что не глупость,но реалтайм - это требование заказчика.Период следования радиоимпульсов 100мкс,результат фильтрации нужно выдавать по каждому импульсу.Почему так - не знаю.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jun 18 2013, 06:37
Сообщение #4


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(_Anatoliy @ Jun 18 2013, 09:12) *

Возможно глупо, но как вариант:
а если коеффициенты фильтра хранить в ОЗУ (переписывая их в ОЗУ с какой нибудь EPROM в начале работы)


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 18 2013, 06:54
Сообщение #5


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Maverick @ Jun 18 2013, 07:37) *
Возможно глупо, но как вариант:
а если коеффициенты фильтра хранить в ОЗУ (переписывая их в ОЗУ с какой нибудь EPROM в начале работы)

Я вообще-то так и хочу сделать для наложения разных окон,но что это даст? Посчитайте количество перемножителей для реализации фильтра...
Сейчас уточняю,но фильтр может быть и комплексным wacko.gif
Go to the top of the page
 
+Quote Post
alex_os
сообщение Jun 18 2013, 07:03
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Сигнал должен быть комплексным, оцифровываем на 300 МГц (возможно с некоторой потерей полосы). Далее FFT на 16К ( 8K отсчетов 8K коэффициентов) -> IFFT. В достаточно жирную плисину должно влезть.
p.s. Вообще т.к сигнал ЛЧМ наверняка какие-то есть трюки чтобы удешевить такой фильтр.
p.p.s Может быть нужно фильтр строит не FIR а IIR ? Будет некая аппроксимация согласованного фильтра.


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 18 2013, 07:09
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Jun 18 2013, 09:13) *
Как делать в частотной области - вообще не понятно,ведь время прихода сигнала не известно.


Чем не устраивает быстрая свёртка? Коэффициенты фильтра можно считать на лету.

Цитата(_Anatoliy @ Jun 18 2013, 09:13) *
Может есть какие хитрые приёмы реализации подобных фильтров?


Хитрые приёмы связаны с хитрыми CAZAC последовтаельностями, посмотрите последовательности Chu если так ЛЧМ хочется.
Для некоторых последовательностей согласованные фильтры очень простые, например Golay Complementary Sequences.
Go to the top of the page
 
+Quote Post
alex_os
сообщение Jun 18 2013, 07:23
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(petrov @ Jun 18 2013, 11:09) *
Хитрые приёмы связаны с хитрыми CAZAC последовтаельностями, посмотрите последовательности Chu если так ЛЧМ хочется.


А как обычный ЛЧM "натянуть" на CAZAC поcледовательности? Т.е. возможно разложение ЛЧМ в базисе хитрых последовательностей ?


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 18 2013, 07:31
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(alex_os @ Jun 18 2013, 11:23) *
А как обычный ЛЧM "натянуть" на CAZAC поcледовательности? Т.е. возможно разложение ЛЧМ в базисе хитрых последовательностей ?


Имел ввиду зачем использовть тупые решения вековой давности вообще при доступности современной теории и средств обработки?
Go to the top of the page
 
+Quote Post
thermit
сообщение Jun 18 2013, 07:48
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
alex_os:
А как обычный ЛЧM "натянуть" на CAZAC поcледовательности?


Чего там натягивать? cazac-последовательность сама по себе лчм.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 18 2013, 09:21
Сообщение #11


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(petrov @ Jun 18 2013, 08:09) *
Чем не устраивает быстрая свёртка? Коэффициенты фильтра можно считать на лету.
Хитрые приёмы связаны с хитрыми CAZAC последовтаельностями, посмотрите последовательности Chu если так ЛЧМ хочется.
Для некоторых последовательностей согласованные фильтры очень простые, например Golay Complementary Sequences.

Спасибо за ответ,начал поиск литературы.

Как я понял - быстрая свёртка это и есть то что я назвал в топовом сообщении "в частотной области". А здесь мне не понятен один момент:для FFT я набираю массив данных длиной 2^N,но может статься что в этом массиве окажется например 30% импульса ЛЧМ,следующие 70% попадут уже в следующий набор данных.Это как то скажется на качестве корреляции?Мне сдаётся что вместо одного пика на выходе согласованного фильтра я получу два пика(для первого и второго набора данных).
Go to the top of the page
 
+Quote Post
alex_os
сообщение Jun 18 2013, 10:18
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(_Anatoliy @ Jun 18 2013, 13:21) *
Спасибо за ответ,начал поиск литературы.

Как я понял - быстрая свёртка это и есть то что я назвал в топовом сообщении "в частотной области". А здесь мне не понятен один момент:для FFT я набираю массив данных длиной 2^N,но может статься что в этом массиве окажется например 30% импульса ЛЧМ,следующие 70% попадут уже в следующий набор данных.Это как то скажется на качестве корреляции?Мне сдаётся что вместо одного пика на выходе согласованного фильтра я получу два пика(для первого и второго набора данных).


Нужно использовать результаты предидидущих блоков. Как вариант см. код ниже. Используется тот факт что свертка суммы последовательностей есть сумма сверток. Хорошо написано было про это кажется у Рабинера с Голдом.

Код
N = 13;
x = randn(1, 7*N);  % signal
h = randn(1,N);     % impulse response of a filter

yref = conv(x, h);

y = zeros(1, length(x)+length(h)-1);

% size of FFT is 2*N !!!
H = fft([h, zeros(1,N)]);
prev_hx = zeros(1, N-1);

for i=1:7
    
    X = fft([x((i-1)*N+1 : i*N), zeros(1,N)]);
    hx = ifft(H.*X);
    % прибавляем предидущий хвост
    hx(1:N-1) = hx(1:N-1) + prev_hx;
    prev_hx = hx(N+1:end-1);
    % запоминаем "хвост"  
    y((i-1)*N+1 : i*N) = hx(1:N);
end

figure(1);
% Результаты вычисленные двумя способами идентичны
plot(1:7*N, yref(1:7*N), 1:7*N, y(1:7*N))



--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 18 2013, 10:31
Сообщение #13


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(alex_os @ Jun 18 2013, 11:18) *
Нужно использовать результаты предидущих блоков. Как вариант см. код ниже. Используется тот факт что свертка суммы последовательностей есть сумма сверток. Хорошо написано было про это кажется у Рабинера с Голдом.

О,спасибо!Почитаю этот источник и поиграюсь с матлабом.
Go to the top of the page
 
+Quote Post
petrov
сообщение Jun 18 2013, 10:58
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(_Anatoliy @ Jun 18 2013, 14:31) *
О,спасибо!Почитаю этот источник и поиграюсь с матлабом.


Возможно обратно во временную область не нужно переходить, FFT от ЛЧМ тоже ЛЧМ, смещение во времени переходит в смещение по частоте, можно обнаруживать в частотной области, в общем статей на эту тему полно в гугле.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 18 2013, 11:37
Сообщение #15


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(petrov @ Jun 18 2013, 11:58) *
Возможно обратно во временную область не нужно переходить, FFT от ЛЧМ тоже ЛЧМ, смещение во времени переходит в смещение по частоте, можно обнаруживать в частотной области, в общем статей на эту тему полно в гугле.

Ага,спасибо!Это я уже на моделях посмотрю.
Go to the top of the page
 
+Quote Post

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

 


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


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