реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> синтез цифрового фильтра из аналогового фильтра-прототипа
thermit
сообщение Mar 2 2013, 17:58
Сообщение #16


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
Наталия_К:
ильтр чебышева II типа, исходные данные: Fd=12000 Гц fp =2300 Гц fs =3000 Гц as =3дБ ap =55дБ
H(s) вывела сама, по известным формулам, там трудно было ошибиться.


Это не фильтр чебышева 2. Никаких резонансов этот фильтр иметь не должен. Где-то вы ошиблись.

Цитата
а что по поводу масштабирования скажете? не надо его делать выходит?


Будет время - гляну. Сейчас некогда. Вообще надо приводить нормированный фильтр к нужной полосе, конечно.
Go to the top of the page
 
+Quote Post
Дмитрий_Б
сообщение Mar 3 2013, 06:09
Сообщение #17


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 25-10-09
Пользователь №: 53 195



Наталия, фильтр Чебышева - неудачный выбор. Именно из-за наличия дельта-функций в импульсной характеристике непрерывный ("аналоговый") фильтр Чебышева считается физически нереализуемым (цифровой фильтр Чебышева - реализуем). Так зачем же брать такой фильтр в качестве аналогового прототипа, да ещё при методе инвариантности импульсной характеристики?
К стати, разложить на простейшие дроби дробно-рациональную передаточную функцию, где числитель и знаменатель имеют равные порядки, как я понимаю, нельзя (в действительности это проявление той же самой трудности, что я описал выше).
Возьмите фильтр Баттерворта. Он идеально подходит на роль прототипа. Примеры решений по методу инвариантности импульсной характеристики для него в учебниках найти можно.
Go to the top of the page
 
+Quote Post
thermit
сообщение Mar 3 2013, 21:28
Сообщение #18


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
Дмитрий_Б:
Именно из-за наличия дельта-функций в импульсной характеристике непрерывный ("аналоговый") фильтр Чебышева считается физически нереализуемым


Даже не знаю, как прокомментировать это утверждение...
Т е фильтр с передаточной функцией H(s) = const реализовать нельзя? Ведь их такого фильтра дельта-функция дирака... Чудеса, однако.


Цитата
Наталия_К:
фильтр чебышева II типа, исходные данные: Fd=12000 Гц fp =2300 Гц fs =3000 Гц as =3дБ ap =55дБ
H(s) вывела сама, по известным формулам, там трудно было ошибиться.


Как я уже сказал в ваших расчетах ошибка. Чтобы получился чебышев-2 вам надо в знаменателе к-ты при первой степени s удвоить. Смотрите приложенный файл. Там фильтр приведен к частоте 300 гц. Сами задайте какую надо частоту и руками скопируйте к-ты из разложения дроби на простейшие.
Как построить карту нулей/полюсов в маткаде - не знаю. Вообще - по оси абсцисс - вещественная часть, ординат - мнимая... Маткад, честно говоря, кроме ненависти никакой любви не вызывает.


Прикрепленные файлы
Прикрепленный файл  test.zip ( 107.85 килобайт ) Кол-во скачиваний: 69
 
Go to the top of the page
 
+Quote Post
Наталия_К
сообщение Mar 4 2013, 11:00
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 22-02-13
Пользователь №: 75 759



sm.gif

Цитата(Дмитрий_Б @ Mar 3 2013, 10:09) *
Наталия, фильтр Чебышева - неудачный выбор.
Возьмите фильтр Баттерворта. Он идеально подходит на роль прототипа. Примеры решений по методу инвариантности импульсной характеристики для него в учебниках найти можно.

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

Цитата(thermit @ Mar 4 2013, 01:28) *
Как я уже сказал в ваших расчетах ошибка. Чтобы получился чебышев-2 вам надо в знаменателе к-ты при первой степени s удвоить.

по поводу этого могу только показать как все делала, кстати, в знаменателе при первой степени s коэффициент на 2 умножался.
ну вот так:
все формулы брала отсюда: http://www.dsplib.ru/content/filters/ch5/ch5.html

Цитата(thermit @ Mar 4 2013, 01:28) *
и руками скопируйте к-ты из разложения дроби на простейшие.

ой, точно на 2 забыла умножить...
в первый раз так и делала, я поняла, что туда они ручками копируются wink.gif
вобщем вот так получилось
лихо Вы... как я могу Вас отблагодарить?

вот только теперь такой вопрос: почему масштабировав относительно fp у меня получилось, что на этой величине фильтр уже не пропускает, т.е. это значение превратилось в fs? сейчас еще раз перепроверила, все верно, написано a=2*pi*fc, но в моем случае fc не задано, а задано fp, но это однозначно не fs...


смотрите какая интересная вещь получилась, когда я масштабировала относительно fs, для R(f) получилась требуемая характеристика (сам прототип), а для P(f) G(f) графики получились одинаковые и оба уползли наверх.
а при масштабировании относительно fp P(f) и G(f) практически совпадают с R(f). все таки как правильно?

по поводу масштабирования - посмотрела Л.Рабинера,Б.Гоулда "теория и практика ЦОС", Гадзиковского, Солонину"Основы ЦОС", там ничего про масштабирование нет. только в Айфичере нашла. но там написано относительно частоты среза на уровне 3дБ...

Сообщение отредактировал Наталия_К - Mar 4 2013, 10:03
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение


Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Наталия_К
сообщение Mar 4 2013, 12:33
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 22-02-13
Пользователь №: 75 759



я попробовала все в матлабе сделать, результат совсем иной...
вот только фишка в том, что можно только в маткаде сдать

Сообщение отредактировал Наталия_К - Mar 4 2013, 12:34
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
thermit
сообщение Mar 4 2013, 12:44
Сообщение #21


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
Наталия_К:
смотрите какая интересная вещь получилась, когда я масштабировала относительно fs, для R(f) получилась требуемая характеристика (сам прототип), а для P(f) G(f) графики получились одинаковые и оба уползли наверх.
а при масштабировании относительно fp P(f) и G(f) практически совпадают с R(f). все таки как правильно?


Не. Не все. Когда копировали к-ты из разложения забыли про знаки...
Go to the top of the page
 
+Quote Post
Наталия_К
сообщение Mar 4 2013, 12:55
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 22-02-13
Пользователь №: 75 759



Цитата(thermit @ Mar 4 2013, 16:44) *
Не. Не все. Когда копировали к-ты из разложения забыли про знаки...

не, не забыла вот:

ой, один коэффициент не туда скопировала
а что по поводу относительно чего масштабировать и почему не совпадает с матлабом?

Сообщение отредактировал Наталия_К - Mar 4 2013, 12:56
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  test2_22_2300.zip ( 30.61 килобайт ) Кол-во скачиваний: 50
Прикрепленный файл  test2_22_3000.zip ( 107 килобайт ) Кол-во скачиваний: 84
 
Go to the top of the page
 
+Quote Post
thermit
сообщение Mar 4 2013, 13:07
Сообщение #23


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
Наталия_К:
а что по поводу относительно чего масштабировать и почему не совпадает с матлабом?


Все совпадает. Вот скрипт.
Код
clear all;
Fd=12000;
f0=3000;
norm=2*pi*f0;

bs1=[1 0 1.04*norm^2];
bs2=[1 0 1.446*norm^2];
bs3=[1 0 3.24*norm^2];
bs4=[1 0 26.274*norm^2];

as1=[1 2*0.099*norm 0.512*norm^2];
as2=[1 2*0.329*norm 0.594*norm^2];
as3=[1 2*0.637*norm 0.769*norm^2];
as4=[1 2*0.949*norm 0.972*norm^2];


bs=conv(bs1,conv(bs2,conv(bs3,bs4)))/562.341;
as=conv(as1,conv(as2,conv(as3,as4)));

[b,a]=impinvar(bs,as,Fd);


plot(0:Fd/20000:Fd/2-Fd/20000,20*log10(abs(freqz(b,a,10000))));
grid on


Другое дело, что соотношение частоты дискретизации и полосы фильтра маленькое, поэтому получается не очень хорошая х-ка.
Матлаб ругается. Попробуйте частоту дискретизации раз в 10 увеличить...
Go to the top of the page
 
+Quote Post
Наталия_К
сообщение Mar 4 2013, 13:40
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 22-02-13
Пользователь №: 75 759



Цитата(thermit @ Mar 4 2013, 17:07) *
Попробуйте частоту дискретизации раз в 10 увеличить...


надо то по заданию... я делала так (по образу и подобию Айфичера)

Fs=12000; % Sampling frequency
Ap=3;
As=55;
wp=2300/6000;
ws=3000/6000;
[N,Wc]= cheb2ord(wp,ws,Ap,As,'s'); % Определить порядок фильтра
%
% Create an analogue filter
%
[b, a]=cheby2(N, As, Wc, 's'); % Determine filter coeffs
[z, p, k]=cheby2(N, As,Wc, 's'); % Determine poles and zeros
%
% Convert analogue filter into Discrete IIR filter
%
[bz, az]=impinvar(b, a, Fs); % Determine coeffs of IIR filter

subplot(4,1,1) % Plot magnitude freq. response
[H, f]=freqz(bz, az, 512, Fs);
plot(f, 20*log10(abs(H)))
xlabel('Частота (Гц)')
ylabel('Амплитудная характеристика (дБ)')
subplot(4,1,2) % Вывести на экран ФЧХ
phase=(angle(H));
plot(f,phase)
xlabel('Частота (Гц)')
ylabel('Фаза (радианы)')

subplot(4,1,3) % Вывести на экран диаграмму нулей и полюсов
zplane(bz, az)
zz=roots(bz); % Determine poles and zeros
pz=roots(az);

subplot(4,1,4) % Вывести на экран импульсную характеристику
impz(bz,az)


так выходит я изначально H(s) неверно определила? или я неправильно в матлабе сделала?
Go to the top of the page
 
+Quote Post
thermit
сообщение Mar 4 2013, 14:14
Сообщение #25


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Так должно быть

Код
clear all;
Ap=3;
As=55;
Fd=12000;
fp=2300/Fd;
fs=3000/Fd;
wp=fp/fs;
ws=fs/fs;
[N,Wc]=cheb2ord(wp,ws,Ap,As,'s');
[bs, as]=cheby2(N, As, Wc, 's');
norm=2*pi*fs;
bs=bs.*norm.^(0:length(bs)-1);
as=as.*norm.^(0:length(as)-1);
[b,a]=impinvar(bs,as,1);


plot(0:Fd/20000:Fd/2-Fd/20000,20*log10(abs(freqz(b,a,10000))));
grid on


Кстати, фильтр с такими параметрами имеет 10-й порядок а не восьмой.

Сообщение отредактировал thermit - Mar 4 2013, 14:15
Go to the top of the page
 
+Quote Post
Дмитрий_Б
сообщение Mar 4 2013, 17:08
Сообщение #26


Местный
***

Группа: Участник
Сообщений: 211
Регистрация: 25-10-09
Пользователь №: 53 195



Цитата(thermit @ Mar 4 2013, 01:28) *
Даже не знаю, как прокомментировать это утверждение...
Т е фильтр с передаточной функцией H(s) = const реализовать нельзя? Ведь их такого фильтра дельта-функция дирака... Чудеса, однако.

Лучше для разбора взять импульсную характеристику фильтра Чебышёва (с АЧХ того именно типа, что здесь обсуждается), имеющую аналитическое выражение. В частном случае ФНЧ обратимся к весовой функции Дольфа-Чебышёва, рассматривая ее как импульсную характеристику.
Нетрудно видеть, что АЧХ такого фильтра оптимальна (это спектр весовой функции).
Теперь, как того требует метод инвариантности имп. х-ки, возьмём отсчёты представленной имп. х-ки: хотя бы один - в начале (t=-Т/2) и один в середине (t=0). Отсчёт в середине - какое-то положительное ограниченное число. Первый отсчёт - плюс бесконечность. Совершенно ясно, что такое соотношение между отсчётами не позволяет представить их в конечной разрядной сетке, равно как и реализовать в аналоговом виде - ввиду конечного значения динамического диапазона и полосы пропускания любого физического устройства.
Впрочем, всё это было известно с самого появления функции Дольфа - Чебышёва, исследованной как амплитудное распределения поля в антеннах.
Источник: Трухачёв А.А. Радиолокационные сигналы и их применения. -М.: Воениздат, 2005.

Сообщение отредактировал Дмитрий_Б - Mar 4 2013, 17:22
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Наталия_К
сообщение Mar 4 2013, 19:04
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 22-02-13
Пользователь №: 75 759



Цитата(thermit @ Mar 4 2013, 18:14) *
Кстати, фильтр с такими параметрами имеет 10-й порядок а не восьмой.

и правда, в матлабе 10-й, даже по тому, что у меня было... почему же у меня получился в маткаде 8-й? тут то вроде все формулы правильно подставила... sad.gif а графики ведь совпали, когда Вы первый раз подставили в матлабе по полученной H(s) для 8-го порядка... с тем, что потом написали, где N=10

Сообщение отредактировал Наталия_К - Mar 4 2013, 19:07
Go to the top of the page
 
+Quote Post
thermit
сообщение Mar 4 2013, 19:51
Сообщение #28


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
Наталия_К:
и правда, в матлабе 10-й, даже по тому, что у меня было... почему же у меня получился в маткаде 8-й? тут то вроде все формулы правильно подставила... sad.gif а графики ведь совпали, когда Вы первый раз подставили в матлабе по полученной H(s) для 8-го порядка... с тем, что потом написали, где N=10


Не-а. С fp/fs 2300/3000 порядок 10. 8-ой 2100/3000.
Собственно матлаб все по тем же формулам считает.

Сообщение отредактировал thermit - Mar 4 2013, 20:00
Go to the top of the page
 
+Quote Post
Наталия_К
сообщение Mar 4 2013, 20:29
Сообщение #29


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 22-02-13
Пользователь №: 75 759



Цитата(thermit @ Mar 4 2013, 23:51) *
Не-а. С fp/fs 2300/3000 порядок 10. 8-ой 2100/3000.
Собственно матлаб все по тем же формулам считает.

я имела в виду, что когда Вы построили первый раз график, он же строился для H(s) c 8 порядком. а потом то Вы подставляли исходные данные, получился N=10, а график такой же.

да, и все-таки масштабируем относительно fp или fs? в первый раз у Вас f0=fs=3000

я уж стала пробовать баттерворта, там порядок 13 получился. а то мне еще ФВЧ на основе прототипа рассчитывать, а там исходные данные другие, и если здесь при разложении получилось, что в знаменателе s^2, то для моего ФВЧ получилось две дроби с простыми полюсами и одна с комплексно-сопряженными. там уже по Вашему шаблону сделать не получится.


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

Сообщение отредактировал Наталия_К - Mar 4 2013, 20:29
Прикрепленные файлы
Прикрепленный файл  test2_22_fvch.zip ( 104.34 килобайт ) Кол-во скачиваний: 82
 
Go to the top of the page
 
+Quote Post
thermit
сообщение Mar 4 2013, 20:41
Сообщение #30


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Фильтр чебышева однозначно задается любыми 3-мя из 4-х параметров:
1 Неравномерность в пп
2 Ослабление в пз
3 Минимальная частота на которой есть требуемое ослабление в пз
4 Порядок фильтра



Параметр 3 можно задать как конец пп или как начало пз. Т е что считать 1? Wp или Ws?
Ну и нормирование отсюда и следует. Ваш фильтр расчитан с Ws=1. Поэтому денормировка через fs.

А можно и так:

Код
clear all;
Ap=3;
As=55;
Fd=12000;
fp=2300/Fd;
fs=3000/Fd;
%Вот тут
wp=fp/fp;
ws=fs/fp;
[N,Wc]=cheb2ord(wp,ws,Ap,As,'s');
[bs, as]=cheby2(N, As, Wc, 's');
norm=2*pi*fp;
bs=bs.*norm.^(0:length(bs)-1);
as=as.*norm.^(0:length(as)-1);
[b,a]=impinvar(bs,as,1);


plot(0:Fd/20000:Fd/2-Fd/20000,20*log10(abs(freqz(b,a,10000))));
grid on
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 15:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01528 секунд с 7
ELECTRONIX ©2004-2016