Лабораторная работа 3 / 2008-03-27-19-32-Ольга-3
.doc
Дискретизация и модуляция сигналов
-
Дискретизация сигналов
Создаем синусоидальный сигнал с частотой 10, частотой дискретизации 100 и строим его спектр.
dt = 0.01; % шаг дискретизации
t=0:dt:1-dt;
N=length(t); % частота дискретизации
F1 = 10;
f=(1:N);
x=sin(2*pi*F1*t);
X=fft(x); % спектр сигнала
figure(1);
subplot(2,1,1),plot(t,x);
subplot(2,1,2),bar(f,abs(X)),grid;
Частота дискретизации равна 1/dt = 100
Первая составляющая спектра на 11 месте вместо 10 из-за существования постоянной (нулевой составляющей)
На спектре помимо частоты сигнала существует еще разностная частота, соответствующая разности частот дискретизации и частотой сигнала (на 91 месте)
Создаем сигнал из двух синусоид с разными амплитудами и частотами и строим его спектр.
figure(2);
F2=30;
x=sin(2*pi*F1*t)+0.3*sin(2*pi*F2*t); % наложение двух синусоид
X=fft(x); % спектр сигнала
subplot(2,1,1),plot(t,x);
subplot(2,1,2),bar(f,abs(X)),grid;
2 первых столбика на спектре - соответствуют частотам сигналов 10 и 30 на 11 и 31
местах, 2 вторых столбика соответствуют разности частоты дискретизации и
частот сигнала на 71 и 91 местах.
Создаем несколько сигналов с разными амплитудами и частотами, меняем шаг дискретизации
dt = 1/90;
t=0:dt:1-dt;
N=length(t);
f1 = 2;f3 = 6;f5=10;
x1=sin(2*pi*f1*t); % сигналы с частотам 2, 6 и 10
x2 = 1/3*sin(2*pi*f3*t);
x3 = 1/5*sin(2*pi*f5*t);
f=(1:N);
figure(50);
subplot(2,2,1),plot(t,x1),title('x1'),grid;
subplot(2,2,2),plot(t,x2),title('x2'),grid;
subplot(2,2,3),plot(t,x3),title('x3'),grid;
x=x1+x2+x3; y=x1+x2; z=x2+x3; w=x1+x3; % комбинации из сигналов х1, х2 и х3
figure(51);
subplot(2,2,1),plot(t,x),title('x'),grid;
subplot(2,2,2),plot(t,z),title('z'),grid;
subplot(2,2,3),plot(t,w),title('w'),grid;
subplot(2,2,4),plot(t,y),title('y'),grid;
X=fft(x);Y=fft(y);Z=fft(z);W=fft(w); %спектры сигналов
% столбики соответствующие частотам 2, 6, 10 на 3, 7 и 11 месте
% и с частотами равными разности частоты дискретизации и данных частот
% на местах 90-10+1=81,90-6+1=85,90-2+1=89
% высоты столбиков соотносятся как амплитуды синусоид 1:1/3:1/5
figure(52);
subplot(2,2,1),bar(f,abs(X)),grid,title('spectr X');
subplot(2,2,2),bar(f,abs(Y)),grid,title('spectr Y');
subplot(2,2,3),bar(f,abs(Z)),grid,title('spectr Z');
subplot(2,2,4),bar(f,abs(W)),grid,title('spectr W');
-
Модуляция сигналов
Рассмотрим амплитудную модуляцию сигналов (изменение по периодическому закону амплитуды гармонических колебаний с меньшей частотой, чем частота самих колебаний).
figure(4);
m=1/15*sin(2*pi*15*t); % модулируемый сигнал высокой частоты(несущая частота)
x=x1.*m;
z=x2.*m; % модуляция сигнала m сигналами х1,х2,х3 с частотами 2, 6 и 10
y=x3.*m; % х1,х2,х3 – модулирующие сигналы, огибающие синусоиды
X=fft(x); Y=fft(y); Z=fft(z); f=(1:N);
на спектрах столбики с частотами сигналов - спектр Х: 2+15=17, 15-2=13; спектр Z: 15+6=21, 15-6=9; спектр Y: 10+15=25, 15-10=5; и разностными частотами
subplot(3,2,1),plot(t,x),grid,title('x');
subplot(3,2,2),bar(f,abs(X)),grid,title('spectr X');
subplot(3,2,3),plot(t,z),grid,title('z');
subplot(3,2,4),bar(f,abs(Z)),grid,title('spectr Z');
subplot(3,2,5),plot(t,y),grid,title('y');
subplot(3,2,6),bar(f,abs(Y)),grid,title('spectr Y');
3. Импульсная функция
Создаем импульсную функцию и строим ее амплитудный и фазовый спектры
figure(5);
N=100;
x=zeros(1,N);
x(10) = 1;
S=abs(fft(x));
f = angle(fft(x));
subplot(3,1,1),bar(x);hold on;
subplot(3,1,2),stem(S),title('spectr'),grid;
subplot(3,1,3),stem(f),title('phase'),grid;
Фазовые спектры
Изменение фазового спектра при увеличении числа импульсов от 1 до 11.
Сначала от i=1 до i=50 количество лепестков растет и достигает максимума при i= 50, затем от 50 до 100 снижается до прежнего уровня и изображение спектра х(i=100) является зеркальным отражением (справа налево) изображения спектра х(i=1).
fig_num = 10;
for i = 1:10:N
x=zeros(1,N);
x(i) = 1;
figure(fig_num);
fig_num = fig_num+1;
plot( angle(fft(x)));grid; hold on;
end;
при i = 1 (1 импульс) при i = 10 (2 импульса)
при i = 50 (6 импульсов) при i = 100 (11 импульсов)
Амплитудные спектры
Изменение амплитудного спектра при увеличении длины прямоугольного импульса.
Количество лепестков амплитудного спектра пропорционально длине импульса( при длине 2 - 2 лепестка, при длине 10 - 10 лепестков)
fig_num = 21;
x=zeros(1,N);
figure(fig_num);
for i = 1:10
x(1:i) = 1;
figure(fig_num);
fig_num = fig_num+1;
plot( abs(fft(x)));grid;hold on;
end;
при i = 1 (1 импульс) при i = 2 (2 импульса)
при i = 5 (5 лепестков спектра) при i = 10 (10 лепестков)
Функция вида sin(x)/x.
Прямоугольному импульсу соответствует спектральная функция вида sin(w)/w (исходя из предыдущего примера), а сигнал sin(t)/t имеет прямоугольный спектр (свойство симметрии преобразования Фурье).
Функция вида sin(pi*x)/(pi*x) реализуется функцией sinc(f).
f=-50:49; % вектор частот для спектра
k=0.1;
s=sinc(k*f); % импульс вида sin(t)/t
S=fft(s); % спектр сигнала
figure(60);
subplot(1,2,1),plot(t,s),grid;
subplot(1,2,2),plot(abs(S)),grid;
Окна.
Matlab содержит целый ряд стандартных весовых функций, которые в качестве параметра принимают требуемую длину вектора и возвращают вектор-столбец w. Амплитудный спектр весовой функции соответствует частотной характеристике нулевого канала ДПФ при использовании данной весовой функции. Рассмотрим несколько окон.
-
Прямоугольное окно: соответствует отсутствию взвешивания, возвращает единичный вектор.
-
Окно Бартлетта: реализуется функцией Bartlett, по сути является треугольным, но имеет некоторые отличия от треугольного окна.
-
Косинусные окна:
-
Окно Ханна: реализуется функцией hanning.
-
Окно Хэмминга: реализуется функцией hamming.
-
s1=s.*(hanning(100))';
s2=s.*(hamming(100))';
s3=s.*(bartlett(100))';
[h,w]=freqz(s); % амплитудно-частотная характеристика
[h1,w1]=freqz(s1);
[h2,w2]=freqz(s2);
[h3,w3]=freqz(s3);
Графики АЧХ полученных с использованием окон:
subplot(2,2,1),plot(w,20*log10(abs(h))),grid,ylim([-80 45]),xlim([0 2]),title('rectangle');
subplot(2,2,2),plot(w1,20*log10(abs(h1))),grid,ylim([-80 45]),xlim([0 2]),title('hanning');
subplot(2,2,3),plot(w2,20*log10(abs(h2))),grid,ylim([-80 45]),xlim([0 2]),title('hamming');
subplot(2,2,4),plot(w3,20*log10(abs(h3))),grid,ylim([-80 45]),xlim([0 2]),title('bartlett');
Существуют дефекты преобразования Фурье:
появление боковых лепестков, растекание энергии, наложение соседних каналов.
При использовании временных окон амплитуда боковых лепестков уменьшается.
При использовании окна Ханна и Хэмминга уровень падает на 43,9 и 53,8 Дб соответственно. При использовании окна Бартлетта АЧХ фильтра не имеет боковых лепестков и спадает монотонно.
figure(6);
dt = 0.01;
t=0:dt:1-dt;
N=length(t);
F = 10; F1 = F;
% Использование прямоугольного временного окна.
COUNT=100; % число циклов
N = 10;
k = 15; % 15 номер канала частоты
for i=1:COUNT
x=sin(2*pi*F1*t); % сигнал меняющейся частоты
F1=F+i/N; % изменение частоты от10 до 20 на 0.1 на каждом шаге
S = abs(fft(x)); % амплитудный спектр сигнала
O(i)= S(k); % запоминаем составляющие спектра соответствующие 15 каналу
end;
plot(O);hold on;
clear O;
F1 = F;
% Использование окон Ханна, Хэмминга и Бартлетта
for i=1:COUNT
F1=F+i/N;
x=sin(2*pi*F1*t);
h = x.*(hanning(100))';
h1= x.*(hamming(100))';
h2= x.*(bartlett(100))';
S = abs(fft(h));
S1 = abs(fft(h1));
S2 = abs(fft(h2));
O(i) = S(k);
O1(i) =S1(k);
O2(i)=S2(k);
end;
plot(O,'r'),;hold on;
plot(O1,'b.');hold on;
plot(O2,'b--'); legend('S(15)','hanning','hamming','bartlett');
Наименьший уровень боковых лепестков получается с использованием окна Хэмминга; наибольший с использованием окна Бартлетта, однако частота пульсации боковых лепестков здесь меньше; при использовании окна Ханна амплитуда боковых лепестков быстро убывает.