вот мой код на с++ для синтеза коэффициентов гауссовского фильтра в зависимости от частоты дискретизации ( 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