我们有这么一张灰度图64*64

我们能够定义出4096个基,各自是某一位是0其它是1,在这样的情况下,假设我们传输图片,那么就相当于传输原始数据

如果传到一半,网络坏了。

于是,我们得到

我们能够计算原图像和这图像的差距

error = I - I_approx; 

distance = sqrt(sum(sum(error.*error))) 

distance = 

713.5559

如果我们使用Haar基

function h = haar(N)

    % Assume N is power of 2
h = zeros(N,N);
h(1,1:N) = ones(1,N)/sqrt(N); for k = 1:N-1
p = fix(log(k)/log(2));
q = k-(2^p);
k1 = 2^p;
t1 = N/k1;
k2 = 2^(p+1);
t2 = N/k2;
for i=1:t2
h(k+1,i+q*t1) = (2^(p/2))/sqrt(N);
h(k+1,i+q*t1+t2) = -(2^(p/2))/sqrt(N);
end
end

然后,我们看一下仅仅接受一半的图片能够恢复成什么样子,这个东西能够用到图片压缩(PCA降维)

clear all
close all
clc % Load image
I = double(imread('camera.jpg')); % Arrange image in column vector
I = I(:); % Generate Haar basis vector (rows of H)
H = haar(4096); % Project image on the new basis
I_haar = H*I; % Remove the second half of the coefficient
I_haar(2049:4096) = 0; % Recover the image by inverting change of basis
I_haar = H'*I_haar; % Rearrange pixels of the image
I_haar = reshape(I_haar, 64, 64); % Display image
figure
imshow(I_haar,[]);

效果还能够

error = I - I_haar; 

distance = sqrt(sum(sum(error.*error))) 

distance = 

350.6765

Haar基是正交基

怎样将普通基变成正交基呢

线性代数中的拉格慕-施密特正交化即可

function E=gs_orthonormalization(V)
% V is a matrix where each column contains the vectors spanning the space of which we want to compute the orthonormal base
% E is a matrix where each column contains an ortho-normal vector of the base of the space [numberLines,numberColumns]=size(V); % U is a matrix containing the orthogonal vectors (non normalized)
U=zeros(numberLines,numberColumns); for indexColumn=1:numberColumns
U(:,indexColumn)=V(:,indexColumn); for index=1:(indexColumn-1)
R(index,indexColumn) =U(:,index)'*V(:,indexColumn);
U(:,indexColumn)=U(:,indexColumn)-R(index,indexColumn)*U(:,index);
end R(indexColumn,indexColumn)=norm(U(:,indexColumn));
U(:,indexColumn)=U(:,indexColumn)./R(indexColumn,indexColumn); end E=U; return

数字信号处理Day2-小波基与规范正交化的更多相关文章

  1. 数字信号处理--FFT与蝶形算法

    在数字信号处理中常常需要用到离散傅立叶变换(DFT),以获取信号的频域特征.尽管传统的DFT算法能够获取信号频域特征,但是算法计算量大,耗时长,不利于计算机实时对信号进行处理.因此至DFT被发现以来, ...

  2. 数字信号处理与音频处理(使用Audition)

    前一阵子由于考博学习须要,看了<数字信号处理>,之前一直不清除这门课的理论在哪里应用比較广泛. 这次正巧用Audition处理了一段音频,猛然发现<数字信号处理>这门课还是很实 ...

  3. 数字信号处理MATLAB简单序列

    数字信号处理应用的几个基本序列: 1 单位样本序列 function mainImseq() clc clear disp('生成抽样序列'); y=imseq(,,); %调用样本函数,此时序列下标 ...

  4. FPGA与数字信号处理

    过去十几年,通信与多媒体技术的快速发展极大地扩展了数字信号处理(DSP)的应用范围.眼下正在发生的是,以更高的速度和更低的成本实现越来越复杂的算法,这是针对高级信息服更高带宽以及增强的多媒体处理能力等 ...

  5. 数字信号处理专题(3)——FFT运算初探

    一.前言 FFT运算是目前最常用的信号频谱分析算法.在本科学习数字信号处理这门课时一直在想:学这些东西有啥用?公式推来推去的,有实用价值么?到了研究生后期才知道,广义上的数字信号处理无处不在:手机等各 ...

  6. 数字信号处理专题(1)——DDS函数发生器环路Demo

    一.前言 会FPGA硬件描述语言.设计思想和接口协议,掌握些基本的算法是非常重要的,因此开设本专题探讨些基于AD DA数字信号处理系统的一些简单算法,在数字通信 信号分析与检测等领域都会或多或少有应用 ...

  7. 现代数字信号处理——AR模型

    1. AR模型概念观       AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值,其目的都是为了增加有效数据,只是AR模型是由N点递推, ...

  8. 如何使用Matlab做数字信号处理的仿真1

    例如 第三版数字信号处理P51 -1.14习题时域离散信号的相关性研究x(n)=Asin(ωn)+u(n),其中ω=π/16,u(n)是白噪声,现要求 ⑴.产生均值为0,功率P=0.1的均匀分布白噪声 ...

  9. FS,FT,DFS,DTFT,DFT,FFT的联系和区别 数字信号处理

    DCT变换的原理及算法 文库介绍 对于初学数字信号处理(DSP)的人来说,这几种变换是最为头疼的,它们是数字信号处理的理论基础,贯穿整个信号的处理. 学习过<高等数学>和<信号与系统 ...

随机推荐

  1. ExcelApplication 另存Excel的SaveAs函数

    procedure SaveAs(const Filename: WideString; FileFormat: OleVariant; Password: OleVariant; WriteResP ...

  2. iOS开发之Quartz2D详解

    1. 什么是Quartz2D? Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片( ...

  3. 微信小应用vs progressive-web-apps

    https://developers.google.com/web/progressive-web-apps/

  4. underscorejs-invoke学习

    2.13 invoke 2.13.1 语法: _.invoke(list, method, *args) 2.13.2 说明: 每个list属性值都执行method方法,根据method方法返回一个数 ...

  5. JavaScript错误处理

    JavaScript 错误 - Throw.Try 和 Catch JavaScript 测试和捕捉 try 语句允许我们定义在执行时进行错误测试的代码块. catch 语句允许我们定义当 try 代 ...

  6. 转:Python 与 Excel 不得不说的事

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...

  7. 一个处理Date与String的工具类

    public class DateUtil { private DateUtil(){ } public static final String hhmmFormat="HH:mm" ...

  8. java Html2Image 实现html转图片功能

    //java Html2Image 实现html转图片功能 // html2image  HtmlImageGenerator imageGenerator = new HtmlImageGenera ...

  9. 点击Textbox 给日历控件赋值

    1.前台代码: <asp:TextBox ID="TextBox1" runat="server" onfocus="return show() ...

  10. Understanding GC pauses in JVM, HotSpot's minor GC.

    原文地址:http://blog.griddynamics.com/2011/06/understanding-gc-pauses-in-jvm-hotspots.html Stop-the-worl ...