Вы находитесь на странице: 1из 24

Министерство Образования, Культуры и

Исследований Республики Молдова


Технический Университет Молдовы
Факультет Вычислительной Техники, Информатики
и Микроэлектроники

Отчет
По лабораторной работе №6
Тема: Анализ диапазона частот сигналов с использованием MATLAB

Выполнил: студент гр. IBM-182 Платон Денис


Проверил: Райлян Сергей

Кишинев 2021
Цель работы:
Анализ диапазона частот сигнала синусоида с использованием MATLAB.

Теоретические понятия:

При дискретизации непрерывного сигнала F (t) в любой t секунд мы получаем


последовательность значений исходного сигнала : fk=f(kT).
Обозначение вектора в MATLAB начинается с 1 : x(1), x(2) ..... Обозначение
сигналов обычно начинается с нуля-g0, g1,..., а также co любое другое значение, включая
отрицательное – h-2, h-1, h0.... Если сигналы g и h содержат по 10 значений, то
соответствующие векторы также будут содержать 10 значений: вектор kg будет
содержать значения от 0 .. 9 и вектор kh будет содержать значения -2 .. 7.
Диапазон частот сигналов может быть представлен сложными значениями,
представляющими синусоиды, которые являются частью сигнала.
Алгоритм дискретного преобразования Фурье (TFD) используется для
преобразования цифрового сигнала из временного диапазона в набор точек в частотном
диапазоне. Вход алгоритма TFD представляет собой набор N значений временного
размера [fk]: алгоритм формирует набор N сложных значений [Fk], которые
представляют информацию о частотном диапазоне. Если N-это число с базой 2 (N=2M),
то используется быстрое преобразование Фурье (TFR).

Независимо от того, был ли цифровой сигнал в любой t секунд, или у нас есть 1 / t
образцов в секунду. Выбор скорости квантификации осуществляется таким образом,
чтобы устранить присоединение, проблема, которая возникает, когда дискреция слишком
медленная. Чтобы устранить эту проблему дискрецию, она действует со скоростью,
превышающей вдвое большую частоту каждого синусоидального сигнала. Если у нас
есть сигнал, который поддерживает две синусоиды с частотой 10 и 35 Гц соответственно,
то дискреция действует на долю выше 70 Гц. Частота Nyquist равна половине частоты
квантификации и представляет собой верхний предел частоты, который должен
содержаться в цифровом сигнале.

Функция MATLAB, что преобразование TFD является fft. Эта функция может
использоваться с одним или двумя аргументами при входе. Если используется один
аргумент, который представляет собой вектор, содержащий сигнал с течением времени,
выход этой функции будет другим вектором того же типа, который содержит сложные
значения, представляющие содержание частоты сигнала. Если используются два
аргумента-первый-это вектор, содержащий сигнал в области времени, а второй аргумент-
это интегрированное значение L, которое определяет количество точек выходного
вектора. Если l > n то l-n нули будут применены к концу сигнала в области времени до
процесса преобразования. Если L < N, то первые L значения сигнала во времени будут
использоваться для преобразования в частотном диапазоне.
Значения диапазона частот с использованием fft соответствуют частотам, разделенным
на 1 / NT Hz. Если у нас есть 32 образца сигнала в то время, которое было
дискретизировано с частотой 1000 Гц, значения частоты, преобразованные fft,
соответствуют: 0 Гц, 1/0.032 Гц, 2/0.032 Гц ... .Эти значения-0 Гц, 31.25 Гц, 62.5 Гц ... .
Частота Nyquist равна 1/2T и будет соответствовать F16 . Таким образом, TFD является
периодической функцией, а значения частоты выше частоты Nyquist не являются новой
информацией,
Порядок выполнения лабораторной работы.

Запустите пакет программ MATLAB . На дисплее появится окно команды.

I. Преобразования Фурье.

1.1. Создайте дискретный сигнал, содержащий 64 образца. Для этого пожинайте :

N=64;
T=1/128;
k=0:N-1;
f=sin(2*pi*20*k*T);
plot(k,f),grid, set (gca,'FontName', ...
'Arial Cyr','FontSize',16)
xlabel('Indecsul k'); ylabel('Y(t)')
title('Semnalul original')

Сигнал f-синусоида с частотой 20 Гц с частотой 128 Гц. Если f является одним


синусоидальным, то частотное содержание будет равным нулю, за исключением точки в
частотном диапазоне, соответствующем 20 Гц.
1.2. Чтобы определить Fk, соответствующий частоте 20 Гц, смоделируйте шаг В Гц
между точками в частотном диапазоне, равным 1 / NT или 2 Гц. Теперь компонент с 20
Гц будет отображаться в F10 (k=10 в диапазоне частот). Для просмотра выполните
преобразование Фурье с помощью F=fft (f), затем отобразите зависимость модуля
преобразования Фурье с помощью plot(K, abs(F)).

N=64;
T=1/128;
k=0:N-1;
f=sin(2*pi*20*k*T);
F=fft(f);
magF= abs(F);
plot(k,abs(F)),grid, set (gca,'FontName','Arial Cyr','FontSize',16)
xlabel('Indecsul k'); ylabel('Modulul')
title('fft a semnalul original')
N=64;
T=1/128;
k=0:N-1;
f=sin(2*pi*108*k*T);
F=fft(f);
magF= abs(F);
plot(k,abs(F)),grid, set (gca,'FontName','Arial Cyr','FontSize',16)
xlabel('Indecsul k'); ylabel('Modulul')
title('fft a semnalul original')
N=64;
T=1/128;
k=0:N-1;
f=sin(2*pi*200*k*T);
plot(k,f),grid, set (gca,'FontName', ...
'Arial Cyr','FontSize',16)
xlabel('Indecsul k'); ylabel('Y(t)')
title('Semnalul original')
N=64;
T=1/128;
k=0:N-1;
f=sin(2*pi*300*k*T);
F=fft(f);
magF= abs(F);
plot(k,abs(F)),grid, set (gca,'FontName','Arial Cyr','FontSize',16)
xlabel('Indecsul k'); ylabel('Modulul')
title('semnalul original')

На рисунке видно, что компонент с 20 Гц также повторяется в F54 в качестве причины


привязки.

Примечание 1: для подтверждения этой периодичностью повторите стр. 1.2. для


частоты сигнала f 108 Гц.

Примечание 2: Повторите pp. 1.1-1.2 для 2-3 случаев низких частот f-сигнала и 2-3
случая более высоких частот, чем частота Nyquist (64 Гц).
1.3 вообще рекомендуется рисовать только половину значений модуля . Также удобнее
представить ось X В Гц по отношению к индексу k. для этого используйте представление
параметра K В Гц hertz=k*(1/(N*T)) и отобразите только половину полученного стектра
plot(hertz (1: N / 2), magF(1: N/2)), предварительно указав magF=abs (F).

N=64;
T=1/128;
k=0:N-1;
f=sin(2*pi*30*k*T);
F=fft(f);
magF= abs(F);
hertz=k*(1/(N*T));
plot(hertz(1:N/2),magF(1:N/2)) ,grid, set (gca,'FontName','Arial Cyr','FontSize',16)
xlabel('Frecventa Hz'); ylabel('Modulul')
title('fft a semnalul original')
1.4.Предположим, что синусоидальная частота составляла 19 Гц (вместо 20) . Шаг
увеличения значений Fk В Гц составляет 2 Гц, поэтому синусоида будет отображаться в
Fk, где k = 9.5. Но k является целостным и не имеет значений в F9. 5. В этом случае
синусоида будет защищать от соседних значений F9 и F10. Чтобы проиллюстрировать
это, повторите точку 1.3 с изменением частоты сигнала f до 19 Гц:

N=64;
T=1/128;
k=0:N-1;
f=sin(2*pi*19*k*T);
F=fft(f);
magF= abs(F);
hertz=k*(1/(N*T));
plot(hertz(1:N/2),magF(1:N/2)) ,grid, set (gca,'FontName','Arial Cyr','FontSize',16)
xlabel('Frecventa Hz'); ylabel('Modulul')
title('fft a semnalul original')
II Определение режима и фазы преобразования Фурье.

2.1.создайте сигнал по сумме двух синусоидов и покажите спектр модуля и спектр фазы
преобразования Fourrier:

t = (0:1/99:1); % Vectorul de timp


x = sin(2*pi*25*t) + sin(2*pi*70*t); % Semnalul
% determinarea DFT, magnituda şi faza secvenţei x
y = fft(x); % Modelarea DFT
m = abs(y); p = unwrap(angle(y)); % Magnituda şi faza
% afişarea magnitudei şi fazei
f = (0:length(y)-1)*99/length(y); % Vectorul frecvenţei
plot(f,m); title('Magnitude');
set(gca,'XTick',[15 40 60 85]);
figure; plot(f,p*180/pi); title('Faza');
set(gca,'XTick',[15 40 60 85])
t = (0:1/99:1); % Vectorul de timp
x = sin(2*pi*50*t) + sin(2*pi*60*t); % Semnalul
% determinarea DFT, magnituda şi faza secvenţei x
y = fft(x); % Modelarea DFT
m = abs(y); p = unwrap(angle(y)); % Magnituda şi faza
% afişarea magnitudei şi fazei
f = (0:length(y)-1)*99/length(y); % Vectorul frecvenţei
plot(f,m); title('Magnitude');
set(gca,'XTick',[15 40 60 85]);
figure; plot(f,p*180/pi); title('Faza');
set(gca,'XTick',[15 40 60 85])
t = (0:1/99:1); % Vectorul de timp
x = sin(2*pi*25*t) + sin(2*pi*80*t); % Semnalul
% determinarea DFT, magnituda şi faza secvenţei x
y = fft(x); % Modelarea DFT
m = abs(y); p = unwrap(angle(y)); % Magnituda şi faza
% afişarea magnitudei şi fazei
f = (0:length(y)-1)*99/length(y); % Vectorul frecvenţei
plot(f,m); title('Magnitude');
set(gca,'XTick',[15 40 60 85]);
figure; plot(f,p*180/pi); title('Faza');
set(gca,'XTick',[15 40 60 85])

Примечание 3: повторите п. 2. 1 для altr 2-3 частоты синусоиды сигнала x.


III Определение преобразования Фурье правого импульса

3.1. моделировать сигнал следующим образом:

A=0.85;
w=0.5;
Ts=0.01;
T=100;
t=0:Ts:T;
y=A*rectpuls(t,w);
stem(t(1:100),y(1:100)), grid, set (gca,'FontName','Arial Cyr','FontSize',16)
title('Semnal periodic in dorma dreptunchiulara')
xlabel('t,sec');
ylabel('Y(t)'), grid

3.2 укажите df=1/t; Fmax=1/Ts; f=0: DF: Fmax; применить процедуру fft (y = fft (x);) и
показать зависимость частотного режима
определение df=1/t; Fmax = 1 / Ts; f = 0:df: Fmax; и отображение спектра с
использованием stem(f,abs(y):

A=0.85;w=0.5;
Ts=0.01;T=100;
t=0:Ts:T; y=A*rectpuls(t,w);
x=fft(y);df=1/T;
Fmax=1/Ts;f=0:df:Fmax;
a=abs(x);stem(f,a), grid, set (gca,'FontName','Arial Cyr','FontSize',16)
title('Modulul TF a semnalului periodic in forma dreptunghiulara')
xlabel('Frecventa Hz');
ylabel('Modulul'), grid

Примечание 3: повторите p. 3.2 для w=5 и 0.5 .

3.3 примените процедуру yp=fftshift (y); f1 = - Fmax / 2:df: Fmax/2; и покажите


зависимость частотного режима в диапазоне-π - + π:

A=0.85;w=0.5;
Ts=0.01;T=100;
t=0:Ts:T; y=A*rectpuls(t,w);
x=fft(y);
df=1/T;
Fmax=1/Ts;
F1=-Fmax/2:df:Fmax/2;
stem(f,a), grid, set (gca,'FontName','Arial Cyr','FontSize',16)
title('Modulul TF a semnalului periodic in forma dreptunghiulara')
xlabel('Frecventa Hz');
ylabel('Modulul'), grid

A=0.85;w=0.5;
Ts=0.01;T=100;
t=0:Ts:T;y=A*rectpuls(t,w);
x=fft(y);xp=fftshift(x);
a=abs(xp);df=1/T;
Fmax=1/Ts;f1=-Fmax/2:df:Fmax/2;
stem(f1,a), grid, set (gca,'FontName','Arial Cyr','FontSize',16)
title('Modulul TF a semnalului periodic in forma dreptunghiulara')
xlabel('Frecventa Hz');
ylabel('Modulul'), grid

3.4 отображение на одной реальной стороне зависимости и воображаемой части TF для


результата от п. 3.3 - участок(f1,real(yp),f1,imag(yp)).

A=0.85;w=0.5;Ts=0.01;
T=100;t=0:Ts:T; y=A*rectpuls(t,w);
x=fft(y);xp=fftshift(x);
df=1/T;
Fmax=1/Ts;
f1=-Fmax/2:df:Fmax/2;
dch=real(xp); mch=imag(xp);
plot(f1,dch,f1,mch), grid, set (gca,'FontName','Arial Cyr','FontSize',16)
title('Partea reala si partea imaginara TF a semnalului in forma dreptunghiulara')
xlabel('Frecventa Hz');
ylabel('Modulul si faza'), grid

IV. TFD шум " белый”:

Часто преобразование Фурье используется для определения частотных компонентов


сигналов, затронутых шумом.

4.1 создание процесса в виде “белого " шума”


Ts = 0.01; T=50; t=0: Ts: T; x1=rand (1, length (t));
и показать результат с помощью функции plot (t, x1):
A=0.85;w=0.5; Ts=0.01;
T=50;
t=0:Ts:T; y=A*rectpuls(t,w);
x1=rand(1,length(t));
xp=fftshift(x1);
df=1/T;
Fmax=1/Ts;
f1=-Fmax/2:df:Fmax/2;
dch=real(xp); mch=imag(xp);
plot(t,x1), grid, set (gca,'FontName','Arial Cyr','FontSize',16)
title('Zgomot alb')
xlabel('Timp');
ylabel('X1(t)'), grid

4.2 создайте фильтр и отфильтруйте “белый " шум”:

Ts=0.01;
T=70;t=0:Ts:T;
x1=rand(1,length(t));
a=0; b=0; om0=2*pi; dz=0.05; A=1; oms=om0*Ts;
a(1)=1+2*dz*oms+oms^2;
a(2)=-2*(1+dz*oms);
a(3)=1;
b(1)=A*2*dz*oms^2;
y1=filter(b,a,x1);
plot(t,y1), grid, set (gca,'FontName','Arial Cyr','FontSize',16)
title('Iesirea filtrului')
xlabel('Timp');
ylabel('X1(t)'), grid

затем отобразите результат с помощью функции plot (t, y1):

Ts=0.01;
T=70;t=0:Ts:T;
x1=rand(1,length(t));
om0=2*pi; dz=0.05; A=1; oms=om0*Ts;
a(1)=1+2*dz*oms+oms^2;
a(2)=-2*(1+dz*oms);
a(3)=1;
b(1)=A*2*dz*oms^2;
y1=filter(b,a,x1);
df=1/T; Fmax=1/Ts; f=-Fmax/2:df:Fmax/2;
dovg=length(f);
Fu1=fft(x1)/dovg; Fu2=fft(y1)/dovg;
Fu1p=fftshift(Fu1); Fu2p=fftshift(Fu2);
A1=abs(Fu1p);
A2=abs(Fu2p);
S1=Fu1p.*conj(Fu1p)*dovg;
S2=Fu2p.*conj(Fu2p)*dovg;
subplot(2,1,1);
m = abs(Fu1p); m1 = abs(Fu2p);
stem(f,A1),grid, set (gca,'FontName','Arial Cyr','FontSize',16)
title('Modulul zgomotului');
subplot(2,1,2);
stem(f,S1), grid, set (gca,'FontName','Arial Cyr','FontSize',16)
title('Spectrul densitatii de putere')
xlabel('Frecventa Hz');

4.3 представьте модуль TF "белого" шума при входе фильтра и выходе фильтра:

c1=fix(dovg/2)-200;
c2=fix(dovg/2)+200;
length(f);
subplot(2,1,1);
stem(f(c1:c2),A2(c1:c2)),grid, set (gca,'FontName','Arial Cyr','FontSize',16)
title('Modulul zgomotului la iesirea filtrului')
subplot(2,1,2);
stem(f(c1:c2),S2(c1:c2)), grid, set (gca,'FontName','Arial Cyr','FontSize',16)
title('Spectrul densitatii de putere la iesirea filtrului')
xlabel('Frecventa Hz');

V. Исследования трансформации продолжаются.

- В меню "MATLAB DEMO „выберите” Toolboxes „, затем”Signal processing". Выберите


"Transforms" и запустите приложение, нажав "Continuous Fourier transform". на экране
появится интерфейс
- Измените значение частоты модуляции и проверьте ее влияние на величину
преобразования Фурье.
- Сохраните информацию о непрерывном преобразовании Фурье, нажав кнопку
"Информация" в окне моделирования.

Вывод:
Во время этой лабораторной работы я работал в программе Matlab для анализа диапазона
частот сигнала синусоида. Все сигналы были смоделированы и добавлены в отчет.

Вам также может понравиться