Перейти к содержанию
    

andyp

Участник
  • Постов

    545
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

Весь контент andyp


  1. В Alan V. Oppenheim , Ronald W. Schafer Discrete-Time Signal Processing примеры есть после каждой главы.
  2. Ширман или не Ширман, а передискретизация при моделировании эффекта доплера нужна даже и в классических представлениях, о чем и писал выше. Но при медленно движущихся приемнике-передатчике-отражателях и когда полоса сигнала шибко меньше несущей она как бы и не нужна :-). PS Ширмана, кстати, посмотрел. Был немало удивлен, что там еще и потенциалы гравитационного поля учитываются при рассчете доплеровского сдвига от поперечной составляющей скорости (это действительно фишка из ОТО). спасибо. но это для меня уже высший пилотаж.
  3. Ширмана под рукой нет. Про релятивистские эффекты можно и в википедии почитать - википедия. Там про сдвиг из-за тангенциальной составляющей скорости пишут доступно вполне. там же и про СТО написано. ОТО не при делах.
  4. Если динамика цифровой части приемника позволяет, то лучше хотя бы часть AGC в цифре делать. (Т.е оцениваешь мощность сигнала и умножаешь сигнал на соответствующий множитель на входе СФ). Просто, неожиданные переключения внешней системы АРУ при приеме данных могут привести к сюрпризам. В модеме нужно знать, когда изменилось усиление приемника (особенно, если это происходит скачком). Конкретика зависит от проектируемой системы связи. Есть еще алгоритмы поиска с адаптивным порогом, когда порог обнаружения преамбулы подстраивается в соответствии с наблюдаемым уровнем сигнала на входе СФ. Ключевые слова - adaptive threshold detection. PS Тут все зависит от скорости замираний и инреционности системы АРУ. Если АРУ не успевает следить за федингом, то используется адаптивный порог.
  5. да как-то fpga для такой полосы - это перебор по-моему. Вычислительно прожорливым может быть банк СФ и помехоустойчивое кодирование. Хотя, фильтр для такой полосы можно и последовательный замутить (ну т.е. поставить 1 MAC unit и работать на частоте 38400*K*N K- количество фильтров, N - длина преамбулы) PS там память для комплексных коэффициентов и FIFO для входа-выхода может потребоваться. Не знаю как в актеле с ней и есть ли внешняя. В любой книжке по оптимальному приему сигналов или цифровой связи. Там все просто - на входе сигнал на частоте N*Fsym. Разделяем его на фазы (те фаза 0 - отсчеты 0, N, 2*N; фаза 1- отсчеты 1, N+1, 2*N+1 и т.п.) Фильтруем каждую фазу согласованным фильтром на символьной скорости. Находим максимум абсолютной величины сигнала с выхода всех фильтров и сравниваем с порогом. Если превышает, то выбираем соответствующую максимуму позицию и фазу. Если не превышает, то переходим к обработке следующего кусочка сигнала.
  6. Расскажите, пожалуйста, что означает цвет папки в первой колонке и разные значки во второй? Где прочитать про это?
  7. Попробую сказать понятнее (видимо, непонятно получилось) Рассмотрим сначала просто движение приемника относительно передатчика - никто и не говорит, что эффект доплера игнорируется. Я говорил о том, что диспресия, вызванная эффектом доплера (разный частотный сдвиг компонент спектра сигнала и, соответственно, уширение/сужение его спектра) игнорируется. Эффект доплера моделируется просто сдвигом частоты принимаемого сигнала, что, кстати, неявно написано и в Вашей книжке - там обсуждается только doppler shift отдельных лучей, ведь частота несущей много больше полосы сигнала. Теперь про модели распространения - Там присутствует Doppler spread, вызванный тем, что сигнал каждого луча представляет собой сумму сигналов от многих, движущихся чуть с разной скоростью относительно приемника отражателей. Средняя скорость движения отражателей и скорость движения приемника-передачика относительно друг друга определяет doppler shift. Doppler spread моделируется умножением сигнала и перенесенного на частоту doppler shift случайного процесса. Опять же, изменение полосы, и, следовательно, тактовой частоты принимаемого сигнала сигнала, вызванное именно частотной зависимостью доплеровского сдвига, игнорируется. В частотной области на baseband мы наблюдаем свертку спектра сигнала и перенесенного на чаcтоту doppler shift спектра замираний, харакеризующегося doppler spread. Знаю, что вроде бы диспресия сигнала, вызванная именно эффектом доплера (а не doppler spread), учитывается при моделировании акустических каналов под водой и в радарах (хотя это совсем не моя епархия). PS То, что я сказал хорошо иллюстрирует эксперимент, предложенный FatRobot - мысленно представьте две частоты, разнесенные на deltaF > N*DopplerSpread. C учетом дисперсии от эффекта доплера увидим на выходе канала две частоты, сдвинутые на DopplerShift с разносом больше или меньше deltaF. Без учета - те же две частоты, сдвинутые на DopplerShift, но с разносом deltaF (это то, что предполагает большинство моделей распространения). Если принимаем во внимание DopplerSpread, то вместо палок, соответствующих синусоидам, увидим две разнесенные и сдвинутые СПМ процесса замираний.
  8. СТО. ОТО учитывает гравитацию как искривление пространства времени из-за наличия массы. обсуждение в этой ветке несказанно доставило :-) по теме - коэффициент кd = (1/(1-v/c)) как правило не сильно влияет на расширение полосы в системах связи, которые узкополосны и в которых приемники-передатчики-отражатели движутся не шибко быстро (до сотен км/ч). Например в КВ: пусть сдвиг несущей 10 Гц для частоты 10 МГц (что весьма типично), тогда кd = 1 + 1e-6. Соответственно, полоса тоже изменится на миллионную часть (для 3 кГц - что опять же типично) изменение полосы будет равно 0.003 Гц, на что большинство моделей (говорю в частности про ITUшные) предлагает попросту забить и не заморачиваться с передискретизацией. Уширение доплеровского спестра замираний (doppler spread) определяется характером отражения от ионосферы. В случае УКВ и сотовых систем наблюдается аналогичная картина - сдвиг частоты в единицы гигагерц составляет сотни герц-килогерцы что опять проводит нас к кd = 1 + 1e-6.
  9. Короче, моделировал медленные блуждания тактовой относительно некоторого среднего значения. Можно и сдвиг тактовой тем же способом моделировать, но придется учитывать, что тактовая сползает на целый отсчет иногда.
  10. Для имитации джиттера тактовой можно использовать variable fractional delay filters. Там используюется Farrow structure. Задержку менять по нужному закону. Сам использовал например эту статью: http://ieeexplore.ieee.org/iel5/8919/52728...rnumber=4783047 Но можно и попроще сделать, если требования к полосе сигнала не жесткие.
  11. Чем уже у Вас спектр Доплера относительно частоты дискретизации, тем шире колокол во временной области, и, соответственно, тем длиннее нужен фильтр.
  12. Если стадии FFT используют входной буффер (что, называется in-place), то сэкономить не удастся. Уже после первой стадии бабочек получите комплексный сигнал. Разумеется, можно сэономить написав свое FFT c хитрой первой стадией и не in-place PS Вы статью по Вашей ссылке до конца дочитали? Там в конце приводится схема быстрых вычислений с FFT половинного размера.
  13. Хороший режекторный фильтр можно сделать используя comb filter и правильно подгадав частоту дисретизации, чтобы минимум комба попал как раз на частоту, которую нужно давить (ну т.е. она должна быть кратной тому, что давите). Получается дешево и сердито. Он же успешно задавит гармоники помехи. Вобщем, ключевые слова для гугла - comb notch filter PS результаты синтеза можно увидеть здесь
  14. fig мой Octave не жрет. У тебя там еще sqrt вместо моих sqr. попробуй это - clear; Fs = 500; Doppler_spread = 1; L = 128; win = hamming(2*L); c = zeros(1,2*L); coeff = -4.0*(pi*Doppler_spread/Fs)^2; for i=1:L tmp = win(L+i) * exp(coeff*(i+0.5)^2); c(L+i) = tmp; c(L-(i-1)) = tmp; end coeffs = c./norm(c); plot(coeffs); И колокол появится.
  15. Начните с букваря про эквалайзеры (например Проакис) или Gregory E. Bottomley, Channel Equalization for Wireless Communications: From Concepts to Detailed Mathematics
  16. Проблемы, как всегда, в мелочах: 1. забыл на усиление умножить в ветке с 0 if(Delay(j)>0) k_integ = fix(Delay(j)/ts); SigOut = [zeros(1,k_integ - 1),SigIn(1:end-k_integ+1)]*A(j); else SigOut = SigIn*A(j); end 2. нормировка - фильтр действительный вместо coeffs = c./(real(c).*real(c)+imag(c).*imag(c)); надо: coeffs = c./(sqrt(sum(c.*c))); Посмотри на ИХ фильтра - должен быть гауссовский колокол 3. WhiteNoise = filter(coeffs,1,WhiteNoise); Тут надо бы состояние фильтра набить отсчетами шума перед фильтрацией (ну или побольше шума генерить и брать хвост) 4. с Doppler_spread = 0 к сожалению нормально работать не будет. Нужно отслеживать отдельным if и вместо выхода фильтра использовать единички (возможно, умноженные на exp(j*phi)). Здесь phi - случайный сдвиг фазы. Рассчитывается один раз при инициализации модели 5. PS - зачем-то еще раз на усиление умножаешь - path = A(j)*exp(1i*2*pi*t*Doppler_shift(j)).*WhiteNoise';
  17. вот мой код на с++ для синтеза коэффициентов гауссовского фильтра в зависимости от частоты дискретизации ( generation_rate, Hz) и doppler spread(Hz) void PathFadingGenerator<Gaussian>::init(double generation_rate) { it_error_if(generation_rate < fs_min() || generation_rate > fs_max(), "JakesPath::init: invalid sampling rate."); _generation_rate = generation_rate; vec win = hamming(2*L); vec c(2*L); double coeff = -4.0*sqr(pi*_doppler_spread/generation_rate); for(int i = 0; i < L; ++i) { double tmp = win(L+i) * std::exp(coeff*sqr(i+0.5)); c(L+i) = tmp; c(L-i-1) = tmp; } c /= norm(c); set_coeffs(c); } 2) код должен выглядеть примерно так?? Второй луч формируется так же, только используется задержанный сигнал. Величина задержки - параметр модели. Затем лучи суммируются и получается выход канала PS про гауссовский фильтр, как легко догадаться, можно почитать здесь
  18. Кодом поделиться не могу, но что касается ITU-R F.1487 моделей, то все просто: берется комплексный белый шум, прогоняется через фильтр с гауссовской ИХ,нормируется, затем умножается на комплексную экспоненту A1*exp(j*2*pi*fd1/Fsam*t). Полученные комплексные отсчеты умножаются на отсчеты сигнала. Также формируется второй луч с А2, fd2. Затем лучи складываются с требуемой задержкой. Небольшое гугление приводит к матлаб коду, который можно найти в этой ветке форума: radioscanner Я в код не смотрел, но не думаю, что там что-то сверхестественное PS кое-что еще можно почерпнуть отсюда http://www.hfindustry.com/pdf/chansim.pdf
  19. Я ничего не "объединяю в кучу", а пользуюсь общепринятой терминологией из области теории оценивания (estimation theory). Если у синуса случайная начальная фаза, то он не перестанет быть детерминированным. Если вы пронаблюдали один отсчет такого синуса, то второй Вы сможете предсказать с вероятностью 1. Ни про какие "изменения" параметров я не говорил. Матлабом не пользуюсь во-первых потому что он не нужен за такие деньги и во вторых потому, что мои задачи решают бесплатные альтернативы.
  20. Таким, что коэффициент передачи канала является случайным процессом в силу того, что принимаемый сигнал является суммой отражений от случайно флюктуирующих сущностей (в случае КВ - это флюктуирующая граница слоя в ионосфере) Что такое доплеровское распределение? Распределение на выходе фильтра стремится к нормальному в силу центральной предельной теоремы. Огибающая, соответствено, распределена по релею. Я про корреляционную функцию и про СПМ замираний говорил. Синус со случайной начальной фазой не встречали? Это детерминированный процесс со случайным параметром. Я сказал ровно то, что сказал да и ссылку на книжку дал. Там все написано, что понимается под детерминированными моделями. Матлабом не пользуюсь несколько лет, так что сказать ничего не могу.
  21. Вам нужно умножить Ваш сигнал на случайный процесс, моделирующий замирания. В качестве модели замираний используются: 1. Пропущенный через некий фильтр белый гауссовский шум. ИХ фильтра соответствует желаемой АКФ замираний. Здесь все сводится к синтезу фильтра с требуемой АЧХ. 2. Некий детерминированный процесс (обычно это сумма взвешенных синусоид) со случайными параметрами. Про подход 2 можно почитать например здесь: Matthias Pätzold, Мobile Fading Channels В обоих случаях, процесс, моделирующий замирания, узкополосный, поэтому, как правило, он синтезируется на низкой частоте дискретизации, а затем интерполируется. PS В КВ обычно используются гауссовские спектры замираний (ну или бигауссовские (модель Ватерсона)). Есть также стандарт Recommendation ITU-R F.1487, описывающий каналы для тестирования модемов. В матлабе есть какие-то модули для бигауссовской модели (здесь). Может, там и код посмотреть можно.
  22. Согласен с Вами, что все это - болтология и нужно смотреть на количество операций на символ. Для >200 Msym/sec должен быть выбран алгоритм с минимумом вычислений, обеспечивающий рабочие параметры модема. Это и будет определять структуру синхронизатора.
  23. Если резюмировать, то я хотел сказать следующее: 1. При связанных тактовой-несущей можно оценить несущую. 2. Добиться погрешности оценк несущей 1ppm не очень сложно (здесь даже не надо разрешать две синусоиды), достаточно посмотреть на сдвиг фаз с выхода СФ настроенного на фрагмент преамбулы (в простейшем случае, если фрагменты повторяются). 3. При таком раскладе (1ppm) убегание тактовой будет определяться стабильностью опорного генератора приемника, которая как правило хуже 1 ppm для дешевого оборудования. Так обычно работают модемы для всяких сотовых систем связи/широкополосный OFDM. Ни в коем случае не отрицаю неоходимость отдельного восстановления (ну и слежения) за тактовой, если например не выполняется пункт 1.
  24. Если, как я и писал, несущая и тактовая связаны и вы оцениваете сдвиг несущей на 1 мегагерце до герца ну или до килогерца на 1 ГГц), то Вы получаете 1ppm. Как-то так. PS стабильность Вашихз часов даст Вам то, что стабильность Вашей тактовой будет зависеть только от качества орценки несущей.
×
×
  • Создать...