L
lynx_z3
Guest
Привет мне нужна помощь в написании кода для демодуляции FSK системы ниже любая помощь бы оценил.Потому что я понятия не имею, как двигаться вперед в этом
Код:Функция bfsk_project (G, F0, F1)
если Нарген> 3
ошибка ( "Слишком много аргументов INPUT ')
ELSEIF Нарген == 1
F0 = 1;
f1 = 2;
ELSEIF Нарген == 2
f1 = 2;
конецval0 = Ceil (F0)-f0;
val1 = Ceil (F1)-f1;
если val0 ~ = 0 | | val1 ~ = 0;
Ошибка ( 'частота должна быть целым числом');
конецесли F0 <1 | | F1 <1;
Ошибка ( 'частота должна быть больше, чем 1');
конецT = 0:2 * pi/99: 2 * PI;
CP = [];
CP1 = [];
Sp = [];
sp1 = [];
моделирование = [];
Mod1 = [];
бит = [];
bit1 = [];
noise_amp = 0.1;% SET уровень шума 0,1 ~ = = 6dB SNR = Eb / No% Канального кодирования помощью повторения кодекс (3,1)
repmat H = (G, 3,1);% до повторить матрица
Res = перестроить (H, 1,3 * (длина (G )));%, чтобы изменить размер матрицы% Двоичных Пульс Формирование
для N = 1: длина (г);
Если G (N) == 0;
die1 = Ones (1100);
c1 = SIN (F0 * T);
SE1 = нули (1100);
другое G (N) = 1;
die1 = Ones (1100);
c1 = SIN (f1 * T);
SE1 = Ones (1100);
конец
CP1 = [СР1 die1];
Mod1 = [Mod1 C1];
bit1 = [bit1 SE1];
конец% Двоичных Пульс Формирование на кодированный сигнал
для N = 1: длина (РЭС);
если Res (п) == 0;
DIE = Ones (1100);
C = SIN (F0 * T);
SE = нули (1100);
другое Res (N) = 1;
DIE = Ones (1100);
C = SIN (f1 * T);
SE = Ones (1100);
конец
CP = [CP умирает];
моделирование = [Mod C];
бит = [разрядные SE];
конец
Модуляция FSK%
ФСК = CP .* моделирование;Добавить% Белый шум модулированным ФСК сигнала
noise_awgn = noise_amp * randn (1, длина (ФСК)); генератора шумов%
fsk_noise = ФСК noise_awgn;% модулированный перевозчик плюс шум% Графика
subplot (6,1,1); участок (bit1, 'LineWidth', 1,5); по сетке;
Название ( 'двоичного сигнала');
оси ([0 100 * Длина (G) -2.5 2.5]);subplot (6,1,2); участок (бит, 'LineWidth', 1,5); по сетке;
Название ( 'двоичного сигнала W / Error Correction (3,1) Повторения код');
оси ([0 100 * Длина (ВИЭ) -2,5 2,5]);subplot (6,1,3); участок (ФСК, 'LineWidth', 1,5); по сетке;
Название ( 'ФСК модуляцией');
оси ([0 100 * Длина (ВИЭ) -2,5 2,5]);subplot (6,1,4); участок (noise_awgn, 'LineWidth', 1,5); по сетке;
Название ( 'аддитивного белого гауссовского шума');
оси ([0 100 * Длина (ВИЭ) -2,5 2,5]);subplot (6,2,7); участок (fsk_noise, 'LineWidth', 1,5); по сетке;
Название ( 'ФСК модуляции W / белый шум ");
оси ([0 100 * Длина (ВИЭ) -2,5 2,5]);
Код:Функция bfsk_project (G, F0, F1)
если Нарген> 3
ошибка ( "Слишком много аргументов INPUT ')
ELSEIF Нарген == 1
F0 = 1;
f1 = 2;
ELSEIF Нарген == 2
f1 = 2;
конецval0 = Ceil (F0)-f0;
val1 = Ceil (F1)-f1;
если val0 ~ = 0 | | val1 ~ = 0;
Ошибка ( 'частота должна быть целым числом');
конецесли F0 <1 | | F1 <1;
Ошибка ( 'частота должна быть больше, чем 1');
конецT = 0:2 * pi/99: 2 * PI;
CP = [];
CP1 = [];
Sp = [];
sp1 = [];
моделирование = [];
Mod1 = [];
бит = [];
bit1 = [];
noise_amp = 0.1;% SET уровень шума 0,1 ~ = = 6dB SNR = Eb / No% Канального кодирования помощью повторения кодекс (3,1)
repmat H = (G, 3,1);% до повторить матрица
Res = перестроить (H, 1,3 * (длина (G )));%, чтобы изменить размер матрицы% Двоичных Пульс Формирование
для N = 1: длина (г);
Если G (N) == 0;
die1 = Ones (1100);
c1 = SIN (F0 * T);
SE1 = нули (1100);
другое G (N) = 1;
die1 = Ones (1100);
c1 = SIN (f1 * T);
SE1 = Ones (1100);
конец
CP1 = [СР1 die1];
Mod1 = [Mod1 C1];
bit1 = [bit1 SE1];
конец% Двоичных Пульс Формирование на кодированный сигнал
для N = 1: длина (РЭС);
если Res (п) == 0;
DIE = Ones (1100);
C = SIN (F0 * T);
SE = нули (1100);
другое Res (N) = 1;
DIE = Ones (1100);
C = SIN (f1 * T);
SE = Ones (1100);
конец
CP = [CP умирает];
моделирование = [Mod C];
бит = [разрядные SE];
конец
Модуляция FSK%
ФСК = CP .* моделирование;Добавить% Белый шум модулированным ФСК сигнала
noise_awgn = noise_amp * randn (1, длина (ФСК)); генератора шумов%
fsk_noise = ФСК noise_awgn;% модулированный перевозчик плюс шум% Графика
subplot (6,1,1); участок (bit1, 'LineWidth', 1,5); по сетке;
Название ( 'двоичного сигнала');
оси ([0 100 * Длина (G) -2.5 2.5]);subplot (6,1,2); участок (бит, 'LineWidth', 1,5); по сетке;
Название ( 'двоичного сигнала W / Error Correction (3,1) Повторения код');
оси ([0 100 * Длина (ВИЭ) -2,5 2,5]);subplot (6,1,3); участок (ФСК, 'LineWidth', 1,5); по сетке;
Название ( 'ФСК модуляцией');
оси ([0 100 * Длина (ВИЭ) -2,5 2,5]);subplot (6,1,4); участок (noise_awgn, 'LineWidth', 1,5); по сетке;
Название ( 'аддитивного белого гауссовского шума');
оси ([0 100 * Длина (ВИЭ) -2,5 2,5]);subplot (6,2,7); участок (fsk_noise, 'LineWidth', 1,5); по сетке;
Название ( 'ФСК модуляции W / белый шум ");
оси ([0 100 * Длина (ВИЭ) -2,5 2,5]);