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

|
Цитата(_Anatoliy @ Jun 18 2013, 09:13)  Как делать в частотной области - вообще не понятно,ведь время прихода сигнала не известно. Чем не устраивает быстрая свёртка? Коэффициенты фильтра можно считать на лету. Цитата(_Anatoliy @ Jun 18 2013, 09:13)  Может есть какие хитрые приёмы реализации подобных фильтров? Хитрые приёмы связаны с хитрыми CAZAC последовтаельностями, посмотрите последовательности Chu если так ЛЧМ хочется. Для некоторых последовательностей согласованные фильтры очень простые, например Golay Complementary Sequences.
|
|
|
|
|
Jun 18 2013, 07:23
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(petrov @ Jun 18 2013, 11:09)  Хитрые приёмы связаны с хитрыми CAZAC последовтаельностями, посмотрите последовательности Chu если так ЛЧМ хочется. А как обычный ЛЧM "натянуть" на CAZAC поcледовательности? Т.е. возможно разложение ЛЧМ в базисе хитрых последовательностей ?
--------------------
ну не художники мы...
|
|
|
|
|
Jun 18 2013, 07:48
|
Знающий
   
Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730

|
Цитата alex_os: А как обычный ЛЧM "натянуть" на CAZAC поcледовательности? Чего там натягивать? cazac-последовательность сама по себе лчм.
|
|
|
|
|
Jun 18 2013, 10:18
|
Знающий
   
Группа: Свой
Сообщений: 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))
--------------------
ну не художники мы...
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|