Помощь в написании студенческих работ
Антистрессовый сервис

Моделирование цифрового фильтра верхних частот

КонтрольнаяПомощь в написанииУзнать стоимостьмоей работы

Программа выполняет моделирование работы цифрового фильтра высоких частот 6 порядка. По результатам обработки выводятся графики входного аналогового сигнала и выходного цифрового сигнала, полученного в соответствии с заданием на проектирование цифрового фильтра. В данной программе был реализован цифровой фильтр верхних частот, в начале временного отчета была произведении задержка на 20 временных… Читать ещё >

Моделирование цифрового фильтра верхних частот (реферат, курсовая, диплом, контрольная)

Задание

1. Спроектировать цифровой фильтр с заданными характеристиками.

(определить коэффициенты, передаточную функцию и т. д.)

2. Построить АЧХ и ФЧХ цифрового фильтра.

3. Выбрать структуру цифрового фильтра, его параметры (разрядность регистров памяти, АЛУ и др.) и оценить влияние ошибок округления коэффициентов.

4. Разработать программную или аппаратную реализацию спроектированного фильтра. Провести его тестирование.

5. Сделать выводы по работе.

8 кГц, 4 кГц, =19 кГц

=-33дБ.

Расчеты

1) =2*=2*19=38 000 Гц

=2*pi*/=6.28*8000/38 000=1,322 105

=2*pi*/=6.28*4000/38 000=0,661 053

2) С==0,777 793

== 0,777 793 /0,343 113=2,266 871

Найдём n по формуле 10Lg (1+)>=33дБ

35,543>33при n=5

3) Фильтр Баттерворта 5-го порядка обеспечивает требуемое ослабление в полосе затухания. Определим передаточную функцию K (z) цифрового фильтра:

K (p)=1/Bn (p), где Bn (p)-полином степени n. Для n=5

Bn (p)=

Используем билинейное преобразование p=

K (p)=,

K (z)=

Делаем соответствующие математические преобразования в Maple 11 и получаем:

K (z)= ((0.269 699−0.809 097*z^(-1)+0.809 097*z^(-2)-0.269 699*z^(-3))/(z3−0.503 807*z2+0.586 409*z-0.673 772))*((0.349 231*(z-1)^2)/(z2−0.275 919*z

+0.121 006))

K (z)=

4) Построение АЧХ исходной схемы ЦФВЧ.

5) Выбор величины разрядной сетки, для хранения весовых коэффициентов.

4 разряда

Десятичная с.с.

Двоичная с.с.

Десятичная с.с.

0.269 699 (а01,а04)

0.0100

0.25

0.809 097 (а02-а03)

0.1100

0.75

0.503 807 (б01)

0.1000

0.5

0.586 409 (б02)

0.1001

0.5625

0.673 772 (б03)

0.0001

0.0625

0.349 231 (а11,а13)

0.0101

0.3125

0.698 462 (а12)

0.1011

0.6875

0.275 919 (б11)

0.0100

0.25

0.121 006 (б12)

0.0001

0.0625

АЧХ схемы с 4 разрядами.

8 разряда

Десятичная с.с.

Двоичная с.с.

Десятичная с.с.

0.269 699 (а01,а04)

0.1 000 101

0.26 953 125

0.809 097 (а02-а03)

0.11 001 111

0.80 859 375

0.503 807 (б01)

0.10 000 000

0.5

0.586 409 (б02)

0.10 010 110

0.5 859 375

0.673 772 (б03)

0.10 001

0.6 640 625

0.349 231 (а11,а13)

0.1 011 001

0.34 765 625

0.698 462 (а12)

0.10 110 010

0.6 953 125

0.275 919 (б11)

0.1 000 110

0.2 734 375

0.121 006 (б12)

0.11 110

0.1 171 875

АЧХ схемы с 8 разрядами.

16 разряда

Десятичная с.с.

Двоичная с.с.

Десятичная с.с.

0.269 699 (а01,а04)

0.100 010 100 001 010

0.269 683 837 890 625

0.809 097 (а02-а03)

0.1 100 111 100 100 000

0.80 908 203 125

0.503 807 (б01)

0.1 000 000 011 111 001

0.503 799 438 476 563

0.586 409 (б02)

0.1 001 011 000 011 110

0.586 395 263 671 875

0.673 772 (б03)

0.1 000 100 111 111

0.673 675 537 109 375

0.349 231 (а11,а13)

0.101 100 101 100 111

0.349 227 905 273 438

0.698 462 (а12)

0.1 011 001 011 001 110

0.698 455 810 546 875

0.275 919 (б11)

0.100 011 010 100 010

0.275 909 423 828 125

0.121 006 (б12)

0.1 111 011 111 010

0.121 002 197 265 625

АЧХ схемы с 16 разрядами.

АЧХ исходной схемы и схем 4, 8, 16.

6) Разница между АЧХ исходной схемы и АЧХ схемы с 4 разрядами.

Разница в полосе пропускания 5,598−2.996=2,602

Разница в полосе затухания 37,153−35,520=1,633

Разница между АЧХ исходной схемы и АЧХ схемы с 8 разрядами.

Разница в полосе пропускания 3,072−2.996=0.076

Разница в полосе затухания 35,611−35.520=0.091

Разница между АЧХ исходной схемы и АЧХ схемы с 16 разрядами.

Разница в полосе пропускания 2.996−2.996=0

Разница в полосе затухания 35.520−35.518=0.002

Разница между АЧХ исходной схемы и АЧХ схем 4,8,16 разрядами.

Для того чтобы фильтр удовлетворял заданию, нужно чтобы он отвечал следующим условиям:

— в полосе пропускания не будет отличаться от нормального значения 3 дБ не более чем на 0,01 дБ.

— в полосе затухания будет не менее заданного значения -33дБ.

Как видно из графиков наиболее подходящее значение разрядной сетки равно 16 разрядов.

7) Структурная схема реализации фильтра.

Коэффициенты

0.269 699 (а01,а04)

0.809 097 (а02-а03)

0.503 807 (б01)

0.586 409 (б02)

0.673 772 (б03)

0.349 231 (а11,а13)

0.698 462 (а12)

0.275 919 (б11)

0.121 006 (б12)

Каноническая форма реализации фильтра:

Вывод В данном курсовом проекте требовалось построить аналоговый ВЧ-фильтр и путём билинейного Z-преобразования перевести его в цифровую форму. Расчёт показал, что для удовлетворения требований задания необходимо и достаточно применить фильтр Баттерворта 5 порядка. Для цифровой реализации фильтра потребовалось осуществить выбор разрядной сетки для хранения коэффициентов передаточной функции. При 16-и разрядах отклонения укладываются в отведённый диапазон (как видно по графику).

8) Программная реализация цифрового фильтра верхних частот.

Программа выполняет моделирование работы цифрового фильтра высоких частот 6 порядка. По результатам обработки выводятся графики входного аналогового сигнала и выходного цифрового сигнала, полученного в соответствии с заданием на проектирование цифрового фильтра.

Пример работы программы представлен ниже:

program Filter1;

uses

Forms,

UFilterOne in 'UFilterOne.pas' {Form1},

UGenerator in 'UGenerator.pas',

{$R *.res}

begin

Application.Initialize;

Application.CreateForm (TForm1, Form1);

Application.Run;

end.

unit UFilterOne;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, StdCtrls,

ComCtrls, Spin, Ugenerator, Series, Math;

type

TForm1 = class (TForm)

Button1: TButton;

BitBtn1: TBitBtn;

Label2: TLabel;

SpinEdit3: TSpinEdit;

Label7: TLabel;

Memo2: TMemo;

Label8: TLabel;

Chart1: TChart;

Series1: TLineSeries;

Series2: TLineSeries;

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1. Button1Click (Sender: TObject);

var a, c: real;

k: tGen;

i, j: integer;

f1: Tfilter;

x, y, y1,h: real;

res: Comp;

begin

a:=38;

c:=StrToInt (SpinEdit3.text);

K:=tgen.Init1(c, a);

F1:=Tfilter.Init2;

Chart1.Series[0]. Clear;

Chart1.Series[1].Clear;

for i:=0 to 200 do begin

Chart1.Series[0]. AddXY (k.getTime (i), k. getValue (i));

Chart1.Series[1].AddXY (k.getTime (i), F1. getValueP (k.getValue (i)));

end;

for i:=1 to 380 do begin

if x<=k.getValue (i) then

x:=k.getValue (i);

y:=f1.getValueP (k.getValue (i));

if i>20 then

if y1<=y then

y1:=y;

res:=20*log10(abs (y1/x));

memo2.Lines.Add (FloatToStr (res));

end;

end;

end.

unit UGenerator;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, StdCtrls,

ComCtrls, Spin, Math;

Type

TGen = class (TObject)

Protected

Fample: real; {Амплитуда}

FVhod: real; {Частота входного сигнала}

Fdec: real; {Частота дескретизации}

Public

Constructor Init1(aVhod, adec: real);

Function getValue (ax: integer): real;

Function getTime (ax: integer): real;

end;

type

TFilter = class (Tobject)

Protected

a01, a02, a03, b01, b02: Real;

a11, a12, a13, b11, b12: Real;

a21, a22, a23, b21, b22: Real;

e01,e02,e03,e04,e05,e06,e07,e08,e09,e10,

e11,e12,e13,e14,e15,e16,e17,e18,e19,e20,

e21,e22,e23,e24,e25,e26,e27,x1, x2, y1,y2: real;

Public

Constructor Init2;

Function getValueP (aX: Real) :Real;

end;

implementation

Constructor TFilter. Init2;

begin

Inherited Create;

a01:=0.562 495; a02:=-0.562 495; b01:=-0.12 499;

a11:=0.47 947; a12:=-2*0.47 947; a13:=0.47 947; b11:=0.378 817; b12:=-0.539 061;

a21:=0.349 231; a22:=-2*0.349 231; a23:=0.349 231; b21:=0.275 919; b22:=-0.121 006;

e01:=0;e02:=0;e03:=0;e04:=0;e05:=0;e06:=0;e07:=0;e08:=0;e09:=0;e10:=0;e11:=0;

e12:=0;e13:=0;e14:=0;e15:=0; x1:=0; x2:=0;y1:=0;y2:=0;

end;

Constructor TGen. Init1(aVhod, adec: real);

begin

inherited Create;

Fample:=1;

Fvhod:=aVhod;

Fdec:=adec;

end;

Function TGen. getValue (aX: Integer): Real;

begin

Result := fAmple * sin (2*Pi * (Fvhod*1000) * getTime (aX));

end;

Function TGen. getTime (aX: Integer): Real;

begin

Result := ax/(fdec*1000);

end;

Function TFilter. getValueP (aX: Real): Real;

begin

x2:=x1;

x1:=ax;

y1:=a01*x1+a02*x2-b01*y1;

e03:=e02;

e06:=e03*a13;

e02:=e01;

e05:=e02*a12;

e01:=y1;

e04:=e01*a11;

e09:=e08;

e11:=e09*b12;

e08:=e07;

e10:=e08*b11;

e07:=e04+e05+e06+e10+e11;

e14:=e09*a23;

e13:=e08*a22;

e12:=e07*a21;

e17:=e16;

e19:=e17*b22;

e16:=e15;

e18:=e15*b21;

e15:=e12+e13+e14+e18+e19;

Result:=e15;

end;

end.

Вывод:

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

1 Пронин А. С. Лекции — «Спецпроцессоры в цифровой обработке и передаче информации «.

2 Витязев В. В. — «Цифровая частотная селекция сигналов». Радио и связь. 1993 г.

3 http://model.exponenta.ru — Проектирование цифровых фильтров.

Показать весь текст
Заполнить форму текущей работой