|
Моделирование эффекта Доплера в КВ-канале без использования встроенных функций MATLAB. |
|
|
|
Apr 1 2013, 15:42
|
Группа: Новичок
Сообщений: 9
Регистрация: 17-03-13
Пользователь №: 76 064

|
Добрый вечер. Собственно, в теме вопроса сам вопрос и заключается. Реализация Doppler Shift вопросов не вызывает, т.к. вроде все понятно и есть конкретная формула, описывающая зависимость сдвига от скорости и угла: http://picturepush.com/public/12446817Вопрос: как, не используя встроенные функции "rayleighchan" и "ricianchan", реализовать Doppler Spread?
--------------------
С уважением, СФТКСР
|
|
|
|
|
Apr 3 2013, 12:10
|
Группа: Новичок
Сообщений: 9
Регистрация: 17-03-13
Пользователь №: 76 064

|
Цитата(Виктор39 @ Apr 2 2013, 17:25)  может быть просто домножить на экспоненту SigOut = SigIn.*exp(-1i*2*pi*Doppler_Shift*t); Виктор39, спасибо за ответ. Однако, умножая на комплексную экспоненту Вы просто сместите спектр на "Doppler Shift", заранее вычисленный (собственно, по указанной формуле). Мне же нужно ручками (не через "rayleighchan" или "ricianchan") замоделить Доплеровское расширение спектра (оно же -- Доплеровское распределение, оно же -- Doppler Spread).
--------------------
С уважением, СФТКСР
|
|
|
|
|
Apr 3 2013, 13:10
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Вам нужно умножить Ваш сигнал на случайный процесс, моделирующий замирания. В качестве модели замираний используются: 1. Пропущенный через некий фильтр белый гауссовский шум. ИХ фильтра соответствует желаемой АКФ замираний. Здесь все сводится к синтезу фильтра с требуемой АЧХ. 2. Некий детерминированный процесс (обычно это сумма взвешенных синусоид) со случайными параметрами. Про подход 2 можно почитать например здесь: Matthias Pätzold, Мobile Fading Channels В обоих случаях, процесс, моделирующий замирания, узкополосный, поэтому, как правило, он синтезируется на низкой частоте дискретизации, а затем интерполируется. PS В КВ обычно используются гауссовские спектры замираний (ну или бигауссовские (модель Ватерсона)). Есть также стандарт Recommendation ITU-R F.1487, описывающий каналы для тестирования модемов. В матлабе есть какие-то модули для бигауссовской модели ( здесь). Может, там и код посмотреть можно.
|
|
|
|
|
Apr 3 2013, 16:30
|
Местный
  
Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640

|
Цитата(Tiro @ Apr 3 2013, 16:21)  Сделайте ресэмплинг с требуемым коэффициентом или сразу генерируйте сигнал с учетом Доплера. Здравствуйте! Где можно прочитать про данный метод? на сколько я понимаю, это не совсем ресемплинг, новых отсчетов не появляется используются те же отсчеты периода сигнала, но только этот период сжимается или растягивается во времени. Прошу пояснить что я не так понял или дать ссылку на источник? Как осуществляя ресэмплинг с требуемым коэффициентом, вы добиваетесь эффекта Допплера? Цитата(andyp @ Apr 3 2013, 17:10)  Вам нужно умножить Ваш сигнал на случайный процесс, моделирующий замирания. Давайте по порядку) автор темы спрашивал про моделирование доплеровского распределения а не замираний, и не совсем понятно как " случайный процесс" может "моделировать замирания"? Цитата(andyp @ Apr 3 2013, 16:10)  1. Пропущенный через некий фильтр белый гауссовский шум. ИХ фильтра соответствует желаемой АКФ замираний. Здесь все сводится к синтезу фильтра с требуемой АЧХ. Тоже самое, если вы говорите про распределение доплера, то там случайный процесс помоему должен проходить через фильтр АЧХ которого имеет желаемую функцию доплеровского распределения, а потом полученый сигнал добавляется к исходному, кто нибудь поправте если я не прав) А вы здесь говорите о каких то замираниях Цитата(andyp @ Apr 3 2013, 16:10)  2. Некий детерминированный процесс (обычно это сумма взвешенных синусоид) со случайными параметрами. Ни разу не видел чтоб детерменированый процесс был со случайными параметрами))) Ваша мысль мне не ясна... Че то похоже на моделирование канала с постоянными параметрами) вы может это пытаетесь объяснить? Цитата(andyp @ Apr 3 2013, 16:10)  PS В КВ обычно используются гауссовские спектры замираний (ну или бигауссовские (модель Ватерсона)). Есть также стандарт Recommendation ITU-R F.1487, описывающий каналы для тестирования модемов. "гауссовские спектры замираний (ну или бигауссовские" это не спектры замираний а функции распределения доплера "Есть также стандарт Recommendation ITU-R F.1487, описывающий каналы для тестирования модемов. " да есть такое, даже помоему в матлабе есть если посмотреть stdchan Цитата(andyp @ Apr 3 2013, 16:10)  В матлабе есть какие-то модули для бигауссовской модели ( здесь). Может, там и код посмотреть можно. Да есть, но код врядли открыт, скорее всего там закрытые MEXи и dll, так как матлаб в чистом виде работает медленно
Сообщение отредактировал Ivan55 - Apr 3 2013, 16:26
|
|
|
|
|
Apr 3 2013, 16:54
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Ivan55 @ Apr 3 2013, 20:30)  Давайте по порядку) автор темы спрашивал про моделирование доплеровского распределения а не замираний, и не совсем понятно как " случайный процесс" может "моделировать замирания"? Таким, что коэффициент передачи канала является случайным процессом в силу того, что принимаемый сигнал является суммой отражений от случайно флюктуирующих сущностей (в случае КВ - это флюктуирующая граница слоя в ионосфере) Цитата(Ivan55 @ Apr 3 2013, 20:30)  Тоже самое, если вы говорите про распределение доплера, то там случайный процесс помоему должен проходить через фильтр АЧХ которого имеет желаемую функцию доплеровского распределения, а потом полученый сигнал добавляется к исходному, кто нибудь поправте если я не прав) А вы здесь говорите о каких то замираниях Что такое доплеровское распределение? Распределение на выходе фильтра стремится к нормальному в силу центральной предельной теоремы. Огибающая, соответствено, распределена по релею. Я про корреляционную функцию и про СПМ замираний говорил. Цитата(Ivan55 @ Apr 3 2013, 20:30)  Ни разу не видел чтоб детерменированый процесс был со случайными параметрами))) Ваша мысль мне не ясна... Че то похоже на моделирование канала с постоянными параметрами) вы может это пытаетесь объяснить? Синус со случайной начальной фазой не встречали? Это детерминированный процесс со случайным параметром. Я сказал ровно то, что сказал да и ссылку на книжку дал. Там все написано, что понимается под детерминированными моделями. Цитата(Ivan55 @ Apr 3 2013, 20:30)  Да есть, но код врядли открыт, скорее всего там закрытые MEXи и dll, так как матлаб в чистом виде работает медленно Матлабом не пользуюсь несколько лет, так что сказать ничего не могу.
|
|
|
|
|
Apr 3 2013, 17:23
|
Местный
  
Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640

|
Цитата(andyp @ Apr 3 2013, 19:54)  Синус со случайной начальной фазой не встречали? Это детерминированный процесс со случайным параметром. Детерменированный и случайный два разных процесса, не надо их в кучу объеденять, если вы говорите что "Синус со случайной начальной фазой" (если она не константа) это "детерминированный" то что вы скажете про это утверждение "Детерминированным сигналом называется такой сигнал, параметры и мгновенное значение которого в любой момент времени могут быть предсказаны с вероятностью, равной единице." есть три параметра сигнала амплитуда фаза частота, если один из них будет меняться случайным образом, ни о каком детерменировании мы не можем говорить. Но это лично мое мнение) Цитата(andyp @ Apr 3 2013, 19:54)  Матлабом не пользуюсь несколько лет, так что сказать ничего не могу. зря... А почему не пользуетесь? Ах да... И за книжку спасибо)
Сообщение отредактировал Ivan55 - Apr 3 2013, 17:26
|
|
|
|
|
Apr 3 2013, 17:36
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Цитата(Ivan55 @ Apr 3 2013, 21:23)  Детерменированный и случайный два разных процесса, не надо их в кучу объеденять, если вы говорите что "Синус со случайной начальной фазой" (если она не константа) это "детерминированный" то что вы скажете про это утверждение "Детерминированным сигналом называется такой сигнал, параметры и мгновенное значение которого в любой момент времени могут быть предсказаны с вероятностью, равной единице." есть три параметра сигнала амплитуда фаза частота, если один из них будет меняться случайным образом, ни о каком детерменировании мы не можем говорить. Но это лично мое мнение)
зря... А почему не пользуетесь? Я ничего не "объединяю в кучу", а пользуюсь общепринятой терминологией из области теории оценивания (estimation theory). Если у синуса случайная начальная фаза, то он не перестанет быть детерминированным. Если вы пронаблюдали один отсчет такого синуса, то второй Вы сможете предсказать с вероятностью 1. Ни про какие "изменения" параметров я не говорил. Матлабом не пользуюсь во-первых потому что он не нужен за такие деньги и во вторых потому, что мои задачи решают бесплатные альтернативы.
|
|
|
|
|
Apr 3 2013, 18:04
|
Местный
  
Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640

|
Цитата(andyp @ Apr 3 2013, 20:36)  Я ничего не "объединяю в кучу", а пользуюсь общепринятой терминологией из области теории оценивания (estimation theory). Если у синуса случайная начальная фаза, то он не перестанет быть детерминированным. Если вы пронаблюдали один отсчет такого синуса, то второй Вы сможете предсказать с вероятностью 1. Ни про какие "изменения" параметров я не говорил. Ну понятно, просто начальная фаза сигнала изначально задана) но тогда про "В качестве моделей замираний используется:.... 2. Некий детерминированный процесс (обычно это сумма взвешенных синусоид) со случайными параметрами. " Ниче точно сказать не могу, я вашу книгу не читал) но я моделил канал с замираниями по другому, через фильтр) Но мы щас помоему отвлекаемся от первоначального вопроса, заданного автором... И пока конкретного пошагового действия мы не определили моделить через ресемплинг по моему муть, может есть у кого моделька того как это делается?
|
|
|
|
|
Apr 3 2013, 18:17
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
Кодом поделиться не могу, но что касается ITU-R F.1487 моделей, то все просто: берется комплексный белый шум, прогоняется через фильтр с гауссовской ИХ,нормируется, затем умножается на комплексную экспоненту A1*exp(j*2*pi*fd1/Fsam*t). Полученные комплексные отсчеты умножаются на отсчеты сигнала. Также формируется второй луч с А2, fd2. Затем лучи складываются с требуемой задержкой. Небольшое гугление приводит к матлаб коду, который можно найти в этой ветке форума: radioscanner Я в код не смотрел, но не думаю, что там что-то сверхестественное PS кое-что еще можно почерпнуть отсюда http://www.hfindustry.com/pdf/chansim.pdf
Сообщение отредактировал andyp - Apr 3 2013, 18:30
|
|
|
|
|
Apr 4 2013, 07:24
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 8-02-13
Из: Минск
Пользователь №: 75 542

|
простите за глупые вопросы: 1) Цитата Здесь все сводится к синтезу фильтра с требуемой АЧХ. чем собственно определяется ачх фильтра. в матлабе для нахождения ИХ фильтра с гауссовским распределением используется функция h = gaussfir(bt); где bt - ширина спектра по уровню -3 дБ. так вот, каким образом выбирается ширина спектра для конкретного значения величины доплеровского расширения?! 2) код должен выглядеть примерно так?? Код A1 = 1; fd1 = 3;
WhiteNoise = wgn(N,1,0,'complex'); % берется комплексный белый шум 0дБ
bt = 0.2; % ??? h = gaussfir(bt);
WhiteNoise = filter(h,1,WhiteNoise); % прогоняется через фильтр с гауссовской ИХ
t = (1:N)./Fs; Path1 = A1*exp(1i*2*pi*t*fd1).*WhiteNoise'; % затем умножается на комплексную экспоненту
SigOut1 = Path1.*SigIn; %Полученные комплексные отсчеты умножаются на отсчеты сигнала
???
|
|
|
|
|
Apr 4 2013, 08:32
|
Местный
  
Группа: Участник
Сообщений: 212
Регистрация: 17-01-12
Пользователь №: 69 640

|
Цитата(Виктор39 @ Apr 4 2013, 10:24)  простите за глупые вопросы: 1) чем собственно определяется ачх фильтра. в матлабе для нахождения ИХ фильтра с гауссовским распределением используется функция h = gaussfir(bt); где bt - ширина спектра по уровню -3 дБ. так вот, каким образом выбирается ширина спектра для конкретного значения величины доплеровского расширения?! bt = значению величины доплеровского расширения
|
|
|
|
|
Apr 4 2013, 09:44
|
Частый гость
 
Группа: Участник
Сообщений: 123
Регистрация: 8-02-13
Из: Минск
Пользователь №: 75 542

|
Цитата bt = значению величины доплеровского расширения все таки bt в функции gaussfir(bt) скорее всего не определяет ширину спектра по уровню -3дБ bt is the 3-dB bandwidth-symbol time product where b is the one-sided bandwidth in hertz and t is in seconds.
|
|
|
|
|
Apr 4 2013, 11:15
|
Местный
  
Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163

|
вот мой код на с++ для синтеза коэффициентов гауссовского фильтра в зависимости от частоты дискретизации ( 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 про гауссовский фильтр, как легко догадаться, можно почитать здесь
Сообщение отредактировал andyp - Apr 4 2013, 11:03
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|