Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Цифровые сигнальные процессоры (DSP) и их применение»

Моделирование двухлучевого канала с допплером...

Отправлено Alex65111 02 февраля 2008 г. 13:09


Удалось отыскать матлабовскую программку по моделированию канала но не могу понять, почему при уменьшении задержки между лучами ndelay и допплера bdoppler не происходит улучшения качества выходного сигнала.
ndelay уменьшал до 1, а bdoppler до 0.001 - выходной сигнал такой же искаженный как и при исходных параметрах. В чем здесь затык?

Программа взята из "Principles of Communication Systems Simulation with Wireless Applications".

Выдержка (стр520) - In this example we illustrate two aspects of the time-varying channel: frequency selectivity and time variation...

===================================================================
Текст основной программы

% File: c13_tiv2.m
%
% Set default parameters
symrate = 512;
nsamples = 16;
nsymbols = 128;
bdoppler = 16;
ndelay = 8;
%
n = nsymbols*nsamples;
ts = 1.0/(symrate*nsamples);
%
% Generate two uncorrelated seq of Complex Gaussian Samples
z1 = randn(1,n) + i*randn(1,n);
z2 = randn(1,n) + i*randn(1,n);
%
% Filter the two uncorrelated samples to generate correlated sequences
coefft = exp(-bdoppler*2*pi*ts);
zz1 = zeros(1,n);
zz2 = zeros(1,n);
for k = 2:n
zz1(k) = z1(k)+coefft*zz1(k-1);
zz2(k) = z2(k)+coefft*zz2(k-1);
end
%
% Generate a BPSK (random binry wavefrom and compute the output)
M = 2; % binary case
x1 = mpsk_pulses(M,nsymbols,nsamples);
y1 = x1.*zz1; % first output component
y2 = x1.*zz2; % second output component
y(1:ndelay) = y1(1:ndelay);
y(ndelay+1:n) = y1(ndelay+1:n)+y2(1:n-ndelay);
%
% Plot the results
[psdzz1,freq] = log_psd(zz1,n,ts);
figure; plot(freq,psdzz1); grid;
title('PSD of the First Component Impulse Response');
nn = 0:255;
figure; plot(nn,imag(x1(1:256)),nn,real(y1(1:256))); grid;
title('Input and the First Component of the Output');
xlabel('Sample Index')
ylabel('Signal Level')
figure; plot(nn,imag(x1(1:256)),nn,real(y(1:256))); grid;
title('Input and the Total Output')
xlabel('Sample Index')
ylabel('Signal Level')
% End of function file.
===============================================================
Вспомогательные функции

% File: log_psd.m
function [logpsd,freq,ptotal,pmax] = log_psd(x,n,ts)
% This function takes the n time domain samples (real or complex)
% and finds the psd by taking (fft/n)^2. The two sided spectrum is
% produced by shifting the psd; The array freq provides the
% appropriate frequency values for plotting purposes.
% By taking 10*log10(psd/max(psd)) the psd is normalized; values
% below -60 dB are set equal to -60dB.
%
% n must be an even number, preferably a power of 2
%
y = zeros(1,n); % initialize y vector
%
h = waitbar(0,'For Loop in PSD Calculation');
for k=1:n
freq(k) =(k-1-(n/2))/(n*ts);
y(k) = x(k)*((-1.0)^k);
waitbar(k/n)
end;
%
v = fft(y)/n;
psd = abs(v).^2;
pmax=max(psd);
ptotal=sum(psd);
logpsd = 10*log10(psd/pmax);
%
% Truncate negative values at -60 dB
%
for k =1:n
if(logpsd(k)<-60.0)
logpsd (k) =-60.0;
end
end
close(h)
% End of function file.

=========================================================

% File: mpsk_pulses.m
function [x] = mpsk_pulses(M,nsymbols,nsamples)
% This function genrates a random MPSK complex NRZ waveform of
% length nsymbols; Each symbol is sampled at a rate of nsamples/bit
%
u = rand(1,nsymbols);
rinteger= round ((M*u)+0.5);
phase = pi/M+((rinteger-1)*(2*pi/M));
for m = 1:nsymbols
for n = 1:nsamples
index = (m-1)*nsamples + n;
x(1,index) = exp(i*phase(m));
end
end
% End of function file.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 47:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru