Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Формирование спектра
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
COCAINE
есть код формирования PSK-4 на несущей
Цитата
Fc = 100; % частота несущей
Fd = 50; % символьная скорость
Fs = 1000; % частота дискретизации
M = 4; % порядок манипуляции
msg = [randint(1, 100, M-1)]; % формирования сообщения из 100 символов
N = length(msg); % длина сообщения
t = (0 : 1/Fs : 1/Fd*N-1/Fs); % дискретное время
s_psk = pskmod(msg, M); % собственно модулирующий сигнал
s_psk_discr = s_psk(floor(Fd*t)+1); % повышения частоты дискретизации
carrier = exp(2i*pi*Fc*t); % формирование комплексной несущей
y = real(s_psk_discr .* carrier); % "насаживание" сигнала на несущую
plot(t(1:200), y(1:200)); grid on % график во временной области
periodogram(y, [], [], Fs); xlim([0 0.5]); ylim([-80 0]) % график в частотной области


хочу применить к нему формирующий фильтр rcosflt.

вообщем проблема в следующем:
мне нужно смоделировать, скажем сигнал PSK-4 с несущей 2500Hz и скоростью 100 бод.

формируем комплексную огибающую, количество символов 1000:
Цитата
M = 4;
msg = [randint(1, 1000, M-1)];
s_psk = pskmod(msg, M);


Время передачи сообщения:
Цитата
Fs = 10000;
Fm = 100;
N_msg = length(msg);
t = (0 : 1/Fs : 1/Fm*N_msg-1/Fs);

т.е. я получил время T=N*(1/Fm), которое потребуется для передачи сообщения из 1000 символов со скоростью передачи 100 бод. Итого получилось 100000 отсчетов.

Дискретизируем s_psk с частатой Fs:
Цитата
s_psk_discr = s_psk(floor(Fm*t)+1);

теперь мы имеем модулирующую функцию, которая меняет свое значение 100 раз в секунду (для получения скорости передачи 100 бод), с частотой дискретизации 1000. Количество отсчетов по прежнему 100000.

Применяем формирующий фильтр...
Цитата
s_psk_flt = rcosflt(s_psk_discr, Fd, Fs, 'sqrt');

вот тут проблема... не совсем понимаю что такое Fd и Fs... как я понял,
Fd - это частота дискретизации до применения функции (т.е. моя Fs).
Fs - это частота дискретизации после функции.
вот теперь вопрос, какие должны быть Fs и Fd что бы на выходе я получил модулирующую сглаженную функцию с частотой дискретизации 1000 и количеством отсчетов 100000, что бы сохранить скорость передачи 100 бод?
_Anatoliy
Цитата(COCAINE @ Mar 25 2009, 23:37) *
вот тут проблема... не совсем понимаю что такое Fd и Fs... как я понял,


Fd - символьная скорость
Fs - частота дискретизации
Должны быть кратными(часто Fs/Fd берут равным 4).

На выходе скорость передачи не изменится,просто на один символ будет приходиться несколько отсчётов,например 4.
COCAINE
http://matlab.exponenta.ru/communication/book2/7/rcosflt.php
Цитата
Частота дискретизации входного цифрового сигнала x равна Fd, частота дискретизации выходного сигнала y равна Fs. Отношение Fs/Fd должно быть положительным целым числом. В процессе работы функция rcosflt повышает частоту дискретизации сигнала в Fs/Fd раз, вставляя между отсчетами соответствующее количество нулей. Полученный сигнал пропускается через интерполирующий фильтр, порядок которого равен 1+2*delay*Fs/Fd, где задержка delay по умолчанию равна 3.


ага, т.е. меняется только частота дискретизации... ладно попробую, пасиба
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.