|
|
  |
Pulse Shaping Filter, Правильно ли понимаю? |
|
|
|
Aug 13 2008, 07:50
|
Местный
  
Группа: Свой
Сообщений: 467
Регистрация: 7-06-06
Пользователь №: 17 829

|
Цитата(petrov @ Aug 13 2008, 11:08)  А что это за координата такая (1,1), нету в 8PSK такой точки, на выходе таблицы у вас должно быть как раз (0.707, 0.707) для 45 градусов. Понял. Спасибо. Цитата(alexkok @ Aug 13 2008, 10:41)  В общем да, но в реальных системах, работающих в эфире или с частотным уплотнением, есть есть требование к уровню помех в соседнем канале. Например для КВ диапазона это -40дБ, насколько помню. Чтобы это требование обеспечить, используют цифровые фильтры для модулирующих сигналов. Подавать просто единицы и нули на вход модулятора нельзя. Уровень боковых лепестков этого фильтра должен быть соответствующим. Неправильно, на ЦАП подаются отсчеты уже прошедшие фильтрацию цифровым фильтром. В реальном времени это делать ни к чему, обычно все просчитывается заранее и записывается в ПЗУ. За один битовый отсчет нужно выбрать из ПЗУ и подать на ЦАП число отсчетов равное порядку фильтра. Поэтому удобнее выбирать порядок как степень двух. Почему не можете? Все это можно учесть и выбирать для такой комбинации соответствующие части прошивок. Здесь лежат ссылки на программы расчета цифровых фильторов. Я из них пользовался только FilterExpress, работает. Это я уже промоделировал в Матлабе с использованием фильтра. Правда сейчас у меня почему то отклики налазят друг на друга, странно - слишком растянутая импульсная характеристика получилась(ширина её при порядке равном 9 выходит около 0.4 мс), хотя параметры выбрал из стандарта: коэффициент сглаживания = 0.6. Частота симвовлов 10500 Гц, период соот-но 0.095 мс. Вот код: fs = 10500; - частота символов Ts = 1/fs; fd = 2*fs; - частота дискретизации [num,den] = rcosine(fs,fd,'fir',0.6, 2); - расчет фильтра. [H T]= impz(num); - импульсная хар-ка T = T.*(1/fd); - ось времени subplot(2,1,1) stem(T, H) - рисуем grid on; % [A w] = freqz(num, den); - рисуем АЧХ % subplot(2,1,2) % w*fd; % plot(w*fd/pi, 20*log10(abs(A))) % ylim([-100 10]) % grid on [y TT] = rcosflt([0.7 ,0.7],fs/6, fd,['filter', 'fir'],num); пропускаем два импульса по 0.7 через фильтр. subplot(2,1,2) stem(TT,y) - рисуем.
|
|
|
|
|
Aug 13 2008, 08:25
|
Местный
  
Группа: Свой
Сообщений: 467
Регистрация: 7-06-06
Пользователь №: 17 829

|
Цитата(petrov @ Aug 13 2008, 11:55)  Неправильно параметры фильтра посчитаны. NUM = RCOSINE(Fd, Fs) designs an FIR raised cosine filter to filter a digital signal with the digital transfer sampling frequency Fd. The filter sampling frequency is Fs. У меня обозначения перепутаны Fs и Fd, но в вызове функции они стоят на нужном месте. Посмотрите внимательнее. Насколько могут пересекаться соседние символы? Если боковыми липестками пересекаются?
|
|
|
|
|
Aug 13 2008, 09:11
|
Местный
  
Группа: Свой
Сообщений: 467
Регистрация: 7-06-06
Пользователь №: 17 829

|
Цитата(petrov @ Aug 13 2008, 12:49)  А почему символьная частота вдруг стала fs/6?
Вообще советую вам симулинк, всё гораздо нагляднее. Извиняюсь, это пробовал как будет выглядеть. Конечно пробовал и просто fs.
|
|
|
|
|
Aug 13 2008, 16:53
|
Знающий
   
Группа: Участник
Сообщений: 609
Регистрация: 3-03-07
Из: San Jose
Пользователь №: 25 837

|
Цитата(Политех @ Aug 13 2008, 10:50)  Понял. Спасибо. Это я уже промоделировал в Матлабе с использованием фильтра. Правда сейчас у меня почему то отклики налазят друг на друга, странно - слишком растянутая импульсная характеристика получилась(ширина её при порядке равном 9 выходит около 0.4 мс), хотя параметры выбрал из стандарта: коэффициент сглаживания = 0.6. Частота симвовлов 10500 Гц, период соот-но 0.095 мс. По поводу Матлаба ничего сказать не могу, не пользуюсь. Но частота отсчетов должна быть больше символьной в N раз, где N - порядок фильтра.
--------------------
|
|
|
|
|
Aug 13 2008, 19:54
|
Знающий
   
Группа: Участник
Сообщений: 609
Регистрация: 3-03-07
Из: San Jose
Пользователь №: 25 837

|
Цитата(petrov @ Aug 13 2008, 22:00)  Никак не связан порядок фильтра с частотой отсчётов. Смотря что понимать под порядком фильтра. Для FIR фильтра порядок это число коэффициентов и частота отсчетов не может быть меньше чем символьная частота умноженная на число коэффициентов. Больше - может.
--------------------
|
|
|
|
|
Aug 14 2008, 06:14
|
Знающий
   
Группа: Участник
Сообщений: 609
Регистрация: 3-03-07
Из: San Jose
Пользователь №: 25 837

|
Цитата(petrov @ Aug 14 2008, 08:54)  Ерунда какая-то... Допустим символьная частота 1, 8 отсчётов на символ, т е частота отсчётов 8, коэффициентов 200, вот меньше запросто. Ну и промоделируйте какой уровень боковых лепестков будет в соседнем канале для обсуждаемого случая: символьная частота - 10кГц, т.е. полоса канала 25кГц, тип фильтра - приподнятый косинус, плюс Ваши условия. Что будет за этой полосой? Я навскидку оцениваю в - 15..-18дБ.
--------------------
|
|
|
|
|
Aug 14 2008, 06:30
|

Профессионал
    
Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565

|
Цитата(petrov @ Aug 13 2008, 14:34)  Это не так. Фильтр с АЧХ приподнятого косинуса имеет импульсную характеристику обладающую тем свойством что она равна нулю в точках отстоящих от максимума на интервалы кратные символьному, и только. Если мы хотим получить импульсы с такими свойствами то естественно должны возбуждать фильтр последовательностью дельта-импульсов отстоящими друг от друга на символьный интервал, чтобы собственно получить импульс. Если же мы возбуждаем приподнятый косинус прямоугольными импульсами то соответственно получаем импульсы которые равны свёртке прямоугольного импульса и импульса приподнятого косинуса, которые ессно свойством отсутствия межсимвольной интерференции не обладают, поэтому нужен корректирующий фильтр обратный синк. Кстати, у меня функция NUM = RCOSINE(Fd, Fs) создаёт КИХ фильтр длиной 3 символа. Т.е. при возбуждении его последовательностью дельта-импульсов отстоящими друг от друга на символьный интервал межсимвольная интерференция в точках отстоящих от максимума на интервалы кратные символьному действительно отсутствует. Но между ними она присутствует и в этих точках есть влияние символа на два соседних. Насколько данное влияние полезно или вредно по вашему?
|
|
|
|
|
Aug 14 2008, 07:00
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(alexkok @ Aug 14 2008, 10:14)  Что будет за этой полосой? На 200/8=25 символьных интервалов будет отклик от каждого символа распространяться, на вскидку более 60 дБ будет подавление за пределами основного лепестка. Цитата(_4afc_ @ Aug 14 2008, 10:30)  Кстати, у меня функция NUM = RCOSINE(Fd, Fs) создаёт КИХ фильтр длиной 3 символа. Т.е. при возбуждении его последовательностью дельта-импульсов отстоящими друг от друга на символьный интервал межсимвольная интерференция в точках отстоящих от максимума на интервалы кратные символьному действительно отсутствует. Но между ними она присутствует и в этих точках есть влияние символа на два соседних. Насколько данное влияние полезно или вредно по вашему? Прокиса почитайте. Так и должно быть. Чем меньше коэффициент ската тем больше будут всплески на интервалах между моментами синхронизации и например джиттер синхронизации будет соответственно больший вклад вносить.
|
|
|
|
|
Aug 14 2008, 07:08
|
Знающий
   
Группа: Участник
Сообщений: 609
Регистрация: 3-03-07
Из: San Jose
Пользователь №: 25 837

|
Цитата(petrov @ Aug 14 2008, 09:56)  На 200/8=25 символьных интервалов будет отклик от каждого символа распространяться, на вскидку более 60 дБ будет подавление за пределами основного лепестка. А какая полоса этого фильтра будет и что при этом от полезного сигнала останется? Мы похоже обсуждаем разные случаи, я возбудитель передатчика (см. пост №1), а Вы приемник.
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|