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

Сравнение спектра двух сигналов

08.06.2015, 20:34. Показов 3011. Ответов 2
Метки нет (Все метки)

Здравствуйте! Мне дали задание сравнить спектры двух сигналов. Фурье преобразование сделал, спектры в одном окне вывел. Но преподаватель требует, чтобы спектры насколько можно максимально совпадали. Т.е. надо чтобы программа двигала спектр по оси Х и поставила максимумы одного спектра в максимуме другого. (Надо вроде сделать цикл чтобы спектр двигался в сторону). И ещё почему то не показывает Фигура 5. =(
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
clear all;
close all;
signal = wavread('C:\a.wav') ;
signal2=wavread('C:\a2.wav') ;
figure (1)
plot(signal);title('a.wav');
figure (2)
plot(signal2);title('a2.wav');
% signal: fdyscr=16 KHz, 16 bit
% acoustic preprocessing of signal
  
d=length(signal);
 tim=1; i=1;
 while i<d-408 y=signal(i:i+408); % block processing; result - acoustic vector
 
 x(1)=0.0;
  for j=2:409 x(j)=y(j)-y(j-1); end; %premphasis
 
 % pi=3.14;
 for j=1:409 z(j)=(0.54-0.46*cos(2*pi*(j-1)/408))*x(j); end;  %Hamming window  
 C=fft(z,512);  C=abs(C);   % FFT
 S=C(1:256); % amplitudes
 
 % binning of 255 spectral values amplitudes, j=2,3,...,256
  f=[0; 74.24; 156.4; 247.2; 347.6; 458.7; 581.6; 717.5; 867.9; 1034; 1218; 1422; 1647; 1895; 2171; 2475; 2812; 3184; 3596; 4052; 4556; 5113; 5730; 6412; 7166; 8000];
     
 krok=16000/512;           % krok=31,25
 a(1:26)=0; j=2; k=1; n(1:26)=0;
 h=krok*(j-1); 
 
  while k<26 
   while and(f(k)<h,h<f(k+1)) alfa=(h-f(k))/(f(k+1)-f(k));  % interval [f(k),f(k+1)];
                              a(k+1)=a(k+1)+S(j)*alfa; n(k+1)=n(k+1)+1;
                              a(k)=a(k)+S(j)*(1-alfa); n(k)=n(k)+1;
                              j=j+1; h=krok*(j-1);
   end;  
  a(k)=a(k)/n(k);  k=k+1;
  end; 
  
 O(tim,1:24)=a(2:25);
 %O(tim,25)=sum(y.^2);
 norma(tim)=norm(O(tim,1:24));
 i=i+160; tim=tim+1; % next block 
 end; % end of block proccesing
 time=tim-1;
 
normamax=max(norma(1:time));
O(1:time,1:24)= O(1:time,1:24)/normamax; % normalization
% end of signal acoustic preprocessing
 
d2=length(signal2);
 tim2=1; i2=1;
 while i2<d-408 y2=signal2(i2:i2+408); % block processing; result - acoustic vector
 
 x2(1)=0.0;
  for j2=2:409 x2(j2)=y2(j2)-y2(j2-1); end; %premphasis
 
 % pi=3.14;
 for j2=1:409 z2(j2)=(0.54-0.46*cos(2*pi*(j2-1)/408))*x2(j2); end;  %Hamming window  
 C2=fft(z2,512);  C2=abs(C2);   % FFT
 S2=C2(1:256); % amplitudes
 
 % binning of 255 spectral values amplitudes, j=2,3,...,256
  f2=[0; 74.24; 156.4; 247.2; 347.6; 458.7; 581.6; 717.5; 867.9; 1034; 1218; 1422; 1647; 1895; 2171; 2475; 2812; 3184; 3596; 4052; 4556; 5113; 5730; 6412; 7166; 8000];
     
 krok2=16000/512;           % krok=31,25
 a2(1:26)=0; j2=2; k2=1; n2(1:26)=0;
 h2=krok2*(j2-1); 
 
  while k2<26 
   while and(f2(k2)<h2,h<f2(k2+1)) alfa2=(h2-f2(k2))/(f2(k2+1)-f2(k2));  % interval [f(k),f(k+1)];
                              a2(k2+1)=a2(k2+1)+S2(j2)*alfa2; n2(k2+1)=n2(k2+1)+1;
                              a2(k2)=a2(k2)+S2(j2)*(1-alfa2); n2(k2)=n2(k2)+1;
                              j2=j2+1; h2=krok2*(j2-1);
   end;  
  a2(k2)=a2(k2)/n2(k2);  k2=k2+1;
  end; 
  
 O2(tim2,1:24)=a2(2:25);
 %O(tim,25)=sum(y.^2);
 norma2(tim2)=norm(O2(tim2,1:24));
 i2=i2+160; tim2=tim2+1; % next block 
 end; % end of block proccesing
 time2=tim2-1;
 
normamax2=max(norma(1:time2));
O2(1:time2,1:24)= O2(1:time2,1:24)/normamax2; % normalization
% end of signal acoustic preprocessing
 
figure (3)
plot(C2);title('     512 fft ');
figure (4)
plot(S2);title('      256 elements ');
figure (5)
plot(O2(time2,1:24));title('                  24-element vector');
 
 
figure (6)
plot(C);title('     512 fft ');
figure (7)
plot(S);title('      256 elements ');
figure (8)
plot(O(time,1:24));title('                  24-element vector');
 
figure (9)
plot(1:256,S,1:256,S2)
0

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

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

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

Синтез сигналов из спектра
Здравствуйте, дали задание создать программу синтеза непериодических сигналов из их спектра частот,...

Нормировка спектра разных сигналов
Здравствуйте. Вопрос связан с нормировкой сигнала, полученного на выходе функции fft. Для...

Сравнение принятых сигналов
Суть задачи: принимаем 2 сигнала (X1 и Х2), как они задаются подписано в программе. Далее...

2
505 / 412 / 43
Регистрация: 17.07.2013
Сообщений: 2,120
08.06.2015, 21:02 2
Цитата Сообщение от DimanYamoz Посмотреть сообщение
O(tim,1:24)=a(2:25);
Рекомендуется избегать использование символов, которые легко спутать с другими, например Букву О элементарно спутать с Цифрой 0
0
0 / 0 / 0
Регистрация: 30.11.2012
Сообщений: 23
08.06.2015, 21:31  [ТС] 3
Nick07, ну это понятно. А что-нибудь по теме?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2015, 21:31

Нахождение разницы двух сигналов
Здравствуйте. Имеется 2 сигнала: один до обработки, другой после. Нужно посчитать разницу этих...

Создание двух сигналов в MATLABe
Доброго времени суток. Возникла проблема с одной задачкой. Необходимо создать 2 сигнала, начало и...

Диаграмма Боде корреляции двух сигналов
Добрый день. Имеется два биологических сигнала, представленные в виде двух векторов (A и B), и...

ВКФ от определенного количества отсчетов двух сигналов
Имеется сигнал. До и после кодека. Необходимо получить ВКФ от различного количества отсчетов оного...


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

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

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