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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> fft/ifft для последовательности длиной 768 (=512+256)
DRUID3
сообщение Jul 27 2010, 11:57
Сообщение #16


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(Xenia @ Jul 27 2010, 14:35) *
И что из того, что нелинейно? Откуда у вас такая приверженность к линейности и отвражение к нелинейности? Линейным преобразованием из сигнала даже большую гадость можно сотворить, чем линейным smile.gif.

По большому счету - нелинейность необратима. Помню Tanya каГ-бЕ намекала нам, когда я сам интересовался этим вопросом. laughing.gif Вернее обратима если точно знать характеристику нелинейного звена и первоначальный входной сигнал. Но Хевисайд уже смотрит на Вас с укоризной...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
bahurin
сообщение Jul 27 2010, 12:20
Сообщение #17


Местный
***

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



Цитата(Xenia @ Jul 27 2010, 15:35) *
Основания моих слов имеются, причем они примерно такие же, как причины выбора формы окна при фильтровании в частотной области. Ведь никто же не режет отсечкой с некоторой частоты, поскольку знает, что за этим поледует. А последует "зашумленность" той самой граничной частой (при обратном FFT), по которй обрезали. Поэтому если и давят частоты, то осторожно - так, чтобы коэффициент подавления сходил к нулю плавно. И тут кто во что горазд: и треугольное окно, и косинусоидное, и гауссовый профиль, и т.п.
Дополнительный треугольник, достоенный в исходной области данных - наименьшее зло, по сравнению со всеми остальными случаями, когда краевые точки массива сильно отличаются по величине. Причем сам треугольник ведет себя на редкость смирно. Можно построить "домик" (линейное возрастание до середины массива с убыванием его во второй половине массива к начальному значению). Тут "мусор", порождаемый таким треугольником слаб, а амплитуды частот изменяются непрерывно, без каких либо максимумов. Анализировать спектральные данные (наложенные на этот треугольник) это не мешает. Опять же естественные процессы линейного дрейфа сигнала есть ни что иное, как добавление аналогичного трегольника. Поэтому такую форму искажения тоже можно считать естественной, присущей реальным задачам обсчета временных трендов.


все это эмпирика, рассуждения. Не первый раз сталкиваюсь с ситуацией когда человек что-то якобы "изобрел" и пытается обосновать. То что вы предлагаете устранить скачок фазы при вычислении fft это понятно. Подобным образом умножение на окно также приводит начало сигнала к его концу. Вы делаете данное приведение интерполяцией полиномом первой степени. Так вот прежде чем говорить о своем достижении, неплохо было бы провести сравнительный анализ своего алгоритма и существующих. Например насколько ваш метод давит боковые лепестки при растекании спектра? Я почему-то думаю, что это будет зависеть от формы сигнала. Для какого-то сигнала будет одно подавление, а для другого - другое. Вот именно в этом и есть нелинейность, когда подавая различные исходные данные вы получаете различный результат. Вот например если у меня так получилось, что частота дискретизации почти кратна частоте синусоиды, то я бы и без вашего метода имел бы отличный спектр, а применив ваш метод я фигню полную получу, потому что вместо синусоиды у меня будет синусоидальный импульс и как следствие - уровень боковых - 13 дБ. В этом и есть нелинейность вашего метода.

а вот вам код матлабовский для построения спектра:
Код
Fs = 100;       %частота дискретизации
f0 = 20.1;      %частота сигнала
N = 512;        %количество отсчетов
t = (0:N-1)/Fs; % время

s = sin(2*pi*f0*t); % исходный сигнал 512 отсчетов
S = 20*log10(abs(fft(s)));  % спектр исходного сигнала без всякого сглаживания как есть
s0 = linspace(s(N),s(1),N); % заполняю линейный тренд от последнего отсчета до первого
s1 = [s,s0];                % добавляю к исходному сигналу линейный трэнд
S1 = 20*log10(abs(fft(s1)));    %спектр сигнала с добавлением 1024 отсчета
freq = (0:N-1)*Fs/N;            %частота при 512 отсчетах
freq1 = (0:2*N-1)*Fs/(2*N);     % частота при 1024 отсчетах

subplot(211),plot(1:2*N, s1, 1:N,s,'r'), grid on;      % вывожу на график
subplot(212),plot(freq1,S1,freq,S,'r'), grid on;      % вывожу на график


А вот вам спектр синий - ваш метод, красный вообще без ничего как есть

Прикрепленное изображение


синий это ваш метод. Мало того что лепестки выросли, еще и постоянка появилась из-за вашего изобретательства.

Go to the top of the page
 
+Quote Post
PriBoris
сообщение Jul 27 2010, 12:21
Сообщение #18


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 7-10-05
Из: Санкт-Петербург
Пользователь №: 9 352



Цитата(связист)
Про эффективные алгоритмы лучше всего посмотреть книжку Блейхута "Быстрые алгоритмы цифровой обработки сигналов".
Алгоритм Кули-Тьюки наверное подойдёт для Вашей задачи.

Спасибо,с алгоритмом Кули-Тьюки разобрался. В матлабе прокрутил вариант 3*256, всё сходится.

Цитата(DRUID3)
Почти это как? 255.5?

Нет,имелось ввиду,что длина фильтра после различных доработок надфилем получается в районе 210...230.
256 - это я взял с запасом на будущее,округлив до ближайшего красивого (для хранения и использования) числа

Цитата(DRUID3)
делайте по 2-а FFT по 256 точек...
или одно по 512 на блок...
Физический смысл быстрой свертки в том, что у Вашего фильтра есть определенные АЧХ/ФЧХ(которое однозначно связано с его "импульсной"). Мы определяем его и накладываем операцией умножения(свертка-фильтрация над временным рядом соответствует умножению в частотном отображении) на частотный спектр сигнала. Размер блока может быть любым - впринципе, даже меньше длинны фильтра - но тогда его нужно будет пересемплировать с другой частотой Ничего из уже обработанного блока хранить не надо. Это не FIR. А все ускорение за счет того, что переход в частотную область с помощью FFT, посемпловое умножение, и обратный переход уже где-то начиная с 128 точек требует меньше операций чем свертка "в лоб".


Обясните пожалуйста, я не понимаю что я по Вашему мнению планирую делать не так.
Мне нужно реализовать FIR длиной 256, который я собственно реализовал в лоб. Получается затратно по ресурсам.
Я планирую сделать так:
Пришел новый набор данных из 512 точек.
Я создаю буффер их 768 точек, в него в позиции с 1 по 256 я копирую последние 256 точек из предыдущего набора данных, а в позиции с 257 по 768 я копирую свежие 512.
Делаю fft длиной 768.
Домножаю результат на АЧХ/ФЧХ моего фильтра, дополненного нулями до длины 768.
Полученное произведение пропускаю через ifft.
Точки с с 1 по 256 выкидываю, а точки с 257 по 768 считаю результатом фильтрации свежего блока данных.

Лучше делать два таких прохода на блок, но по 512 точек ?
Или один проход, но избыточный, на 1024 точек, чтобы не заморачиваться с Кули-Тьюки (в котором я возможно потреряю много времени на накладных расходах при переиндексации и т.д.)?

Go to the top of the page
 
+Quote Post
Xenia
сообщение Jul 27 2010, 12:40
Сообщение #19


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(DRUID3 @ Jul 27 2010, 15:03) *
P.P.S.: Xenia, перепишите DCT(FCT) для своего mp3 плеера или JPEG просмотрщика - так "грамотно". С "не кольцевой" сверткой. Послушайте(посмотрите) его минут 10. А выводы опубликуйте на форуме...

Ваше требование некорректно smile.gif. В вашем примере FFT применяется для сжатия сигнала (к более компактной форме представления/хранения), а потому о концевых эффектах там просто нет речи - важно лишь, чтобы обратное FFT воспроизводило исходный сигнал достаточно хорошо.
Здесь мы имеем тот эффект, что последовательное применение FFT и iFFT (если ничего не обрезать в промежуточном частном образе) тождественно воспроизведет (дискретный) оригинал. И это несмотря на любые краевые эффекты.
Но если нам нужно частотное представление само по себе, например, для гармонического анализа анализа или получения свертки, то с "краевыми эффектами" мириться нельзя. Ибо разрыв (ступенька между уровнями) на краях массива порождает при FFT дополнительные частоты, которые на самом деле во входном сигнале отсутствуют. И в этом можно легко убедиться, если использовать обычный метод FT (не Fast).
В принципе можно с определенностью сказать следующее: все три метода (зацикливание, дополнение нулями и дополнение линейным трендом) грешат против истины. В самом деле, при вычислении сверки прямым способом в конце массива создается ситуация, когда в результате относительного сдвига двух сворачиваемых функций приводит к неопределенной ситуации - первая функция "кончилась", выйдя за область, где мы знаем ее значения, а вторая функция еще нет. Если в этой ситуации мы решаем довольствоваться частичной суммой произведений, то это будет эквивалент заполнения недостающей части нулями. А если же решим, что "закончившаяся" функция периодична и решаем скопировать недостающие точки из ее начала - это то, что делает FFT. А мой "трегольник" - это попытка обмануть FFT, подсунув ей данные, на которых принудительная "циклизация", которую делает FFT, приносит наименьший вред (в случаях, когда периодичность исходной функции заведомо отсутствует).
Величина этого вреда может колебаться в широких пределах, в зависимости от того, насколько совпадают все эти три предположения (о дальнейшних значениях функции) с реальностью. В случае, если исходный сигнал - чистая гармоника, да еще и уложившаяся в интервал целым числом периодов, то, конечно же, FFT тут победит, т.к. ее "преположение" о перирдическом характере сигнала полностью оправдалось. Да вот только не бывает на практике таких удачных совпадений. И если вдруг окажется, что за переделами участка сигнал какой-то другой, то преположение о периодичности и цельно-кратности периодов окажется лажей. В этом случае ошибка может быть очень большой. Заполнение нулями - это согласие на среднюю ошибку. Она окажется больше, если в периолд удалось вписаться, или меньше, если вписаться не удалось. Т.е. здесь мы уповаем на нулевое среднее того сигнала, продолжения которого не знаем. Вообще-то это не такое уж плохое предположение.
Ситуация становится из рук вон плохой, когда мы решились на нулевое среднее, но продолжаем использовать метод FFT. Вот тут-то нас и подстерпегают сюрпризы из-за того что FFT-пребразование апроксимирует гармониками те разрывы непрерывности, которые имеют место (в точке перехода крайней точки на нуль и точку перехода нуля на первую точку). И вот именно с этим эффектом борется "метод треугольника", делая этот переход наиболее плавным.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jul 27 2010, 12:48
Сообщение #20


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(PriBoris @ Jul 27 2010, 15:21) *
Пришел новый набор данных из 512 точек.
Я создаю буффер их 768 точек,

А почему не 512?

Цитата(PriBoris @ Jul 27 2010, 15:21) *
в него в позиции с 1 по 256 я копирую последние 256 точек из предыдущего набора данных,

А зачем, простите? Это Вы так перекрытие делаете или что?

Цитата(PriBoris @ Jul 27 2010, 15:21) *
а в позиции с 257 по 768 я копирую свежие 512.

???

Цитата(PriBoris @ Jul 27 2010, 15:21) *
Домножаю результат на АЧХ/ФЧХ моего фильтра, дополненного нулями до длины 768.

Тут зависит от задачи - иногда нужно дополнить, а иногда масштабировать...

Цитата(PriBoris @ Jul 27 2010, 15:21) *
Точки с с 1 по 256 выкидываю

?????????????????????

Цитата(PriBoris @ Jul 27 2010, 15:21) *
а точки с 257 по 768 считаю результатом фильтрации свежего блока данных.

Это мегаерундище...

Еще раз - это не FIR. Совсем не FIR. Т.е. о свертке забываем. А значит ничего не храним. Теперь у нас только умножение в частотной области - блочный алгоритм.

Цитата(PriBoris @ Jul 27 2010, 15:21) *
Лучше делать два таких прохода на блок, но по 512 точек ?


Цитата(PriBoris @ Jul 27 2010, 15:21) *
Или один проход, но избыточный, на 1024 точек, чтобы не заморачиваться с Кули-Тьюки (в котором я возможно потреряю много времени на накладных расходах при переиндексации и т.д.)?

Лучше сесть и спокойно разобраться - как же оно - правильно.


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
thermit
сообщение Jul 27 2010, 12:50
Сообщение #21


Знающий
****

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



Цитата
PriBoris:
Обясните пожалуйста, я не понимаю что я по Вашему мнению планирую делать не так.
Мне нужно реализовать FIR длиной 256, который я собственно реализовал в лоб. Получается затратно по ресурсам.
Я планирую сделать так:
Пришел новый набор данных из 512 точек.
Я создаю буффер их 768 точек, в него в позиции с 1 по 256 я копирую последние 256 точек из предыдущего набора данных, а в позиции с 257 по 768 я копирую свежие 512.
Делаю fft длиной 768.
Домножаю результат на АЧХ/ФЧХ моего фильтра, дополненного нулями до длины 768.
Полученное произведение пропускаю через ifft.
Точки с с 1 по 256 выкидываю, а точки с 257 по 768 считаю результатом фильтрации свежего блока данных.


Вы все верно спланировали. Это метод перекрытия с накоплением.
Go to the top of the page
 
+Quote Post
PriBoris
сообщение Jul 27 2010, 13:02
Сообщение #22


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 7-10-05
Из: Санкт-Петербург
Пользователь №: 9 352



Цитата(DRUID3)
Это мегаерундище... Лучше сесть и спокойно разобраться - как же оно - правильно.

Я бы с удовольствием, но реализовав в матлабе описанное, вижу что результат этого метода не отличается от результата встроенной функции filter(b,1,in), которой я скармливаю свой оригинальный фильтр длиной 219.
В иностранной литературе метод называют Overlap-Save. (см.вложение)

Прикрепленные файлы
Прикрепленный файл  Fast_convolution.pdf ( 167.2 килобайт ) Кол-во скачиваний: 63
 
Go to the top of the page
 
+Quote Post
thermit
сообщение Jul 27 2010, 13:16
Сообщение #23


Знающий
****

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



Цитата
DRUID3:
Лучше сесть и спокойно разобраться - как же оно - правильно.


Золотые слова, юрийвенедиктович...
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jul 27 2010, 14:25
Сообщение #24


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(Xenia @ Jul 27 2010, 15:40) *
В принципе можно с определенностью сказать следующее: все три метода (зацикливание, дополнение нулями и дополнение линейным трендом) грешат против истины.

Нет, Xenia, Вы ошибаетесь. Т.к. то, что Вы называете зацикливанием при обратной операции восстановит сигнал наиболее достоверно. "Треды" и "нули" нервно курят в стороне. Вот где ухи у "зацикливания" - так это в самой блочности вкупе с бесконечностью базисных функций, именно они - "размывают" в той или иной степени сигнал препятствуя его восстановлению без потерь.

Цитата(Xenia @ Jul 27 2010, 15:40) *
В самом деле, при вычислении сверки прямым способом в конце массива создается ситуация, когда в результате относительного сдвига двух сворачиваемых функций приводит к неопределенной ситуации - первая функция "кончилась", выйдя за область, где мы знаем ее значения, а вторая функция еще нет.

Йа кажеЦЦо понял причину Ваших душевных терзаний smile.gif . Так вот - сядьте и немного повоображайте. И подумайте когда произойдет выделенное мной если один из сигналов бесконечен. А в случае RT данных это очень удачная идеализация. wink.gif

Цитата(Xenia @ Jul 27 2010, 15:40) *
Если в этой ситуации мы решаем довольствоваться частичной суммой произведений, то это будет эквивалент заполнения недостающей части нулями.

Да, но это будет в конце рабочего дня когда оператор выключит приборы. biggrin.gif

Цитата(Xenia @ Jul 27 2010, 15:40) *
А если же решим, что "закончившаяся" функция периодична и решаем скопировать недостающие точки из ее начала - это то, что делает FFT.

...ну, мягко говоря, FFT не так работает.

Цитата(Xenia @ Jul 27 2010, 15:40) *
А мой "трегольник" - это попытка обмануть FFT

Обманывать - непедагогично! smile.gif

Цитата(Xenia @ Jul 27 2010, 15:40) *
, подсунув ей данные, на которых принудительная "циклизация", которую делает FFT, приносит наименьший вред
...
И вот именно с этим эффектом борется "метод треугольника", делая этот переход наиболее плавным.

Это черная магия от ЦОС. cool.gif

Цитата(PriBoris @ Jul 27 2010, 16:02) *
В иностранной литературе метод называют Overlap-Save. (см.вложение)

...ну раз в иностранной - тода, да... Я умываю руки, собственно кто йа такой чтобы идти против лавины иностранной науки!!!


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
PriBoris
сообщение Jul 27 2010, 14:45
Сообщение #25


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 7-10-05
Из: Санкт-Петербург
Пользователь №: 9 352



Второстепенные вопросы остались. Если кто-то может посоветовать, то буду очень благодарен.

Цитата
Лучше делать два таких прохода на блок, но по 512 точек ?
Или один проход, но избыточный, на 1024 точек, чтобы не заморачиваться с Кули-Тьюки (в котором я возможно потреряю много времени на накладных расходах при переиндексации и т.д.)?
Go to the top of the page
 
+Quote Post
thermit
сообщение Jul 27 2010, 20:06
Сообщение #26


Знающий
****

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



Никаких 512-и быть тут не может, т к результат свертки 2-х последовательностей длин 512 и 256 будет иметь длину 767. Т е размер дпф должен иметь длину минимум 767. Ближайшая внятная размерность 768. Что касается 1024-х точек - уверен, что дпф на 768 точек будет быстрее. Это справедливо, если нет аппаратной поддержки перестановок. (Например, если есть аппаратная поддержка битреверсной адресации, которая используется в алгоритме к-т по основанию 2, то есть выигрыш в числе операций). Так что не парьтесь, Вы на правильном пути.

ps
Можно манипулировать дпф сигнала используя окна без умножения на дпф фильтра, как пытались посоветовать некоторые товарищи. Но это будет совсем другая история, и размер 512 тут далеко не оптимален... Хотя, все зависит от требований к точности.
Go to the top of the page
 
+Quote Post
PriBoris
сообщение Jul 28 2010, 09:49
Сообщение #27


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 7-10-05
Из: Санкт-Петербург
Пользователь №: 9 352



Цитата(thermit)
Никаких 512-и быть тут не может, т к результат свертки 2-х последовательностей длин 512 и 256 будет иметь длину 767. Т е размер дпф должен иметь длину минимум 767. Ближайшая внятная размерность 768. Что касается 1024-х точек - уверен, что дпф на 768 точек будет быстрее. Это справедливо, если нет аппаратной поддержки перестановок. (Например, если есть аппаратная поддержка битреверсной адресации, которая используется в алгоритме к-т по основанию 2, то есть выигрыш в числе операций). Так что не парьтесь, Вы на правильном пути.


Под двумя проходами по 512 я имел ввиду :
первый проход : 512 - состоит из второй половины предыдущего блока и из первой половины нового блока данных
второй проход : 512 - состоит из первой и второй половин нового блока данных
то есть на каждый блок данных длиной 512 я прохожусь 2 раза сверткой с длиной 512, и после каждой свертки получаю 256 фильтрованных значений

Сегодня этот вариант реализовал и проверил в процессоре. Выигрыш по сравнению с прамой реализацией FIR составил 6 раз. На данном этапе меня это устраивает. Если в будущем не будет хватать, то буду делать 768-точечное FFT.
Большое спасибо всем откликнувшимся!
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jul 28 2010, 11:56
Сообщение #28


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(thermit @ Jul 27 2010, 23:06) *
Никаких 512-и быть тут не может, т к результат свертки 2-х последовательностей длин 512 и 256 будет иметь длину 767. Т е размер дпф должен иметь длину минимум 767.

Согласно самому определению свертки двух конечных рядов во временном представлении - да. Но товарищу нужно наложить фильтр. Просто фильтр наложить!!! И хрен он его наложит на бесконечный ряд согласно этому определению. Классическая длинна блока, классический алгоритм БПФ, делается в течении дня вместе с тестами... Зачем вся эта ерунда!!!??? Разрабатывать БПФ странной длинны... Добавляется Х.з. сколько операций. В крайнем случае фильтр можно немного "предисказить" для улучшения результата. Хотя - мне за это не платят, так что чего это я laughing.gif ...

А доказательство своей правоты наличием невнятной англоязычной статьи - это супер.

КАроче - школота и дилетанты. biggrin.gif tongue.gif tongue.gif tongue.gif


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
thermit
сообщение Jul 29 2010, 11:52
Сообщение #29


Знающий
****

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



Цитата
DRUID3:
Согласно самому определению свертки двух конечных рядов во временном представлении - да. Но товарищу нужно наложить фильтр. Просто фильтр наложить!!!


Что он добросовестно и проделал.
КИХ фильтрация и апериодическая дискретная свертка - одно и тоже.
Изобретать тут нечего. Все уже изобретено до нас.

зы:
На счет школоты и дилетантов - эт Вы погорячились...

Сообщение отредактировал thermit - Jul 29 2010, 12:01
Go to the top of the page
 
+Quote Post
bahurin
сообщение Jul 30 2010, 05:44
Сообщение #30


Местный
***

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



Цитата(thermit @ Jul 29 2010, 15:52) *
КИХ фильтрация и апериодическая дискретная свертка - одно и тоже.
Изобретать тут нечего. Все уже изобретено до нас.


Да. Но надо различить 2 случая. 1. имеется массив данных s длины N. Выход ких фильтра с заданной импульсной характеристикой h равен линейной свертке s*h. Но есть еще один случай, когда длина массива s неизвестна. Например данные идут кусками по 512 отсчетов. В этом необходимо чтобы при поступлении следующего куска данных, ячейки памяти ких фильтра хранили информацию о предыдущем куске. И если вы просто в лоб выполните линейную свертку каждого куска и потом их состыкуете, то результат будет отличаться от того, что вы получите если выполните линейную свертку всех кусков сразу. Для того чтобы хранить данные о предыдущем куске делают обработку с перекрытием (overlapped), т.е. каждый раз при поступлении следующего куска захватывают часть предыдущего чтобы заполнить ячейки памяти фильтра.

Go to the top of the page
 
+Quote Post

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

 


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


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