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

 
 
 
Reply to this topicStart new topic
> Помогите с фильтрацией сигнала., QPSK --> matlab --> delphi
drcham
сообщение Dec 8 2007, 20:22
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 24-03-05
Пользователь №: 3 658



В матлабе в симулинке есть ДЕМО QPSK сигнала. После некоторых нехитрых блоков ( q/i разделение, фильтр и блока вывода значений в workspace) получил txt файл с нефильтрованной компонентой I.
Далее моя задача состоит в фильтрации сигнала.
(точнее я должен сделать алгоритм фильтрации)
Беру для примера или фильтр Гаусса или raised cosine ( приподнятый косинус ).
Коэффициенты могу рассчитать матлабе.
У меня возник вопрос по применению этих коэффициентов к сигналу.
Я так понимаю, что если ввести в матлабе rcosfir(0.5) то получится массив коэффиентов фильтра b[i] размером от 1 до 31.
У меня же в файле 500 значений ( вытащенных из матлаба ).
Как правильно применить эти коэффиенты к сигналу?
Сверткой нельзя т.к. длина массивов разная.

Кто бы мог толково сказать как я в данном случае должен применить фильтр к сигналу?
Я пытался брать Импульсную х-ку для rcosfir ( из справки матлаба ), считатть по ней 500 значений и делать conv() но у меня не получилось ничего вразумительного.

Мне нужно понять как правильно посчитать коэффиенты фильтра и применить их сигналу. ( сейчас 500 точек, но это пример чтоб не заморачиваться с написанием QPSK модулятора на дельфи ).

В данный момент у меня ограничен доступ к интернету. Про книгу Теория и применение цифровой обработки сигналов. Л.Рабинер, Б.Гоулд я слышал, но скачать пока немогу. Помогите кто может, а то скоро сдавать, а спросить, кроме как тут, негде. Спасибо всем откликнувшимся.
Go to the top of the page
 
+Quote Post
Singer
сообщение Dec 8 2007, 21:00
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 52
Регистрация: 13-11-07
Пользователь №: 32 296



Фильтр применяется по формуле y(n) = СУMM(x(n-i)*h(i)), i = 0..N-1
Так получаете каждый n - ый отсчет выхода y, используя N-1 предыдущих, где N- длина фильтра. Что вы привязались к длине сигнала, непонятно.
Go to the top of the page
 
+Quote Post
Tue
сообщение Dec 9 2007, 00:16
Сообщение #3


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

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



применить фильтр можно так: filter(b,a,x), подробнее смотри help filter
Go to the top of the page
 
+Quote Post
drcham
сообщение Dec 9 2007, 07:11
Сообщение #4





Группа: Участник
Сообщений: 14
Регистрация: 24-03-05
Пользователь №: 3 658



Tue как в матлабе понятно, мне надо это повторить в дельфи.
SInger спасибо, сейчас попробую.

Singer т.е. я так понимаю, что N никак не привязано к количеству взятых точек сигнала, т.е. матдаб вернул порядок фильтра - 31 и это будет N, так ?
А дальше просто y(n) Где n и будет число точек сигнала?
Go to the top of the page
 
+Quote Post
Singer
сообщение Dec 9 2007, 08:22
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 52
Регистрация: 13-11-07
Пользователь №: 32 296



Цитата(drcham @ Dec 9 2007, 10:11) *
Tue как в матлабе понятно, мне надо это повторить в дельфи.
SInger спасибо, сейчас попробую.

Singer т.е. я так понимаю, что N никак не привязано к количеству взятых точек сигнала, т.е. матдаб вернул порядок фильтра - 31 и это будет N, так ?
А дальше просто y(n) Где n и будет число точек сигнала?

Именно так. Главное чтобы чтобы длина выборки сигнала не была меньше порядка фильтра N.
З.Ы. Только n - не число точек, а текущая позиция в выборке сигнала.

Сообщение отредактировал Singer - Dec 9 2007, 08:24
Go to the top of the page
 
+Quote Post
drcham
сообщение Dec 9 2007, 17:35
Сообщение #6





Группа: Участник
Сообщений: 14
Регистрация: 24-03-05
Пользователь №: 3 658



Спасибо, с фильтром разобрался.
А как фильтровать комплексный сигнал? Отдельно I и Q понятно, а комплексный через Re и Im и обратно собирать в комплексный?
Go to the top of the page
 
+Quote Post
artri
сообщение Dec 9 2007, 21:13
Сообщение #7





Группа: Новичок
Сообщений: 1
Регистрация: 9-12-07
Пользователь №: 33 134



Цитата(drcham @ Dec 9 2007, 21:35) *
Спасибо, с фильтром разобрался.
А как фильтровать комплексный сигнал? Отдельно I и Q понятно, а комплексный через Re и Im и обратно собирать в комплексный?

1. Самый простой способ фильтрации - это свертка сигнала и фильтра
2. есть сигнал длины N и фильтр длины М - массивы коэффициентов.
3. И сигнал и фильтр дополняются нулями справа до длины L (степень двойки), так L >=N+M-1
4. Вычисляешь ДПФ (преобразование Фурье) этих двух сигналов.
5. Почленно перемножаешь полученные спектры.
6. Вычисляешь обратное ДПФ полученного спектра и получаешь сигнал из L точек - результат фильтрации
Go to the top of the page
 
+Quote Post
Singer
сообщение Dec 10 2007, 05:50
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 52
Регистрация: 13-11-07
Пользователь №: 32 296



Цитата(artri @ Dec 10 2007, 00:13) *
1. Самый простой способ фильтрации - это свертка сигнала и фильтра
2. есть сигнал длины N и фильтр длины М - массивы коэффициентов.
3. И сигнал и фильтр дополняются нулями справа до длины L (степень двойки), так L >=N+M-1
4. Вычисляешь ДПФ (преобразование Фурье) этих двух сигналов.
5. Почленно перемножаешь полученные спектры.
6. Вычисляешь обратное ДПФ полученного спектра и получаешь сигнал из L точек - результат фильтрации

Вы описали хотя и самый быстрый, но не самый простой способ - т.н. быстрая свертка...самый простой способ для новичка это все таки свертка в лоб, по вышеуказанной формуле, там только умножение с накоплением без ДПФ и ОДПФ...ну это и так и понятно.
Насчет IQ - нужно фильтровать эти компоненты отдельно, как если бы это были два разных канала данных. Зачем что-то собирать? На входе два канала, на выходе 2 канала...

Сообщение отредактировал Singer - Dec 10 2007, 05:52
Go to the top of the page
 
+Quote Post
drcham
сообщение Dec 10 2007, 07:02
Сообщение #9





Группа: Участник
Сообщений: 14
Регистрация: 24-03-05
Пользователь №: 3 658



Большое спасибо!!
Библиотека, которая делает FFT и iFFT у меня есть, но почему-то мне показалось, что это гиморней.
А код свертки как показал Singer потребовал 15мин на расчет руками чтоб понять, что значения совпадают с матлабом и 15 мин на реализаию.
Но за алгоритм для FFT спасибо.
Go to the top of the page
 
+Quote Post

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

 


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


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