0 / 0 / 0
Регистрация: 14.06.2014
Сообщений: 12
1

Определение спектра сигнала, сравнительный анализ

14.06.2014, 16:12. Показов 4721. Ответов 12
Метки нет (Все метки)

Здравствуйте, дамы и господа!
Необходима Ваша помощь и наставление

Дано1: Потенциальное кодирование,канал тональной частоты H=3100Гц амплитудная модуляция.
Метод NRZ, период сигнала Т=6,67мс, число битов в сигнале k=8.

Найти: -спектр результирующего модулированного сигнала;

Дано2: Потенциальное кодирование, число бит в сигнале k=8, канал тональной частоты Н=3100Гц, амплитудно-фазовая модуляция (QAM):
2 уровня сигнала, 2 значения сдвига фазы, период сигнала Т=13,33 мс.
Найти:сравнить спектры с Дано1.

Мои наработки:
1) Берем некоторую информационную последовательность: 10011011. Дальше, по идее, мне нужно нарисовать этот сигнал и пропустить его через fft, но мои попытки в Simulink`е не увенчались успехом. Дальше я прикинул, а почему бы не прогнать эту информационную последовательность сразу через fft? Сказано - сделано. Только немного видоизменив изначальный сигнал: fft([11111111000000001111111111111111000000001111111111111111]) т.к. где-то слышал, про то, что чтобы функция fft правильно работала ей необходимо от 64 отсчетов. Получив некоторый результат я и остановился. Т.к. если первый шаг был сделан неверно, то остальные не имеют смысла

А теперь вопрос: правильно ли я начал размышлять? Что бы вы посоветовали дальше сделать? Если возможно, покажите, пожалуйста, пример, как можно нарисовать необходимый мне сигнал с помощью Simulink и какая нужна схема для просчета спектра сигнала. Если первый сигнал можно тупо прогнать через fft, то другой, все же, наверное, нужно нарисовать. Не?
Готов поразмышлять вместе с вами и впитать нужную информацию
Спасибо большое!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2014, 16:12
Ответы с готовыми решениями:

Восстановление сигнала из спектра
Всем привет интересует такой вопрос, допустим задан сигнал, мы находим его спектр и определяем...

Построение спектра сигнала
Доброе время суток, ув. форумчане. Передо мной стояла задача построить спектр сигнала. Есть сам...

Фильтрация сигнала и получение спектра
Здравствуйте! Имеются экспериментальные данные - результаты измерения вибраций на раме грузового...

Практическая ширина спектра сигнала. Матлаб
Какое минимальное количество гармоник от начала спектра нужно оставить (все остальные гармоники при...

12
41 / 41 / 9
Регистрация: 22.10.2012
Сообщений: 91
14.06.2014, 19:30 2
Неправильно. Я бы посоветовал почитать про модуляцию. Тебе нужно спектр модулирОВАННОго сигнала, а ты пытаешься найти спектр информационного (модулирУЮЩЕго) сигнала. Тебе нужна несущая с частотой 3.1 кГц, частота дискретизации в каналах ТЧ берется равной 8 кГц. И уже ее промодулировать твоей NRZ-последовательностью.
1
0 / 0 / 0
Регистрация: 14.06.2014
Сообщений: 12
14.06.2014, 21:55  [ТС] 3
Так, вот мои кое какие попытки. Туда ли я двигаюсь? (как оказалось функцию dmod убрали ).
Правильно ли я понимаю, что уже с s_ask я и начинаю танцевать под БПФ, чтобы определить спектр?

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function modulation
%inf - информационная последовательность [1 0 1 1 1 0 0 1]
inf = [1 0 1 1 1 0 0 1];
M = 2; %уровни модуляции
Fc = 3100; %несущая честота в Гц
Fs = 8000; %частота дискретизации в Гц
Fd = 1204; %частоты дискретизации в Гц для сигнала X (входного/информационного) 
%(1/Fd = T (период следования символов из сигнала X))
 
%[s_ask, t] = dmod(inf, Fc, Fd, Fs, 'ask', M);
%plot(t, s_ask)
%grid on
 
[s_ask] = ammod(inf, Fc, Fs);
%как изобразить адекватно этот сигнал?
greed on
 
%здесь будет вычисление спектра
 
end
0
41 / 41 / 9
Регистрация: 22.10.2012
Сообщений: 91
14.06.2014, 23:03 4
privetkakdela, речь шла про симулинк, а уже не симулинк ))) Изобразить адекватно сигнал s_ask не получится, поскольку в нем всего 8 элементов. Его частота дискретизации далеко не 8000 Гц.
Частота дискретизации показывает, сколько раз в секунду берутся отсчеты сигнала. Допустим, какой-либо процесс моделируется в течение 1 секунды. Если массив длиной в 8, то частота дискретизации 8 Гц (8 отсчетов в секунду). Массив из тысячи элементов - частота дискретизации 1 кГц.
Отсюда вывод - нам нужно размножить отсчеты настолько, насколько требует этого частота дискретизации. Данная строчка каждый элемент массива inf по очереди повторяет по тысяче раз по столбцам, а потом перестраивает все в одну строку.
Matlab M
1
inf_m = reshape(repmat(inf,1000,1),1,8000);
Вот код, который я набросал днем на интерес. Только я не совсем разобрался, что там имеется в виду под периодом сигнала и к чему это относится, поэтому в коде 6,67 мс это длительность одного бита в NRZ. Амплитудная модуляция реализована простым перемножением, что по сути и есть принцип АМ.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
f = 3100;
fs = 8000;
k = 8;
T = 6.67e-3;
L = T*k;
t = 0:1/fs:L;
data = randi(2,1,k)-1;
g = floor(length(t)/k)
data_m = reshape(repmat(data,g,1),1,g*8);
s = cos(2*pi*f*t);
s_m = s(1:length(data_m)).*data_m;
figure
plot(t,s)
title('Несущая')
figure
subplot(2,1,1)
plot(t(1:length(data_m)),data_m)
title('NRZ-сигнал')
subplot(2,1,2)
plot(t(1:length(data_m)),s_m)
title('Модулированный сигнал')
figure
pwelch(s,[],[],[],fs)
title('Спектр несущей')
figure
pwelch(s_m,[],[],[],fs)
title('Спектр модулированного сигнала')
1
0 / 0 / 0
Регистрация: 14.06.2014
Сообщений: 12
15.06.2014, 12:13  [ТС] 5
Так, с кодом и амплитудной модуляцией разобрался. Усвоил, что это есмь банальное умножение нашей двоичной последовательности (информационной) на несущую. Несколько вопросов, если позволите :
1) Что измениться, если мы поменяем метод NRZ на NRZI или Манчестерский?
2) Почему cos как несущая? Почему не sin? Или это ограничивается лишь нашим предпочтением?)

По поводу Дано2.
1) В данном методе (QAM) мы имеем 2 несущие, которые сдвинуты по фазе (насколько сдвинуты? на 90?). А как быть с амплитудами? Или мы имеем 4 несущие? Типа 1ая амплитуда/1ая фаза, 2ая амплитуда/1ая фаза, 1ая амплитуда/2ая фаза, 2ая амплитуда/2ая фаза?
2) А потом мы это все перемножаем с нашим модулирующим сигналом? (он обязательно двоичный?)

Прошу прощения, если вопросы покажутся глупыми
0
41 / 41 / 9
Регистрация: 22.10.2012
Сообщений: 91
15.06.2014, 13:40 6
1) Изменится только то, что нужно будет закодировать в соответствии с принципом кода а потом уже полученное садить на несущую
2) По идее по барабану, разница только в начальной фазе несущей

1) Стоит посмотреть схему QAM-модулятора. Две несущие, как правило, берутся от одного генератора, для одной несущей ставится фазовращатель на 90. В результате имеем две несущих, косинусоида и синусоида, что можно рассматривать на 2 фазовых сдвига (0 и 90). Каждая из них модулируется амплитудой, в нашем случае 1 или 0. В результате имеем 4 комбинации.
В реальности при QAM-4 битовая последовательность разбивается на четные и нечетные биты и они параллельно модулируют несущие: четный бит на синусоиду, нечетный на косинусоиду или наоборот. После промодулированные несущие складываются.
2) В действительности нули и единицы на перемножение не подаются. Цифровой сигнал преобразуется в аналоговый (АЦП), фильтруется ФНЧ и уже потом перемножается с несущей. Если пошарить по интернету схему QAM-модулятора, то можно встретить схемы как с АЦП и ФНЧ, так и упрощенные схемы без этих блоков.
1
0 / 0 / 0
Регистрация: 14.06.2014
Сообщений: 12
16.06.2014, 15:58  [ТС] 7
1) А зачем нужны здесь блоки АЦП и ФНЧ? В каком месте они появляются (пункты см. ниже) и каков их физический смысл?

Так, вот в чем я попытался разобраться:
а) На вход схемы у нас поступает двоичная последовательность.
б) Она делится на 2 одинаковые части.
в) Далее, одна часть модулируется (амплитудная модуляция) несущей cos, а вторая sin.
г) Потом мы складываем.
д) PROFIT

И уже от этого чуда мы ищем спектр.

Взято отсюда: http://en.wikipedia.org/wiki/Q... ransmitter
Там же схема (Transmitter)

Я правильно понял?

Добавлено через 13 минут
Так. В итоге я просто перефразировал Dimas_rdn
Спасибо большое!

Но остался непонятен физический смысл блоков ФНЧ и АЦП, если же можно и без них.

Попробую это все закодить.

Как складывать сигналы в Matlab?
0
41 / 41 / 9
Регистрация: 22.10.2012
Сообщений: 91
16.06.2014, 22:38 8
privetkakdela, а я уже и не помню, нафига ЦАП. Видимо, не положено цифру гнать на модулятор. А ФНЧ нужен, чтобы гармоники лишние удалять. Для моделирирования можно и без них, в этом уже убедились и мы, и до нас )))
Что ты подразумеваешь под одинаковостью частей?
Складывать обычной операцией сложения, как ни странно.
1
Эксперт по электронике
938 / 838 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
16.06.2014, 22:47 9
privetkakdela, не хочу прерывать Ваш полет фантазии, но все же скажу: тут на форуме советуют (в т.ч. и я) книгу А. Б. Сергиенко "Цифровая обработка сигналов". Там специально для Вас в разделе "Модуляция" есть примеры и АМ и КАМ (QAM). И даже без всяких там команд тулбоксов. Просто, понятно и подкреплено теорией. Очень советую.
1
0 / 0 / 0
Регистрация: 14.06.2014
Сообщений: 12
19.06.2014, 02:18  [ТС] 10
Доброго времени суток!

R2D2
Спасибо большое за книгу! Действительно очень и очень дельная.

Dimas_rdn
Я подразумеваю то, что на вход у нас поступает массив и мы его делим на 2 части (четные - нечетные элементы).

---------------

Такие вопросики:

Пытаюсь реализовать цикл, но чето не получается
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function test
data = [1 0 1 0 1 1 1];
data_m1 = [];
data_m2 = [];
j1 = 1;
j2 = 1;
 
for i = 1:length(data)
    if i%2=0
data_m1[j1] = data[i] ;
j1 = j1 + 1;
    else data_m2[j2] = data[i];
        j2 = j2 + 1;
    end
end
disp(data_m1)
disp(data_m2)
 
end
Другой вопросик: как выводится амплитудный и частотный спектр сигнала?
Как я понял, функция pwelch выводит спектр мощности, а хочется рассмотреть сигнал со всех сторон
0
Эксперт по электронике
938 / 838 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
19.06.2014, 12:38 11
Цитата Сообщение от privetkakdela Посмотреть сообщение
if i%2=0
Матлаб похож на СИ, но не на столько)))
if mod(i,2)
И обращение к элементу массива не в квадратных кавычках, а в круглых.
1
36 / 36 / 0
Регистрация: 12.05.2012
Сообщений: 26
19.06.2014, 13:49 12
По поводу спектра: считайте по-честному - через преобразование Фурье (fft). И будет вам и амплитудный спектр, и фазовый.
2
0 / 0 / 0
Регистрация: 14.06.2014
Сообщений: 12
23.06.2014, 00:30  [ТС] 13
Жду ваших суровых комментариев, а также советов
Спасибо огроменное Dimas_rdn за, практически, весь код )

Программа, моделирующая Дано1
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function modulation(data)
f = 3100; %канал тональной частоты H=3100Гц
fs = 8000; %частоты дискретизации
k = 8; %кол-во бит в сигнале
T = 6.67e-3; %период сигнала
L = T*k;
t = 0:1/fs:L;
%data = randi(2,1,k)-1;
%data = [1 0 1 0 0 1 1 1];
 
g = floor(length(t)/k)
data_m = reshape(repmat(data,g,1),1,g*8);
s = cos(2*pi*f*t); %несущая
s_m = s(1:length(data_m)).*data_m; %модулированный сигнал
 
%выводим всевозможную информацию о сигнале
figure
plot(t,s)
title('Несущая')
 
figure
subplot(2,1,1)
plot(t(1:length(data_m)),data_m)
title('NRZ-сигнал')
subplot(2,1,2)
plot(t(1:length(data_m)),s_m)
title('Модулированный сигнал')
 
figure
pwelch(s,[],[],[],fs)
title('Спектр несущей')
 
figure
pwelch(s_m,[],[],[],fs)
title('Спектр модулированного сигнала')
 
 
end
Программа моделирующая Дано2
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
function qammodulation( data )
f = 3100;
fs = 8000;
k = 8;
T = 6.67e-3;
L = T*k;
t = 0:1/fs:L;
 
%data = randi(2,1,k)-1;
%data = [1 0 1 0 0 1 1 1];
[data1, data2] = test(data);
g = floor(length(t)/k);
data_m1 = reshape(repmat(data1,g,1),1,g*4);
data_m2 = reshape(repmat(data2,g,1),1,g*4);
 
s1 = cos(2*pi*f*t);
s_m1 = s1(1:length(data_m1)).*data_m1;
s2 = -sin(2*pi*f*t);
s_m2 = s2(1:length(data_m2)).*data_m2;
s_m = s_m1 + s_m2;
 
figure
plot(t,s1)
title('Первая несущая (cos)')
 
figure
plot(t,s2)
title('Вторая несущая (sin)')
 
figure
subplot(2,1,1)
plot(t(1:length(data_m2)),s_m2)
title('Модулированный сигнал (sin)')
%plot(t(1:length(data_m)),data_m)
%title('NRZ-сигнал')
subplot(2,1,2)
plot(t(1:length(data_m1)),s_m1)
title('Модулированный сигнал (cos)')
 
figure
pwelch(s1,[],[],[],fs)
title('Спектр несущей (cos)')
 
figure
pwelch(s2,[],[],[],fs)
title('Спектр несущей (sin)')
 
figure
pwelch(s_m,[],[],[],fs)
title('Спектр модулированного сигнала')
 
 
 
 
end
Функция test
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function [data_m1, data_m2] = test(data)
%data = [1 0 1 0 1 1 1 1];
data_m1 = [];
data_m2 = [];
j1 = 1;
j2 = 1;
 
for i = 1:length(data)
    if mod(i,2)
data_m1(j1) = data(i) ;
j1 = j1 + 1;
    else data_m2(j2) = data(i);
        j2 = j2 + 1;
    end
end
%disp(data_m1)
%disp(data_m2)
 
end
Сейчас разбираюсь со спектрами. Если у кого есть ссылки на какие-нибудь статейки интересные и полезные по данной тематике и задаче (спектральный анализ), то буду очень и очень благодарен.
Пошел разбираться с функцией fft()..
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2014, 00:30

Избавиться от размытия спектра гармонического сигнала
Добрый день! Подскажите пожалуйста. как избавиться от размытия спектра внизу? Преподаватель...

Перенос спектра дискретизированного сигнала в matlab
Решил что лучше спросить в этом разделе. Есть отсчеты звукового сигнала и частота дискретизации...

Анализ спектра мощности временного ряда
Доброго времени суток, форумчане! Я не профи матлаба, но у меня курсовая связанная с анализом...

Специфика построения спектра моего сигнала через преобразование Фурье
Добрый день. Сигнал у квазипериодический и не сложный. Выглядит он вот так: . Файл с...

Создание графика спектра сигнала
Нужна помощь в создании графика спектра сигнала и представление функции f(t).

Построение спектра ЛЧМ сигнала
Привет всем. Сам ЛЧМ сигнал построен, не удается построить спектр. Может кто-нибудь посмотреть?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.