Всем привет. Нужно создать сигнал который уже находится на выходе квадратурного демодулятора, то есть его огибающую. Способ модуляции QPSK. Количество выборок равно 300, 4 выборки на символ. Получается всего 75 символов. Символьная скорость (Fd) равна 2.5кHz. Частота дикретизации равна 10кHz (FS). привожу код:
%Постройка огибающей Nsym = 75; Fd = 2.5e3; Fs = 10e3; coefs = rcosine(Fd,Fs);%подготовка коэфициентов для формирующего фильтра msg = [randint(1, Nsym, 3)]; % подготовка символов t = (0 : 1/Fs : 1/Fd*Nsym-1/Fs); % дискретное время s_qpsk = pskmod(msg, 4,pi/4); % собственно QPSK сигнал s_psk_300 = s_qpsk(floor(Fd*t)+1); % постройка вектора длинной в 300. (4 выборки на символ) msg_filt = filter(coefs,1,s_psk_300);сглаживание углов
а теперь строю периодограмму и смотрю на какой частоте (fec) получается максимум (желательно было бы на 2.5 кHz)
%Собственно построение периодограммы resf=2^14; fftr = abs(fft(msg_filt,resf)/sqrt(resf)).^2; figure plot(0:1/resf:1-1/resf,fftr) title('FFT of msg-filt')
[max1 ind1] = max(fftr); ind1=ind1-1; if ind1<resf/2 fec = (ind1/(resf/Fs)) else fec = (-(resf-ind1)/(resf/Fs)) end То что спектр не симетричен это понятно - ДПФ комплекного сигнала. А вот почему оцениваемая частота не равна Fd это не понятно. Да и ко всему она же каждый раз меняется. Может кто знает в чем моя ошибка? Заранее спасибо.
|