0

Я использую Matlab, и у меня есть разреженный вектор (имеющий только около 10% ненулевых значений, но в противном случае вполне произвольный).Сжатие разреженных сигналов

Я хочу сжать его (наименьший размер). Я также хочу знать степень сжатия, которую я получил.

+0

Разве не цель сжатия - восстановить сигнал на конце приемника? Я имею в виду, что слепое опускание нулей сжимает сигнал, но как вы сможете восстановить его позже, если потребуется? – roni

+0

@roni \t У меня есть сигнал, и я хочу сжать его, для чего я должен был бы это сделать, я хотел бы знать, есть ли встроенный алгоритм сжатия в Matlab или нет, или как его сжать? ?? –

+0

Любой конкретный алгоритм в виду? Любые требования к алгоритму (скорость, эффективность)? Можете ли вы привести пример своего разреженного вектора? Пожалуйста, добавьте информацию из комментария к вопросу. – Trilarion

ответ

1

Вы можете получить размер любой переменной в MATLAB, используя функцию whos. Он возвращает структуру, содержащую имя, размер, класс, количество байтов и некоторые другие значения переменной. Для того, чтобы получить информацию о переменной A, вы звоните

info = whos('A'); 

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

% Create matrices 
A = [0 1 0 0; 1 0 0 0; 0 0 1 0; 0 0 0 1] 
S = sparse(A) 

before = whos('A') 
after = whos('S') 

comprRatio = before.bytes/after.bytes 

, который в этом маленьком примере возвращает

comprRatio = 
    1.2308 

как матрица A составляет 128 байт, а разреженная матрица S составляет 104 байт.

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

+0

У меня есть сигнал, и я хочу сжать его, для чего я должен был бы это сделать, я хотел бы знать, есть ли встроенный алгоритм сжатия в Matlab или нет, .. или как сжать его ??? –

+0

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

+0

use может использовать DCT-преобразование, всплески, преобразование haar. Преобразование Haar довольно легко сделать. Вы можете запрограммировать его самостоятельно. – roni

 Смежные вопросы

  • Нет связанных вопросов^_^