|
|
  |
Halfband фильтр... |
|
|
|
Jan 25 2009, 10:02
|
Частый гость
 
Группа: Новичок
Сообщений: 120
Регистрация: 28-01-05
Пользователь №: 2 256

|
Что-то клинит, подскажите плиз:
Есть ИХ h=[18 0 -116 0 429 0 -1277 0 5042 8192 5042 0 -1277 0 429 0 -116 0 18];
Тогда исходная АЧХ figure,plot((1:1024)*2000000/1024,20*log10(abs(fft(h,1024))/1024)) (сэмплирование 2МГц)
После децимациии в 2 раза получаем sp=20*log10(abs(fft(h,1024))); sp1=sp(1:length(sp)/2); sp2=sp(length(sp)/2+1:end); plot((1:512)*1000000/512,sp1), hold on, plot((1:512)*100000000/512,sp2,'g')
Тогда сумарная (после фильтрации и децимации в 2 раза) АЧХ будет figure,plot((1:512)*1000000/512,sp1+sp2); %?????????????????
т.е. с одной стороны полезная полоса получается всего около 250кГц, а в полосе 250-500кГц будет паразитное усиление?, которое надо дополнительно отфильтровывать?
|
|
|
|
|
Jan 25 2009, 13:30
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(Leshii @ Jan 25 2009, 13:02)  Что-то клинит, подскажите плиз:
Есть ИХ h=[18 0 -116 0 429 0 -1277 0 5042 8192 5042 0 -1277 0 429 0 -116 0 18];
Тогда исходная АЧХ figure,plot((1:1024)*2000000/1024,20*log10(abs(fft(h,1024))/1024)) (сэмплирование 2МГц)
После децимациии в 2 раза получаем sp=20*log10(abs(fft(h,1024))); sp1=sp(1:length(sp)/2); sp2=sp(length(sp)/2+1:end); plot((1:512)*1000000/512,sp1), hold on, plot((1:512)*100000000/512,sp2,'g')
Тогда сумарная (после фильтрации и децимации в 2 раза) АЧХ будет figure,plot((1:512)*1000000/512,sp1+sp2); %?????????????????
т.е. с одной стороны полезная полоса получается всего около 250кГц, а в полосе 250-500кГц будет паразитное усиление?, которое надо дополнительно отфильтровывать? Ну, для начала советую отказаться от складывания логарифмов, ибо log( a )+log( B ) = log( a*B ) и совершенно != log( a+B )  )). А что касается полезной полосы после децимации, то формально ее нет  . А фактически она будет определяться допустимым уровнем искажения сигнала из-за наложения спектров. А уровень наложения спектров в свою очередь будет зависеть как от АЧХ фильтра в полосе 500кГц-1000кГц, так и от спектра входного сигнала в этой полосе. Если, к примеру, входной сигнал это сумма двух синусов с частотами 400кГц и 600кГц и амплитудами 1000 и 8000 единиц, то выходной сигнал после фильтра и децимации - синус 400кГц с амплитудой примерно 900+1000. И никаким дополнительным фильтром эти искажения уже не убрать.
Сообщение отредактировал Самурай - Jan 25 2009, 13:31
|
|
|
|
|
Jan 25 2009, 13:30
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 20-11-07
Пользователь №: 32 502

|
Вам нужен не halfband filter, а anti-aliasing фильтр - филтр обеспечивающий требуемое подавление в полосе частот, которые будут зеркальными после применения децимации. halfband filter этого не обеспечивает. Такие фильтры применяются в бэнк-фильтрах, к примеру, где зеркальные отражения/наложения (aliasing) взаимно-компенсируются при восстановлении/синтезе. Плюс, в большинстве случаев halfband filter имеет более простую реализацию с выч. точки зрения.
|
|
|
|
|
Jan 25 2009, 14:18
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(vadkudr @ Jan 25 2009, 16:30)  Вам нужен не halfband filter, а anti-aliasing фильтр - филтр обеспечивающий требуемое подавление в полосе частот, которые будут зеркальными после применения децимации. halfband filter этого не обеспечивает. Такие фильтры применяются в бэнк-фильтрах, к примеру, где зеркальные отражения/наложения (aliasing) взаимно-компенсируются при восстановлении/синтезе. Плюс, в большинстве случаев halfband filter имеет более простую реализацию с выч. точки зрения. Halfband filter это как раз и есть в частном случае anti-aliasing фильтр. И кроме требования максимального подавления зеркальных частот, существует так же требование максимально полного сохранения рабочего частотного диапазона (от 0 до Fsd/2, где Fsd = Fs/n). И в этом случае именно Halfband фильтр (для 2-х кратной децимации) как правило и будет наиболее эффективным с точки зрения вычислительных затрат и при прочих равных условиях.
|
|
|
|
|
Jan 25 2009, 15:05
|
Частый гость
 
Группа: Новичок
Сообщений: 120
Регистрация: 28-01-05
Пользователь №: 2 256

|
Можно ли сказать, что для выше приведенной ИХ подавление алиса в от 0 до 200кГц будет около 80дБ? Насчет суммирования логарифмов это я на на самом деле сказанул  , но итоговую АЧХ после фильтрации и децимации я правильно рассчитывал (не учитывая глюк с логарифмом)?
|
|
|
|
|
Jan 25 2009, 23:30
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(Leshii @ Jan 25 2009, 18:05)  Можно ли сказать, что для выше приведенной ИХ подавление алиса в от 0 до 200кГц будет около 80дБ? Да Цитата(Leshii @ Jan 25 2009, 18:05)  итоговую АЧХ после фильтрации и децимации я правильно рассчитывал (не учитывая глюк с логарифмом)? К системам децимации/интерполяции понятие АЧХ в общем случае не применимо  .
|
|
|
|
|
Jan 26 2009, 00:51
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 20-11-07
Пользователь №: 32 502

|
Цитата(Самурай @ Jan 25 2009, 23:18)  Halfband filter это как раз и есть в частном случае anti-aliasing фильтр. И кроме требования максимального подавления зеркальных частот, существует так же требование максимально полного сохранения рабочего частотного диапазона (от 0 до Fsd/2, где Fsd = Fs/n). И в этом случае именно Halfband фильтр (для 2-х кратной децимации) как правило и будет наиболее эффективным с точки зрения вычислительных затрат и при прочих равных условиях. Цитата А уровень наложения спектров в свою очередь будет зависеть как от АЧХ фильтра в полосе 500кГц-1000кГц, так и от спектра входного сигнала в этой полосе. Если, к примеру, входной сигнал это сумма двух синусов с частотами 400кГц и 600кГц и амплитудами 1000 и 8000 единиц, то выходной сигнал после фильтра и децимации - синус 400кГц с амплитудой примерно 900+1000. И никаким дополнительным фильтром эти искажения уже не убрать. Вторая цитата как раз иллюстрирует то, что Halfband фильтр не обеспечивает отсутствие отражений в полной полосе. Любой халфбанд фильтр имеет коэффициент 0.5 на половинной частоте найквиста. Так что кусочек из верхней половины частотного диапазона всегда отразится в нижнюю половину. Поэтому использование полуполосного фильтра возможно в двух случаях - разработчик гарантирует компенсацию этого отражения каким-либо методом в дальнейшем (бэнк-фильтр к примеру) - разработчик гарантирует отсутствие частотных составляющих сигнала в полосе Fnyq+/-deltaf, где deltaf тот самый кусочек, который не подавился должным образом и отражается в нижнюю половину.
|
|
|
|
|
Feb 15 2009, 06:36
|
Частый гость
 
Группа: Новичок
Сообщений: 120
Регистрация: 28-01-05
Пользователь №: 2 256

|
Одним из методов расчета фильтров является метод частотной выборки. Как я понял, одним из нюансов расчета является то, что в частотной области задаются контрольные точки, которые в рассчитанном фильтре должны сохраняться один в один, а вот между ними в рассчитанном фильтре в принципе может твориться черте что.
Попытался воспользоваться матлабом =========================================================== Fs=200000; % Sampling frequency
N=34; % Filter length
fd=[0 0.05 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1]; % Frequency sampling points
Hd=[1 1 0 0 0 0 0 0 0 0 0 0]; % Frequency samples
hn=fir2(N-1, fd, Hd); % Compute the impulse response coeffs.
[H, f] = freqz(hn, 1, 512, Fs); % Plot the magnitude frequency response
plot(f, abs(H)), grid on
xlabel('Frequency (Hz)')
ylabel('Magnitude ') =======================================================
но почему то в результирующей характеристике опорные точки (...0.1, 0.2, ...) не соответствуют заданным, хотя бы даже внешне.
Где затык?
|
|
|
|
|
Feb 15 2009, 23:18
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(Leshii @ Feb 15 2009, 09:36)  но почему то в результирующей характеристике опорные точки (...0.1, 0.2, ...) не соответствуют заданным, хотя бы даже внешне.
Где затык? Затык в том, что Вы ждете чуда. А чудес в нашем весьма прагматичном мире крайне мало  . Увеличьте раза в 3-4 порядок Вашего фильтра и тогда Вы увидите то, что так жаждете увидеть. Такова суровая реальность.
|
|
|
|
|
Feb 16 2009, 06:37
|
Частый гость
 
Группа: Новичок
Сообщений: 120
Регистрация: 28-01-05
Пользователь №: 2 256

|
Цитата(Самурай @ Feb 16 2009, 02:18)  Затык в том, что Вы ждете чуда. А чудес в нашем весьма прагматичном мире крайне мало  . Увеличьте раза в 3-4 порядок Вашего фильтра и тогда Вы увидите то, что так жаждете увидеть. Такова суровая реальность. Согласен, сам уже понял что хотел быть и богатым и здоровым
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|