Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Разработка алгоритма цифровой фильтрации





Алгоритм записывается на любом языке программирования. В нашем примере будем использовать алгоритмический язык Паскаль. Будем предполагать, что на входе ЦФ действует гармонический сигнал

 

, (5)

где a – амплитуда сигнала;

fT – относительная частота сигнала (f – частота, T – интервал дискретизации);

k – номер отсчета (k = 0, 1, 2, …, M);

p0 – начальная фаза;

M – максимальный номер отсчета.

В начале нашего алгоритма необходимо ввести значения параметров сигнала и коэффициентов фильтра (конкретные значения не указаны):

 

a:= …;

fT:= …;

M:= …;

p0:= …;

c12:= …;

c13:= …;

c23:= …;

 

Переменными с12, с13, с23 обозначены коэффициенты c12, c13, c23 соответственно. Вместо системы уравнений (2), связывающих z -преобразования входных, выходных и вспомогательных переменных, получаем систему уравнений, связывающих отсчеты этих сигналов. Эти уравнения составляются по уравнениям (2) и структурной схеме (рисунок 9):

. (6)

В этих уравнениях, описывающих работу ЦФ, номер отсчета k изменяется, начиная от значения 0. При k = 0 система уравнений принимает следующий вид:

. (7)

Из этих уравнений видно, что для вычисления u0, v0 и y0 необходимы значения u-1, v-1, которые не вычислялись ранее. Эти значения необходимо задать как начальные условия. Предположим что они нулевые. Тогда фрагмент нашего алгоритма, в котором задаются начальные условия, приобретает следующий вид:

 

uk1:= 0;

vk1:= 0;

 

В этом фрагменте uk1 и vk1 – переменные, обозначающие отсчеты uk-1 и vk-1 соответственно.

Далее необходимо сформировать цикл, в котором вычисляются входные, выходные и вспомогательные отсчеты сигналов для всех значений k. Но при этом необходимо правильно упорядочить уравнения. Допустим, сначала будем производить вычисления uk. Но для этого необходимо знать vk, а этот отсчет вычисляется при помощи второго уравнения. Поэтому сначала необходимо производить вычисления по второму уравнению, а уже затем – по первому и третьему. Соответствующий фрагмент алгоритма будет выглядеть следующим образом:

for k:= 0 to N

Do

Begin

xk:= a*cos(2*Pi*fT*k+p0);

vk:= uk1 + c12*vk1;

uk:= xk + c23*vk + c13*vk1;

yk:= vk1;

vk1:= vk;

uk1:= uk;

End;

 

Переменные xk, vk, uk и yk введены для обозначения отсчетов сигналов xk, vk, uk и yk соответственно.

Операторы

 

vk1:= vk;

uk1:= uk;

 

введены для того, чтобы записывать данные в блоки задержки.

Таким образом, алгоритм имеет следующий вид:

 

a:= …;

fT:= …;

M:= …;

p0:= …;

c12:= …;

c13:= …;

c23:= …;

uk1:= 0;

vk1:= 0;

for k:= 0 to N

Do

Begin

xk:= a*cos(2*Pi*fT*k+p0);

vk:= uk1 + c12*vk1;

uk:= xk + c23*vk + c13*vk1;

yk:= vk1;

vk1:= vk;

uk1:= uk;

End;

Date: 2016-07-25; view: 516; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию