Виталий123 0 11 апреля, 2021 Опубликовано 11 апреля, 2021 (изменено) · Жалоба В процессе программной реализации в MATLAB алгоритма GMSK демодуляции (демодулятор с перекрёстной связью) столкнулся с проблемой: при демодуляции входного сигнала, всё разваливается.Полаю, что проблема заключается в неправильном использовании фильтра. Буду благодарен за любые советы. %% clear clc close all %% модулятор bit = [1,0,1,0,1,0,randi([0,1],1,60)];%информационные биты %bit = [1,0,1,1,1,1,0,0,1,0,0,1,0,1,1,0]; R = 4800;%символьная скорость Fs = 2*R;%центральная частота Fadc = 96e4;%частота дискретизации m = 0.5;%индекс модуляции Nfft = 2^14; Ng = 4; %число символов на графике BT = 0.5;%полоса по уровню -3 дБ Ts=1/Fadc;%длительность символа sps = ceil(Fadc/R);%коэффициент расширения NT = 4;%число символов, которых необходимо учесть при фильтрации N = length(bit); H = gaussdesign(BT,NT,sps); bits = 2 * bit-1;%NRZI a3 = repmat(bits,sps,1); a3 = a3(:)'; Tb = sps*Ts;%длительность бита Wd = 0.5*pi*R; after_Gauss = conv(a3,H,'full'); integral = cumsum(after_Gauss); integral = integral*Wd; I = cos(integral); Q = sin(integral); t=((0:1:length(I)-1)/Fadc); Ichannel = I.*cos(2*pi*Fs*t); Qchannel = Q.*sin(2*pi*Fs*t); St = Ichannel - 1i.*Qchannel; %% %демодулятор f1 = Fs + 1/(4*Tb); I_receiver = real(Stt); Q_receiver = -imag(Stt); I_receiver = I_receiver .* (cos(2*pi*Fs*t)); Q_receiver = Q_receiver .* (sin(2*pi*Fs*t)); [b, a] = butter (3, 2*f1 / (Fadc / 2)); % freqz(b,a) MF1 = filter(b,a,I_receiver); MF2 = filter(b,a,Q_receiver); after_filt_I = MF1; after_filt_Q = MF2; z1 = after_filt_Q.*[zeros(1,sps), after_filt_I(1:length(after_filt_I)-sps)]; z2 = after_filt_I.*[zeros(1,sps), after_filt_Q(1:length(after_filt_I)-sps)]; z = z1 - z2; a_cap1 = (z(2*sps:sps:end-sps)>0); a_cap1 = a_cap1(1:length(bit)); bit1 = biterr(a_cap1,bit) Изменено 11 апреля, 2021 пользователем Виталий123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 6 12 апреля, 2021 Опубликовано 12 апреля, 2021 · Жалоба https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=23652&do=findComment&comment=818746 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Виталий123 0 12 апреля, 2021 Опубликовано 12 апреля, 2021 · Жалоба 2 часа назад, petrov сказал: https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=23652&do=findComment&comment=818746 Спасибо, но это реализация в симулинк. А меня интересует только m-реализация Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quato_a 3 12 апреля, 2021 Опубликовано 12 апреля, 2021 · Жалоба On 4/11/2021 at 6:38 PM, Виталий123 said: I_receiver = real(Stt); Q_receiver = -imag(Stt); это опечатка? сигнал Stt не задан. On 4/11/2021 at 6:38 PM, Виталий123 said: I = cos(integral); Q = sin(integral); t=((0:1:length(I)-1)/Fadc); Ichannel = I.*cos(2*pi*Fs*t); Qchannel = Q.*sin(2*pi*Fs*t); St = Ichannel - 1i.*Qchannel; это перенос на несущую частоту Fs? если не путаю, то нужно было комплексным умножением переносить гляньте спектр сигнала St PS: Fs в литературе и коде чаще обозначает частоту дискретизации, а то путаница возникает. несущая частота - это Fc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 6 12 апреля, 2021 Опубликовано 12 апреля, 2021 · Жалоба Виталий123 но это реализация в симулинк. А меня интересует только m-реализация А какая разница? Там ничего не скрыто, всё в виде элементарных операций. Если понимание есть, переписать на чём угодно не проблема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Виталий123 0 13 апреля, 2021 Опубликовано 13 апреля, 2021 · Жалоба 12 часов назад, quato_a сказал: это опечатка? сигнал Stt не задан. это перенос на несущую частоту Fs? если не путаю, то нужно было комплексным умножением переносить гляньте спектр сигнала St PS: Fs в литературе и коде чаще обозначает частоту дискретизации, а то путаница возникает. несущая частота - это Fc Да,в первом случае действительно опечатка. А насчёт комплексного умножения,я думаю нет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться